Clouds
Accelerating DevOps
with AWS CloudFormation
Cristian Măgherușan-Stanciu
@magheru_san
Berlin AWS Meetup, 17.06.2014
Contents
❖ About me
❖ Challenges
❖ Solutions
❖ The clouds tool
❖ Demo
About me
❖ System Engineer @ HERE - here.com
❖ 2+ years of AWS
Challenges
Team setup
❖ SysEng (virtual) team
➢ 1 SysEng - part of n (virtual) DevOps teams, 1≤n≤5
➢ Sharing tools/practices/stories
➢ On-call support
❖ DevOps team
➢ Cross-functional
➢ Maintain Project(s)
Projects
❖ Software development and delivery
❖ Multiple environments/AWS accounts
❖ Documentation
❖ Monitoring
Requirements
❖ Fast project bootstrap
❖ Easy/fast environment creation
❖ On call for a different project ( @5 AM )
Solutions
High availability
❖ Redundancy
➢ Multi-DC/-AZ/-Region deployments
❖ Self-healing systems
➢ AutoScaling
❖ Automation
x-Project Standardization
❖ CentOS
❖ Thor - configuration management & more
➢ Puppet + custom ENC
➢ Cloud-agnostic
❖ Monitoring tools
❖ Documentation format
x-Environment Standardization
❖ Puppet code
❖ Thor configuration layout
❖ Infrastructure as code
➢ Repeatable, versionable environments (end-to-end)
➢ Easy to scale
➢ Great on AWS/CloudFormation
Infrastructure as code
❖ CloudFormation primer
➢ Stack = JSON template + parameters
❖ Supports most of AWS
➢ EC2, RDS, Route53, etc.
❖ In-place update
❖ Try it!
First steps
❖ Thor/AWS
❖ Manual CloudFormation management
➢ Same (evolving) template
➢ Stored in git
➢ Parameters - but who cared?
❖ Fast
➢ Dev <3
➢ Environment explosion
Too good to be true...
A week later...
❖ First mass template update
➢ about 1 day of (boring) work
A few days later...
Again…
… and again...
Too many wasted days...
❖ HDD - hate-driven development *
❖ Goals
➢ All in SCM
➢ Trivial (mass) stack updates
➢ Clone stacks
➢ Multi-AWS-account use
Let there be clouds!
*) by @jordansissel
Using clouds
❖ git-like CLI
➢ clouds {clone,update,edit...} stack...
❖ Stacks
➢ dumped in current directory
➢ including parameters
❖ Use your own favorite tools
Clouds internals
❖ Ruby/AWS SDK (it rocks!)
➢ Research week project
➢ 3 days of work
➢ 350 LOC (half for CLI)
Clouds benefits
❖ Easy to promote patches
➢ Mass updates take minutes
❖ New environment in minutes
➢ Dev self-service
❖ And more...
Demo
Conclusions
❖ Scaling DevOps
➢ Standardization
➢ Automation quickly pays off
DO IT!
Thank you!
Join us!
❖ Getting clouds
gem install clouds
❖ Suggestions & patches
https://github.com/cristim/clouds

Clouds presentation, aws meetup v2