Slide 1

Slide 1 text

RUNNING A LEAN STARTUP DEVOPS & GRAILS & AWS Gr8Conf Europe 2014 agora pulse 1 Benoit Hediard @benorama

Slide 2

Slide 2 text

LEAN STARTUP Part 1 2 DEPLOYMENT PIPELINE WITH GRAILS & AWS Demo DEVOPS CULTURE Part 2 #lean #custdev #startup #agile #devops #groovylang #grailsfw #aws BUZZWORD BINGO

Slide 3

Slide 3 text

About Me 3 A Social Media Management Platform for Brands Benoit Hédiard Co-founder & CTO Grails  Plugins  Author:  AWS  SDK,  Facebook  SDK,  CDN  Asset  Pipeline,  Coveralls,   Sentry,  SegmentIO…   Passionate about •  Lean/DevOps •  Cloud/AWS •  Java/Grails •  UX/UI •  Facebook/Twitter Platforms @benorama

Slide 4

Slide 4 text

Client Framework Server Framework Cloud provider SaaS services Our leanstack 4 Elastic Beanstalk RDS & DynamoDB SES & SQS S3 & CloudFront Route 53 Check out http://leanstack.io !

Slide 5

Slide 5 text

LEAN STARTUP Part 1 5

Slide 6

Slide 6 text

What is a Lean Startup? 6 A Startup is a search for a repeatable and scalable business model. The Customer Development process is the way startups quickly iterate and test each element of their business model. Agile Development is the way startups quickly iterate their product as they learn. A Lean Startup is Eric Ries’s description of the intersection of Customer Development, Agile Development and if available, open platforms and open source. – Steve Blank, author of The Startup Owner's Manual

Slide 7

Slide 7 text

Iridium woes (Fail fast) •  Conceived in 1987 by Motorala •  Bought a fleet of 15 rockets from Russia, the U.S. and China •  Built and launch 72 satellites •  Nine months after the first call was made in 1998, Iridium was in Chapter 11 bankruptcy. 7 5.2 billion dollar business plan mistake No Business Plan Survives First Contact With A Customer – Steve Blank, author of The Startup Owner's Handbook

Slide 8

Slide 8 text

Feedback Loop 8 Ideas   BUILD   Code   MEASURE   Data   LEARN   BUILD – MEASURE – LEARN The fundamental activity of a startup is to turn ideas into products, measure how customers respond, and then learn whether to pivot or persevere. All successful startup processes should be geared to accelerate that feedback loop. – Eric Ries, author of The Lean Startup

Slide 9

Slide 9 text

Paul Graham’s Startup Curve 9 Minimum Viable Product Product Market Fit TROUGH OF SORROW J L From search mode Move fast, break things To execution mode Grow fast, scale things Scale Initial enthusiasm Reality sets in Experimenting & pivoting Hockey stick Starts working

Slide 10

Slide 10 text

Minimum Viable Product 10

Slide 11

Slide 11 text

Manual Pipeline ✔ Collaboration ✗ Manual Build ✗ Manual Testing ✗ Manual Delivery ✗ Manual Provisioning ✗ Manual Deployment ✗ Manual Monitoring Demo – Part 1 11 Code   Build   Test   Release   Deploy   Monitor   Code repo Team communication Agile Project Management EC2 Hosting Idea Customer

Slide 12

Slide 12 text

Semi-automated Pipeline ✔ Collaboration ✔ Continuous Build ✔ Continuous Testing ✔ Continuous Delivery ✗ Manual Provisioning ✗ Manual Deployment ✗ Manual Monitoring Demo – Part 2 12 Code   Build   Test   Release   Deploy   Monitor   Continuous integration and delivery Idea Customer Test coverage history & stats Coveralls Plugin

Slide 13

Slide 13 text

DEVOPS CULTURE Part 2 13

Slide 14

Slide 14 text

What is DevOps? 14 DevOps is a software development method that stresses communication, collaboration and integration between software developers and information technology (IT) operations professionals. ✔ Collaboration ✔ Automation & Infrastructure as Code ✔ Continuous Integration / Testing ✔ Continuous Delivery / Deployment ✔ Continuous Monitoring GOALS: reduce friction and increase velocity

Slide 15

Slide 15 text

Pre-2000’s Developer… 15 The Game of Thrones era Developers

Slide 16

Slide 16 text

Requirements   Design   Development   Test   Release   Maintenance   Pre-2000’s Waterfall Development 16 Dev   Test  /  QA   Ops   Business   Idea Customer Silo Silo Silo Friction Friction Friction Cycle time: Months or Years

Slide 17

Slide 17 text

2000’s Developer… 17 The Rocky Balboa era Ops Dev

Slide 18

Slide 18 text

2000’s Iterative Agile Development 18 Develop   Test   Release   Design   Dev   Ops   Business   Idea Customer Cycle time: Weeks or Months Stability Change Agile

Slide 19

Slide 19 text

2010’s Developer… 19 The X-Men era Business Dev Ops One team approach

Slide 20

Slide 20 text

2010’s Lean & DevOps 20 Develop   Test   Release   Design   Dev   Ops   Business   Idea Customer Cycle time: Hours or Days DevOps Lean

Slide 21

Slide 21 text

Automated Pipeline Demo – Part 3 21 Code   Build   Test   Release   Deploy   Monitor   ✔ Collaboration ✔ Continuous Build ✔ Continuous Testing ✔ Continuous Delivery ✔ Automated Provisioning ✔ Automated Deployment ✗ Manual Monitoring Elastic Beanstalk S3 & CloudFront RDS PaaS CDN DB Managed Services Idea Customer Elastic Beanstalk Plugin CDN Asset Pipeline Plugin

Slide 22

Slide 22 text

Git Branching Model 22 develop beta master (PROD) Snapshot merge deploy   Elastic Beanstalk BETA feature Feature merge test   test   test   Snapshot merge Release merge Version upgrade deploy   Elastic Beanstalk PROD test   test   test   test   test   test   test  

Slide 23

Slide 23 text

Cultural shift 23 Developers must own application-layer code wherever it lives, while ops must own the infrastructure wherever that is. – Donnie Berkholz, analyst at RedMonk Dev/Test Production Dev   Ops   ApplicaMons   ApplicaMons   Infrastructure   Infrastructure   Dev/Test Production   Dev   ApplicaMons   ApplicaMons   Ops   Infrastructure   Infrastructure   Responsability Responsability Confuse of Dev or Ops? Simple rule: if you are praise for Web site success, you are Dev; if you are blame when Web site down, you are Ops – DevOps Borat Cultural shift

Slide 24

Slide 24 text

IT Automation + IaaS Enterprise DevOps 24 3. Deploy your App 1. Describe your “Infrastructure as Code” 2. Build and manage your “Automated Infrastructure” PROs Portability Control Flexibility CONs Complexity Maintenance Amazon EC2 Google Compute Engine IaaS (Infrastructure as a Service) Configuration Management Tools Portable Containers

Slide 25

Slide 25 text

Lean DevOps / NoOps 25 PaaS + SaaS 1. Deploy your App and use Managed Services Cloud SQL Amazon RDS Relational DB Cloud Datastore DynamoDB NoSQL Cloud Storage Amazon S3 Storage + Cloud EndPoints + Elasticache, AppStream, SWF, SQS, SES, FPS, Elastic Transcoder… Amazon RedShift Big Data BigQuery Google App Engine PaaS (Platform as a Service) Cloud DNS Elastic Beanstalk PaaS (Platform as a Service) Amazon Route 53 PROs Focus on building applications instead of managing Infrastructure

Slide 26

Slide 26 text

Automated Pipeline Demo – Part 4 26 Code   Build   Test   Release   Deploy   Monitor   ✔ Collaboration ✔ Continuous Build ✔ Continuous Testing ✔ Continuous Delivery ✔ Automated Provisioning ✔ Automated Deployment ✔ Continuous Monitoring Application and server monitoring Business monitoring Exception monitoring Idea Customer Sentry Plugin NewRelic Plugin SegmentIO Plugin

Slide 27

Slide 27 text

Demo – Part 5 27 Zero Downtime Deployment (blue/green)

Slide 28

Slide 28 text

40 minutes ago… 28 MVP running on locale dev machine (manual build pipeline)

Slide 29

Slide 29 text

2 Travis files & few Grails Plugins later… 29 “Unlimited” Horizontal Auto-Scaling (hundred of web servers) Push-Button Scalable Database with Multi-AZ (up to 32vCPU and 244Go of RAM) 100% Resilient (no single point of failure) Deployment in < 10 minutes (deployment pipeline) 100% Cloud-based (fully managed/no SSH)

Slide 30

Slide 30 text

CONCLUSION 30

Slide 31

Slide 31 text

Conclusion 31 Such an exciting time to be a developer AND an entrepreneur today… Embrace Lean Embrace DevOps Become an entrepreneur! #lean #custdev #agile #devops #groovylang #grailsfw #aws #PaaS #SaaS

Slide 32

Slide 32 text

Reading recommendations 32