5.8 C
New York
Thursday, January 11, 2024

Launched GitLab HA Scaling Runner Merchandising Machine for AWS (v1.4.0-alpha4)


For a very long time I’ve been enjoying with the idea of Enablement Automation Code as a Product. The choice is roughly “as a fast begin template”. On this case, this isn’t really a product – however the effort is managed with all of the views as if it have been one.

In my expertise, this seemingly small shift in perspective causes a butterfly impact of constructive outcomes within the work product. It may be seen on this effort with vital effort round “self-service” and “patching built-in”. On this particular case it additionally prompted ML and AI Ops to be in view as a result of many organizations use scaled CI compute to do mannequin processing runs.

Different issues Enablement Automation Code as a Product knowledgeable on this case embrace selecting Boring AWS Expertise. On this case, sticking with the “Boring” alternative of CloudFormation because the Infrastructure as Code (IaC) language permits 1000’s of IaC Automation Professionals to shortly implement, innovate and contribute. It might additionally permit this code to finally be an AWS QuickStart – a kind of Manufacturing-Grade IaC Templates Market offered by AWS.

Learning competing choices and implementing buyer necessities are additionally hallmarks of product administration. At a former employer, I managed a really related effort particularly for GitLab Runner, the place I began to experiment with the Enablement Automation Code as a Product perspective – these experiences have knowledgeable this answer.

Enablement Automation Code as a Product strongly pertains to a earlier weblog submit on why working examples are additionally the most effective studying aide: Again to Fundamentals: Testable Reference Sample Manifesto (With Testable Pattern Code)

Options Guidelines

Some options on this record are highlights of particularly relevant code inherited from The Final AWS AutoScaling Group ASG Lab Package, however objects marked “NEW” are particularly new in comparison with that code.

It is very important evaluation the README.md to grasp if this code acceptable in your use case.

  • Self-Service – “Merchandising Machine” within the title signifies that there’s a purposeful manufacturing orientation in growing this code to make it deployable by people who should not consultants in both AWS or GitLab Runner setup. As an illustration, there may be ample commentary within the code and in CloudFormation console kinds to allow anybody to determine the right way to deploy a runner. Finer factors of determining a easy autoscaling metric do require extra information in these areas – however standing up an HA runner of any of the categories supported is pretty straight ahead.
  • NEW: Runner Administration At Scale – Visibility – runner naming and AWS EC2 tagging are used to make sure it’s all the time simple to know the place a runner resides in scaled, multi-account AWS implementations. All runner tags are surfaced as a single comma separated EC2 Tag.
  • NEW: Designed for Lengthy Time period Runner Administration At Scale – Simple Patching and Updates – the “maintainability” built-in to the unique Final ASG AutoScaling Group Lab Package permits runner ASGs to be simply replace with all of:
    1. The newest AMI
    2. the OS patches
    3. NEW The newest GitLab runner.
  • NEW: Spot / Ondemand Compute Kind Surfaced as Runner Tags – CI/CD Automation builders can select what kind of compute is suitable for his or her functions on the per-job stage of granularity.
  • NEW: CloudWatch Occasion Metrics Collected for Linux and Home windows – primarily for Reminiscence based mostly scaling, however disk and community are additionally collected in order that bottlenecks with these assets will be noticed for specialty workloads like ML Ops. They’re additionally dimensioned on “Occasion Kind” for a similar motive – analyzing bottlenecks by occasion kind so as to choose the most effective one relying on workload.
  • NEW: Scaling on Reminiscence Utilization – workloads which have low CPU utilization, however nonetheless devour reminiscence (for instance GitLab jobs that simply ballot for standing from one other system), could also be higher scaled utilizing reminiscence utilization.
  • NEW: Runner On/Off Scheduling – one cease and one begin schedule (offered by ASG scheduled actions) are offered to utterly shut the runner down when not getting used. Use instances embrace: a growth crew particular CI runner that’s used solely when builders are on working hours, CD runners which can be solely wanted throughout deployment occasions to particular environments, runners which can be manually shutdown when completed – however must auto-start at a given time of day or week.
  • NEW: Offers Linux “docker” Runner Executor for Main Use Case of docker+machine Scaling Alternative – docker+machine GitLab Runner executor is deprecated as a result of docker machine is deprecated by docker. This replaces the docker stage scaling with
  • NEW: Offers Home windows shell Runner Executor for Main Use Case of .NET Framework and Different Home windows Growth – some .NET Framework CI builds and different Home windows CI builds could require a full Home windows occasion because of the construct tooling necessities. By having a Home windows shell runner that may additionally auto-scale, growth groups with these necessities can have a scaling GitLab runner.
  • NEW: Offers Linux Shell and Home windows Docker GitLab Runner Executors – whereas much less frequent, these are offered as nicely.
  • NEW: In depth Troubleshooting Data Documented – [TESTING-TROUBLESHOOTING] (https://gitlab.com/guided-explorations/aws/gitlab-runner-autoscaling-aws-asg/-/blob/grasp/TESTING-TROUBLESHOOTING.md) – additionally linked from README.md
  • Designed for Extensibility and Testability – the runner configuration scripts are (a) separate from the cloud formation and (b) downloaded dynamically at scaling time. This allows getting round some code limitations of CloudFormation, but it surely additionally permits others to simply create their very own runner configurations and retailer them wherever. It additionally permits iterative testing over simply the runner script portion by scaling right down to 0 after which again up – the dynamic sourcing of the scripts causes updates to be taken. For stronger model pegging or “full immutable automation code” the script can have a model quantity embedded within the file title and be supply from S3.

Code for This Submit

GitLab HA Scaling Runner Merchandising Machine for AWS

Mission Inconceivable Code Collection Inclusion

  • The answer sticks to the Boring Expertise choice standards.
  • The answer is applied in a single CloudFormation template.
  • The answer implements “Least Privileges”
  • The answer implements “Least Configuration” (don’t configure issues that the consumer signifies they gained’t use, use clean parameters as an off change for least config).



Supply hyperlink

Related Articles

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Latest Articles