SlideShare a Scribd company logo
Continuous Delivery of Windows
microservices in the cloud
@owainperry
http://www.slideshare.net/perryofpeek/continuous-delivery-of-windows-micro-services-in-the-cloud
What?
● The journey of the last 18 months,
Justgiving has taken to ship more in less
time
● How we have implemented supporting
infrastructure around micro services
● Where we went wrong
● Raise Money for Charities
● Turnover ~£400 Million a year
● Process UK gift aid
● Text Giving
● Crowd funding
● ~1000 nodes
Stephen Sutton
Monolith legacy
● High developer pain
● Branching
● 2 week release cycles
● Long build times
● Long test times
● Massive git repository
● Legacy source code patterns (bin files)
● etc…...
Micro services
JustGiving micro service?
● It's a small service!
– Usually a component makes up part of a
business domain
– Has one purpose
– Is simple to reason about
– Reality - various levels of granularity
Where we went next
● New stuff:
– built using micro services
– Hosted in the cloud
– New pipelines for deployment
● Monolith stuff:
– Chop out choice areas, bite size chunks at a time
– Build a simpler pipeline
– Simpler branching strategy
Infrastructure principles
● “Very” Available
● Repeatable through automation
● Development define and build their
infrastructure
● Keep environments isolated
● Be pragmatic….
Train track automation
●
Development - self service infrastructure
– Fast to spin up infrastructure
– Less Ops bottleneck
●
Reduce the need for AWS keys
●
Consistency benefits:
– Service architecture
– Names and name conventions
– Tags
– Security groups
– Scripting
Types of service
● 1. Windows service
Either:
– Self hosted nancyfx web server
● Application
● Health endpoint
– Message based service
● Health endpoint
● 2. IIS hosted application
– Health endpoint
Core tools
● AWS
● Artifactory – package repository
● Chef – open source v11
● GO CD
● Team City
● Chocolatey
Auto scale groupAuto scale group
Micro service hosting
architecture
● Varnish is the load balancer
Elastic Load BalancerElastic Load Balancer
Varnish
Node 1 Node 2 Node 1Node 2
CD of micro services
Each micro service has its own
● Git repository
● GO Pipeline
● Team City build
● Chef cookbook
● Tests
● AWS Infrastructure
● Operations run book
● Health check endpoint - /status/health
● Blue / Green Deployment
Steps for a new micro
service
● Think of a name
● Create a git repository
● Open up micro service template in visual studio
– Rename a few things
● Teamcity build (copy n paste)
● Go pipeline (copy n paste)
● Define Infrastructure via json
The pipeline
TeamcityGit
Chef
(cookbook)
Go CD
Artifactory
(choco pkg)
Dev Staging Prod Sandbox
Versions
● Application chocolatey package
● Cookbook
AWS infrastructure
● Treat AWS as another resource
● Heavy Weight Resource Providers for AWS
● Light weight resource Providers to abstract the HWRP
● json data_bags based infrastructure
● Infrastructure builder node executes chef client for
infrastructure
● “Most” of our infrastructure is built this way, not just
business application services
Chef resources
● Elastic Load Balancer
● Auto scale groups
● Security groups
● IAM roles
● Launch configurations
● DNS
● Subnets
● Ec2 instances
● Route tables
HWRP example
aws_subnet 'subtest2' do
accesskey accesskey
secretkey secretkey
region “eu-west-1”
vpc “DEV-VPC”
azone 'eu-west-1a'
cidr '10.20.30.0/24'
routetable 'RTB-STG-PRIVATE'
tags [ { "a" => "1"},{"c" => "2" }]
action :create
end
LWRP – data bag - json
{
"id": "dev",
"type": "asg-lcf",
"region": "eu-west-1",
"availability_zones": ["eu-west-1a" ],
"vpc": "DEV-VPC",
"routetable": "RTB-DEV-PRIVATE",
"ami": "JG-UBUNTU12-04-V5",
"instance_type": "m3.medium",
"security_groups": ["********" ],
"iam_role": "instance_default",
"launch_configuration_name": "LCF-DEV-SENSU",
"aws_autoscale_group_name": "ASG-DEV-SENSU",
"health_check_type": "EC2",
"health_check_grace_period": 300,
"asg_min_size": 3,
"asg_max_size": 3,
"asg_desired_capacity": 3,
"asg_default_cooldown": 200,
"subnets": [
{
"name": "SUB-DEV-LOGSTASH-ZA",
Micro service GO pipeline
Micro service cookbook
● Chef is used to configure the node
● Chef is used to deploy the application
● “deployment” - is just version constraint in a
chef environment
Deployment
● Set the version constraint for the inactive environment
● Chef search all nodes
● For each node
{ remote in an kick off chef client scheduled task}
● Switch active environment
● Poll for nodes to be on correct version.
● Post deployment tests
Consistency in
architecture
● Name conventions
● Build scripts
● Packages
● Supports
● Monitoring
● Refactoring
● Comprehension
Bootup
● Chef is prebaked into AMI (faster)
● Instance userdata script contains the
bootup script (inc runlist)
● Auto scale groups used to instantiate new
instances
Automated change
● Change log automated into Jira for releases
– Staging and production
● Change log automated for cookbook
releases
● Platform to include more over time.
Automated change log
Information
Pipelines for chef
cookbooks
Chocolatey
● Rebuild all packages for internal hosting.
– Don't want a dependency on 3rd
party download
– Control versions of software in use
● Common pattern for git and builds
– Take ~10 mins to repackge
● ( This is a bit of a chore )
What we didn't get right...
– Zombies….
– Chocolatey (exe / bat)
– AWS reboot
– Cost control
– Abstraction of infrastructure json
– Chef search to configure load balancer
– Not automating our base AMI's from the outset
Future
● Rolling instance recycling – daily / weekly?
● Bake images in production
● Ohai for sensu subscriptions
● Service discovery rather than chef search
● Application secret security
● Code security scanning in the pipelines
● Infrastructure penetration testing
● Infrastructure security checks
● Packer to build base ami's
So….
– Micro services – has helped productivity
– AWS automation in hands of developers
– Simple json defined infrastructure
– Chef is core at the centre
– We have made mistakes
– But it's been a worthwhile journey so far.
Questions?

More Related Content

What's hot (20)

PDF
Getting Started with Ansible
Ahmed AbouZaid
 
PDF
Ansible introduction - XX Betabeers Galicia
Juan Diego Pereiro Arean
 
PDF
Red Hat Satellite 6 - Automation with Puppet
Michael Lessard
 
PDF
Configuration Management - Finding the tool to fit your needs
SaltStack
 
PDF
OMD and Check_mk
Artur Martins
 
PDF
DevOps in a Regulated World - aka 'Ansible, AWS, and Jenkins'
rmcleay
 
PDF
Multiple django applications on a single server with nginx
roskakori
 
PPTX
Cyansible
Alan Norton
 
PDF
Puppet Camp Berlin 2015: Andrea Giardini | Configuration Management @ CERN: G...
NETWAYS
 
PDF
Puppet Camp LA 2015: Server Management with Puppet on AWS for a fast-growing ...
Puppet
 
PDF
Ansible Oxford - Cows & Containers
jonatanblue
 
PPTX
Docker ansible-make-chef-puppet-unnecessary-minnihan
jbminn
 
PDF
OpenNebula Conf 2014 | Puppet and OpenNebula - David Lutterkort
NETWAYS
 
PDF
How Ansible Makes Automation Easy
Peter Sankauskas
 
PDF
SaltConf14 - Matthew Williams, Flowroute - Salt Virt for Linux contatiners an...
SaltStack
 
PDF
Deploying PHP Applications with Ansible
Orestes Carracedo
 
PDF
Continuously-Integrated Puppet in a Dynamic Environment
Puppet
 
PDF
Stream processing in Mercari - Devsumi 2015 autumn LT
Masahiro Nagano
 
PDF
Getting started with puppet and vagrant (1)
Puppet
 
PPTX
Introduction to ansible
Dharmit Shah
 
Getting Started with Ansible
Ahmed AbouZaid
 
Ansible introduction - XX Betabeers Galicia
Juan Diego Pereiro Arean
 
Red Hat Satellite 6 - Automation with Puppet
Michael Lessard
 
Configuration Management - Finding the tool to fit your needs
SaltStack
 
OMD and Check_mk
Artur Martins
 
DevOps in a Regulated World - aka 'Ansible, AWS, and Jenkins'
rmcleay
 
Multiple django applications on a single server with nginx
roskakori
 
Cyansible
Alan Norton
 
Puppet Camp Berlin 2015: Andrea Giardini | Configuration Management @ CERN: G...
NETWAYS
 
Puppet Camp LA 2015: Server Management with Puppet on AWS for a fast-growing ...
Puppet
 
Ansible Oxford - Cows & Containers
jonatanblue
 
Docker ansible-make-chef-puppet-unnecessary-minnihan
jbminn
 
OpenNebula Conf 2014 | Puppet and OpenNebula - David Lutterkort
NETWAYS
 
How Ansible Makes Automation Easy
Peter Sankauskas
 
SaltConf14 - Matthew Williams, Flowroute - Salt Virt for Linux contatiners an...
SaltStack
 
Deploying PHP Applications with Ansible
Orestes Carracedo
 
Continuously-Integrated Puppet in a Dynamic Environment
Puppet
 
Stream processing in Mercari - Devsumi 2015 autumn LT
Masahiro Nagano
 
Getting started with puppet and vagrant (1)
Puppet
 
Introduction to ansible
Dharmit Shah
 

Viewers also liked (18)

PDF
Continuous Delivery and Micro Services - A Symbiosis
Eberhard Wolff
 
PDF
Learning chef
Jonathan Carrillo
 
PDF
Automated Deployment with Capistrano
Sumit Chhetri
 
PDF
Multi-provider Vagrant and Chef: AWS, VMware, and more
Chef Software, Inc.
 
ZIP
Continuous Integration, Build Pipelines and Continuous Deployment
Christopher Read
 
ODP
It Works On My Machine: Vagrant for Software Development
Carlos Perez
 
PDF
Microservices, DevOps, Continuous Delivery – More Than Three Buzzwords
Eberhard Wolff
 
PDF
Vagrant for real (codemotion rome 2016)
Michele Orselli
 
PDF
Vagrant For DevOps
Lalatendu Mohanty
 
PDF
Chef Fundamentals Training Series Module 6: Roles, Environments, Community Co...
Chef Software, Inc.
 
PPTX
Vagrant to-aws-flow
Kimberly Macias
 
PDF
EC2 AMI Factory with Chef, Berkshelf, and Packer
George Miranda
 
PDF
CIRCUIT 2015 - AEM Infrastructure Automation with Chef Cookbooks
ICF CIRCUIT
 
PPTX
REST and Microservices
Shaun Abram
 
PPTX
Chef for DevOps - an Introduction
Sanjeev Sharma
 
PPT
Justgivings Top 10 Fundraising Tips (Marathon Edition)
Jonathan Waddingham
 
PPTX
Microservices: The Right Way
Daniel Woods
 
PPTX
AWS Meetup - Sydney - February
markghiasy
 
Continuous Delivery and Micro Services - A Symbiosis
Eberhard Wolff
 
Learning chef
Jonathan Carrillo
 
Automated Deployment with Capistrano
Sumit Chhetri
 
Multi-provider Vagrant and Chef: AWS, VMware, and more
Chef Software, Inc.
 
Continuous Integration, Build Pipelines and Continuous Deployment
Christopher Read
 
It Works On My Machine: Vagrant for Software Development
Carlos Perez
 
Microservices, DevOps, Continuous Delivery – More Than Three Buzzwords
Eberhard Wolff
 
Vagrant for real (codemotion rome 2016)
Michele Orselli
 
Vagrant For DevOps
Lalatendu Mohanty
 
Chef Fundamentals Training Series Module 6: Roles, Environments, Community Co...
Chef Software, Inc.
 
Vagrant to-aws-flow
Kimberly Macias
 
EC2 AMI Factory with Chef, Berkshelf, and Packer
George Miranda
 
CIRCUIT 2015 - AEM Infrastructure Automation with Chef Cookbooks
ICF CIRCUIT
 
REST and Microservices
Shaun Abram
 
Chef for DevOps - an Introduction
Sanjeev Sharma
 
Justgivings Top 10 Fundraising Tips (Marathon Edition)
Jonathan Waddingham
 
Microservices: The Right Way
Daniel Woods
 
AWS Meetup - Sydney - February
markghiasy
 
Ad

Similar to Continuous delivery of Windows micro services in the cloud (20)

PDF
Owain Perry (Just Giving) - Continuous Delivery of Windows Micro-Services in ...
Outlyer
 
PDF
Software Delivery in 2016 - A Continuous Delivery Approach
Giovanni Toraldo
 
PPTX
RedisConf17 - Dynomite - Making Non-distributed Databases Distributed
Redis Labs
 
PDF
USENIX LISA15: How TubeMogul Handles over One Trillion HTTP Requests a Month
Nicolas Brousse
 
PDF
Heroku to Kubernetes & Gihub to Gitlab success story
Jérémy Wimsingues
 
PPTX
Dynomite @ RedisConf 2017
Ioannis Papapanagiotou
 
PPTX
GCP - Continuous Integration and Delivery into Kubernetes with GitHub, Travis...
Oleg Shalygin
 
ODP
Monitoring your VM's at Scale
Kris Buytaert
 
PPTX
Truemotion Adventures in Containerization
Ryan Hunter
 
PPTX
Mongo db - How we use Go and MongoDB by Sam Helman
Hakka Labs
 
PPTX
Ultimate Guide to Microservice Architecture on Kubernetes
kloia
 
PDF
Lagom : Reactive microservice framework
Fabrice Sznajderman
 
PDF
QConSF18 - Disenchantment: Netflix Titus, its Feisty Team, and Daemons
aspyker
 
PDF
JenkinsCI
Chandrika Gole
 
PPTX
Delivering Cloud Native Batch Solutions - Dodd Pfeffer
VMware Tanzu
 
PDF
Como creamos QuestDB Cloud, un SaaS basado en Kubernetes alrededor de QuestDB...
javier ramirez
 
PDF
OSDC 2018 | From Monolith to Microservices by Paul Puschmann_
NETWAYS
 
PDF
Netflix Container Scheduling and Execution - QCon New York 2016
aspyker
 
PDF
Scheduling a fuller house - Talk at QCon NY 2016
Sharma Podila
 
PDF
Deploying Rails Apps with Chef and Capistrano
SmartLogic
 
Owain Perry (Just Giving) - Continuous Delivery of Windows Micro-Services in ...
Outlyer
 
Software Delivery in 2016 - A Continuous Delivery Approach
Giovanni Toraldo
 
RedisConf17 - Dynomite - Making Non-distributed Databases Distributed
Redis Labs
 
USENIX LISA15: How TubeMogul Handles over One Trillion HTTP Requests a Month
Nicolas Brousse
 
Heroku to Kubernetes & Gihub to Gitlab success story
Jérémy Wimsingues
 
Dynomite @ RedisConf 2017
Ioannis Papapanagiotou
 
GCP - Continuous Integration and Delivery into Kubernetes with GitHub, Travis...
Oleg Shalygin
 
Monitoring your VM's at Scale
Kris Buytaert
 
Truemotion Adventures in Containerization
Ryan Hunter
 
Mongo db - How we use Go and MongoDB by Sam Helman
Hakka Labs
 
Ultimate Guide to Microservice Architecture on Kubernetes
kloia
 
Lagom : Reactive microservice framework
Fabrice Sznajderman
 
QConSF18 - Disenchantment: Netflix Titus, its Feisty Team, and Daemons
aspyker
 
JenkinsCI
Chandrika Gole
 
Delivering Cloud Native Batch Solutions - Dodd Pfeffer
VMware Tanzu
 
Como creamos QuestDB Cloud, un SaaS basado en Kubernetes alrededor de QuestDB...
javier ramirez
 
OSDC 2018 | From Monolith to Microservices by Paul Puschmann_
NETWAYS
 
Netflix Container Scheduling and Execution - QCon New York 2016
aspyker
 
Scheduling a fuller house - Talk at QCon NY 2016
Sharma Podila
 
Deploying Rails Apps with Chef and Capistrano
SmartLogic
 
Ad

Recently uploaded (20)

PDF
Economic Impact of Data Centres to the Malaysian Economy
flintglobalapac
 
PDF
RAT Builders - How to Catch Them All [DeepSec 2024]
malmoeb
 
PDF
NewMind AI Weekly Chronicles – July’25, Week III
NewMind AI
 
PDF
Responsible AI and AI Ethics - By Sylvester Ebhonu
Sylvester Ebhonu
 
PPTX
Agile Chennai 18-19 July 2025 Ideathon | AI Powered Microfinance Literacy Gui...
AgileNetwork
 
PDF
How ETL Control Logic Keeps Your Pipelines Safe and Reliable.pdf
Stryv Solutions Pvt. Ltd.
 
PPTX
Agile Chennai 18-19 July 2025 | Workshop - Enhancing Agile Collaboration with...
AgileNetwork
 
PPTX
Agentic AI in Healthcare Driving the Next Wave of Digital Transformation
danielle hunter
 
PDF
TrustArc Webinar - Navigating Data Privacy in LATAM: Laws, Trends, and Compli...
TrustArc
 
PDF
CIFDAQ's Market Wrap : Bears Back in Control?
CIFDAQ
 
PDF
Per Axbom: The spectacular lies of maps
Nexer Digital
 
PPTX
IT Runs Better with ThousandEyes AI-driven Assurance
ThousandEyes
 
PPTX
What-is-the-World-Wide-Web -- Introduction
tonifi9488
 
PDF
Generative AI vs Predictive AI-The Ultimate Comparison Guide
Lily Clark
 
PPTX
Applied-Statistics-Mastering-Data-Driven-Decisions.pptx
parmaryashparmaryash
 
PPTX
AI and Robotics for Human Well-being.pptx
JAYMIN SUTHAR
 
PPTX
OA presentation.pptx OA presentation.pptx
pateldhruv002338
 
PDF
Research-Fundamentals-and-Topic-Development.pdf
ayesha butalia
 
PDF
Trying to figure out MCP by actually building an app from scratch with open s...
Julien SIMON
 
PDF
State-Dependent Conformal Perception Bounds for Neuro-Symbolic Verification
Ivan Ruchkin
 
Economic Impact of Data Centres to the Malaysian Economy
flintglobalapac
 
RAT Builders - How to Catch Them All [DeepSec 2024]
malmoeb
 
NewMind AI Weekly Chronicles – July’25, Week III
NewMind AI
 
Responsible AI and AI Ethics - By Sylvester Ebhonu
Sylvester Ebhonu
 
Agile Chennai 18-19 July 2025 Ideathon | AI Powered Microfinance Literacy Gui...
AgileNetwork
 
How ETL Control Logic Keeps Your Pipelines Safe and Reliable.pdf
Stryv Solutions Pvt. Ltd.
 
Agile Chennai 18-19 July 2025 | Workshop - Enhancing Agile Collaboration with...
AgileNetwork
 
Agentic AI in Healthcare Driving the Next Wave of Digital Transformation
danielle hunter
 
TrustArc Webinar - Navigating Data Privacy in LATAM: Laws, Trends, and Compli...
TrustArc
 
CIFDAQ's Market Wrap : Bears Back in Control?
CIFDAQ
 
Per Axbom: The spectacular lies of maps
Nexer Digital
 
IT Runs Better with ThousandEyes AI-driven Assurance
ThousandEyes
 
What-is-the-World-Wide-Web -- Introduction
tonifi9488
 
Generative AI vs Predictive AI-The Ultimate Comparison Guide
Lily Clark
 
Applied-Statistics-Mastering-Data-Driven-Decisions.pptx
parmaryashparmaryash
 
AI and Robotics for Human Well-being.pptx
JAYMIN SUTHAR
 
OA presentation.pptx OA presentation.pptx
pateldhruv002338
 
Research-Fundamentals-and-Topic-Development.pdf
ayesha butalia
 
Trying to figure out MCP by actually building an app from scratch with open s...
Julien SIMON
 
State-Dependent Conformal Perception Bounds for Neuro-Symbolic Verification
Ivan Ruchkin
 

Continuous delivery of Windows micro services in the cloud

  • 1. Continuous Delivery of Windows microservices in the cloud @owainperry http://www.slideshare.net/perryofpeek/continuous-delivery-of-windows-micro-services-in-the-cloud
  • 2. What? ● The journey of the last 18 months, Justgiving has taken to ship more in less time ● How we have implemented supporting infrastructure around micro services ● Where we went wrong
  • 3. ● Raise Money for Charities ● Turnover ~£400 Million a year ● Process UK gift aid ● Text Giving ● Crowd funding ● ~1000 nodes
  • 5. Monolith legacy ● High developer pain ● Branching ● 2 week release cycles ● Long build times ● Long test times ● Massive git repository ● Legacy source code patterns (bin files) ● etc…...
  • 7. JustGiving micro service? ● It's a small service! – Usually a component makes up part of a business domain – Has one purpose – Is simple to reason about – Reality - various levels of granularity
  • 8. Where we went next ● New stuff: – built using micro services – Hosted in the cloud – New pipelines for deployment ● Monolith stuff: – Chop out choice areas, bite size chunks at a time – Build a simpler pipeline – Simpler branching strategy
  • 9. Infrastructure principles ● “Very” Available ● Repeatable through automation ● Development define and build their infrastructure ● Keep environments isolated ● Be pragmatic….
  • 10. Train track automation ● Development - self service infrastructure – Fast to spin up infrastructure – Less Ops bottleneck ● Reduce the need for AWS keys ● Consistency benefits: – Service architecture – Names and name conventions – Tags – Security groups – Scripting
  • 11. Types of service ● 1. Windows service Either: – Self hosted nancyfx web server ● Application ● Health endpoint – Message based service ● Health endpoint ● 2. IIS hosted application – Health endpoint
  • 12. Core tools ● AWS ● Artifactory – package repository ● Chef – open source v11 ● GO CD ● Team City ● Chocolatey
  • 13. Auto scale groupAuto scale group Micro service hosting architecture ● Varnish is the load balancer Elastic Load BalancerElastic Load Balancer Varnish Node 1 Node 2 Node 1Node 2
  • 14. CD of micro services Each micro service has its own ● Git repository ● GO Pipeline ● Team City build ● Chef cookbook ● Tests ● AWS Infrastructure ● Operations run book ● Health check endpoint - /status/health ● Blue / Green Deployment
  • 15. Steps for a new micro service ● Think of a name ● Create a git repository ● Open up micro service template in visual studio – Rename a few things ● Teamcity build (copy n paste) ● Go pipeline (copy n paste) ● Define Infrastructure via json
  • 17. Versions ● Application chocolatey package ● Cookbook
  • 18. AWS infrastructure ● Treat AWS as another resource ● Heavy Weight Resource Providers for AWS ● Light weight resource Providers to abstract the HWRP ● json data_bags based infrastructure ● Infrastructure builder node executes chef client for infrastructure ● “Most” of our infrastructure is built this way, not just business application services
  • 19. Chef resources ● Elastic Load Balancer ● Auto scale groups ● Security groups ● IAM roles ● Launch configurations ● DNS ● Subnets ● Ec2 instances ● Route tables
  • 20. HWRP example aws_subnet 'subtest2' do accesskey accesskey secretkey secretkey region “eu-west-1” vpc “DEV-VPC” azone 'eu-west-1a' cidr '10.20.30.0/24' routetable 'RTB-STG-PRIVATE' tags [ { "a" => "1"},{"c" => "2" }] action :create end
  • 21. LWRP – data bag - json { "id": "dev", "type": "asg-lcf", "region": "eu-west-1", "availability_zones": ["eu-west-1a" ], "vpc": "DEV-VPC", "routetable": "RTB-DEV-PRIVATE", "ami": "JG-UBUNTU12-04-V5", "instance_type": "m3.medium", "security_groups": ["********" ], "iam_role": "instance_default", "launch_configuration_name": "LCF-DEV-SENSU", "aws_autoscale_group_name": "ASG-DEV-SENSU", "health_check_type": "EC2", "health_check_grace_period": 300, "asg_min_size": 3, "asg_max_size": 3, "asg_desired_capacity": 3, "asg_default_cooldown": 200, "subnets": [ { "name": "SUB-DEV-LOGSTASH-ZA",
  • 22. Micro service GO pipeline
  • 23. Micro service cookbook ● Chef is used to configure the node ● Chef is used to deploy the application ● “deployment” - is just version constraint in a chef environment
  • 24. Deployment ● Set the version constraint for the inactive environment ● Chef search all nodes ● For each node { remote in an kick off chef client scheduled task} ● Switch active environment ● Poll for nodes to be on correct version. ● Post deployment tests
  • 25. Consistency in architecture ● Name conventions ● Build scripts ● Packages ● Supports ● Monitoring ● Refactoring ● Comprehension
  • 26. Bootup ● Chef is prebaked into AMI (faster) ● Instance userdata script contains the bootup script (inc runlist) ● Auto scale groups used to instantiate new instances
  • 27. Automated change ● Change log automated into Jira for releases – Staging and production ● Change log automated for cookbook releases ● Platform to include more over time.
  • 31. Chocolatey ● Rebuild all packages for internal hosting. – Don't want a dependency on 3rd party download – Control versions of software in use ● Common pattern for git and builds – Take ~10 mins to repackge ● ( This is a bit of a chore )
  • 32. What we didn't get right... – Zombies…. – Chocolatey (exe / bat) – AWS reboot – Cost control – Abstraction of infrastructure json – Chef search to configure load balancer – Not automating our base AMI's from the outset
  • 33. Future ● Rolling instance recycling – daily / weekly? ● Bake images in production ● Ohai for sensu subscriptions ● Service discovery rather than chef search ● Application secret security ● Code security scanning in the pipelines ● Infrastructure penetration testing ● Infrastructure security checks ● Packer to build base ami's
  • 34. So…. – Micro services – has helped productivity – AWS automation in hands of developers – Simple json defined infrastructure – Chef is core at the centre – We have made mistakes – But it's been a worthwhile journey so far.