/xl-aws-ami-marketplace-cfn

CloudFormation templates for the AMI-based listing in the AWS Marketplace

Primary LanguagePython

XebiaLabs DevOps Platform Installation on AWS Marketplace

Description

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.

Contents

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.

AMI Description

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.

Setup Guide

This setup supports two use cases:

  1. 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.

  2. 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.

Resources needed

Here are the resources provisioned for each setup type:

Resource Full Setup Existing VPC &
RDS Setup

VPC

Private Subnets

Public Subnets

Data Subnets

Internet Gateway

Elastic IP for Bastion

RDS Instance

Bastion Auto-scaling Group

Databases within RDS

Application Load Balancer

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

CloudWatch Dashboard

CloudWatch Alarms

CloudWatch Log Groups

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.

Full Setup

Here is an example of the CloudFormation parameters for the full setup:

cfn new 1
cfn new 2
cfn new 3
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.

Existing VPC & RDS Setup

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:

cfn 1
cfn 2
cfn 3

Post 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:

cfn outputs full

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.