Orchestrate your entire DevOps pipeline reliably at enterprise scale with the XebiaLabs DevOps Platform. Push your cloud-native and legacy applications to AWS while extracting DevOps intelligence that provides key release insights and comprehensive reporting to boost efficiency and drive compliance.
For more information, visit the XebiaLabs DevOps Platform page.
This repository contains a set of AWS CloudFormation YAML templates that allow you to set up the XebiaLabs DevOps platform on AWS.
Getting started with the XebiaLabs DevOps Platform is easy. It only takes a few steps and you will be up and running using XebiaLabs’ release orchestration and deployment automation on AWS.
The Amazon Machine Image (AMI) used in this platform contains both the deployment automation (XL Deploy) and release orchestration (XL Release) components of the XebiaLabs DevOps Platform.
On startup, user-data provides details as to which product should be launched for a given auto-scaling group.
The AMI is based on the latest Amazon Linux 2 image, which at the time of writing this documentation is amzn2-ami-hvm-2.0.20190618-x86_64-gp2
. We will strive to always keep the images up to date with the latest Linux releases from AWS to provide the latest functionality and ensure security.
This setup supports two use cases:
-
Full Setup: If an administrator chooses this option, the CloudFormation stack will create all resources required to run the XebiaLabs DevOps Platform. This includes a new VPC, RDS cluster, bastion hosts, auto-scaling groups and all related security groups, subnets, internet gateways and NAT gateways.
-
Existing VPC & RDS Setup: If an administrator chooses this option, the CloudFormation stack will only create the necessary infrastructure needed to run the XebiaLabs DevOps Platform. The administrator will need to provision the supporting infrastructure themselves.
Here are the resources provisioned for each setup type:
Resource | Full Setup | Existing VPC & RDS Setup |
---|---|---|
✓ |
||
✓ |
||
✓ |
||
✓ |
||
✓ |
||
Elastic IP for Bastion |
✓ |
|
RDS Instance |
✓ |
|
Bastion Auto-scaling Group |
✓ |
|
Databases within RDS |
✓ |
✓ |
✓ |
✓ |
|
EFS File System for XL Deploy |
✓ |
✓ |
EFS File System for XL Release |
✓ |
✓ |
XL Release Auto-scaling Group |
✓ |
✓ |
XL Deploy Auto-scaling Group |
✓ |
✓ |
Target groups for XL Deploy and XL Release |
✓ |
✓ |
✓ |
✓ |
|
✓ |
✓ |
|
✓ |
✓ |
In addition to these provisions, the administrator must have the following AWS resources configured to deploy the XebiaLabs DevOps Platform for both setup types: * A valid SSL/TLS certificate in Amazon Certificate Manager (ACM) in order to expose the ALB endpoints over HTTPS * A key pair to SSH into the instances
Note
|
The public and private subnets are responsible for traffic segregation. Never expose your databases and other non-public services on public subnets. The only resource that should be directly attached to the public subnet should be your ALB. |
Here is an example of the CloudFormation parameters for the full setup:
Note
|
In the case that an administrator deletes the CloudFormation stack, the RDS instance will also be removed. To preserve the data, a snapshot will be automatically created prior to the database being deleted, and stored in the RDS console. This snapshot has a related storage cost that is dependent on the size of the databases at the time of deletion. |
When opting for this setup method, the administrator should already have the AWS resources mentioned above configured to deploy the XebiaLabs DevOps Platform. Here are the CloudFormation parameters for an existing VPC and RDS setup:
After starting up the CloudFormation stack, the XL Release and XL Deploy endpoints – and if the user chose the Full Setup installation option, the Elastic IP address of the bastion host - will be part of the stack outputs. To find these, go to the CloudFormation Console in your chosen region, select the main/master stack, and then click on "Outputs". Here is an example of the outputs:
At the bottom you can see the URLs to access the platforms. XLReleaseURL opens the release orchestration component, and XLDeployURL opens the deployment automation component of the platform.