The Wild West of High Availability in Open edX
Copyright © 2017 OpenCraft GmbH
This text and images in this presentation are released under the Creative Commons Attribution-ShareAlike 3.0 licence, except for any logos.
Code samples are released under the AGPL v3 license unless otherwise noted.
Brandon DeRosier
brandon@opencraft.com
Feanil Patel
feanil@edx.org
Agenda
Managing Infrastructure
Fork Management
Choosing Your Stack
Examples
Choosing your stack
Outline
On Premise
Amazon Web Services
OpenStack
Other Infra Providers
Example:
The bare minimum
Sandbox
Sandbox?
… sort of
Definitely not
a sandbox!
If desired, use managed databases
Example:
A large stack
Where we left off:
Separate forums...
Separate workers...
Analytics!
€commer¢e $$$
Well...
How do we make this smaller?
Well...
How do we make this smaller?
Maybe try the managed services again…?
External RabbitMQ...
External MongoDB...
Hmm...
That didn’t do very much….
Hmm...
That didn’t do very much….
But maybe we can replace all these load balancers…?
Service Discovery!
Service Discovery!
Very little benefit for a small
deployment, though...
Managing Infrastructure
Tools
Tools
Fork management tips
Fork management tips
The Four Horsemen Of
Technical Debt
1. KEEP YOUR DIFFS SMALL
2. Upstream Everything
3. Don’t edit Ansible output
3. Don’t edit Ansible output
3.5. Also, don’t edit settings code directly
4. Avoid template overrides in themes
Brandon DeRosier
brandon@opencraft.com
Feanil Patel
feanil@edx.org
Questions?
Not part of presentation: Cloud Agnostic Stack Choices
Infrastructure as Code Options
The next 3 pages talk about different tools for managing infrastructure as code.
Ansible Modules
Cloudformation
Terraform
GoCD: https://gocd.io
Configuration Repo
Asgard