Slides from JustEat's Andrew Brown and Alberto Blanco at the 1st London HashiCorp Meetup
Andrew - Core Platform using Consul & Packer
Alberto - Acquired Platforms using Terraform & Vagrant
3. ⢠The worldâs leading digital marketplace for takeaway food delivery
⢠Operate in 13 markets around the globe
⢠Platform peak ~ 2,500 orders per minute
JUST EAT
4. TECHNOLOGY
⢠Migrated to AWS (Amazon Web Services) 4 years ago
⢠Run hundreds of Instances at peak - daily scaling to match demand
⢠Heavily utilise CloudFormation
5. AWS - Setup
⢠Multiple AWS Accounts
⢠QA Daily Launch and Teardown
⢠On average an instance less than 3 days old
6. Before ConsulâŚ..
CONFIGURATION
⢠JSON file bundled with application package
⢠Deployment step to âGenerate Configâ
SETTINGS
⢠Feature settingsapi
⢠key/values stored in DynamoDB
8. Consul Setup
â Consul Cluster per environment
â JSON config stored in GitHub in templated format
â Generator run via TeamCity
â Config committed to âGenerated Repositoryâ
9.
10.
11. After ConsulâŚ.
⢠Instance joins the Consul Cluster during Deployment
⢠Service registered on consul cluster
⢠Consul-Template generates config files
12. Benefits of Consul
⢠No need to cycle instances (seconds vs minutes)
⢠PR to Github to change and validate Config
⢠Consistent Config
⢠UI - Platform and Health Overview
13. Consul MetaData
⢠Recently launched a âPlatform Consul Clusterâ
⢠MetaData Generated using same mechanism as Features
⢠Powering other tools used in Just Eat
14. FinallyâŚ. Packer
BAKED AMI (Amazon Machine Image)
⢠All Dependencies Pre-installed
⢠CloudFormation reduced (removed 500 lines of json)
⢠Significantly reduced deployment time (Linux and Windows)
⢠AMI ID pushed to Consul - Config now stores âAMI Nameâ
26. How we deal with it
Consul for config
...and tfstate files
27. How we deal with it
On top of the base we put the rest
28. How we deal with it
On top of the base we put the rest
29. How we deal with it
On top of the base we put the rest
30. Here our tools...
â Terraform, the base
â Ansible for provisioning
â Capistrano for some deployments
â Consul for configs and tfstate
â Vagrant for local development
â Jenkins for orchestration
31. More HashiCorp to come for us...
â Packer for sharing artifacts and images
between providers
â Vault for secrets