SaltConf14 - Ryan Lane, Wikimedia - Immediate consistency with Trebuchet Deploy and SaltStack

1,205 views

Published on

Deployment is often omitted from configuration management and orchestration, which typically focuses on the infrastructure and not the core application that the infrastructure supports. This presentation will give an overview of a deployment system I wrote using SaltStack to provide immediately consistent deployment for software. The deployment system has the ability for manual deploys or for continuous deployments using a Heroku-like workflow. It has support for multiple deployment schemes, with a default of Git deployment. The deployment system uses a combination of Salt peer runner calls, runners, modules, returners, pillars and grains as well as a deployment host running Apache, Sartoris (a git-deploy frontend), and Redis (for reporting).

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,205
On SlideShare
0
From Embeds
0
Number of Embeds
36
Actions
Shares
0
Downloads
30
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

SaltConf14 - Ryan Lane, Wikimedia - Immediate consistency with Trebuchet Deploy and SaltStack

  1. 1. Immediate Consistency With Trebuchet Deploy
  2. 2. Deployment is an ignored problem
  3. 3. Sync Common All Php
  4. 4. - Poor immediate consistency
  5. 5. - Poor reporting during deployment
  6. 6. - No reporting after deployment
  7. 7. - Difficult to modify and maintain
  8. 8. - Non-extensible
  9. 9. - No service orchestration
  10. 10. - Difficult to use
  11. 11. sync-common sync-common-all sync-common-file sync-dblist sync-docroot sync-dir sync-file sync-wikiversions scap apache-graceful apache-graceful-all sync-apache
  12. 12. + Has eventual consistency
  13. 13. + Has fast transmission mechanism via tiered rsync
  14. 14. Trebuchet Deployment System
  15. 15. + Immediate consistency via deployment module
  16. 16. + Eventual consistency via states
  17. 17. + Reporting via returners
  18. 18. + Easy modification and extension via modules and runners
  19. 19. + Service orchestration via reactors, runners and modules
  20. 20. + Targeting via grains or pillars
  21. 21. + Configuration via pillars
  22. 22. deployment_config: parent_dir: /srv/deployment redis: db: 0 host: reporting.example.org port: 6379 repo_config: test/testrepo: grain: testrepo upstream: https://gerrit.wikimedia.org/r/p/test fetch_module_calls: saltutil.refresh_pillars checkout_module_calls: testrepo.gen_css service_name: test-service
  23. 23. - Git is slow for large binaries
  24. 24. - No canary support yet
  25. 25. git deploy start git deploy sync git deploy abort git deploy revert git deploy service <action> git deploy report git deploy <extension> Trebuchet Trigger
  26. 26. Mission Enable the world to treat Wikimedia's infrastructure like any of its projects: anyone can edit.
  27. 27. Trebuchet PaaS
  28. 28. Join us! Ryan Lane Lyft rlane@lyft.com trebuchet-deploy on GitHub IRC (Freenode): #trebuchet-deploy Come to the puppet + salt integration talk later today!

×