Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Immediate Consistency
With Trebuchet Deploy
Deployment is an
ignored problem
Sync
Common
All
Php
- Poor immediate
consistency
- Poor reporting
during deployment
- No reporting after
deployment
- Difficult to modify
and maintain
- Non-extensible
- No service
orchestration
- Difficult to use
sync-common
sync-common-all
sync-common-file
sync-dblist
sync-docroot
sync-dir
sync-file
sync-wikiversions
scap
apache-gra...
+ Has eventual
consistency
+ Has fast transmission
mechanism
via tiered rsync
Trebuchet
Deployment
System
+ Immediate
consistency via
deployment module
+ Eventual consistency
via states
+ Reporting via
returners
+ Easy modification and
extension via modules
and runners
+ Service orchestration
via reactors, runners
and modules
+ Targeting via grains
or pillars
+ Configuration
via pillars
deployment_config:
parent_dir: /srv/deployment
redis:
db: 0
host: reporting.example.org
port: 6379
repo_config:
test/testr...
- Git is slow
for large binaries
- No canary
support yet
git deploy start
git deploy sync
git deploy abort
git deploy revert
git deploy service <action>
git deploy report
git depl...
Mission
Enable the world to treat
Wikimedia's infrastructure like any of
its projects: anyone can edit.
Trebuchet
PaaS
Join us!
Ryan Lane
Lyft
rlane@lyft.com
trebuchet-deploy on GitHub
IRC (Freenode):
#trebuchet-deploy
Come to the puppet + s...
SaltConf14 - Ryan Lane, Wikimedia - Immediate consistency with Trebuchet Deploy and SaltStack
SaltConf14 - Ryan Lane, Wikimedia - Immediate consistency with Trebuchet Deploy and SaltStack
SaltConf14 - Ryan Lane, Wikimedia - Immediate consistency with Trebuchet Deploy and SaltStack
SaltConf14 - Ryan Lane, Wikimedia - Immediate consistency with Trebuchet Deploy and SaltStack
SaltConf14 - Ryan Lane, Wikimedia - Immediate consistency with Trebuchet Deploy and SaltStack
SaltConf14 - Ryan Lane, Wikimedia - Immediate consistency with Trebuchet Deploy and SaltStack
Upcoming SlideShare
Loading in …5
×

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

1,356 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
  • Be the first to comment

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!

×