Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Reaching Millions of Girls with Girl Effect

Reaching Millions of Girls with Girl Effect

How do you reach 25 million girls globally who don’t share a common language or background? To scale Girl Effect’s platform and achieve this, we tailored many copies of our site. In 3 years we reworked our CMS and pulled parts into microservices as our infrastructure evolved to support the platform.

Jamie Hewland

March 08, 2019
Tweet

More Decks by Jamie Hewland

Other Decks in Programming

Transcript

  1. Reaching Millions of Girls with Girl Effect Codie Roelf &

    Jamie Hewland ScaleConf 8 March 2019
  2. We build open- source, scalable platforms that allow anyone with

    a mobile phone to access vital information and essential services— putting wellbeing in the palm of their hands. Our Technologies
  3. This talk is about the many things we did to

    reach these users —there was no silver bullet
  4. The Molo Platform • Community features • Profiles, comments, polls,

    surveys, tips, reaction questions • Focus on user-generated content • Many sites of the same shape but with heavy customisation • Skins/CSS • Plugins • Internationalisation • Content
  5. The year is 2014… • Facebook launches Free Basics •

    Simultaneous launch in many countries • Localisation + URL for each country • Incubator with 100 new sites all built with Molo
  6. Countries 0 20 40 60 80 December February April June

    Launched countries "Priority countries"
  7. Hoped to automate our problems away with container orchestration •

    Easy, replicable deployments • Resource-aware scheduling • Health checks & failover
  8. Peak containers • Johannesburg Mesos/Marathon cluster peaks at 30 worker

    nodes • ~255GB RAM, 120 cores, ~900 containers • Bare-metal Hetzner hosts • VMs on self-managed XenServer • Shared with other services (not just Springster or Molo sites) • Team of 4 SREs
  9. E_TOO_MANY_APPS • Could run many sites/containers easily and quickly •

    Running many similar sites as completely separate services • Big maintenance overhead for content managers
  10. Benefits • Cost efficiencies • Less content errors • Less

    frustration for content managers • User expectation management
  11. Core Infrastructure Girl Effect wanted to consolidated their services on

    one platform • AWS-hosted • Shared container infrastructure • Centralise data and auth for GDPR
  12. Moving to AWS • Made much easier by Docker •

    Adopted Spinnaker for improved CD • Heavier use of AWS services including emerging services • High-availability
  13. Common base images springster molo-bootstrap django-bootstrap python-base python:slim Developers Product:

    Source code, app settings SRE Best practices: Webserver config, users/groups, init Upstream bit.ly/DjangoDocker
  14. Then Now Community School Church Newspaper Magazine Television Radio Google


    Blogs
 Websites Facebook Messenger Twitter Instagram YouTube WhatsApp
  15. • Large quantity of high-quality content in our CMS •

    Need to rearchitect our system to deliver content on more than just mobi-sites • Want swappable front-ends for different channels Bringing Springster to new channels
  16. Reassessing open source • Everything Praekelt.org does is open source

    • Have to always keep up with changes in OSS communities • Balance between custom/differentiated code & leveraging tools in ecosystem
  17. Lessons learned • Scaling can happen in different, unpredictable ways

    • Flexibility and ability to adapt are often critical • Incremental consolidation/optimisation can come later • Balance building your own system vs using what’s available