AWS Summit London 2014 | Customer Stories | Just Eat

1,069
-1

Published on

Nearly 1,000 takeaways ordered a minute from hungry consumers, with near real time confirmation from restaurants and delivery of their food just 45 minutes later is a hard technical challenge.

AWS allows the many small engineering teams at JUST EAT to take responsibility to meet that challenge, as they build and operate a platform that delivers a takeaway experience for consumers to love.

Learn how we migrated our e-commerce platform to AWS and organise both our platform and teams around the the twin goals of rapid change and high availability. Watch as during the session we deploy changes and break things live in production, and see how the JUST EAT platform is designed around AWS to recover quickly and automatically.

Published in: Technology, Business
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,069
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
0
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

AWS Summit London 2014 | Customer Stories | Just Eat

  1. 1. © 2014 Amazon.com, Inc. and its affiliates. All rights reserved. May not be copied, modified, or distributed in whole or in part without the express consent of Amazon.com, Inc. Customer Story: JUST EAT Daniel Richardson, Director of Engineering 30 APRIL 2014
  2. 2. •  13 countries •  36,000 restaurants •  Nearly 6 million active accounts •  Nearly 1000 orders a minute at peak
  3. 3. What we use Amazon EC2 Amazon EMR Amazon Route 53 Elastic Load Balancing AWS Direct Connect Amazon VPC Auto Scaling Amazon S3 Amazon EBS Amazon Glacier CloudFront DynamoDB Amazon RDS Amazon SimpleDB Amazon Redshift CloudWatch AWS Data Pipeline AWS CloudFormation IAM Amazon SES Amazon SNS Amazon SQS Amazon SWF
  4. 4. Saturday night in the UK •  http://live.just-eat.com
  5. 5. Engineering goals High Availability Rapid Change
  6. 6. How we meet our goals Teams •  Small •  Independent •  Responsible from development to live •  Focused on features for consumers and restaurants Architecture •  Small components •  Loosely coupled •  Highly available •  Designed for failure •  Infrastructure as code
  7. 7. Meeting our goals with AWS •  We want small, independent teams that own loosely coupled components •  Separate platform into many CloudFormation stacks
  8. 8. CloudFormation stacks and teams Platform Services Websites and Apps APIs
  9. 9. Meeting our goals with AWS •  We want teams to take responsibility for high availability of their components •  Make use of highly available building blocks Auto Scaling Amazon Route 53 Elastic Load Balancing Amazon S3 Amazon EBS Amazon Glacier DynamoDB Amazon RDS Amazon SES Amazon SNS Amazon SQS
  10. 10. Inside a stack – Order API Platform Services Websites and Apps APIs
  11. 11. Launching a stack – Order API •  CloudFormation template is generated as output •  The template defines the entire stack •  CloudFormation generates resources defined in template •  Running stack •  Ruby command line utility takes information about the feature as parameters
  12. 12. Inside a stack – Order API Auto Scaling group eu-west-1a eu-west-1b eu-west-1c Amazon S3 bucket Amazon DynamoDB table Amazon SQS queue Amazon SNS topic IAM role Elastic Load Balancer Route53 hosted zone
  13. 13. Demo: High availability (…or how not to have your Saturday night ruined)
  14. 14. High availability Auto Scaling group eu-west-1a eu-west-1b eu-west-1c Elastic Load Balancer
 Performs health checks JCT devices in restaurants Active instance Backup instance Devices connect to Elastic IP Address
  15. 15. High availability Auto Scaling group eu-west-1a eu-west-1b eu-west-1c Elastic Load Balancer
 Performs health checks JCT devices in restaurants Backup instance
  16. 16. High availability Auto Scaling group eu-west-1a eu-west-1b eu-west-1c Elastic Load Balancer
 Performs health checks JCT devices in restaurants Active instance Backup instance
  17. 17. Meeting our goals with AWS •  We want teams that can focus on building new features that customers will love •  Treat infrastructure as code
  18. 18. Order workflow Order placed Send to restaurant Accepted RefusedAnalysis Good Potential Issue Confirmation Email Text Message
  19. 19. Order workflow Orders Analysis Potential issue Good Send to restaurant Accepted Refused Confirmation email Text message Publish message to topic Other parts of the platform can subscribe
  20. 20. JustSaying •  Open source library for publishing and consuming events / messages over SNS •  https://github.com/justeat/
  21. 21. JustSaying public class OrderAccepted : Message { public OrderAccepted(int orderId) { OrderId = orderId; } public int OrderId { get; private set; } } var publisher = FluentNotificationStack.Register(configuration => { configuration.Component = Component.OrderValidator; configuration.PublishFailureReAttempts = 3; }) .WithSnsMessagePublisher<OrderAccepted>("OrderProcessing"); publisher.Publish(new OrderAccepted(7349753));
  22. 22. AWS allows us to meet our goals •  Small teams that own loosely coupled components •  Teams take responsibility for high availability of their components •  Teams that can focus on building new features that customers will love
  23. 23. Find out more •  Blog – http://tech.just-eat.com •  Open source - https://github.com/justeat •  Yes, we’re hiring - http://tech.just-eat.com/jobs •  Come and talk to us later – look for the t-shirts

×