SlideShare a Scribd company logo
Lush E-Commerce
Migration
Google Cloud in a crazy timescale
● Why did we do this?
● What did we do?
● How we did it
● What were the benefits?
● What’s next?
Agenda
Why?
Ryan Kerry, Lush
Who are Lush?
Why Move?
● Not aligned to Lush’s Ethics
● Blackbox / Closed Solution
● No Flexibility Inside the
Platform
● Poor Support
● Limited Capabilities
● Excessive Costs
● Poor Billing Model
● Vendor Lock In
Why GCP?
● Future Proofing Lush’s
Technology Stack
● Aligns to Lush’s Ethical Approach
● No Vendor Lock-in (Open Cloud)
● Full Control over Infrastructure
● Fast Network and Robust
Backbone
● Per minute billing
● Sustained Use Discounts
● Preemptible VM Instances
● Brilliant Support
Timescales
November December
11th November
Project kicks off
18th November
Contract signed
17th - 20th December
Go live period
22nd December
End of service from
previous supplier
Architecture
Marcus Johansson, Google
Warehouse
SOLSOL
SML QMS
OS OSA
SOLR SOLR
WEB SOLR
UK SITE
Warehouse
SML
QMS
SOL
OS OSA
SOLR SOLR
WEB SOLR
UK SITE NEW COUNTRY
CUSTOMER
SERVICES
SINGLE SIGN ON
CONTENT REPO
Lift and shift + select managed services
Compute Engine
Cloud SQL
2nd generation
Cloud Load
Balancing
Google
Stackdriver
Memcache
Compute Engine
Memcache
Compute Engine
Memcache
Compute Engine
Varnish
Compute Engine
Memcache
Compute Engine
Cloud SQL
Cloud SQL
Cloud SQL
Cloud SQL
Solr (Search)
Compute Engine
Frontend
Compute Engine
Content Repo
Compute Engine
Order Store
Compute Engine
SSO
Compute Engine
Varnish
Compute Engine
Cloud Load
Balancing
europe-west1
UK and EMEA
asia-east1
India, HK, JP, and
APAC
us-central1
US and LATAM
Production Infrastructure
● 3 Locations, 3 Regions, 9 Zones
● 175+ Instances (Autoscaler)
● 36 Cloud SQL 2nd generation Instances
● More of the same for non-production, i.e.
development and staging
How we did it
Sam Bashton
Philosophy
MVC: Minimum Viable Cloud
● Any machine can be terminated at any time and will
self heal
● Infrastructure active/active in at least two zones
● Infrastructure defined as code
● Use drop-in replacement services where available
● Automated deployments
Infrastructure as Code
● Modern sysadmin (‘devops’):
○ 60% dev
○ 40% ops
● Don’t build infrastructure - build templates that build
infrastructure
Infrastructure as Code
● Pre-built ‘building block’ templates - Terraform
modules
● 80/20 rule - 80% of the work is standard
● Allows us to concentrate of the interesting 20%
● Massively reduces time to deliver
Reducing Repetition
● Templates heavily re-used:
○ Multiple environments
■ Dev
■ Stage
■ Production
○ Multiple Regions
■ APAC
■ EMEA
■ US
Terraform
● Build infrastructure
across multiple
regions
● One set of templates
● Variables for
differences between
environments
module "sso-instance-template" {
source = "git::ssh://git@foo/tfmodules/instance-tmpl.git"
machine_type = "${var.sso_machine_type}"
preemptible = "${var.preemptible}"
envname = "${var.envname}"
service = "sso"
domain = "${var.envname}.${var.domain}"
fw_tags = ["global", "sso", "gluster-client"]
needs_nat = "natted"
startup_script =
"gs://${var.bootstrap_bucket}/lush-sso-bootstrap.sh"
disk_image = "${var.disk_image}"
gcp_region = "${var.gcp_region}"
}
module "sso-group-manager" {
source =
"git::ssh://git@foo/tfmodules/tf-gce-instance-group-manager.git"
service = "sso"
instance_template = "${module.sso-instance-template.link-subnets}"
}
Production Infrastructure Code
● 3 Locations, 3 Regions, 9 Zones
● 175+ Instances (Autoscaler)
● 36 Cloud SQL 2nd generation Instances
● < 2200 lines of Terraform code
Ready Meal Images
● Part-baked images created
with Packer
● Boot time configuration with
Puppet
Autoscaling
Production
Stage
Development
Github
Branch: develop
Jenkins
.deb build
Multiple Regions
Jenkins
.deb install
GCS Bucket
Deb Repository
Multiple Regions
Jenkins
.deb install
Multiple Regions
Jenkins
.deb install
GCS Bucket
Deb Repository
GCS Bucket
Deb Repository
Jenkins
.deb promote
Github
Branch: stable
Or master
Jenkins
.deb build
Deployments
Logging and Monitoring
● Stackdriver
○ Agent installed on every instances, exports logs
and metrics
Difficulties Faced
● Poor Terraform support for Cloud SQL 2nd Generation
○ Yay for Open Source - we could fix this ourselves
(PRs awaiting merge)
● Old PaaS used MySQL - but no mechanism for database
replication available
○ Required a full dump and restore, meaning multi-hour
downtime
Money Saving
● Autoscaling ensures we only run the infrastructure
necessary for the current levels of traffic
● Switching dev/staging to Preemptible VMs has saved
£££
● Right-sizing recommendations saved more ££
● 40% saving
Key Improvements
● Global network
● Simplified Infrastructure
● Cheaper!
● Autoscaling
What’s Next?
Ryan Kerry, Lush
What’s Next?
Now:
● Service Orientated Architecture
Transformation
● Containerisation of Application
(GKE)
● Data Warehouse
(Big Query & Data Proc and
Dataflow)
● Cloud Native Components
(Pub/Sub & Dataflow).
Future:
● No-ops approach - Cloud
Functions.
● Machine Learning and AI
Capabilities.
● Speech, Vision and Video
APIs.
Thank you
Lush E-Commerce
Migration
Google Cloud in a crazy timescale

More Related Content

What's hot

7Masters Webops in the Cloud
7Masters Webops in the Cloud7Masters Webops in the Cloud
7Masters Webops in the Cloud
Rodrigo Campos
 
GitHub constellation 2017 SimCorp
GitHub constellation 2017   SimCorpGitHub constellation 2017   SimCorp
GitHub constellation 2017 SimCorp
Niels Harre
 
Cloud-Native Microservices
Cloud-Native MicroservicesCloud-Native Microservices
Cloud-Native Microservices
Diego Pacheco
 
Building Internal Products Customer Love - Product Management Festival
Building Internal Products Customer Love - Product Management FestivalBuilding Internal Products Customer Love - Product Management Festival
Building Internal Products Customer Love - Product Management Festival
Mostafa Nageeb
 
How do you agile your global team to contribute to openstack
How do you agile your global team to contribute to openstackHow do you agile your global team to contribute to openstack
How do you agile your global team to contribute to openstack
Alexis Monville
 
Introducing Change while Preserving Engineering Velocity
Introducing Change while Preserving Engineering VelocityIntroducing Change while Preserving Engineering Velocity
Introducing Change while Preserving Engineering Velocity
Dianne Marsh
 
Scaling Agile Data Warehousing with the Scaled Agile Framework (SAFe)
Scaling Agile Data Warehousing with the Scaled Agile Framework (SAFe)Scaling Agile Data Warehousing with the Scaled Agile Framework (SAFe)
Scaling Agile Data Warehousing with the Scaled Agile Framework (SAFe)
Context Matters
 
Fitch Ratings: Migrating to the Cloud to Transform Business Services Delivery...
Fitch Ratings: Migrating to the Cloud to Transform Business Services Delivery...Fitch Ratings: Migrating to the Cloud to Transform Business Services Delivery...
Fitch Ratings: Migrating to the Cloud to Transform Business Services Delivery...
Amazon Web Services
 

What's hot (8)

7Masters Webops in the Cloud
7Masters Webops in the Cloud7Masters Webops in the Cloud
7Masters Webops in the Cloud
 
GitHub constellation 2017 SimCorp
GitHub constellation 2017   SimCorpGitHub constellation 2017   SimCorp
GitHub constellation 2017 SimCorp
 
Cloud-Native Microservices
Cloud-Native MicroservicesCloud-Native Microservices
Cloud-Native Microservices
 
Building Internal Products Customer Love - Product Management Festival
Building Internal Products Customer Love - Product Management FestivalBuilding Internal Products Customer Love - Product Management Festival
Building Internal Products Customer Love - Product Management Festival
 
How do you agile your global team to contribute to openstack
How do you agile your global team to contribute to openstackHow do you agile your global team to contribute to openstack
How do you agile your global team to contribute to openstack
 
Introducing Change while Preserving Engineering Velocity
Introducing Change while Preserving Engineering VelocityIntroducing Change while Preserving Engineering Velocity
Introducing Change while Preserving Engineering Velocity
 
Scaling Agile Data Warehousing with the Scaled Agile Framework (SAFe)
Scaling Agile Data Warehousing with the Scaled Agile Framework (SAFe)Scaling Agile Data Warehousing with the Scaled Agile Framework (SAFe)
Scaling Agile Data Warehousing with the Scaled Agile Framework (SAFe)
 
Fitch Ratings: Migrating to the Cloud to Transform Business Services Delivery...
Fitch Ratings: Migrating to the Cloud to Transform Business Services Delivery...Fitch Ratings: Migrating to the Cloud to Transform Business Services Delivery...
Fitch Ratings: Migrating to the Cloud to Transform Business Services Delivery...
 

Similar to Lush E-Commerce Migration - Google NEXT London

Deploying Perl apps on dotCloud
Deploying Perl apps on dotCloudDeploying Perl apps on dotCloud
Deploying Perl apps on dotCloud
daoswald
 
Scalable complex event processing on samza @UBER
Scalable complex event processing on samza @UBERScalable complex event processing on samza @UBER
Scalable complex event processing on samza @UBER
Shuyi Chen
 
PHP At 5000 Requests Per Second: Hootsuite’s Scaling Story
PHP At 5000 Requests Per Second: Hootsuite’s Scaling StoryPHP At 5000 Requests Per Second: Hootsuite’s Scaling Story
PHP At 5000 Requests Per Second: Hootsuite’s Scaling Story
vanphp
 
Serverless Apps on Google Cloud: more dev, less ops
Serverless Apps on Google Cloud:  more dev, less opsServerless Apps on Google Cloud:  more dev, less ops
Serverless Apps on Google Cloud: more dev, less ops
Joseph Lust
 
Serverless Apps on Google Cloud: more dev, less ops
Serverless Apps on Google Cloud: more dev, less opsServerless Apps on Google Cloud: more dev, less ops
Serverless Apps on Google Cloud: more dev, less ops
mabl
 
There is something about serverless
There is something about serverlessThere is something about serverless
There is something about serverless
gjdevos
 
Cloud arch patterns
Cloud arch patternsCloud arch patterns
Cloud arch patterns
Corey Huinker
 
Get Your Head in the Cloud - Lessons in GPU Computing with Schlumberger
Get Your Head in the Cloud - Lessons in GPU Computing with SchlumbergerGet Your Head in the Cloud - Lessons in GPU Computing with Schlumberger
Get Your Head in the Cloud - Lessons in GPU Computing with Schlumberger
inside-BigData.com
 
Kafka Summit NYC 2017 - Scalable Real-Time Complex Event Processing @ Uber
Kafka Summit NYC 2017 - Scalable Real-Time Complex Event Processing @ UberKafka Summit NYC 2017 - Scalable Real-Time Complex Event Processing @ Uber
Kafka Summit NYC 2017 - Scalable Real-Time Complex Event Processing @ Uber
confluent
 
Serverless? How (not) to develop, deploy and operate serverless applications.
Serverless? How (not) to develop, deploy and operate serverless applications.Serverless? How (not) to develop, deploy and operate serverless applications.
Serverless? How (not) to develop, deploy and operate serverless applications.
gjdevos
 
USENIX LISA15: How TubeMogul Handles over One Trillion HTTP Requests a Month
USENIX LISA15: How TubeMogul Handles over One Trillion HTTP Requests a MonthUSENIX LISA15: How TubeMogul Handles over One Trillion HTTP Requests a Month
USENIX LISA15: How TubeMogul Handles over One Trillion HTTP Requests a Month
Nicolas Brousse
 
Node.js Web Apps @ ebay scale
Node.js Web Apps @ ebay scaleNode.js Web Apps @ ebay scale
Node.js Web Apps @ ebay scale
Dmytro Semenov
 
Building a Dev/Test Cloud with Apache CloudStack
Building a Dev/Test Cloud with Apache CloudStackBuilding a Dev/Test Cloud with Apache CloudStack
Building a Dev/Test Cloud with Apache CloudStack
ke4qqq
 
kranonit S06E01 Игорь Цинько: High load
kranonit S06E01 Игорь Цинько: High loadkranonit S06E01 Игорь Цинько: High load
kranonit S06E01 Игорь Цинько: High loadKrivoy Rog IT Community
 
Writing and deploying serverless python applications
Writing and deploying serverless python applicationsWriting and deploying serverless python applications
Writing and deploying serverless python applications
Cesar Cardenas Desales
 
Serverless for High Performance Computing
Serverless for High Performance ComputingServerless for High Performance Computing
Serverless for High Performance Computing
Luciano Mammino
 
SCM Puppet: from an intro to the scaling
SCM Puppet: from an intro to the scalingSCM Puppet: from an intro to the scaling
SCM Puppet: from an intro to the scaling
Stanislav Osipov
 
Ensuring Performance in a Fast-Paced Environment (CMG 2014)
Ensuring Performance in a Fast-Paced Environment (CMG 2014)Ensuring Performance in a Fast-Paced Environment (CMG 2014)
Ensuring Performance in a Fast-Paced Environment (CMG 2014)
Martin Spier
 
Serverless for High Performance Computing
Serverless for High Performance ComputingServerless for High Performance Computing
Serverless for High Performance Computing
Luciano Mammino
 
Puppet Camp Silicon Valley 2015: How TubeMogul reached 10,000 Puppet Deployme...
Puppet Camp Silicon Valley 2015: How TubeMogul reached 10,000 Puppet Deployme...Puppet Camp Silicon Valley 2015: How TubeMogul reached 10,000 Puppet Deployme...
Puppet Camp Silicon Valley 2015: How TubeMogul reached 10,000 Puppet Deployme...
Nicolas Brousse
 

Similar to Lush E-Commerce Migration - Google NEXT London (20)

Deploying Perl apps on dotCloud
Deploying Perl apps on dotCloudDeploying Perl apps on dotCloud
Deploying Perl apps on dotCloud
 
Scalable complex event processing on samza @UBER
Scalable complex event processing on samza @UBERScalable complex event processing on samza @UBER
Scalable complex event processing on samza @UBER
 
PHP At 5000 Requests Per Second: Hootsuite’s Scaling Story
PHP At 5000 Requests Per Second: Hootsuite’s Scaling StoryPHP At 5000 Requests Per Second: Hootsuite’s Scaling Story
PHP At 5000 Requests Per Second: Hootsuite’s Scaling Story
 
Serverless Apps on Google Cloud: more dev, less ops
Serverless Apps on Google Cloud:  more dev, less opsServerless Apps on Google Cloud:  more dev, less ops
Serverless Apps on Google Cloud: more dev, less ops
 
Serverless Apps on Google Cloud: more dev, less ops
Serverless Apps on Google Cloud: more dev, less opsServerless Apps on Google Cloud: more dev, less ops
Serverless Apps on Google Cloud: more dev, less ops
 
There is something about serverless
There is something about serverlessThere is something about serverless
There is something about serverless
 
Cloud arch patterns
Cloud arch patternsCloud arch patterns
Cloud arch patterns
 
Get Your Head in the Cloud - Lessons in GPU Computing with Schlumberger
Get Your Head in the Cloud - Lessons in GPU Computing with SchlumbergerGet Your Head in the Cloud - Lessons in GPU Computing with Schlumberger
Get Your Head in the Cloud - Lessons in GPU Computing with Schlumberger
 
Kafka Summit NYC 2017 - Scalable Real-Time Complex Event Processing @ Uber
Kafka Summit NYC 2017 - Scalable Real-Time Complex Event Processing @ UberKafka Summit NYC 2017 - Scalable Real-Time Complex Event Processing @ Uber
Kafka Summit NYC 2017 - Scalable Real-Time Complex Event Processing @ Uber
 
Serverless? How (not) to develop, deploy and operate serverless applications.
Serverless? How (not) to develop, deploy and operate serverless applications.Serverless? How (not) to develop, deploy and operate serverless applications.
Serverless? How (not) to develop, deploy and operate serverless applications.
 
USENIX LISA15: How TubeMogul Handles over One Trillion HTTP Requests a Month
USENIX LISA15: How TubeMogul Handles over One Trillion HTTP Requests a MonthUSENIX LISA15: How TubeMogul Handles over One Trillion HTTP Requests a Month
USENIX LISA15: How TubeMogul Handles over One Trillion HTTP Requests a Month
 
Node.js Web Apps @ ebay scale
Node.js Web Apps @ ebay scaleNode.js Web Apps @ ebay scale
Node.js Web Apps @ ebay scale
 
Building a Dev/Test Cloud with Apache CloudStack
Building a Dev/Test Cloud with Apache CloudStackBuilding a Dev/Test Cloud with Apache CloudStack
Building a Dev/Test Cloud with Apache CloudStack
 
kranonit S06E01 Игорь Цинько: High load
kranonit S06E01 Игорь Цинько: High loadkranonit S06E01 Игорь Цинько: High load
kranonit S06E01 Игорь Цинько: High load
 
Writing and deploying serverless python applications
Writing and deploying serverless python applicationsWriting and deploying serverless python applications
Writing and deploying serverless python applications
 
Serverless for High Performance Computing
Serverless for High Performance ComputingServerless for High Performance Computing
Serverless for High Performance Computing
 
SCM Puppet: from an intro to the scaling
SCM Puppet: from an intro to the scalingSCM Puppet: from an intro to the scaling
SCM Puppet: from an intro to the scaling
 
Ensuring Performance in a Fast-Paced Environment (CMG 2014)
Ensuring Performance in a Fast-Paced Environment (CMG 2014)Ensuring Performance in a Fast-Paced Environment (CMG 2014)
Ensuring Performance in a Fast-Paced Environment (CMG 2014)
 
Serverless for High Performance Computing
Serverless for High Performance ComputingServerless for High Performance Computing
Serverless for High Performance Computing
 
Puppet Camp Silicon Valley 2015: How TubeMogul reached 10,000 Puppet Deployme...
Puppet Camp Silicon Valley 2015: How TubeMogul reached 10,000 Puppet Deployme...Puppet Camp Silicon Valley 2015: How TubeMogul reached 10,000 Puppet Deployme...
Puppet Camp Silicon Valley 2015: How TubeMogul reached 10,000 Puppet Deployme...
 

Recently uploaded

Planning Of Procurement o different goods and services
Planning Of Procurement o different goods and servicesPlanning Of Procurement o different goods and services
Planning Of Procurement o different goods and services
JoytuBarua2
 
Basic Industrial Engineering terms for apparel
Basic Industrial Engineering terms for apparelBasic Industrial Engineering terms for apparel
Basic Industrial Engineering terms for apparel
top1002
 
Hybrid optimization of pumped hydro system and solar- Engr. Abdul-Azeez.pdf
Hybrid optimization of pumped hydro system and solar- Engr. Abdul-Azeez.pdfHybrid optimization of pumped hydro system and solar- Engr. Abdul-Azeez.pdf
Hybrid optimization of pumped hydro system and solar- Engr. Abdul-Azeez.pdf
fxintegritypublishin
 
Final project report on grocery store management system..pdf
Final project report on grocery store management system..pdfFinal project report on grocery store management system..pdf
Final project report on grocery store management system..pdf
Kamal Acharya
 
14 Template Contractual Notice - EOT Application
14 Template Contractual Notice - EOT Application14 Template Contractual Notice - EOT Application
14 Template Contractual Notice - EOT Application
SyedAbiiAzazi1
 
road safety engineering r s e unit 3.pdf
road safety engineering  r s e unit 3.pdfroad safety engineering  r s e unit 3.pdf
road safety engineering r s e unit 3.pdf
VENKATESHvenky89705
 
Gen AI Study Jams _ For the GDSC Leads in India.pdf
Gen AI Study Jams _ For the GDSC Leads in India.pdfGen AI Study Jams _ For the GDSC Leads in India.pdf
Gen AI Study Jams _ For the GDSC Leads in India.pdf
gdsczhcet
 
Understanding Inductive Bias in Machine Learning
Understanding Inductive Bias in Machine LearningUnderstanding Inductive Bias in Machine Learning
Understanding Inductive Bias in Machine Learning
SUTEJAS
 
Forklift Classes Overview by Intella Parts
Forklift Classes Overview by Intella PartsForklift Classes Overview by Intella Parts
Forklift Classes Overview by Intella Parts
Intella Parts
 
Pile Foundation by Venkatesh Taduvai (Sub Geotechnical Engineering II)-conver...
Pile Foundation by Venkatesh Taduvai (Sub Geotechnical Engineering II)-conver...Pile Foundation by Venkatesh Taduvai (Sub Geotechnical Engineering II)-conver...
Pile Foundation by Venkatesh Taduvai (Sub Geotechnical Engineering II)-conver...
AJAYKUMARPUND1
 
Technical Drawings introduction to drawing of prisms
Technical Drawings introduction to drawing of prismsTechnical Drawings introduction to drawing of prisms
Technical Drawings introduction to drawing of prisms
heavyhaig
 
Water billing management system project report.pdf
Water billing management system project report.pdfWater billing management system project report.pdf
Water billing management system project report.pdf
Kamal Acharya
 
6th International Conference on Machine Learning & Applications (CMLA 2024)
6th International Conference on Machine Learning & Applications (CMLA 2024)6th International Conference on Machine Learning & Applications (CMLA 2024)
6th International Conference on Machine Learning & Applications (CMLA 2024)
ClaraZara1
 
Fundamentals of Induction Motor Drives.pptx
Fundamentals of Induction Motor Drives.pptxFundamentals of Induction Motor Drives.pptx
Fundamentals of Induction Motor Drives.pptx
manasideore6
 
Cosmetic shop management system project report.pdf
Cosmetic shop management system project report.pdfCosmetic shop management system project report.pdf
Cosmetic shop management system project report.pdf
Kamal Acharya
 
Heap Sort (SS).ppt FOR ENGINEERING GRADUATES, BCA, MCA, MTECH, BSC STUDENTS
Heap Sort (SS).ppt FOR ENGINEERING GRADUATES, BCA, MCA, MTECH, BSC STUDENTSHeap Sort (SS).ppt FOR ENGINEERING GRADUATES, BCA, MCA, MTECH, BSC STUDENTS
Heap Sort (SS).ppt FOR ENGINEERING GRADUATES, BCA, MCA, MTECH, BSC STUDENTS
Soumen Santra
 
Steel & Timber Design according to British Standard
Steel & Timber Design according to British StandardSteel & Timber Design according to British Standard
Steel & Timber Design according to British Standard
AkolbilaEmmanuel1
 
NO1 Uk best vashikaran specialist in delhi vashikaran baba near me online vas...
NO1 Uk best vashikaran specialist in delhi vashikaran baba near me online vas...NO1 Uk best vashikaran specialist in delhi vashikaran baba near me online vas...
NO1 Uk best vashikaran specialist in delhi vashikaran baba near me online vas...
Amil Baba Dawood bangali
 
Tutorial for 16S rRNA Gene Analysis with QIIME2.pdf
Tutorial for 16S rRNA Gene Analysis with QIIME2.pdfTutorial for 16S rRNA Gene Analysis with QIIME2.pdf
Tutorial for 16S rRNA Gene Analysis with QIIME2.pdf
aqil azizi
 
Harnessing WebAssembly for Real-time Stateless Streaming Pipelines
Harnessing WebAssembly for Real-time Stateless Streaming PipelinesHarnessing WebAssembly for Real-time Stateless Streaming Pipelines
Harnessing WebAssembly for Real-time Stateless Streaming Pipelines
Christina Lin
 

Recently uploaded (20)

Planning Of Procurement o different goods and services
Planning Of Procurement o different goods and servicesPlanning Of Procurement o different goods and services
Planning Of Procurement o different goods and services
 
Basic Industrial Engineering terms for apparel
Basic Industrial Engineering terms for apparelBasic Industrial Engineering terms for apparel
Basic Industrial Engineering terms for apparel
 
Hybrid optimization of pumped hydro system and solar- Engr. Abdul-Azeez.pdf
Hybrid optimization of pumped hydro system and solar- Engr. Abdul-Azeez.pdfHybrid optimization of pumped hydro system and solar- Engr. Abdul-Azeez.pdf
Hybrid optimization of pumped hydro system and solar- Engr. Abdul-Azeez.pdf
 
Final project report on grocery store management system..pdf
Final project report on grocery store management system..pdfFinal project report on grocery store management system..pdf
Final project report on grocery store management system..pdf
 
14 Template Contractual Notice - EOT Application
14 Template Contractual Notice - EOT Application14 Template Contractual Notice - EOT Application
14 Template Contractual Notice - EOT Application
 
road safety engineering r s e unit 3.pdf
road safety engineering  r s e unit 3.pdfroad safety engineering  r s e unit 3.pdf
road safety engineering r s e unit 3.pdf
 
Gen AI Study Jams _ For the GDSC Leads in India.pdf
Gen AI Study Jams _ For the GDSC Leads in India.pdfGen AI Study Jams _ For the GDSC Leads in India.pdf
Gen AI Study Jams _ For the GDSC Leads in India.pdf
 
Understanding Inductive Bias in Machine Learning
Understanding Inductive Bias in Machine LearningUnderstanding Inductive Bias in Machine Learning
Understanding Inductive Bias in Machine Learning
 
Forklift Classes Overview by Intella Parts
Forklift Classes Overview by Intella PartsForklift Classes Overview by Intella Parts
Forklift Classes Overview by Intella Parts
 
Pile Foundation by Venkatesh Taduvai (Sub Geotechnical Engineering II)-conver...
Pile Foundation by Venkatesh Taduvai (Sub Geotechnical Engineering II)-conver...Pile Foundation by Venkatesh Taduvai (Sub Geotechnical Engineering II)-conver...
Pile Foundation by Venkatesh Taduvai (Sub Geotechnical Engineering II)-conver...
 
Technical Drawings introduction to drawing of prisms
Technical Drawings introduction to drawing of prismsTechnical Drawings introduction to drawing of prisms
Technical Drawings introduction to drawing of prisms
 
Water billing management system project report.pdf
Water billing management system project report.pdfWater billing management system project report.pdf
Water billing management system project report.pdf
 
6th International Conference on Machine Learning & Applications (CMLA 2024)
6th International Conference on Machine Learning & Applications (CMLA 2024)6th International Conference on Machine Learning & Applications (CMLA 2024)
6th International Conference on Machine Learning & Applications (CMLA 2024)
 
Fundamentals of Induction Motor Drives.pptx
Fundamentals of Induction Motor Drives.pptxFundamentals of Induction Motor Drives.pptx
Fundamentals of Induction Motor Drives.pptx
 
Cosmetic shop management system project report.pdf
Cosmetic shop management system project report.pdfCosmetic shop management system project report.pdf
Cosmetic shop management system project report.pdf
 
Heap Sort (SS).ppt FOR ENGINEERING GRADUATES, BCA, MCA, MTECH, BSC STUDENTS
Heap Sort (SS).ppt FOR ENGINEERING GRADUATES, BCA, MCA, MTECH, BSC STUDENTSHeap Sort (SS).ppt FOR ENGINEERING GRADUATES, BCA, MCA, MTECH, BSC STUDENTS
Heap Sort (SS).ppt FOR ENGINEERING GRADUATES, BCA, MCA, MTECH, BSC STUDENTS
 
Steel & Timber Design according to British Standard
Steel & Timber Design according to British StandardSteel & Timber Design according to British Standard
Steel & Timber Design according to British Standard
 
NO1 Uk best vashikaran specialist in delhi vashikaran baba near me online vas...
NO1 Uk best vashikaran specialist in delhi vashikaran baba near me online vas...NO1 Uk best vashikaran specialist in delhi vashikaran baba near me online vas...
NO1 Uk best vashikaran specialist in delhi vashikaran baba near me online vas...
 
Tutorial for 16S rRNA Gene Analysis with QIIME2.pdf
Tutorial for 16S rRNA Gene Analysis with QIIME2.pdfTutorial for 16S rRNA Gene Analysis with QIIME2.pdf
Tutorial for 16S rRNA Gene Analysis with QIIME2.pdf
 
Harnessing WebAssembly for Real-time Stateless Streaming Pipelines
Harnessing WebAssembly for Real-time Stateless Streaming PipelinesHarnessing WebAssembly for Real-time Stateless Streaming Pipelines
Harnessing WebAssembly for Real-time Stateless Streaming Pipelines
 

Lush E-Commerce Migration - Google NEXT London

  • 2. ● Why did we do this? ● What did we do? ● How we did it ● What were the benefits? ● What’s next? Agenda
  • 5. Why Move? ● Not aligned to Lush’s Ethics ● Blackbox / Closed Solution ● No Flexibility Inside the Platform ● Poor Support ● Limited Capabilities ● Excessive Costs ● Poor Billing Model ● Vendor Lock In
  • 6. Why GCP? ● Future Proofing Lush’s Technology Stack ● Aligns to Lush’s Ethical Approach ● No Vendor Lock-in (Open Cloud) ● Full Control over Infrastructure ● Fast Network and Robust Backbone ● Per minute billing ● Sustained Use Discounts ● Preemptible VM Instances ● Brilliant Support
  • 7. Timescales November December 11th November Project kicks off 18th November Contract signed 17th - 20th December Go live period 22nd December End of service from previous supplier
  • 9. Warehouse SOLSOL SML QMS OS OSA SOLR SOLR WEB SOLR UK SITE Warehouse SML QMS SOL OS OSA SOLR SOLR WEB SOLR UK SITE NEW COUNTRY CUSTOMER SERVICES SINGLE SIGN ON CONTENT REPO
  • 10. Lift and shift + select managed services Compute Engine Cloud SQL 2nd generation Cloud Load Balancing Google Stackdriver
  • 11. Memcache Compute Engine Memcache Compute Engine Memcache Compute Engine Varnish Compute Engine Memcache Compute Engine Cloud SQL Cloud SQL Cloud SQL Cloud SQL Solr (Search) Compute Engine Frontend Compute Engine Content Repo Compute Engine Order Store Compute Engine SSO Compute Engine Varnish Compute Engine Cloud Load Balancing
  • 12. europe-west1 UK and EMEA asia-east1 India, HK, JP, and APAC us-central1 US and LATAM
  • 13. Production Infrastructure ● 3 Locations, 3 Regions, 9 Zones ● 175+ Instances (Autoscaler) ● 36 Cloud SQL 2nd generation Instances ● More of the same for non-production, i.e. development and staging
  • 14. How we did it Sam Bashton
  • 16. MVC: Minimum Viable Cloud ● Any machine can be terminated at any time and will self heal ● Infrastructure active/active in at least two zones ● Infrastructure defined as code ● Use drop-in replacement services where available ● Automated deployments
  • 17. Infrastructure as Code ● Modern sysadmin (‘devops’): ○ 60% dev ○ 40% ops ● Don’t build infrastructure - build templates that build infrastructure
  • 18. Infrastructure as Code ● Pre-built ‘building block’ templates - Terraform modules ● 80/20 rule - 80% of the work is standard ● Allows us to concentrate of the interesting 20% ● Massively reduces time to deliver
  • 19. Reducing Repetition ● Templates heavily re-used: ○ Multiple environments ■ Dev ■ Stage ■ Production ○ Multiple Regions ■ APAC ■ EMEA ■ US
  • 20. Terraform ● Build infrastructure across multiple regions ● One set of templates ● Variables for differences between environments module "sso-instance-template" { source = "git::ssh://git@foo/tfmodules/instance-tmpl.git" machine_type = "${var.sso_machine_type}" preemptible = "${var.preemptible}" envname = "${var.envname}" service = "sso" domain = "${var.envname}.${var.domain}" fw_tags = ["global", "sso", "gluster-client"] needs_nat = "natted" startup_script = "gs://${var.bootstrap_bucket}/lush-sso-bootstrap.sh" disk_image = "${var.disk_image}" gcp_region = "${var.gcp_region}" } module "sso-group-manager" { source = "git::ssh://git@foo/tfmodules/tf-gce-instance-group-manager.git" service = "sso" instance_template = "${module.sso-instance-template.link-subnets}" }
  • 21. Production Infrastructure Code ● 3 Locations, 3 Regions, 9 Zones ● 175+ Instances (Autoscaler) ● 36 Cloud SQL 2nd generation Instances ● < 2200 lines of Terraform code
  • 22. Ready Meal Images ● Part-baked images created with Packer ● Boot time configuration with Puppet
  • 24. Production Stage Development Github Branch: develop Jenkins .deb build Multiple Regions Jenkins .deb install GCS Bucket Deb Repository Multiple Regions Jenkins .deb install Multiple Regions Jenkins .deb install GCS Bucket Deb Repository GCS Bucket Deb Repository Jenkins .deb promote Github Branch: stable Or master Jenkins .deb build Deployments
  • 25. Logging and Monitoring ● Stackdriver ○ Agent installed on every instances, exports logs and metrics
  • 26. Difficulties Faced ● Poor Terraform support for Cloud SQL 2nd Generation ○ Yay for Open Source - we could fix this ourselves (PRs awaiting merge) ● Old PaaS used MySQL - but no mechanism for database replication available ○ Required a full dump and restore, meaning multi-hour downtime
  • 27. Money Saving ● Autoscaling ensures we only run the infrastructure necessary for the current levels of traffic ● Switching dev/staging to Preemptible VMs has saved £££ ● Right-sizing recommendations saved more ££ ● 40% saving
  • 28. Key Improvements ● Global network ● Simplified Infrastructure ● Cheaper! ● Autoscaling
  • 30. What’s Next? Now: ● Service Orientated Architecture Transformation ● Containerisation of Application (GKE) ● Data Warehouse (Big Query & Data Proc and Dataflow) ● Cloud Native Components (Pub/Sub & Dataflow). Future: ● No-ops approach - Cloud Functions. ● Machine Learning and AI Capabilities. ● Speech, Vision and Video APIs.