Skip to content

Commit

Permalink
Release v3.0.0 Commit ee532b9 Doc Commit #1404646
Browse files Browse the repository at this point in the history
  • Loading branch information
buildmachine-sou-jenkins2 committed Sep 27, 2024
1 parent 187145f commit eb939c3
Show file tree
Hide file tree
Showing 20 changed files with 45 additions and 271 deletions.
30 changes: 30 additions & 0 deletions .gitlab-ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
image: ruby:3.2

workflow:
rules:
- if: $CI_COMMIT_BRANCH

before_script:
- gem install bundler
- bundle install

pages:
stage: deploy
script:
- bundle exec jekyll build -d public
artifacts:
paths:
- public
rules:
- if: $CI_COMMIT_BRANCH == "gh-pages"
environment: production

test:
stage: test
script:
- bundle exec jekyll build -d test
artifacts:
paths:
- test
rules:
- if: $CI_COMMIT_BRANCH != "gh-pages"
5 changes: 3 additions & 2 deletions Gemfile
100755 → 100644
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
source 'https://rubygems.org'
gem 'github-pages', group: :jekyll_plugins
source "https://rubygems.org"

gem "jekyll"
4 changes: 2 additions & 2 deletions _config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@ title: AutoScaler
email: [email protected]

description: AutoScaler Description
#baseurl: "/autoscaler"
baseurl: "/autoscaler"
#baseurl: ""
baseurl: ""

# Build settings
exclude: ['node_modules']
Expand Down
8 changes: 0 additions & 8 deletions _data/side_navigation.json
Original file line number Diff line number Diff line change
Expand Up @@ -18,14 +18,6 @@
"url": {
"en-us": "pages/en-us/Features"
}
},
{
"title": {
"en-us": "Getting Started"
},
"url": {
"en-us": "pages/en-us/Getting-Started"
}
},
{
"title": {
Expand Down
4 changes: 2 additions & 2 deletions index.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ button:

features:
title: About Autoscaler
subtitle: The Autoscaler service provides on-demand scaling of services, allowing you to efficiently dedicate resources where they are needed most in your Mesos cluster and minimizing costs and ensuring user satisfaction.
subtitle: The Autoscaler service provides on-demand scaling of services, allowing you to efficiently dedicate resources where they are needed most in your Kubernetes cluster and minimizing costs and ensuring user satisfaction.
feature_list:
- image: assets/img/elastic-scaling-icon.png
title: Elastic Scaling
Expand All @@ -19,7 +19,7 @@ features:
subtitle: Pluggable support for monitoring workloads, scaling decisions and scaling commands allows the Autoscaler to be used in many different environments.
- image: assets/img/ready-to-go-icon.png
title: Ready to go
subtitle: Out of the box support for the Worker Framework, RabbitMQ and Marathon makes it easy to start scaling today!
subtitle: Out of the box support for the Worker Framework, RabbitMQ and Kubernetes makes it easy to start scaling today!

social:
title: Get Involved
Expand Down
18 changes: 5 additions & 13 deletions pages/en-us/Architecture.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ banner:

# Architecture

The Autoscaler service monitors Marathon microservice message throughput statistics and scales microservice instances up or down according to their configuration. By scaling microservices according to their demand, the Autoscaler enables efficient system resource allocation. The following high-level architecture description explains the relationship of the Autoscaler and its components.
The Autoscaler service monitors Kubernetes microservice message throughput statistics and scales microservice instances up or down according to their configuration. By scaling microservices according to their demand, the Autoscaler enables efficient system resource allocation. The following high-level architecture description explains the relationship of the Autoscaler and its components.

## Overview

Expand All @@ -23,20 +23,20 @@ The figure below illustrates the Worker scaling functionality of the Autoscaler.
The pipes represent asynchronous message queues on RabbitMQ.

1. Autoscaler is configured via configuration files:
- `MarathonAutoscalerConfiguration` contains configuration options for the Marathon endpoint and maximum number of overall microservice instances.
- `K8sAutoscaleConfiguration` contains configuration options for the Kubernetes endpoint and maximum number of overall microservice instances.
- `RabbitWorkloadAnalyserConfiguration` contains configuration options for the RabbitMQ Management endpoint, RabbitMQ Management user details and Autoscaler Rabbit Workload Scaling Profiles.
2. Workers (microservices) are configured with Marathon Labels for Autoscaler use.
2. Workers (microservices) are configured with Kubernetes Labels for Autoscaler use.
3. Autoscaler monitors Workers' RabbitMQ input queue's load processing statistics.
4. Autoscaler increases or decreases the number of Worker instances for an input queue based on input queue statistics and the scaling profile set for the Worker.

### Framework

The `autoscale-core` is built on an extensible framework that can be used to build different Worker Autoscalers. The Worker Autoscaler is packaged with plugins for RabbitMQ and Marathon but due to the extensible nature of the framework, additional plugins can be written for alternative queuing and container orchestration tools.
The `autoscale-core` is built on an extensible framework that can be used to build different Worker Autoscalers. The Worker Autoscaler is packaged with plugins for RabbitMQ and Kubernetes but due to the extensible nature of the framework, additional plugins can be written for alternative queuing and container orchestration tools.


### Configuration

If you are running on the Marathon platform, no environment variables are required to be set to start the Autoscale Application. If you are not running on the Marathon platform, you will need to set `CAF_APPNAME` to an appropriate value to specify the namespace/grouping for the particular autoscaler instance.
If you are running on the Kubernetes platform, no environment variables are required to be set to start the Autoscale Application. If you are not running on the Kubernetes platform, you will need to set `CAF_APPNAME` to an appropriate value to specify the namespace/grouping for the particular autoscaler instance.

The following configuration can (optionally) be set in the .yaml file:
* sourceRefreshPeriod (integer), the time in seconds between refreshing the available services to autoscale, defaults to 900
Expand Down Expand Up @@ -98,11 +98,3 @@ A service needs to specify various information about how it wants its workload t
* backoff: the number of workload analysis runs that will be skipped after the analyzer triggers a scaling operation. This can help avoid unusual scaling behavior while the system is in-between states

There are additional scenarios which may mean a service may be ignored by an instance of the Autoscale Application which are outside basic validation. These are the cases where the application owner of the Autoscale instance does not match the appOwner specified in the `ScalingConfiguration` and the case where the workload metric specified is not available to that instance of the Autoscale Application.

### Further Reading

The Getting Started guide, [here](Getting-Started), contains the following information:

- Autoscaler `MarathonAutoscalerConfiguration` configuration file options
- Autoscaler `RabbitWorkloadAnalyserConfiguration` configuration file options and creating Autoscaler scaling profiles
- Microservice Autoscaler Marathon labels required for auto-scaling
2 changes: 1 addition & 1 deletion pages/en-us/Features.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,4 +19,4 @@ Easily scale up and down Workers based on key metrics and also allocate resource
With many customers in many timezones, a single application may experience rapidly fluctuating load demands. The problem is not simply scaling up to meet the demand, but scaling back down to better optimize the use of resources. Plug-in support for monitoring workloads, scaling decisions and scaling commands allows the Autoscaler to be used in a variety of environments.

## Ready to go
Out of the box support for the Worker Framework, RabbitMQ and Marathon makes it easy to start scaling today. Autoscaler provides out of the box scaling for all your Workers!
Out of the box support for the Worker Framework, RabbitMQ and Kubernetes makes it easy to start scaling today. Autoscaler provides out of the box scaling for all your Workers!
Loading

0 comments on commit eb939c3

Please sign in to comment.