Slide 1

Slide 1 text

edX Architecture and Deployment [email protected] ● Maintaining multiple edX deployments ● Keeping data, accounts and access secure and isolated ● Reliable, continuous and repeatable upgrades and rollbacks

Slide 2

Slide 2 text

What's new? ● Separate AWS Account used for each customer ● AMI based deployments ● Quality gates using a canary, easy AMI based rollbacks ● Push button updates with Jenkins and Asgard

Slide 3

Slide 3 text

Terminology ● EC2 – Elastic Compute, virtual server running Ubuntu Linux ● VPC – Virtual Private Cloud ● AMI – Amazon Machine Image ● RDS – Cloud Relational Database (MySQL) ● Asgard – Netflix tool for deployment and AWS EC2 cluster management ● Ansible – Python based Configuration management tool ● Abbey – Python script for launching fully baked AMIs containing the software and configuration needed for a set of edX services.

Slide 4

Slide 4 text

What makes up an edX deployment?

Slide 5

Slide 5 text

Deployment Workflow

Slide 6

Slide 6 text

AWS/MongoHQ Costs Not including bandwidth, S3, Rout53 and Monitoring ● Web server (edxapp, worker) – 2xsmall / 2xmedium ~ $260 (x2) ● Grading and Queuing (grader, xqueue, rabbitmq) – 2xmicro, 4xsmall ~ $200 (x2) ● Forums (forums, elastic search) – 4xsmall ~ $140 (x2) ● VPC / Operations (nat, bastion, asgard, jenkins) – 3xsmall, 2xmicro ~ $160 (x2) ● Load Balancers – 4 (not including bandwidth) ~ $70 (x2) ● EBS ~ $20 (x2) ● RDS – (1 multi-AZ large instance) ~ $470 + $60 ● MongoHQ - (large w/ replica set) ~ $1700 TOTAL ~ $4000