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

Cloud and Devops at ticketea

Cloud and Devops at ticketea

Talk at Devops Azure Day Madrid 2015 about devops and cloud

00927a856336d961bdc7028722fe5897?s=128

Ticketea Engineering

November 16, 2015
Tweet

Transcript

  1. Cloud and Devops at ticketea Jose Ignacio Galarza, @igalarzab CTO

  2. create tech solutions to simplify and enrich the way events

    are managed and attended
  3. ticketea Ecosystem

  4. None
  5. None
  6. None
  7. ticketea Who we are? @esanchezm @JavierHdez3 @maraujop @igalarzab @sullymorland @patoroco

    edu @imanolcg @RafaRM20 @iamcarlosedo @andrea_mgr @Mc_Arena_pr @javitxudedios @Maquert @gnufede @willyfrog_
  8. ticketea Team ✤ 12 developers ✤ 3 designers ✤ 1

    QA
  9. cloud

  10. None
  11. ticketea Why the cloud? ✤ Offer high-availability despite of load-spikes.

    ✤ Scale from 3 servers to 350 in minutes. ✤ Access to awesome services provided by your IaSS. ✤ Be more cost efficient.
  12. ticketea Why the cloud? ✤ Easier to be fault tolerant.

    ✤ They have a huge team improving always their service. ✤ Incredible uptime (some of them with 99.999999999%).
  13. ticketea Why the cloud? IaaS to PaaS

  14. Cloud provider Ticketea

  15. ticketea Pitfalls ✤ Everything can fail… everything. Have a good

    plan B. ✤ A plan B isn't a plan B, until is tested. ✤ Pre-heat everything before big events. ✤ Read about your IaSS in forums/email groups. ✤ Try to distribute your machines to avoid thunderbolts ;)
  16. architecture

  17. ticketea server

  18. ticketea Our architecture

  19. ticketea Our architecture

  20. ticketea Our architecture

  21. ticketea Our architecture

  22. ticketea Our architecture

  23. ticketea Our architecture

  24. ticketea servers

  25. ticketea The multilith

  26. ticketea Distributed systems ✤ Granular failing. ✤ Avoid single point

    of failure. ✤ Easy code maintainability ✤ Choose the best tech for each project. ✤ Scale the team easier.
  27. ticketea Distributed systems ✤ Hard to deploy. ✤ Hard to

    see the whole picture. ✤ More complexity: easy to fail. ✤ When shit happens: you need a plan B.
  28. don’t panic, we’re devops!

  29. development

  30. ticketea Team ✤ 12 developers ✤ 3 designers ✤ 1

    QA ✤ 0 sysadmin
  31. ticketea Team no specific devops team

  32. understand your stack

  33. ticketea Development cycle

  34. ticketea Development keys ✤ Code reviews in every pull request.

    ✤ Continuous integration with a strong test suite. ✤ Cook your own receipts. ✤ One-click deployment. ✤ “Continuous” delivery. (not always)
  35. and… easy rollbacks ;)

  36. ticketea Deploying code ✤ We’ve changed between a few models,

    but finally: 1. Create a complete new environment in prod machines. 2. Deploy your code there. 3. Extract one machine from the load-balancer. 4. Create a golden-image
  37. ticketea Deploying code ✤ Atomic deploys. ✤ 0s-downtime deploys. ✤

    Easy rollback to the last N versions. ✤ Money-cost friendly ;) ✤ Insanely fast to scale machines when needed.
  38. ticketea The Rat ‘devops’ race API Heracles Odin Frontend Chef

    Puppet Ansible Thor Caronte Ansible
  39. None
  40. ticketea Production vs Development environments ✤ Using the same ansible

    roles ✤ Meta-roles: roles/ | ——django/ | ————tasks/main.yml | ——api/ | ————tasks/main.yml |—— tkt-api/ |———— meta/main.yml api.yml development.yml
  41. ticketea Automating common procedures ✤ fab -f heracles.py stop_consuming_messages:queue ✤

    fab -f frontend.py maintenance_on ✤ fab -f sg.py open_sg ✤ fab -f api.py fast_rollback:version
  42. metrics

  43. ticketea Provisioning ✤ Ansible ✤ Fabric

  44. ticketea Error reporting ✤ sentry ✤ fabric (fka. crashlytics)

  45. ticketea Graphing ✤ graphite ✤ grafana

  46. ticketea Logging and alarming ✤ rsyslog ✤ graylog ✤ cabot

    ✤ slack/email/x connected through a queue
  47. Thanks. ;-) Jose Ignacio Galarza, @igalarzab CTO