26
Clouds Accelerating DevOps with AWS CloudFormation Cristian Măgherușan-Stanciu @magheru_san Berlin AWS Meetup, 17.06.2014

Clouds presentation, aws meetup v2

Embed Size (px)

Citation preview

Page 1: Clouds presentation, aws meetup   v2

CloudsAccelerating DevOps

with AWS CloudFormation

Cristian Măgherușan-Stanciu@magheru_sanBerlin AWS Meetup, 17.06.2014

Page 2: Clouds presentation, aws meetup   v2

Contents

❖ About me❖ Challenges❖ Solutions❖ The clouds tool❖ Demo

Page 3: Clouds presentation, aws meetup   v2

About me

❖ System Engineer @ HERE - here.com❖ 2+ years of AWS

Page 4: Clouds presentation, aws meetup   v2

Challenges

Page 5: Clouds presentation, aws meetup   v2

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)

Page 6: Clouds presentation, aws meetup   v2

Projects

❖ Software development and delivery❖ Multiple environments/AWS accounts❖ Documentation❖ Monitoring

Page 7: Clouds presentation, aws meetup   v2

Requirements

❖ Fast project bootstrap❖ Easy/fast environment creation❖ On call for a different project ( @5 AM )

Page 8: Clouds presentation, aws meetup   v2

Solutions

Page 9: Clouds presentation, aws meetup   v2

High availability

❖ Redundancy➢ Multi-DC/-AZ/-Region deployments

❖ Self-healing systems➢ AutoScaling

❖ Automation

Page 10: Clouds presentation, aws meetup   v2

x-Project Standardization

❖ CentOS❖ Thor - configuration management & more

➢ Puppet + custom ENC➢ Cloud-agnostic

❖ Monitoring tools❖ Documentation format

Page 11: Clouds presentation, aws meetup   v2

x-Environment Standardization

❖ Puppet code❖ Thor configuration layout❖ Infrastructure as code

➢ Repeatable, versionable environments (end-to-end)➢ Easy to scale➢ Great on AWS/CloudFormation

Page 12: Clouds presentation, aws meetup   v2

Infrastructure as code

❖ CloudFormation primer➢ Stack = JSON template + parameters

❖ Supports most of AWS➢ EC2, RDS, Route53, etc.

❖ In-place update❖ Try it!

Page 13: Clouds presentation, aws meetup   v2

First steps

❖ Thor/AWS❖ Manual CloudFormation management

➢ Same (evolving) template➢ Stored in git➢ Parameters - but who cared?

❖ Fast➢ Dev <3➢ Environment explosion

Page 14: Clouds presentation, aws meetup   v2

Too good to be true...

Page 15: Clouds presentation, aws meetup   v2

A week later...

❖ First mass template update➢ about 1 day of (boring) work

Page 16: Clouds presentation, aws meetup   v2

A few days later...

Again…

… and again...

Too many wasted days...

Page 17: Clouds presentation, aws meetup   v2
Page 18: Clouds presentation, aws meetup   v2
Page 19: Clouds presentation, aws meetup   v2

❖ HDD - hate-driven development *❖ Goals

➢ All in SCM➢ Trivial (mass) stack updates➢ Clone stacks➢ Multi-AWS-account use

Let there be clouds!

*) by @jordansissel

Page 20: Clouds presentation, aws meetup   v2

Using clouds

❖ git-like CLI➢ clouds {clone,update,edit...} stack...

❖ Stacks ➢ dumped in current directory➢ including parameters

❖ Use your own favorite tools

Page 21: Clouds presentation, aws meetup   v2

Clouds internals

❖ Ruby/AWS SDK (it rocks!)➢ Research week project➢ 3 days of work➢ 350 LOC (half for CLI)

Page 22: Clouds presentation, aws meetup   v2

Clouds benefits

❖ Easy to promote patches➢ Mass updates take minutes

❖ New environment in minutes➢ Dev self-service

❖ And more...

Page 23: Clouds presentation, aws meetup   v2

Demo

Page 24: Clouds presentation, aws meetup   v2

Conclusions

❖ Scaling DevOps➢ Standardization➢ Automation quickly pays off

DO IT!

Page 25: Clouds presentation, aws meetup   v2

Thank you!

Page 26: Clouds presentation, aws meetup   v2

Join us!

❖ Getting cloudsgem install clouds

❖ Suggestions & patcheshttps://github.com/cristim/clouds