Aws Multi-Account, Self-Healing, Self-Bootstrapping DevOps Pipelines

StephenWilding 138 views 14 slides Feb 22, 2019
Slide 1
Slide 1 of 14
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14

About This Presentation

Describes how we can deploy self-healing, self-bootstrapping Pipelines across multiple AWS accounts


Slide Content

Multi-Account, Self-Healing, Self-Bootstrapping DevOps Pipelines Stephen Wilding – Cambridge User Group – February 2019

Aims Demonstrate how to manage tooling deployment using pipelines across a multi-account, multi- organisational environment Demonstrate how tooling can be self-healing

What Problem Are We Trying To Solve? As an engineer I need to ensure that all AWS are bootstrapped with my tools installed As an engineer I need to ensure that I can deploy updates to my tooling across ALL (i.e. potentially 100’s) of accounts via a single action As an engineer I need to ensure my tooling is self-healing

Desired Outcomes Tooling is automatically deployed Tooling can self-heal Tooling can be updated via agility and scalability that the cloud demands

Context I manage a single production account SEC

Context I need to deploy my tooling to all other accounts!!! SEC client client client client client client client client client

Requirements Tooling should be deployed at account bootstrap time No tooling = Account is not ready for use Tooling should be deployed via a pipeline Code repository is Microsoft VSTS (Git) Tooling should be deployed to ALL AWS accounts NB: From multiple AWS organisations Potentially using multiple provisioning mechanisms

How Should This Look (Logically)

Design Principles Must support CI/CD Must support full automation Should be serverless Should ideally be self-healing Should ideally be native (i.e. AWS or Microsoft) Should support agility

OK – How Should This Look (Physically) Ingredients A little bit of Lambda A dash of AWS Config (Rules)……(or Cloudwatch events) A sprinkling of S3 A smattering of Cloudformation A drop of DynamoDb , IAM & SNS And finished off with a sprig of Azure DevOps Pipelines MIX IT TOGETHER AND………

DEMO

Considerations and Next Steps? PoC end to end including more failure scenarios Need to test for multi-region and at high scale How will the pipeline perform? Config Rules can work out expensive Option to replace with Cloudwatch Events plus Lambda?? How do we handle initial artifact deployment (roles/SNS etc )? Key to the whole bootstrap What about updates? Over-time build in more self-healing granularity

Questions Thank You!!