SlideShare uma empresa Scribd logo
1 de 69
Baixar para ler offline
Priming	
  Your	
  Teams	
  for	
  Microservice	
  
Deployment	
  to	
  the	
  Cloud
Matt	
  Callanan
linkedin.com/in/matthewcallanan
@mcallana
©	
  2015	
  Expedia,	
  Inc.	
  All	
  rights	
  reserved.
How	
  Do	
  You	
  Create	
  A	
  Microservice	
  For	
  The	
  Cloud?
Git Repo
Working	
  Code	
  Base
Basic	
  Test	
  Suite
Immutable	
  Servers
Infrastructure	
  As	
  Code
Centralised Logging
Centralised Monitoring
Chat	
  Notifications
Load	
  Balancer
CNAME
Blue-­‐Green	
  Deploys
Continuous	
  Delivery	
  Pipeline
Phew!
Opportunity	
  Cost:	
  Time	
  Value	
  of	
  Information
“Primer”
DevOps	
  Toolchain
Based on devops toolchain by dto solutions: http://www.slideshare.net/AnthonyShortland/dto-chefconf2012
ApplicationInfrastructure
Build Deploy
Source	
  
Code	
  
Repo
Artifact	
  
Repo
Build	
  
Console
Deployment	
  
Console
Resource	
  
Model
Infrastructure
Manager
Code
Config
Automation
Environment	
  
Data
Automation
Config
Packages Images
DevOps	
  Toolchain
Developer	
  Toolchain
Operations	
  Toolchain
DevOps	
  Toolchain
Developer	
  Toolchain
Operations	
  Toolchain
Dev	
  – Starting	
  from	
  Scratch
Single	
  page	
  app
• Secured	
  with	
  LDAP
• Choose:
– App	
  Name
– Team	
  Name
– Notifications	
  Email
– HipChat Room
– Technology
Build	
  triggers	
  remote	
  Jenkins	
  job
• Benefits
– Easy	
  to	
  configure
– Simple	
  API
– Versioned	
  scripts
– Centralisedlogs	
  /	
  results
Dev	
  – App	
  Types
• dwsvc -­‐ Java	
  Dropwizard service
• emr-­‐datapipeline -­‐ An	
  Elastic	
  MapReduce -­‐ Data	
  Pipeline	
  
service
• spark-­‐streaming	
  -­‐ A	
  Spark	
  Streaming	
  App
• expressjs -­‐ A	
  Node	
  application	
  that	
  uses	
  expressjs
• php -­‐ A	
  PHP	
  application
• python -­‐ A	
  Python	
  application
• scalatra– Lightweight	
  Scala app	
  based	
  off	
  Sinatra
• sinatra – Lightweight	
  Ruby	
  web	
  service	
  
• springboot -­‐ A	
  SpringBoot service
• storm-­‐topology	
  -­‐ A	
  storm	
  topology	
  service
• ticker -­‐ A	
  Ticker	
  (trend	
  service)	
  application
• webmvc-­‐ A	
  customer	
  facing	
  Brand	
  Expedia	
  Spring	
  MVC	
  
Web	
  application
• grails -­‐ A	
  Groovy-­‐based	
  web	
  application	
  framework	
  for	
  JVM
• AWS	
  Lambda	
  -­‐ Java	
  based	
  AWS	
  Lamda implementation
*each	
  app	
  type	
  has	
  it’s	
  own	
  GitHub repo	
  for	
  source,	
  issues,	
  etc
Dev	
  – Generating	
  App	
  and	
  Pipeline
Jenkins	
  Job	
  – create-­‐new-­‐application
• Creates	
  new	
  GitHub repo
Dev	
  – Generating	
  App	
  and	
  Pipeline
Jenkins	
  Job	
  – create-­‐new-­‐application
• Creates	
  new	
  GitHub repo
GitHub
• Promote	
  open	
  source	
  model	
  for	
  teams
• Use	
  pull	
  requests	
  as	
  mechanism	
  for	
  ensuring	
  
reviews	
  /	
  pairing
• WebHooks for	
  devs to	
  tweak	
  workflows
Dev	
  – Generating	
  App	
  and	
  Pipeline
Jenkins	
  Job	
  – create-­‐new-­‐application
• Creates	
  new	
  GitHub repo
• Copies	
  chosen	
  technology	
  template	
  and	
  
pushes	
  back	
  to	
  repo
Tech	
  Templates
• Uses	
  latest	
  version	
  of	
  template
• Replaces	
  app	
  names,	
  package	
  names,	
  etc
with	
  your	
  app	
  name
• Simple	
  interface	
  – each	
  template	
  codebase	
  
has	
  clone.sh using	
  cp and	
  sed
• Java-­‐based	
  templates	
  use	
  Maven	
  
Archetypes	
  to	
  generate	
  codebase
• Easy	
  to	
  extend	
  and	
  fork
Dev	
  – Generating	
  App	
  and	
  Pipeline
Jenkins	
  Job	
  – create-­‐new-­‐application
• Creates	
  new	
  GitHub repo
• Copies	
  chosen	
  technology	
  template	
  and	
  
pushes	
  back	
  to	
  repo
• Generates	
  Continuous	
  Delivery	
  pipeline	
  in	
  
Jenkins
Jenkins
• Generates	
  Jenkins	
  build	
  that	
  is	
  triggered	
  
by	
  commits	
  to	
  master	
  branch
• Jenkins	
  config via	
  templated XML
• Uses	
  standard	
  commands	
  for	
  target	
  
template	
  (mvn,	
  npm,	
  etc)
• Uploads	
  zip	
  to	
  S3
• Triggers	
  downstream	
  deploy	
  job	
  passing	
  
Git SHA
Dev	
  – Generating	
  App	
  and	
  Pipeline
Jenkins	
  Job	
  – create-­‐new-­‐application
• Creates	
  new	
  GitHub repo
• Copies	
  chosen	
  technology	
  template	
  and	
  
pushes	
  back	
  to	
  repo
• Generates	
  Continuous	
  Delivery	
  pipeline	
  in	
  
Jenkins
• Sends	
  email	
  to	
  user	
  with	
  details	
  /	
  links
DevOps	
  Toolchain
Developer	
  Toolchain
Operations	
  Toolchain
DevOps	
  Toolchain
Developer	
  Toolchain
Operations	
  Toolchain
Operations	
  Pipeline
• Immutable	
  Servers
• Chef	
  Cookbooks
• CloudFormation Templates
• Deploy	
  to	
  immutable	
  servers	
  using	
  infrastructure	
  as	
  code	
  that	
  dev	
  and	
  ops	
  can	
  maintain
• Blue-­‐green	
  deploys
• HipChat notifications	
  
• Centralised logging	
  -­‐ Splunk
• Centralised monitoring	
  -­‐ Hubble
Chef	
  Cookbooks	
  and	
  Config
Chef	
  Cookbooks	
  and	
  Config
roles/primer-­‐demo-­‐service.rb
_______________________________________________________________________
name "primer-demo-service"
description "Webapp for primer-demo-service"
run_list "recipe[s3curl]","recipe[primer-demo-service]"
override_attributes(
"java" => {
"jdk_name" => "jdk8_0_05",
}
)
Chef	
  Cookbooks	
  and	
  Config
cookbooks/primer-­‐demo-­‐service/recipes/default.rb
_______________________________________________________________________
node.default[:springboot][:application_name] = 'primer-demo'
node.default[:springboot][:role_name] = 'primer-demo-service'
include_recipe "expedia-platform::springboot"
Chef	
  Cookbooks	
  and	
  Config
deployment_config/<env>/primer-­‐demo-­‐service/config.json
{
"instances":  {
"min_count":  1,
"max_count":  2,
"auto_scale":  true,
"zones":  {
"us-­‐east-­‐1":  ["us-­‐east-­‐1d"],
"us-­‐west-­‐2":  ["us-­‐west-­‐2c"]
},
"destroy_old":  true,
"removeOldFromElb":  true
},
"app_type":  "springboot",
"app_port":  8080,
"isactive_support":  {
"enabled":  true,
"file":  "/opt/primer-­‐demo-­‐service/active.txt"
},
"source_repo":  ".../primer-­‐demo-­‐service.git",
"notify":  {
"hipchat":  {"room":  "Demo  Room"},
"email":  {"addresses":  ["username@domain.com"]},
"s3":  {"bucket":  "..."}
},
"team":  "Exp-­‐Ops-­‐Wotif-­‐Tech-­‐Australia",
"prime_role":  "role-­‐prime-­‐web"
}
Deploy	
  Build
Jenkins Chef	
  knife
AMI
Route53
ELBCloudFormation
ASG EC2	
  InstanceEC2	
  Instance
Deployment	
  – Email	
  Notification
Blue-­‐Green	
  Deploys
Safely	
  Releasing	
  Updates
Separating	
  Deploy	
  &	
  Release
Deploy Test Release
Blue	
  Green	
  Deploys	
  – Deploy
Deploy
Blue	
  Green	
  Deploys
Release
Blue	
  Green	
  Deploys	
  – Release
Release	
  – Email	
  Notification
HipChat Notifications
Centralised Logging	
  – Splunk
Centralised Monitoring	
  &	
  Alerting
Hubble	
  Dashboard
Hubble	
  Dashboard	
  – Graphene
Hopscotch	
  – Transparent	
  Traffic	
  Router
• Proxy	
  built	
  on	
  Nginx (similar	
  to	
  Netflix	
  Zuul)
• expedia.com/xyz	
  -­‐>	
  xyz.expedia.com
• Faster	
  to	
  update	
  rules	
  than	
  Akamai	
  45min	
  turnaround
• E.g.	
  Register	
  microservice	
  with	
  hopscotch	
  in	
  Singapore	
  (20%	
  of	
  traffic)	
  route	
  10%	
  of	
  
Singapore	
  traffic	
  to	
  cloud	
  app,	
  when	
  happy,	
  dial	
  up	
  to	
  100%,	
  then	
  roll	
  out	
  to	
  Europe	
  and	
  USA
• Nice	
  way	
  to	
  move	
  traffic	
  out	
  of	
  data	
  centre into	
  AWS	
  with	
  no	
  customer	
  impact
Primer	
  Cleanup
Cleanup
• Deleting	
  project
– Delete	
  Codebase	
  (Git repo),	
  Build
• Delete	
  Cloudformation stack
• Delete	
  unused	
  cloudformation stacks	
  -­‐ ELB	
  request	
  count	
  1hr
Cleanup	
  – Delete	
  the	
  Microservice
Cleanup	
  – Email	
  Confirmation
Cleanup	
  – Delete	
  Cloud	
  Formation	
  Stack
Cleanup	
  – Auto	
  Deletion	
  of	
  Unused	
  Stack	
  in	
  Test	
  Environment
Primer	
  2.0
Docker on	
  Amazon	
  ECS
DevOps	
  Toolchain	
  – Primer	
  2.0:	
  Docker on	
  Amazon	
  ECS
Inspired by devops toolchain by dto solutions: http://www.slideshare.net/AnthonyShortland/dto-chefconf2012
ApplicationInfrastructure
Build Deploy
Source	
  
Code	
  
Repo
Artifact	
  
Repo
Build	
  
Console
Deployment	
  
Console
Resource	
  
Model
Infrastructure
Manager
Code
Config
Automation
Environment	
  
Data
Automation
Config
Packages Images
gzip AMI
git Jenkins JenkinsAmazon	
  S3 Chef CloudFormationDocker Registry
Docker image
JSON Amazon	
  ECS
Primer	
  2.0	
  – Docker on	
  Amazon	
  ECS
• Using	
  Amazon	
  EC2	
  Container	
  Service	
  (ECS)
• Deploy	
  Primer	
  applications	
  as	
  Docker containers	
  to	
  an	
  ECS	
  cluster
• Deploys	
  take	
  7mins	
  (instead	
  of	
  30mins)
• No	
  AMI	
  creation,	
  no	
  CloudFormation
• Cost	
  Optimisation
• Using	
  AWS	
  SDK:
• Register	
  ECS	
  Container	
  Definition	
  -­‐>	
  Task	
  Definition	
  -­‐>	
  Service
• Create	
  ELB
• Create	
  CNAME
• Blue/Green	
  Deploys	
  with	
  Canary	
  service
Primer	
  2.0	
  – Docker on	
  ECS
Test	
  Environment
Primer	
  2.0	
  – Docker on	
  ECS
Production	
  Environment
c3vis	
  – Open	
  Source
• c3vis:	
  “Cloud	
  Container	
  Cluster	
  Visualiser”
• Visualises container	
  deploys	
  and	
  resource	
  utilization	
  on	
  Amazon	
  ECS	
  clusters
• Open	
  Source	
  Software	
  from	
  Expedia
• github.com/ExpediaDotCom/c3vis
Results
Results
• 800	
  Primer	
  apps	
  and	
  growing
• Culture	
  of	
  Experimentation
– Freedom	
  of	
  choice
– Keys	
  to	
  prod	
  – trust
• Enabling	
  Innovation
– Open	
  Source	
  model	
  for	
  tool
• visible
• accessible
• easy	
  to	
  contribute
• “I	
  want	
  to	
  add	
  Grails	
  to	
  this	
  tool!”,	
  “Help	
  
yourself!”
• Lowering	
  Cost
– Counters	
  the	
  cost	
  of	
  learning	
  legacy	
  
deployment	
  processes
– Generate	
  microservice	
   without	
  thinking	
  
about	
  it
Tips	
  &	
  Tricks
Building	
  Your	
  Own	
  “Primer”
Tips	
  &	
  Tricks
• Don’t	
  “Lift	
  &	
  Shift”	
  your	
  monolith
• Rethink	
  
• Start	
  with	
  non-­‐critical	
  workflow	
  apps
• Don’t	
  need	
  to	
  start	
  heterogeneous	
  (i.e.	
  multiple	
  app	
  types)
• Doesn't	
  need	
  to	
  be	
  in	
  the	
  cloud
• Cloud	
  has	
  benefits	
  like	
  immutable	
  infrastructure,	
  scaling,	
  automation
• But	
  can	
  do	
  the	
  same	
  thing	
  in	
  the	
  data	
  centre
• Small	
  interface
• /isActive endpoint	
  for	
  LB	
  healthcheck
• /buildInfo endpoint	
  for	
  version
• "Just	
  do	
  it"	
  attitude
• Open	
  source	
  model	
  helped	
  spread	
  it	
  across	
  the	
  organisation
Q	
  &	
  AThanks!
Any	
  Questions?
Matt	
  Callanan
linkedin.com/in/matthewcallanan
@mcallana
Image	
  Attribution
Image
“Clock	
  Time	
  Lapse	
  Video	
  Download“	
  (https://youtu.be/NSuNpiW-­‐LwI)	
   by	
  LifeBloodMarketing is	
  licensed	
  under	
  “CC	
  Free	
  to	
  Use”
“Pipelines	
  descending	
  to	
  Inveruglas Power	
  Station”	
  (http://www.geograph.org.uk/photo/2214366) is	
  licensed	
  under	
  CC	
  BY	
  SA	
  2.0	
  (http://creativecommons.org/licenses/by-­‐sa/2.0/) /	
  Desaturated and	
  
cropped from	
  original
“The	
  Future”	
  (https://flic.kr/p/26YCn1) by	
  Kristian	
  Bjornard is	
  licensed	
  under	
  CC	
  BY	
  SA	
  2.0	
  (https://creativecommons.org/licenses/by-­‐sa/2.0/)
“CTA	
  Loop	
  Junction”	
  (https://commons.wikimedia.org/wiki/File:CTA_loop_junction.jpg) by	
  Daniel	
  Schwen is	
  licensed	
  under	
  CC	
  BY	
  SA 3.0 (https://creativecommons.org/licenses/by-­‐sa/3.0/)
“Logging	
  operations	
  at	
  Millmoor Rig”	
  (http://bit.ly/1Nb20LS) by	
  Walter	
  Baxter is	
  licensed	
  under	
  CC	
  BY	
  SA	
  2.0	
  (https://creativecommons.org/licenses/by-­‐sa/2.0/)
“Traffic	
  Monitoring”	
  (https://commons.wikimedia.org/wiki/File:Traffic_Monitoring.JPG) by	
  Suryasuharman is	
  licensed	
  under	
  CC	
  BY	
  SA 3.0 (https://creativecommons.org/licenses/by-­‐sa/3.0/)
“DNS	
  logo”	
  (https://commons.wikimedia.org/wiki/File:DNS_logo.jpg) by	
  I	
  laramide I	
  is	
  licensed	
  under	
  CC	
  BY	
  SA 3.0 (https://creativecommons.org/licenses/by-­‐sa/3.0/)
“Light bulb	
  icon	
  tips”	
  (https://commons.wikimedia.org/wiki/File:Light_bulb_icon_tips.svg) by	
  YassineMrabet is	
  licensed	
  under	
  CC	
  BY	
  SA	
  4.0	
  (https://creativecommons.org/licenses/by-­‐sa/4.0/)
“Matrix-­‐code-­‐computer-­‐pc-­‐data”	
   (https://pixabay.com/en/matrix-­‐code-­‐computer-­‐pc-­‐data-­‐356024/)	
   by	
  Comfreak is	
  licensed	
  under	
  CC	
  ZERO (https://creativecommons.org/publicdomain/zero/1.0/)
“Sample-­‐color-­‐blue-­‐green”	
   (https://pixabay.com/en/sample-­‐color-­‐blue-­‐green-­‐rubber-­‐815141/ )	
   by	
  LyraBelacqua-­‐Sally is	
  licensed	
  under	
  CC	
  ZERO (https://creativecommons.org/publicdomain/zero/1.0/)
“Fashion-­‐wristwatch-­‐time”	
  (https://www.pexels.com/photo/fashion-­‐wristwatch-­‐time-­‐watch-­‐1252/) by	
  SplitShire.com is	
  licensed	
  under	
  CC	
  ZERO (https://creativecommons.org/publicdomain/zero/1.0/)
“Chat”	
  (https://openclipart.org/detail/129049/chat) by	
  Merlin2525 is	
  licensed	
  under	
  unlimited-­‐commercial-­‐use (https://openclipart.org/unlimited-­‐commercial-­‐use-­‐clipart)
“scales”	
  (https://openclipart.org/detail/24101/scales) by	
  scott_kirkwood is	
  licensed	
  under	
  unlimited-­‐commercial-­‐use (https://openclipart.org/unlimited-­‐commercial-­‐use-­‐clipart)
“Wooden	
  Bookcase”	
  (https://openclipart.org/detail/191463/wooden-­‐bookcase) by	
  sirgazil is	
  licensed	
  under	
  unlimited-­‐commercial-­‐use (https://openclipart.org/unlimited-­‐commercial-­‐use-­‐clipart)
“Compiz GIT	
  Repository”	
  (https://flic.kr/p/Ssras) by	
  -­‐=	
  Treviño	
  =-­‐ is	
  licensed	
  under	
  BY	
  NC	
  SA	
  2.0 (https://creativecommons.org/licenses/by-­‐nc-­‐sa/2.0)
“logs”	
  (https://flic.kr/p/9F8tjX) by	
  Rick	
  Payette is	
  licensed	
  under	
  CC	
  BY	
  NC ND	
  2.0	
  (https://creativecommons.org/licenses/by-­‐nc-­‐nd/2.0)
Docker logo	
  used	
  according	
  to	
  https://www.docker.com/brand-­‐guidelines

Mais conteúdo relacionado

Mais procurados

Chef Actions: Delightful near real-time activity tracking!
Chef Actions: Delightful near real-time activity tracking!Chef Actions: Delightful near real-time activity tracking!
Chef Actions: Delightful near real-time activity tracking!James Casey
 
DevOps, Continuous Integration and Deployment on AWS: Putting Money Back into...
DevOps, Continuous Integration and Deployment on AWS: Putting Money Back into...DevOps, Continuous Integration and Deployment on AWS: Putting Money Back into...
DevOps, Continuous Integration and Deployment on AWS: Putting Money Back into...Amazon Web Services
 
Continuous Integration and Deployment Best Practices on AWS
Continuous Integration and Deployment Best Practices on AWSContinuous Integration and Deployment Best Practices on AWS
Continuous Integration and Deployment Best Practices on AWSAmazon Web Services
 
CI/CD on AWS Deploy Everything All the Time
CI/CD on AWS Deploy Everything All the TimeCI/CD on AWS Deploy Everything All the Time
CI/CD on AWS Deploy Everything All the TimeAmazon Web Services
 
Configuration Management and Salt
Configuration Management and SaltConfiguration Management and Salt
Configuration Management and Salt55020
 
Deploying Azure DevOps using Terraform
Deploying Azure DevOps using TerraformDeploying Azure DevOps using Terraform
Deploying Azure DevOps using TerraformAdin Ermie
 
Azure handsonlab
Azure handsonlabAzure handsonlab
Azure handsonlabChef
 
Play Framework + Docker + CircleCI + AWS + EC2 Container Service
Play Framework + Docker + CircleCI + AWS + EC2 Container ServicePlay Framework + Docker + CircleCI + AWS + EC2 Container Service
Play Framework + Docker + CircleCI + AWS + EC2 Container ServiceJosh Padnick
 
Atlassian Connect on Serverless Platforms: Low Cost Add-Ons
Atlassian Connect on Serverless Platforms: Low Cost Add-OnsAtlassian Connect on Serverless Platforms: Low Cost Add-Ons
Atlassian Connect on Serverless Platforms: Low Cost Add-OnsAtlassian
 
Rock Solid Deployment of Web Applications
Rock Solid Deployment of Web ApplicationsRock Solid Deployment of Web Applications
Rock Solid Deployment of Web ApplicationsPablo Godel
 
Implementing blue-green deployment with Atlassian Bamboo
Implementing blue-green deployment with Atlassian BambooImplementing blue-green deployment with Atlassian Bamboo
Implementing blue-green deployment with Atlassian BambooDave Clark
 
Infrastructure as Code with Chef
Infrastructure as Code with ChefInfrastructure as Code with Chef
Infrastructure as Code with ChefSarah Hynes Cheney
 
Adopting Java for the Serverless world at AWS User Group Pretoria
Adopting Java for the Serverless world at AWS User Group PretoriaAdopting Java for the Serverless world at AWS User Group Pretoria
Adopting Java for the Serverless world at AWS User Group PretoriaVadym Kazulkin
 
Immutable Infrastructure: the new App Deployment
Immutable Infrastructure: the new App DeploymentImmutable Infrastructure: the new App Deployment
Immutable Infrastructure: the new App DeploymentAxel Fontaine
 
Managing Your Application Lifecycle on AWS: Continuous Integration and Deploy...
Managing Your Application Lifecycle on AWS: Continuous Integration and Deploy...Managing Your Application Lifecycle on AWS: Continuous Integration and Deploy...
Managing Your Application Lifecycle on AWS: Continuous Integration and Deploy...Amazon Web Services
 
Introduction to Infrastructure as Code & Automation / Introduction to Chef
Introduction to Infrastructure as Code & Automation / Introduction to ChefIntroduction to Infrastructure as Code & Automation / Introduction to Chef
Introduction to Infrastructure as Code & Automation / Introduction to ChefAll Things Open
 
Building A CICD Pipeline for Deploying to Containers
Building A CICD Pipeline for Deploying to ContainersBuilding A CICD Pipeline for Deploying to Containers
Building A CICD Pipeline for Deploying to ContainersAmazon Web Services
 
Serverless in production, an experience report (IWOMM)
Serverless in production, an experience report (IWOMM)Serverless in production, an experience report (IWOMM)
Serverless in production, an experience report (IWOMM)Yan Cui
 
To Build My Own Cloud with Blackjack…
To Build My Own Cloud with Blackjack…To Build My Own Cloud with Blackjack…
To Build My Own Cloud with Blackjack…Sergey Dzyuban
 

Mais procurados (20)

Chef Actions: Delightful near real-time activity tracking!
Chef Actions: Delightful near real-time activity tracking!Chef Actions: Delightful near real-time activity tracking!
Chef Actions: Delightful near real-time activity tracking!
 
DevOps, Continuous Integration and Deployment on AWS: Putting Money Back into...
DevOps, Continuous Integration and Deployment on AWS: Putting Money Back into...DevOps, Continuous Integration and Deployment on AWS: Putting Money Back into...
DevOps, Continuous Integration and Deployment on AWS: Putting Money Back into...
 
Continuous Integration and Deployment Best Practices on AWS
Continuous Integration and Deployment Best Practices on AWSContinuous Integration and Deployment Best Practices on AWS
Continuous Integration and Deployment Best Practices on AWS
 
CI/CD on AWS Deploy Everything All the Time
CI/CD on AWS Deploy Everything All the TimeCI/CD on AWS Deploy Everything All the Time
CI/CD on AWS Deploy Everything All the Time
 
Configuration Management and Salt
Configuration Management and SaltConfiguration Management and Salt
Configuration Management and Salt
 
Deploying Azure DevOps using Terraform
Deploying Azure DevOps using TerraformDeploying Azure DevOps using Terraform
Deploying Azure DevOps using Terraform
 
Azure handsonlab
Azure handsonlabAzure handsonlab
Azure handsonlab
 
Play Framework + Docker + CircleCI + AWS + EC2 Container Service
Play Framework + Docker + CircleCI + AWS + EC2 Container ServicePlay Framework + Docker + CircleCI + AWS + EC2 Container Service
Play Framework + Docker + CircleCI + AWS + EC2 Container Service
 
Atlassian Connect on Serverless Platforms: Low Cost Add-Ons
Atlassian Connect on Serverless Platforms: Low Cost Add-OnsAtlassian Connect on Serverless Platforms: Low Cost Add-Ons
Atlassian Connect on Serverless Platforms: Low Cost Add-Ons
 
Rock Solid Deployment of Web Applications
Rock Solid Deployment of Web ApplicationsRock Solid Deployment of Web Applications
Rock Solid Deployment of Web Applications
 
Implementing blue-green deployment with Atlassian Bamboo
Implementing blue-green deployment with Atlassian BambooImplementing blue-green deployment with Atlassian Bamboo
Implementing blue-green deployment with Atlassian Bamboo
 
Infrastructure as Code with Chef
Infrastructure as Code with ChefInfrastructure as Code with Chef
Infrastructure as Code with Chef
 
Adopting Java for the Serverless world at AWS User Group Pretoria
Adopting Java for the Serverless world at AWS User Group PretoriaAdopting Java for the Serverless world at AWS User Group Pretoria
Adopting Java for the Serverless world at AWS User Group Pretoria
 
Event driven infrastructure
Event driven infrastructureEvent driven infrastructure
Event driven infrastructure
 
Immutable Infrastructure: the new App Deployment
Immutable Infrastructure: the new App DeploymentImmutable Infrastructure: the new App Deployment
Immutable Infrastructure: the new App Deployment
 
Managing Your Application Lifecycle on AWS: Continuous Integration and Deploy...
Managing Your Application Lifecycle on AWS: Continuous Integration and Deploy...Managing Your Application Lifecycle on AWS: Continuous Integration and Deploy...
Managing Your Application Lifecycle on AWS: Continuous Integration and Deploy...
 
Introduction to Infrastructure as Code & Automation / Introduction to Chef
Introduction to Infrastructure as Code & Automation / Introduction to ChefIntroduction to Infrastructure as Code & Automation / Introduction to Chef
Introduction to Infrastructure as Code & Automation / Introduction to Chef
 
Building A CICD Pipeline for Deploying to Containers
Building A CICD Pipeline for Deploying to ContainersBuilding A CICD Pipeline for Deploying to Containers
Building A CICD Pipeline for Deploying to Containers
 
Serverless in production, an experience report (IWOMM)
Serverless in production, an experience report (IWOMM)Serverless in production, an experience report (IWOMM)
Serverless in production, an experience report (IWOMM)
 
To Build My Own Cloud with Blackjack…
To Build My Own Cloud with Blackjack…To Build My Own Cloud with Blackjack…
To Build My Own Cloud with Blackjack…
 

Semelhante a Priming Your Teams For Microservice Deployment to the Cloud

04_Azure Kubernetes Service: Basic Practices for Developers_GAB2019
04_Azure Kubernetes Service: Basic Practices for Developers_GAB201904_Azure Kubernetes Service: Basic Practices for Developers_GAB2019
04_Azure Kubernetes Service: Basic Practices for Developers_GAB2019Kumton Suttiraksiri
 
AWS Webcast - Build Agile Applications in AWS Cloud for Government
AWS Webcast - Build Agile Applications in AWS Cloud for GovernmentAWS Webcast - Build Agile Applications in AWS Cloud for Government
AWS Webcast - Build Agile Applications in AWS Cloud for GovernmentAmazon Web Services
 
Continuous Integration and Deployment Best Practices on AWS
Continuous Integration and Deployment Best Practices on AWSContinuous Integration and Deployment Best Practices on AWS
Continuous Integration and Deployment Best Practices on AWSAmazon Web Services
 
Devops continuousintegration and deployment onaws puttingmoneybackintoyourmis...
Devops continuousintegration and deployment onaws puttingmoneybackintoyourmis...Devops continuousintegration and deployment onaws puttingmoneybackintoyourmis...
Devops continuousintegration and deployment onaws puttingmoneybackintoyourmis...Emerson Eduardo Rodrigues Von Staffen
 
AWS Webcast - Build Agile Applications in AWS Cloud for Government
AWS Webcast - Build Agile Applications in AWS Cloud for GovernmentAWS Webcast - Build Agile Applications in AWS Cloud for Government
AWS Webcast - Build Agile Applications in AWS Cloud for GovernmentAmazon Web Services
 
20171122 aws usergrp_coretech-spn-cicd-aws-v01
20171122 aws usergrp_coretech-spn-cicd-aws-v0120171122 aws usergrp_coretech-spn-cicd-aws-v01
20171122 aws usergrp_coretech-spn-cicd-aws-v01Scott Miao
 
Automated DevOps Workflows with Chef on AWS
Automated DevOps Workflows with Chef on AWSAutomated DevOps Workflows with Chef on AWS
Automated DevOps Workflows with Chef on AWSAmazon Web Services
 
Application Lifecycle Management in a Serverless World
Application Lifecycle Management in a Serverless WorldApplication Lifecycle Management in a Serverless World
Application Lifecycle Management in a Serverless WorldAmazon Web Services
 
Application Lifecycle Management in a Serverless World
Application Lifecycle Management in a Serverless WorldApplication Lifecycle Management in a Serverless World
Application Lifecycle Management in a Serverless WorldAmazon Web Services
 
A tale of two pizzas: Developer tools at AWS
A tale of two pizzas: Developer tools at AWSA tale of two pizzas: Developer tools at AWS
A tale of two pizzas: Developer tools at AWSAmazon Web Services
 
AWS re:Invent 2016: Chalk Talk: Succeeding at Infrastructure-as-Code (GPSCT312)
AWS re:Invent 2016: Chalk Talk: Succeeding at Infrastructure-as-Code (GPSCT312)AWS re:Invent 2016: Chalk Talk: Succeeding at Infrastructure-as-Code (GPSCT312)
AWS re:Invent 2016: Chalk Talk: Succeeding at Infrastructure-as-Code (GPSCT312)Amazon Web Services
 
A Tale of Two Pizzas: Accelerating Software Delivery with Developer Tools - D...
A Tale of Two Pizzas: Accelerating Software Delivery with Developer Tools - D...A Tale of Two Pizzas: Accelerating Software Delivery with Developer Tools - D...
A Tale of Two Pizzas: Accelerating Software Delivery with Developer Tools - D...Amazon Web Services
 
Azure DevOps for JavaScript Developers
Azure DevOps for JavaScript DevelopersAzure DevOps for JavaScript Developers
Azure DevOps for JavaScript DevelopersSarah Dutkiewicz
 
Containers and Kubernetes
Containers and KubernetesContainers and Kubernetes
Containers and KubernetesNills Franssens
 
Announcing AWS CodeBuild - January 2017 Online Teck Talks
Announcing AWS CodeBuild - January 2017 Online Teck TalksAnnouncing AWS CodeBuild - January 2017 Online Teck Talks
Announcing AWS CodeBuild - January 2017 Online Teck TalksAmazon Web Services
 
MongoDB Ops Manager and Kubernetes - James Broadhead
MongoDB Ops Manager and Kubernetes - James BroadheadMongoDB Ops Manager and Kubernetes - James Broadhead
MongoDB Ops Manager and Kubernetes - James BroadheadMongoDB
 

Semelhante a Priming Your Teams For Microservice Deployment to the Cloud (20)

04_Azure Kubernetes Service: Basic Practices for Developers_GAB2019
04_Azure Kubernetes Service: Basic Practices for Developers_GAB201904_Azure Kubernetes Service: Basic Practices for Developers_GAB2019
04_Azure Kubernetes Service: Basic Practices for Developers_GAB2019
 
AWS Webcast - Build Agile Applications in AWS Cloud for Government
AWS Webcast - Build Agile Applications in AWS Cloud for GovernmentAWS Webcast - Build Agile Applications in AWS Cloud for Government
AWS Webcast - Build Agile Applications in AWS Cloud for Government
 
Continuous Integration and Deployment Best Practices on AWS
Continuous Integration and Deployment Best Practices on AWSContinuous Integration and Deployment Best Practices on AWS
Continuous Integration and Deployment Best Practices on AWS
 
Devops continuousintegration and deployment onaws puttingmoneybackintoyourmis...
Devops continuousintegration and deployment onaws puttingmoneybackintoyourmis...Devops continuousintegration and deployment onaws puttingmoneybackintoyourmis...
Devops continuousintegration and deployment onaws puttingmoneybackintoyourmis...
 
AWS Webcast - Build Agile Applications in AWS Cloud for Government
AWS Webcast - Build Agile Applications in AWS Cloud for GovernmentAWS Webcast - Build Agile Applications in AWS Cloud for Government
AWS Webcast - Build Agile Applications in AWS Cloud for Government
 
20171122 aws usergrp_coretech-spn-cicd-aws-v01
20171122 aws usergrp_coretech-spn-cicd-aws-v0120171122 aws usergrp_coretech-spn-cicd-aws-v01
20171122 aws usergrp_coretech-spn-cicd-aws-v01
 
DevOps demystified
DevOps demystifiedDevOps demystified
DevOps demystified
 
Power of Azure Devops
Power of Azure DevopsPower of Azure Devops
Power of Azure Devops
 
Automated DevOps Workflows with Chef on AWS
Automated DevOps Workflows with Chef on AWSAutomated DevOps Workflows with Chef on AWS
Automated DevOps Workflows with Chef on AWS
 
Application Lifecycle Management in a Serverless World
Application Lifecycle Management in a Serverless WorldApplication Lifecycle Management in a Serverless World
Application Lifecycle Management in a Serverless World
 
Application Lifecycle Management in a Serverless World
Application Lifecycle Management in a Serverless WorldApplication Lifecycle Management in a Serverless World
Application Lifecycle Management in a Serverless World
 
A tale of two pizzas: Developer tools at AWS
A tale of two pizzas: Developer tools at AWSA tale of two pizzas: Developer tools at AWS
A tale of two pizzas: Developer tools at AWS
 
Kubernetes @ meetic
Kubernetes @ meeticKubernetes @ meetic
Kubernetes @ meetic
 
AWS re:Invent 2016: Chalk Talk: Succeeding at Infrastructure-as-Code (GPSCT312)
AWS re:Invent 2016: Chalk Talk: Succeeding at Infrastructure-as-Code (GPSCT312)AWS re:Invent 2016: Chalk Talk: Succeeding at Infrastructure-as-Code (GPSCT312)
AWS re:Invent 2016: Chalk Talk: Succeeding at Infrastructure-as-Code (GPSCT312)
 
A Tale of Two Pizzas: Accelerating Software Delivery with Developer Tools - D...
A Tale of Two Pizzas: Accelerating Software Delivery with Developer Tools - D...A Tale of Two Pizzas: Accelerating Software Delivery with Developer Tools - D...
A Tale of Two Pizzas: Accelerating Software Delivery with Developer Tools - D...
 
Azure DevOps for JavaScript Developers
Azure DevOps for JavaScript DevelopersAzure DevOps for JavaScript Developers
Azure DevOps for JavaScript Developers
 
Containers and Kubernetes
Containers and KubernetesContainers and Kubernetes
Containers and Kubernetes
 
Announcing AWS CodeBuild - January 2017 Online Teck Talks
Announcing AWS CodeBuild - January 2017 Online Teck TalksAnnouncing AWS CodeBuild - January 2017 Online Teck Talks
Announcing AWS CodeBuild - January 2017 Online Teck Talks
 
MongoDB Ops Manager and Kubernetes - James Broadhead
MongoDB Ops Manager and Kubernetes - James BroadheadMongoDB Ops Manager and Kubernetes - James Broadhead
MongoDB Ops Manager and Kubernetes - James Broadhead
 
Managing Your Cloud Assets
Managing Your Cloud AssetsManaging Your Cloud Assets
Managing Your Cloud Assets
 

Último

Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)Intelisync
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number SystemsJheuzeDellosa
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideChristina Lin
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfkalichargn70th171
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio, Inc.
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfjoe51371421
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - InfographicHr365.us smith
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about usDynamic Netsoft
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationkaushalgiri8080
 

Último (20)

Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number Systems
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdf
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - Infographic
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about us
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanation
 

Priming Your Teams For Microservice Deployment to the Cloud

  • 1. Priming  Your  Teams  for  Microservice   Deployment  to  the  Cloud Matt  Callanan linkedin.com/in/matthewcallanan @mcallana ©  2015  Expedia,  Inc.  All  rights  reserved.
  • 2. How  Do  You  Create  A  Microservice  For  The  Cloud?
  • 12. CNAME
  • 15. Phew!
  • 16. Opportunity  Cost:  Time  Value  of  Information
  • 18. DevOps  Toolchain Based on devops toolchain by dto solutions: http://www.slideshare.net/AnthonyShortland/dto-chefconf2012 ApplicationInfrastructure Build Deploy Source   Code   Repo Artifact   Repo Build   Console Deployment   Console Resource   Model Infrastructure Manager Code Config Automation Environment   Data Automation Config Packages Images
  • 21. Dev  – Starting  from  Scratch Single  page  app • Secured  with  LDAP • Choose: – App  Name – Team  Name – Notifications  Email – HipChat Room – Technology Build  triggers  remote  Jenkins  job • Benefits – Easy  to  configure – Simple  API – Versioned  scripts – Centralisedlogs  /  results
  • 22. Dev  – App  Types • dwsvc -­‐ Java  Dropwizard service • emr-­‐datapipeline -­‐ An  Elastic  MapReduce -­‐ Data  Pipeline   service • spark-­‐streaming  -­‐ A  Spark  Streaming  App • expressjs -­‐ A  Node  application  that  uses  expressjs • php -­‐ A  PHP  application • python -­‐ A  Python  application • scalatra– Lightweight  Scala app  based  off  Sinatra • sinatra – Lightweight  Ruby  web  service   • springboot -­‐ A  SpringBoot service • storm-­‐topology  -­‐ A  storm  topology  service • ticker -­‐ A  Ticker  (trend  service)  application • webmvc-­‐ A  customer  facing  Brand  Expedia  Spring  MVC   Web  application • grails -­‐ A  Groovy-­‐based  web  application  framework  for  JVM • AWS  Lambda  -­‐ Java  based  AWS  Lamda implementation *each  app  type  has  it’s  own  GitHub repo  for  source,  issues,  etc
  • 23. Dev  – Generating  App  and  Pipeline Jenkins  Job  – create-­‐new-­‐application • Creates  new  GitHub repo
  • 24. Dev  – Generating  App  and  Pipeline Jenkins  Job  – create-­‐new-­‐application • Creates  new  GitHub repo GitHub • Promote  open  source  model  for  teams • Use  pull  requests  as  mechanism  for  ensuring   reviews  /  pairing • WebHooks for  devs to  tweak  workflows
  • 25. Dev  – Generating  App  and  Pipeline Jenkins  Job  – create-­‐new-­‐application • Creates  new  GitHub repo • Copies  chosen  technology  template  and   pushes  back  to  repo Tech  Templates • Uses  latest  version  of  template • Replaces  app  names,  package  names,  etc with  your  app  name • Simple  interface  – each  template  codebase   has  clone.sh using  cp and  sed • Java-­‐based  templates  use  Maven   Archetypes  to  generate  codebase • Easy  to  extend  and  fork
  • 26. Dev  – Generating  App  and  Pipeline Jenkins  Job  – create-­‐new-­‐application • Creates  new  GitHub repo • Copies  chosen  technology  template  and   pushes  back  to  repo • Generates  Continuous  Delivery  pipeline  in   Jenkins Jenkins • Generates  Jenkins  build  that  is  triggered   by  commits  to  master  branch • Jenkins  config via  templated XML • Uses  standard  commands  for  target   template  (mvn,  npm,  etc) • Uploads  zip  to  S3 • Triggers  downstream  deploy  job  passing   Git SHA
  • 27. Dev  – Generating  App  and  Pipeline Jenkins  Job  – create-­‐new-­‐application • Creates  new  GitHub repo • Copies  chosen  technology  template  and   pushes  back  to  repo • Generates  Continuous  Delivery  pipeline  in   Jenkins • Sends  email  to  user  with  details  /  links
  • 30. Operations  Pipeline • Immutable  Servers • Chef  Cookbooks • CloudFormation Templates • Deploy  to  immutable  servers  using  infrastructure  as  code  that  dev  and  ops  can  maintain • Blue-­‐green  deploys • HipChat notifications   • Centralised logging  -­‐ Splunk • Centralised monitoring  -­‐ Hubble
  • 32. Chef  Cookbooks  and  Config roles/primer-­‐demo-­‐service.rb _______________________________________________________________________ name "primer-demo-service" description "Webapp for primer-demo-service" run_list "recipe[s3curl]","recipe[primer-demo-service]" override_attributes( "java" => { "jdk_name" => "jdk8_0_05", } )
  • 33. Chef  Cookbooks  and  Config cookbooks/primer-­‐demo-­‐service/recipes/default.rb _______________________________________________________________________ node.default[:springboot][:application_name] = 'primer-demo' node.default[:springboot][:role_name] = 'primer-demo-service' include_recipe "expedia-platform::springboot"
  • 34. Chef  Cookbooks  and  Config deployment_config/<env>/primer-­‐demo-­‐service/config.json { "instances":  { "min_count":  1, "max_count":  2, "auto_scale":  true, "zones":  { "us-­‐east-­‐1":  ["us-­‐east-­‐1d"], "us-­‐west-­‐2":  ["us-­‐west-­‐2c"] }, "destroy_old":  true, "removeOldFromElb":  true }, "app_type":  "springboot", "app_port":  8080, "isactive_support":  { "enabled":  true, "file":  "/opt/primer-­‐demo-­‐service/active.txt" }, "source_repo":  ".../primer-­‐demo-­‐service.git", "notify":  { "hipchat":  {"room":  "Demo  Room"}, "email":  {"addresses":  ["username@domain.com"]}, "s3":  {"bucket":  "..."} }, "team":  "Exp-­‐Ops-­‐Wotif-­‐Tech-­‐Australia", "prime_role":  "role-­‐prime-­‐web" }
  • 35. Deploy  Build Jenkins Chef  knife AMI Route53 ELBCloudFormation ASG EC2  InstanceEC2  Instance
  • 36. Deployment  – Email  Notification
  • 37.
  • 39. Separating  Deploy  &  Release Deploy Test Release
  • 40. Blue  Green  Deploys  – Deploy
  • 44. Blue  Green  Deploys  – Release
  • 45. Release  – Email  Notification
  • 51. Hopscotch  – Transparent  Traffic  Router • Proxy  built  on  Nginx (similar  to  Netflix  Zuul) • expedia.com/xyz  -­‐>  xyz.expedia.com • Faster  to  update  rules  than  Akamai  45min  turnaround • E.g.  Register  microservice  with  hopscotch  in  Singapore  (20%  of  traffic)  route  10%  of   Singapore  traffic  to  cloud  app,  when  happy,  dial  up  to  100%,  then  roll  out  to  Europe  and  USA • Nice  way  to  move  traffic  out  of  data  centre into  AWS  with  no  customer  impact
  • 53. Cleanup • Deleting  project – Delete  Codebase  (Git repo),  Build • Delete  Cloudformation stack • Delete  unused  cloudformation stacks  -­‐ ELB  request  count  1hr
  • 54. Cleanup  – Delete  the  Microservice
  • 55. Cleanup  – Email  Confirmation
  • 56. Cleanup  – Delete  Cloud  Formation  Stack
  • 57. Cleanup  – Auto  Deletion  of  Unused  Stack  in  Test  Environment
  • 58. Primer  2.0 Docker on  Amazon  ECS
  • 59. DevOps  Toolchain  – Primer  2.0:  Docker on  Amazon  ECS Inspired by devops toolchain by dto solutions: http://www.slideshare.net/AnthonyShortland/dto-chefconf2012 ApplicationInfrastructure Build Deploy Source   Code   Repo Artifact   Repo Build   Console Deployment   Console Resource   Model Infrastructure Manager Code Config Automation Environment   Data Automation Config Packages Images gzip AMI git Jenkins JenkinsAmazon  S3 Chef CloudFormationDocker Registry Docker image JSON Amazon  ECS
  • 60. Primer  2.0  – Docker on  Amazon  ECS • Using  Amazon  EC2  Container  Service  (ECS) • Deploy  Primer  applications  as  Docker containers  to  an  ECS  cluster • Deploys  take  7mins  (instead  of  30mins) • No  AMI  creation,  no  CloudFormation • Cost  Optimisation • Using  AWS  SDK: • Register  ECS  Container  Definition  -­‐>  Task  Definition  -­‐>  Service • Create  ELB • Create  CNAME • Blue/Green  Deploys  with  Canary  service
  • 61. Primer  2.0  – Docker on  ECS Test  Environment
  • 62. Primer  2.0  – Docker on  ECS Production  Environment
  • 63. c3vis  – Open  Source • c3vis:  “Cloud  Container  Cluster  Visualiser” • Visualises container  deploys  and  resource  utilization  on  Amazon  ECS  clusters • Open  Source  Software  from  Expedia • github.com/ExpediaDotCom/c3vis
  • 65. Results • 800  Primer  apps  and  growing • Culture  of  Experimentation – Freedom  of  choice – Keys  to  prod  – trust • Enabling  Innovation – Open  Source  model  for  tool • visible • accessible • easy  to  contribute • “I  want  to  add  Grails  to  this  tool!”,  “Help   yourself!” • Lowering  Cost – Counters  the  cost  of  learning  legacy   deployment  processes – Generate  microservice   without  thinking   about  it
  • 66. Tips  &  Tricks Building  Your  Own  “Primer”
  • 67. Tips  &  Tricks • Don’t  “Lift  &  Shift”  your  monolith • Rethink   • Start  with  non-­‐critical  workflow  apps • Don’t  need  to  start  heterogeneous  (i.e.  multiple  app  types) • Doesn't  need  to  be  in  the  cloud • Cloud  has  benefits  like  immutable  infrastructure,  scaling,  automation • But  can  do  the  same  thing  in  the  data  centre • Small  interface • /isActive endpoint  for  LB  healthcheck • /buildInfo endpoint  for  version • "Just  do  it"  attitude • Open  source  model  helped  spread  it  across  the  organisation
  • 68. Q  &  AThanks! Any  Questions? Matt  Callanan linkedin.com/in/matthewcallanan @mcallana
  • 69. Image  Attribution Image “Clock  Time  Lapse  Video  Download“  (https://youtu.be/NSuNpiW-­‐LwI)   by  LifeBloodMarketing is  licensed  under  “CC  Free  to  Use” “Pipelines  descending  to  Inveruglas Power  Station”  (http://www.geograph.org.uk/photo/2214366) is  licensed  under  CC  BY  SA  2.0  (http://creativecommons.org/licenses/by-­‐sa/2.0/) /  Desaturated and   cropped from  original “The  Future”  (https://flic.kr/p/26YCn1) by  Kristian  Bjornard is  licensed  under  CC  BY  SA  2.0  (https://creativecommons.org/licenses/by-­‐sa/2.0/) “CTA  Loop  Junction”  (https://commons.wikimedia.org/wiki/File:CTA_loop_junction.jpg) by  Daniel  Schwen is  licensed  under  CC  BY  SA 3.0 (https://creativecommons.org/licenses/by-­‐sa/3.0/) “Logging  operations  at  Millmoor Rig”  (http://bit.ly/1Nb20LS) by  Walter  Baxter is  licensed  under  CC  BY  SA  2.0  (https://creativecommons.org/licenses/by-­‐sa/2.0/) “Traffic  Monitoring”  (https://commons.wikimedia.org/wiki/File:Traffic_Monitoring.JPG) by  Suryasuharman is  licensed  under  CC  BY  SA 3.0 (https://creativecommons.org/licenses/by-­‐sa/3.0/) “DNS  logo”  (https://commons.wikimedia.org/wiki/File:DNS_logo.jpg) by  I  laramide I  is  licensed  under  CC  BY  SA 3.0 (https://creativecommons.org/licenses/by-­‐sa/3.0/) “Light bulb  icon  tips”  (https://commons.wikimedia.org/wiki/File:Light_bulb_icon_tips.svg) by  YassineMrabet is  licensed  under  CC  BY  SA  4.0  (https://creativecommons.org/licenses/by-­‐sa/4.0/) “Matrix-­‐code-­‐computer-­‐pc-­‐data”   (https://pixabay.com/en/matrix-­‐code-­‐computer-­‐pc-­‐data-­‐356024/)   by  Comfreak is  licensed  under  CC  ZERO (https://creativecommons.org/publicdomain/zero/1.0/) “Sample-­‐color-­‐blue-­‐green”   (https://pixabay.com/en/sample-­‐color-­‐blue-­‐green-­‐rubber-­‐815141/ )   by  LyraBelacqua-­‐Sally is  licensed  under  CC  ZERO (https://creativecommons.org/publicdomain/zero/1.0/) “Fashion-­‐wristwatch-­‐time”  (https://www.pexels.com/photo/fashion-­‐wristwatch-­‐time-­‐watch-­‐1252/) by  SplitShire.com is  licensed  under  CC  ZERO (https://creativecommons.org/publicdomain/zero/1.0/) “Chat”  (https://openclipart.org/detail/129049/chat) by  Merlin2525 is  licensed  under  unlimited-­‐commercial-­‐use (https://openclipart.org/unlimited-­‐commercial-­‐use-­‐clipart) “scales”  (https://openclipart.org/detail/24101/scales) by  scott_kirkwood is  licensed  under  unlimited-­‐commercial-­‐use (https://openclipart.org/unlimited-­‐commercial-­‐use-­‐clipart) “Wooden  Bookcase”  (https://openclipart.org/detail/191463/wooden-­‐bookcase) by  sirgazil is  licensed  under  unlimited-­‐commercial-­‐use (https://openclipart.org/unlimited-­‐commercial-­‐use-­‐clipart) “Compiz GIT  Repository”  (https://flic.kr/p/Ssras) by  -­‐=  Treviño  =-­‐ is  licensed  under  BY  NC  SA  2.0 (https://creativecommons.org/licenses/by-­‐nc-­‐sa/2.0) “logs”  (https://flic.kr/p/9F8tjX) by  Rick  Payette is  licensed  under  CC  BY  NC ND  2.0  (https://creativecommons.org/licenses/by-­‐nc-­‐nd/2.0) Docker logo  used  according  to  https://www.docker.com/brand-­‐guidelines