Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Meta Infrastructure as Code: How Capital
One Automates our Automation Tools
with an Immutable Jenkins
George Parris III
Ma...
2
Why automation is necessary
Our basic principles for success
Continuous Integration & Continuous Delivery
3
Software development has come a long way!
The rise of
–Agile Methodologies
–Infrastructure As Code
–DevOps Culture
4
How Capital One OAO deploys code:
Infrastructure As Code
–AWS
–Configuration Management
–TEST! TEST! TEST!
*IMMUTABILITY...
5
And how do we do that?
6
7
Our Basic Principles
–Infrastructure As Code
–Configuration As Code
–Immutability
–Backup and Restore Strategy
8
Infrastructure As Code
– Using AWS, everything is Cloud Formation Templates
– Custom tooling to pass variables (now avai...
9
Configuration As Code
– Chef and Ansible
– No central server (Chef Server or Ansible Tower)
– Changes are version contro...
10
Immutability
– Prevents “special snowflakes” and regressions
– Changes are made in code
– Testing pipelines and code re...
11
Backup and Restore Strategy
– A backup is only as good as your restore strategy
– Useful for catastrophic event or acci...
12
Who Watches the Watchmen?
13
14
Continuous Integration: The First Step is TESTING
–Test Your Application Code
–Test Your Configuration Management Code
...
15
Continuous Integration: Second Step is Automating the Testing
–On Pull Request to Application Code
–On Pull Request to ...
16
And What About Continuous Delivery?
–High confidence in our changes
–How do we deploy a new version of the tool that we...
17
“Mini Jenkins”, the Jenkins Deployer
–Reusability
–Can run our tests
–Can update our stacks
18
Other Options
–Bootstrapping
–AWS Lambda
–MultiMaster Active/Active
–AWS CodeDeploy
19
Takeaways
–Infrastructure and Config As Code
–Backup and Restore Strategy
–Testing
Meta Infrastructure as Code: How Capital One Automated Our Automation Tools with an Immutable Jenkins
Meta Infrastructure as Code: How Capital One Automated Our Automation Tools with an Immutable Jenkins
Upcoming SlideShare
Loading in …5
×

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

355 views

Published on

George Parris III, Capital One

In many companies, the cornerstone of their continuous integration and continuous deployment strategy is a few, well known pieces of automation software that are absolutely vital to the way companies are building software these days using agile methodologies. Many times though, someone with some infrastructure experience will just spin up a server and install the packages, building and iterating upon that same install for the following years that they're using it, which puts them in a shaky place every time they have to make changes to it.

On the Online Account Opening project at Capital One, we’ve strived to maintain our entire infrastructure as immutable as possible. In doing so, it was decided that we should apply that principle to our core CI/CD automation tools as well. By using Config As Code, Implementing a useful backup and testing strategy, and utilizing some AWS capabilities, we’re able to make that happen.

Published in: Software
  • Be the first to comment

  • Be the first to like this

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

  1. 1. 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
  2. 2. 2 Why automation is necessary Our basic principles for success Continuous Integration & Continuous Delivery
  3. 3. 3 Software development has come a long way! The rise of –Agile Methodologies –Infrastructure As Code –DevOps Culture
  4. 4. 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
  5. 5. 5 And how do we do that?
  6. 6. 6
  7. 7. 7 Our Basic Principles –Infrastructure As Code –Configuration As Code –Immutability –Backup and Restore Strategy
  8. 8. 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
  9. 9. 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
  10. 10. 10 Immutability – Prevents “special snowflakes” and regressions – Changes are made in code – Testing pipelines and code review
  11. 11. 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
  12. 12. 12 Who Watches the Watchmen?
  13. 13. 13
  14. 14. 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
  15. 15. 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
  16. 16. 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???
  17. 17. 17 “Mini Jenkins”, the Jenkins Deployer –Reusability –Can run our tests –Can update our stacks
  18. 18. 18 Other Options –Bootstrapping –AWS Lambda –MultiMaster Active/Active –AWS CodeDeploy
  19. 19. 19 Takeaways –Infrastructure and Config As Code –Backup and Restore Strategy –Testing

×