Desde 0 hasta X usuarios con Open Source

Yohan Graterol

  • Technical Team Lead en Platzi
  • Colaborador de proyectos Open Source
  • Jugador de Heroes of the Storms
  • Contacto: y@platzi.com
  • Twitter: @yograterol

Agenda

  • Start up the company
  • Why open source software?
  • Growing the Platzi's Stack
  • Current Status
  • The future

Start up the company

0 USERS

Django, NodeJS, Dedicated Servers and "Simple" Frontend

5K USERS

First Server Stack

10K USERS

  • Ubuntu Linux
  • Nginx 0.9
  • NodeJS 0.10
  • MySQL 5.6
  • Django 1.4
  • Mongo 1.x
  • Redis 2.x
  • Memcached

Why open source software?

The simple answer

The real answer

  • Money
  • Stability*
  • Documentation
  • Easy to grow
  • We love open source sofware

Growing the Platzi's Stack

150K USERS

  • Django 1.4 -> Django 1.5 -> Django 1.8 LTS
  • Nginx 0.9 -> Nginx 1.4 -> Nginx 1.9.12
  • NodeJS 0.10 -> IOjs -> NodeJS 4.x LTS
  • Golang 1.7
  • Ubuntu Linux -> CentOS 7 & AWS Linux
  • No container system -> Docker
  • No CI system -> Jenkins
  • No production environment -> Kubernetes
  • Backbone -> ReactJS
  • Memcached -> No Memcached

Current Status

310K USERS

  • We have more of 15 microservices
  • Django is our main backend framework
  • Golang and NodeJS serve real time
  • React is our Javascript main library for UI
  • Docker and Kubernetes PROD env
  • CentOS 7 is our main Linux Distro
  • MySQL, MongoDB, Redis and PostgreSQL

Django

  • Maturity Level (SInce 2005)
  • Flexibility
  • MVT oriented (Model - View - Template)
  • Amazing ORM
  • Pluggable system

Golang and NodeJS

  • NodeJS is a good JS "framework"
  • Real time is easy with Node
  • SocketIO is an easier library for WS
  • But, It's not enough
  • Golang is compiled language
  • FASTER than NodeJS
  • Has native integration with websocket
  • Consume LESS resource than Node

ReactJS

  • It's too simple
  • Don't manage the data flow like a framework
  • Has a great community
  • Speed, but it's not a killer feature
  • Server rendering
  • Components

Docker

  • Easy way to develop in any OS
  • Isolated with the host system
  • Easy to distribute
  • Dev - Stage - Prod is easier

Kubernetes

  • Do easy the docker use in Prod
  • Integrate different patterns and technologies
  • Easy deploy
  • Works with AWS, Azure and Google Cloud
  • Works with Docker and rkt
  • Has its vault system for sensitive data

THE FUTURE

1M USERS

  • A lot of microservices > 50
  • Django in new LTS version
  • All real time system in Golang
  • All running in containers with Kubernates
  • PostgreSQL as unique RDBS.
  • Maybe... Maybe... Remove MongoDB.
  • The majority of templates made with React
  • Faster server render
  • New open source projects for YOU

WE ARE HIRING

  • Backend -> Python/Django
  • Mobile -> Android Developer
  • Frontend -> ReactJS/Javascript

Q&A

  • Pregunten lo que quieran

deck

By Yohan Graterol