Top Banner
©2015, Amazon Web Services, Inc. or its affiliates. All rights reserved Accelerate Application Delivery with DevOps and Microservices Shaun Norris – Head of Solu2ons Architecture ASEAN
63

Accelerate your Application Delivery with DevOps and Microservices

Jul 25, 2015

Download

Technology

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Accelerate your Application Delivery with DevOps and Microservices

©2015,  Amazon  Web  Services,  Inc.  or  its  affiliates.  All  rights  reserved

Accelerate Application Delivery with DevOps and Microservices

Shaun  Norris  –  Head  of  Solu2ons  Architecture  -­‐  ASEAN  

Page 2: Accelerate your Application Delivery with DevOps and Microservices

Accelerate  Applica2on  Delivery  with  DevOps  and  Microservices  

Shaun  Norris  –  Head  of  Solu2ons  Architecture  -­‐  ASEAN  @shaunnorris  

© 2015 Amazon.com, Inc. and its affiliates. All rights reserved. May not be copied, modified or distributed in whole or in part without the express consent of Amazon.com, Inc.

Page 3: Accelerate your Application Delivery with DevOps and Microservices

DevOps buzzword or brainwave?

Page 4: Accelerate your Application Delivery with DevOps and Microservices

MicroServices What are they?

Page 5: Accelerate your Application Delivery with DevOps and Microservices

The old way

Page 6: Accelerate your Application Delivery with DevOps and Microservices
Page 7: Accelerate your Application Delivery with DevOps and Microservices

“Waterfalls  are  wonderful  tourist  a1rac3ons.  They  are  spectacularly  bad  strategies  for  organizing  so<ware  development  projects.”      –  Sco@  Ambler  

Page 8: Accelerate your Application Delivery with DevOps and Microservices

But  we  use  agile!  

Page 9: Accelerate your Application Delivery with DevOps and Microservices

Dev   Test   Prod  

typical code pipeline

Page 10: Accelerate your Application Delivery with DevOps and Microservices

Dev   Test   Prod  

agile in dev

Page 11: Accelerate your Application Delivery with DevOps and Microservices

Dev   Test   Prod  

agile in test

Page 12: Accelerate your Application Delivery with DevOps and Microservices

Even with agile dev test Configuration drift common

Expensive to replicate environments Manual deployments error prone

Page 13: Accelerate your Application Delivery with DevOps and Microservices

dev   test   prod  

infrastructure

Desktops  Server  Room  

Datacenter  

Page 14: Accelerate your Application Delivery with DevOps and Microservices

dev   days   test    weeks   prod  

cycle time

Page 15: Accelerate your Application Delivery with DevOps and Microservices

dev   Semi-­‐auto   test   manual   prod  

deployments

Page 16: Accelerate your Application Delivery with DevOps and Microservices

dev   test   prod  

org

Development  

QA   Opera2ons  

Page 17: Accelerate your Application Delivery with DevOps and Microservices

dev   test   prod  

goals

 

New  Features    

Up2me  

Page 18: Accelerate your Application Delivery with DevOps and Microservices

Manual  Code  deploys  

Inevitable  Human  error  

Change  Control  

slows  future    deployments  

New  Feature  backlog  increases  

Large  risky  deployments  

produc2on    opera2ons  as    bo@leneck  

Page 19: Accelerate your Application Delivery with DevOps and Microservices

Typical scaling challenges Am I deploying this code correctly? Worked fine in dev / my laptop / test

What do these logs mean? Who’s on call?

Page 20: Accelerate your Application Delivery with DevOps and Microservices

DevOps How is it different?

Page 21: Accelerate your Application Delivery with DevOps and Microservices

© 2012 Amazon.com, Inc. and its affiliates. All rights reserved. May not be copied, modified or distributed in whole or in part without the express consent of Amazon.com, Inc.

“The  tradi+onal  model  is  that  you  take  your  so4ware  to  the  wall  that  separates  development  and  opera+ons,  and  throw  it  over  and  then  forget  about  it.    Not  at  Amazon.  You  build  it,  you  run  it.”  –  Dr.  Werner  Vogels  -­‐  2006  

Page 22: Accelerate your Application Delivery with DevOps and Microservices

dev   test   prod  

You build it, you run it

DevOps  

Feedback  

Page 23: Accelerate your Application Delivery with DevOps and Microservices

Inputs to DevOps Org and culture

Microservices

Relentless automation Feedback loops

Infrastructure as code

Page 24: Accelerate your Application Delivery with DevOps and Microservices

Conway’s Law Org and culture matter

Page 25: Accelerate your Application Delivery with DevOps and Microservices

"Any  organiza3on  that  designs  a  system  will  inevitably  produce  a  design  whose  structure  is  a  copy  of  the  organiza3on's  communica3on  structure.”    -­‐-­‐Melvin  Conway  in  1968  

Page 26: Accelerate your Application Delivery with DevOps and Microservices

Networking  team  

OS  team  

Database  team  

Development  Team  

Page 27: Accelerate your Application Delivery with DevOps and Microservices

Serviceteam  

Service  team  

Service  team  

Service  team  

Page 28: Accelerate your Application Delivery with DevOps and Microservices

Scaling your org Start with customers, work backwards

Adopt ‘You build it, you run it’ Hire full stack developers

Use two pizza teams Hire for attitude, teach skills

Page 29: Accelerate your Application Delivery with DevOps and Microservices

Automate everything Unit, functional, load and security testing

Infrastructure deployments and scaling

Continuous build and integration

Log analysis and production feedback

Page 30: Accelerate your Application Delivery with DevOps and Microservices

Automation Ideas

Chef,  Puppet,  CloudForma2on,  Opsworks

Jenkins,  Electric  Cloud,  Scriptrock

splunk,  SumoLogic,  Loggly,  DataDog,  elas2csearch  +  kibana

Page 31: Accelerate your Application Delivery with DevOps and Microservices

Automation tips Test Earlier

Use containers Adopt CI/CD

Infrastructure as code no ssh in production!

Page 32: Accelerate your Application Delivery with DevOps and Microservices

© 2012 Amazon.com, Inc. and its affiliates. All rights reserved. May not be copied, modified or distributed in whole or in part without the express consent of Amazon.com, Inc. Feedback Loops

Page 33: Accelerate your Application Delivery with DevOps and Microservices

Log Everything Storage  has  never  cost  less  

Analyze later

Analyze  now

Data > intuition

Page 34: Accelerate your Application Delivery with DevOps and Microservices

Assumptions Sometimes wrong

Page 35: Accelerate your Application Delivery with DevOps and Microservices

Learn More

Sign up Now

Page 36: Accelerate your Application Delivery with DevOps and Microservices

Learn More

Sign up Now

+18%  

Page 37: Accelerate your Application Delivery with DevOps and Microservices

speech video

still photo

Page 38: Accelerate your Application Delivery with DevOps and Microservices

speech video

still photo

-­‐30%  

Page 39: Accelerate your Application Delivery with DevOps and Microservices

$75m In additional fund-raising

Page 40: Accelerate your Application Delivery with DevOps and Microservices

Infrastructure as code

Page 41: Accelerate your Application Delivery with DevOps and Microservices

API driven infrastructure

Design  for  failure  

Required  for  full  automa2on  

Requires  coding  skills  

Immutable  infrastructure  

Page 42: Accelerate your Application Delivery with DevOps and Microservices
Page 43: Accelerate your Application Delivery with DevOps and Microservices

Monolith Microservices

Page 44: Accelerate your Application Delivery with DevOps and Microservices
Page 45: Accelerate your Application Delivery with DevOps and Microservices
Page 46: Accelerate your Application Delivery with DevOps and Microservices

h@p://mar2nfowler.com/ar2cles/microservices.html  

Page 47: Accelerate your Application Delivery with DevOps and Microservices

Are monoliths that bad? Code  all  in  one  place  Exis2ng  tools  all  work  

Easy  tes2ng  –  everything  in  one  place  Package/deploy  in  a  single  archive  

Shared  libs  promte  DRY  and  sharing  across  teams  

Page 48: Accelerate your Application Delivery with DevOps and Microservices

Monolith #fail As  team  grows,  Big  ball  of  Mud  likely!  Every  change  requires  full  deploy  

CI/CD  2me  to  build  grows  as  project  grows  Whole  team  must  share/agree  on  same  tech  stack    

App  features  tend  to  be  2ghtly  coupled  

Page 49: Accelerate your Application Delivery with DevOps and Microservices

What are Microservices? Code  that  does  ONE  thing  well  

Includes  all  levels  of  stack  incl.  infra  Published  interface  vs.  private  implementa2on  Lightweight  comms  to  ROW  –  usually  HTTP/REST  

Loose  coupling  to  other  services  

Page 50: Accelerate your Application Delivery with DevOps and Microservices

h@p://mar2nfowler.com/ar2cles/microservices.html  

Page 51: Accelerate your Application Delivery with DevOps and Microservices

Loose Coupling Services  should  be  independently  deployable  

Don’t  share  databases  across  services  Interservice  comms  via  API  only  

PUB/SUB  models  and  queues  help  Scale  each  service  independently  

Smaller  blast  radius  =  higher  availability  

Page 52: Accelerate your Application Delivery with DevOps and Microservices

Why Microservices? Smaller,  easier  codebase(s)  

Faster  startup,  faster  builds  –  helps  with  CI/CD  Each  service  can  scale  independently  –  cost  savings!  

Limit  blast  radius  on  failure  Faster,  parallel  innova2on  

Dev  teams  choose  their  own  tools  

Page 53: Accelerate your Application Delivery with DevOps and Microservices

Why not? Trade  app  for  ops  complexity    

Distributed  systems  are  hard  (CAP  theorem)  Choosing  service  boundaries  can  be  tough  May  break  DRY  (duplica2on  of  effort)    

Tes2ng  becomes  more  complex  Learning  curve  for  Dev  +  Ops  

Page 54: Accelerate your Application Delivery with DevOps and Microservices
Page 55: Accelerate your Application Delivery with DevOps and Microservices

Inputs to DevOps Org  and  culture  

Microservices  

 Relentless  automa2on  Feedback  loops  

Infrastructure  as  code  

Page 56: Accelerate your Application Delivery with DevOps and Microservices

Expected Outputs? Shorter  cycle  2mes  

Faster  pace  of  innova2on  Security  +  Reliability  +  Availability  +  Performance    

Page 57: Accelerate your Application Delivery with DevOps and Microservices

2014 DevOps Survey Strong  IT  performance  is  a  compe22ve  advantage  

DevOps  prac2ces  improve  IT  performance  Organiza2onal  culture  ma@ers  

Job  sa2sfac2on  is  the  No.  1  predictor  of  organiza2onal  performance  

h@ps://puppetlabs.com/sites/default/files/2014-­‐state-­‐of-­‐devops-­‐report.pdf  

Page 58: Accelerate your Application Delivery with DevOps and Microservices

Could you release every

11.6 seconds?

Page 59: Accelerate your Application Delivery with DevOps and Microservices

(2011)    

Page 60: Accelerate your Application Delivery with DevOps and Microservices

h@ps://youtu.be/dxk8b9rSKOo  

Page 61: Accelerate your Application Delivery with DevOps and Microservices

Reminder DevOps is not a job title

DevOps is not a tool or toolset

Page 62: Accelerate your Application Delivery with DevOps and Microservices
Page 63: Accelerate your Application Delivery with DevOps and Microservices

Thank  You!  

Shaun  Norris  –  Head  of  Solu2ons  Architecture  -­‐  ASEAN  @shaunnorris