570 likes | 710 Vues
Explore the innovative features of Moovweb for continuous deployment within development teams. This guide emphasizes the benefits of increasing change velocity and responsiveness, while also addressing the potential pitfalls like shared responsibility. Learn about key tools such as Jenkins and Puppet for efficient deployment processes, and discover tips for managing configuration and orchestration through Mcollective and Sinatra. Optimize your deployment strategy and empower your team to achieve faster, more reliable software delivery.
E N D
Getting to Push Button Deploys Moovweb January 19, 2012
Reality … is it done yet??? … is it done yet??? … is it done yet???
Gotta Have It! PROS • Increase velocity of change/responsiveness • Get Operations out of the loop • Buzzword compliance – aka Shiny!!!
PROS Increase velocity of change/responsiveness
PROS – Ops Gets Out of Loop • Less work for Operations • Developers feel more in control
Gotta Have It! CONS • Increase velocity of change • Shared responsibility • Not always easy
CI • Jenkins ( maiden name is Hudson ) • Checks out a deploy branch from git • Runs a few sanity checks • Packages software • Uploads to software repo • Tags build in git
Jenkins http://jenkins-ci.org/
Packaging • But it's sooooo hard save yourself first.....
Using FPM https://github.com/jordansissel/fpm
Right Tool Packages • Something that does not change often • Don't need to roll back quickly • Don't need more than 1 version at a time • You cache external repos or limit to just yours
Right Tool Gems • Fast roll back – gem cache • Easy setup of gem server • Need more than 1 version at a time • Bundler for dependencies • Bundle exec for peace of mind
Configuration Management • Puppet everything from bare metal/base image • Seperate data from manifests with an ENC • Max troubleshooting time is 20 minutes • Amazon free ”chaos monkey” service
ENC – Use Groups! http://docs.puppetlabs.com/guides/installing_dashboard.html
Puppet - Tips • Execs hurt – try to avoid them • Recursive directories – use vcsrepo instead • Write your own types – just restart in between • Run mongrel or passenger • Use behind a load balancer for fun • Use reporting, but take the DB off of your master • Write your own facts and save lots of time
Mcollective – Do It NOW!! • Orchestration framework • Crazy Parallel • Write more ruby code... • Clients and Agents
Mcollective – Crazy Parallel 6380 nrpe checks across 370 hosts in 3.8 seconds https://github.com/maguec/devops/tree/master/mcollective/nrpe
Mcollective - Tips • Remeber you have a machine gun pointed at your foot • Wrap command in IO.popen and log everything • Log to syslog • Use ApacheMQ • For EC2 tune your keep alives (registerinterval) • Remember you have a machine gun pointed at your foot
Sinatra • Web app in 5 minutes • Much more minimal than rails • Written in Ruby so I can interface with Mcollective easily http://www.sinatrarb.com/
Sinatra – Addons • sinatra-respond_to - useful as API • Pony – send email from Sinatra • Twitter Bootstrap – make things pretty
Public Example https://github.com/maguec/mco_dashboard_example
Sinatra - Tips • Run a few behind Nginx • Use helpers whenever possible • Log every push • Use it to integrate all your data
Dashboard Functionality • Push software • Audit software • Real-time monitoring check • Performance data integration • Log data integration • Troubleshooting tools for developers • Utilities for non-technical staff • Open trouble tickets • Cost information (in progress) • Userful links to other data sources