clouds presentation, aws meetup v2
TRANSCRIPT
CloudsAccelerating DevOps
with AWS CloudFormation
Cristian Măgherușan-Stanciu@magheru_sanBerlin 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 cloudsgem install clouds
❖ Suggestions & patcheshttps://github.com/cristim/clouds