Top Banner
Meta Infrastructure as Code: How Capital One Automates our Automation Tools with an Immutable Jenkins George Parris III Master Software Engineer, Retail Bank DevOps @ Capital One
21

Meta Infrastructure as Code: How Capital One Automated Our Automation Tools with an Immutable Jenkins

Apr 14, 2017

Download

Software

sonatype
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Meta Infrastructure as Code: How Capital One Automated Our Automation Tools with an Immutable Jenkins

Meta Infrastructure as Code: How Capital One Automates our Automation Tools with an Immutable JenkinsGeorge Parris IIIMaster Software Engineer, Retail Bank DevOps @ Capital One

Page 2: Meta Infrastructure as Code: How Capital One Automated Our Automation Tools with an Immutable Jenkins

2

Why automation is necessary

Our basic principles for success

Continuous Integration & Continuous Delivery

Page 3: Meta Infrastructure as Code: How Capital One Automated Our Automation Tools with an Immutable Jenkins

3

Software development has come a long way!

The rise of –Agile Methodologies–Infrastructure As Code–DevOps Culture

Page 4: Meta Infrastructure as Code: How Capital One Automated Our Automation Tools with an Immutable Jenkins

4

How Capital One OAO deploys code:

Infrastructure As Code–AWS–Configuration Management–TEST! TEST! TEST!

*IMMUTABILITY

Continuous Integration

Continuous Delivery… Approved and Scheduled Deployments

Page 5: Meta Infrastructure as Code: How Capital One Automated Our Automation Tools with an Immutable Jenkins

5

And how do we do that?

Page 6: Meta Infrastructure as Code: How Capital One Automated Our Automation Tools with an Immutable Jenkins

6

Page 7: Meta Infrastructure as Code: How Capital One Automated Our Automation Tools with an Immutable Jenkins

7

Our Basic Principles

–Infrastructure As Code

–Configuration As Code

–Immutability

–Backup and Restore Strategy

Page 8: Meta Infrastructure as Code: How Capital One Automated Our Automation Tools with an Immutable Jenkins

8

Infrastructure As Code

– Using AWS, everything is Cloud Formation Templates

– Custom tooling to pass variables (now available in CFT)

– Every change is tested

– Easily can spin up environments

Page 9: Meta Infrastructure as Code: How Capital One Automated Our Automation Tools with an Immutable Jenkins

9

Configuration As Code

– Chef and Ansible

– No central server (Chef Server or Ansible Tower)

– Changes are version controlled

– ”Innersourcing” of changes, such as plugins

Page 10: Meta Infrastructure as Code: How Capital One Automated Our Automation Tools with an Immutable Jenkins

10

Immutability

– Prevents “special snowflakes” and regressions

– Changes are made in code

– Testing pipelines and code review

Page 11: Meta Infrastructure as Code: How Capital One Automated Our Automation Tools with an Immutable Jenkins

11

Backup and Restore Strategy

– A backup is only as good as your restore strategy

– Useful for catastrophic event or accidental deletion

– Necessary for new deployments

– Pause the server, save the current state, restore to that state

Page 12: Meta Infrastructure as Code: How Capital One Automated Our Automation Tools with an Immutable Jenkins

12

Who Watches the Watchmen?

Page 13: Meta Infrastructure as Code: How Capital One Automated Our Automation Tools with an Immutable Jenkins

13

Page 14: Meta Infrastructure as Code: How Capital One Automated Our Automation Tools with an Immutable Jenkins

14

Continuous Integration: The First Step is TESTING

–Test Your Application Code

–Test Your Configuration Management Code

–Test Your Infrastructure Code

–Test In an Integrated Environment (QA)

–Test After You Launch a New Version to Prod

Page 15: Meta Infrastructure as Code: How Capital One Automated Our Automation Tools with an Immutable Jenkins

15

Continuous Integration: Second Step is Automating the Testing

–On Pull Request to Application Code

–On Pull Request to Configuration Management Code

–On Pull Request to Infrastructure Code

Page 16: Meta Infrastructure as Code: How Capital One Automated Our Automation Tools with an Immutable Jenkins

16

And What About Continuous Delivery?

–High confidence in our changes

–How do we deploy a new version of the tool that we usually use to deploy new versions???

Page 17: Meta Infrastructure as Code: How Capital One Automated Our Automation Tools with an Immutable Jenkins

17

“Mini Jenkins”, the Jenkins Deployer

–Reusability

–Can run our tests

–Can update our stacks

Page 18: Meta Infrastructure as Code: How Capital One Automated Our Automation Tools with an Immutable Jenkins

18

Other Options

–Bootstrapping

–AWS Lambda

–MultiMaster Active/Active

–AWS CodeDeploy

Page 19: Meta Infrastructure as Code: How Capital One Automated Our Automation Tools with an Immutable Jenkins

19

Takeaways

–Infrastructure and Config As Code

–Backup and Restore Strategy

–Testing

Page 20: Meta Infrastructure as Code: How Capital One Automated Our Automation Tools with an Immutable Jenkins
Page 21: Meta Infrastructure as Code: How Capital One Automated Our Automation Tools with an Immutable Jenkins