際際滷

際際滷Share 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?
 Whats next?
Agenda
Why?
Ryan Kerry, Lush
Who are Lush?
Why Move?
 Not aligned to Lushs 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 Lushs
Technology Stack
 Aligns to Lushs 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
 Dont 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
Whats Next?
Ryan Kerry, Lush
Whats 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 (8)

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
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

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
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: Hootsuites Scaling Story
PHP At 5000 Requests Per Second: Hootsuites Scaling StoryPHP At 5000 Requests Per Second: Hootsuites Scaling Story
PHP At 5000 Requests Per Second: Hootsuites 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
mabl
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
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 load
Krivoy 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
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: Hootsuites Scaling Story
PHP At 5000 Requests Per Second: Hootsuites Scaling StoryPHP At 5000 Requests Per Second: Hootsuites Scaling Story
PHP At 5000 Requests Per Second: Hootsuites 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
mabl
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
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 load
Krivoy 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

Recently uploaded (20)

Sachpazis: Foundation Analysis and Design: Single Piles
Sachpazis: Foundation Analysis and Design: Single PilesSachpazis: Foundation Analysis and Design: Single Piles
Sachpazis: Foundation Analysis and Design: Single Piles
Dr.Costas Sachpazis
AI, Tariffs and Supply Chains in Knowledge Graphs
AI, Tariffs and Supply Chains in Knowledge GraphsAI, Tariffs and Supply Chains in Knowledge Graphs
AI, Tariffs and Supply Chains in Knowledge Graphs
Max De Marzi
Air pollution is contamination of the indoor or outdoor environment by any ch...
Air pollution is contamination of the indoor or outdoor environment by any ch...Air pollution is contamination of the indoor or outdoor environment by any ch...
Air pollution is contamination of the indoor or outdoor environment by any ch...
dhanashree78
CFOT Fiber Optics FOA CERTIFICATION.pptx
CFOT Fiber Optics FOA CERTIFICATION.pptxCFOT Fiber Optics FOA CERTIFICATION.pptx
CFOT Fiber Optics FOA CERTIFICATION.pptx
MohamedShabana37
BS_EN_ISO_19650_Detailed_Presentation.pptx
BS_EN_ISO_19650_Detailed_Presentation.pptxBS_EN_ISO_19650_Detailed_Presentation.pptx
BS_EN_ISO_19650_Detailed_Presentation.pptx
VinkuMeena
Equipment for Gas Metal Arc Welding Process
Equipment for Gas Metal Arc Welding ProcessEquipment for Gas Metal Arc Welding Process
Equipment for Gas Metal Arc Welding Process
AhmadKamil87
TM-ASP-101-RF_Air Press manual crimping machine.pdf
TM-ASP-101-RF_Air Press manual crimping machine.pdfTM-ASP-101-RF_Air Press manual crimping machine.pdf
TM-ASP-101-RF_Air Press manual crimping machine.pdf
ChungLe60
Turbocor Product and Technology Review.pdf
Turbocor Product and Technology Review.pdfTurbocor Product and Technology Review.pdf
Turbocor Product and Technology Review.pdf
Totok Sulistiyanto
15. Smart Cities Big Data, Civic Hackers, and the Quest for a New Utopia.pdf
15. Smart Cities Big Data, Civic Hackers, and the Quest for a New Utopia.pdf15. Smart Cities Big Data, Civic Hackers, and the Quest for a New Utopia.pdf
15. Smart Cities Big Data, Civic Hackers, and the Quest for a New Utopia.pdf
NgocThang9
GROUP-3-GRID-CODE-AND-DISTRIBUTION-CODE.pptx
GROUP-3-GRID-CODE-AND-DISTRIBUTION-CODE.pptxGROUP-3-GRID-CODE-AND-DISTRIBUTION-CODE.pptx
GROUP-3-GRID-CODE-AND-DISTRIBUTION-CODE.pptx
meneememoo
Cloud Computing concepts and technologies
Cloud Computing concepts and technologiesCloud Computing concepts and technologies
Cloud Computing concepts and technologies
ssuser4c9444
Syntax Directed Definitions Synthesized Attributes and Inherited Attributes
Syntax Directed Definitions  Synthesized Attributes  and  Inherited AttributesSyntax Directed Definitions  Synthesized Attributes  and  Inherited Attributes
Syntax Directed Definitions Synthesized Attributes and Inherited Attributes
GunjalSanjay
GM Meeting 070225 TO 130225 for 2024.pptx
GM Meeting 070225 TO 130225 for 2024.pptxGM Meeting 070225 TO 130225 for 2024.pptx
GM Meeting 070225 TO 130225 for 2024.pptx
crdslalcomumbai
Mathematics_behind_machine_learning_INT255.pptx
Mathematics_behind_machine_learning_INT255.pptxMathematics_behind_machine_learning_INT255.pptx
Mathematics_behind_machine_learning_INT255.pptx
ppkmurthy2006
decarbonization steel industry rev1.pptx
decarbonization steel industry rev1.pptxdecarbonization steel industry rev1.pptx
decarbonization steel industry rev1.pptx
gonzalezolabarriaped
Frankfurt University of Applied Science urkunde
Frankfurt University of Applied Science urkundeFrankfurt University of Applied Science urkunde
Frankfurt University of Applied Science urkunde
Lisa Emerson
CS3451-OPERATING-SYSTEM NOTES ALL123.pdf
CS3451-OPERATING-SYSTEM NOTES ALL123.pdfCS3451-OPERATING-SYSTEM NOTES ALL123.pdf
CS3451-OPERATING-SYSTEM NOTES ALL123.pdf
PonniS7
Cyber Security_ Protecting the Digital World.pptx
Cyber Security_ Protecting the Digital World.pptxCyber Security_ Protecting the Digital World.pptx
Cyber Security_ Protecting the Digital World.pptx
Harshith A S
04 MAINTENANCE OF CONCRETE PAVEMENTS.ppt
04  MAINTENANCE OF CONCRETE PAVEMENTS.ppt04  MAINTENANCE OF CONCRETE PAVEMENTS.ppt
04 MAINTENANCE OF CONCRETE PAVEMENTS.ppt
sreenath seenu
Multi objective genetic approach with Ranking
Multi objective genetic approach with RankingMulti objective genetic approach with Ranking
Multi objective genetic approach with Ranking
namisha18
Sachpazis: Foundation Analysis and Design: Single Piles
Sachpazis: Foundation Analysis and Design: Single PilesSachpazis: Foundation Analysis and Design: Single Piles
Sachpazis: Foundation Analysis and Design: Single Piles
Dr.Costas Sachpazis
AI, Tariffs and Supply Chains in Knowledge Graphs
AI, Tariffs and Supply Chains in Knowledge GraphsAI, Tariffs and Supply Chains in Knowledge Graphs
AI, Tariffs and Supply Chains in Knowledge Graphs
Max De Marzi
Air pollution is contamination of the indoor or outdoor environment by any ch...
Air pollution is contamination of the indoor or outdoor environment by any ch...Air pollution is contamination of the indoor or outdoor environment by any ch...
Air pollution is contamination of the indoor or outdoor environment by any ch...
dhanashree78
CFOT Fiber Optics FOA CERTIFICATION.pptx
CFOT Fiber Optics FOA CERTIFICATION.pptxCFOT Fiber Optics FOA CERTIFICATION.pptx
CFOT Fiber Optics FOA CERTIFICATION.pptx
MohamedShabana37
BS_EN_ISO_19650_Detailed_Presentation.pptx
BS_EN_ISO_19650_Detailed_Presentation.pptxBS_EN_ISO_19650_Detailed_Presentation.pptx
BS_EN_ISO_19650_Detailed_Presentation.pptx
VinkuMeena
Equipment for Gas Metal Arc Welding Process
Equipment for Gas Metal Arc Welding ProcessEquipment for Gas Metal Arc Welding Process
Equipment for Gas Metal Arc Welding Process
AhmadKamil87
TM-ASP-101-RF_Air Press manual crimping machine.pdf
TM-ASP-101-RF_Air Press manual crimping machine.pdfTM-ASP-101-RF_Air Press manual crimping machine.pdf
TM-ASP-101-RF_Air Press manual crimping machine.pdf
ChungLe60
Turbocor Product and Technology Review.pdf
Turbocor Product and Technology Review.pdfTurbocor Product and Technology Review.pdf
Turbocor Product and Technology Review.pdf
Totok Sulistiyanto
15. Smart Cities Big Data, Civic Hackers, and the Quest for a New Utopia.pdf
15. Smart Cities Big Data, Civic Hackers, and the Quest for a New Utopia.pdf15. Smart Cities Big Data, Civic Hackers, and the Quest for a New Utopia.pdf
15. Smart Cities Big Data, Civic Hackers, and the Quest for a New Utopia.pdf
NgocThang9
GROUP-3-GRID-CODE-AND-DISTRIBUTION-CODE.pptx
GROUP-3-GRID-CODE-AND-DISTRIBUTION-CODE.pptxGROUP-3-GRID-CODE-AND-DISTRIBUTION-CODE.pptx
GROUP-3-GRID-CODE-AND-DISTRIBUTION-CODE.pptx
meneememoo
Cloud Computing concepts and technologies
Cloud Computing concepts and technologiesCloud Computing concepts and technologies
Cloud Computing concepts and technologies
ssuser4c9444
Syntax Directed Definitions Synthesized Attributes and Inherited Attributes
Syntax Directed Definitions  Synthesized Attributes  and  Inherited AttributesSyntax Directed Definitions  Synthesized Attributes  and  Inherited Attributes
Syntax Directed Definitions Synthesized Attributes and Inherited Attributes
GunjalSanjay
GM Meeting 070225 TO 130225 for 2024.pptx
GM Meeting 070225 TO 130225 for 2024.pptxGM Meeting 070225 TO 130225 for 2024.pptx
GM Meeting 070225 TO 130225 for 2024.pptx
crdslalcomumbai
Mathematics_behind_machine_learning_INT255.pptx
Mathematics_behind_machine_learning_INT255.pptxMathematics_behind_machine_learning_INT255.pptx
Mathematics_behind_machine_learning_INT255.pptx
ppkmurthy2006
decarbonization steel industry rev1.pptx
decarbonization steel industry rev1.pptxdecarbonization steel industry rev1.pptx
decarbonization steel industry rev1.pptx
gonzalezolabarriaped
Frankfurt University of Applied Science urkunde
Frankfurt University of Applied Science urkundeFrankfurt University of Applied Science urkunde
Frankfurt University of Applied Science urkunde
Lisa Emerson
CS3451-OPERATING-SYSTEM NOTES ALL123.pdf
CS3451-OPERATING-SYSTEM NOTES ALL123.pdfCS3451-OPERATING-SYSTEM NOTES ALL123.pdf
CS3451-OPERATING-SYSTEM NOTES ALL123.pdf
PonniS7
Cyber Security_ Protecting the Digital World.pptx
Cyber Security_ Protecting the Digital World.pptxCyber Security_ Protecting the Digital World.pptx
Cyber Security_ Protecting the Digital World.pptx
Harshith A S
04 MAINTENANCE OF CONCRETE PAVEMENTS.ppt
04  MAINTENANCE OF CONCRETE PAVEMENTS.ppt04  MAINTENANCE OF CONCRETE PAVEMENTS.ppt
04 MAINTENANCE OF CONCRETE PAVEMENTS.ppt
sreenath seenu
Multi objective genetic approach with Ranking
Multi objective genetic approach with RankingMulti objective genetic approach with Ranking
Multi objective genetic approach with Ranking
namisha18

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? Whats next? Agenda
  • 5. Why Move? Not aligned to Lushs 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 Lushs Technology Stack Aligns to Lushs 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 Dont 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. Whats 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.