Deployment	  prak.cky           Jak	  to	  nechat	  na	  jiných	  a	  jak	  to	  dělat	  sám.           Ladislav	  Prskave...
Deployment                      “the	  distribu.on	  of	  forces	                        in	  prepara.on	  for	  baEle	   ...
Configura.on	                        Managementstředa, 21. září 11
"Automated	  deployment,	  .ed	  into	              good	  CI	  discipline,	  is	  essen.al	  to	              making	  th...
Deployment prakticky, WEBEXPO 2011středa, 21. září 11
Jak to nechat na jiných                                     Deployment prakticky, WEBEXPO 2011středa, 21. září 11
DEPLOYMENT SERVICES           Heroku, PHPFog, Pagodabox, Engineyard, ...                        git push                  ...
Jak si to vyrobit sám                                    Deployment prakticky, WEBEXPO 2011středa, 21. září 11
DEPLOYMENT TOOLS           Capistrano                      gem install capistrano                                     Depl...
DEPLOYMENT TOOLS           Capistrano, deployment    require railsless-deploy    require capistrano/ext/multistage    set ...
DEPLOYMENT TOOLS           Capistrano, deployment    require railsless-deploy    require capistrano/ext/multistage    set ...
DEPLOYMENT TOOLS           Capistrano, deployment    require railsless-deploy    require capistrano/ext/multistage    set ...
DEPLOYMENT TOOLS           Capistrano, deployment                        capistrano/ext/multistage          development.rb...
DEPLOYMENT TOOLS           Capistrano, deployment    require railsless-deploy    require capistrano/ext/multistage    set ...
DEPLOYMENT TOOLS           Capistrano, deployment      def relative_path(from_str, to_str)        require pathname        ...
Deployment prakticky, WEBEXPO 2011středa, 21. září 11
DEPLOYMENT TOOLS           Capistrano, Apache configuration                                       Deployment prakticky, WEB...
DEPLOYMENT TOOLS           Capistrano, configuration management        <VirtualHost *>          ServerName <%=application%>...
DEPLOYMENT TOOLS           Capistrano, configuration management        desc "Configure Apache from template"        task :s...
"If	  you	  are	  s.ll	  do	  manual	                    deployment,	  you	  need	  of	  know	                    in	  dev...
DEPLOYMENT TOOLS           Jenkins CI                              Deployment prakticky, WEBEXPO 2011středa, 21. září 11
DEPLOYMENT TOOLS           Jenkins CI                              Deployment prakticky, WEBEXPO 2011středa, 21. září 11
DEPLOYMENT TOOLS           Jenkins CI                              Deployment prakticky, WEBEXPO 2011středa, 21. září 11
DEPLOYMENT TOOLS           CF Engine, Puppet, Chef                                     Deployment prakticky, WEBEXPO 2011s...
DEPLOYMENT TOOLS           CF Engine, Puppet, Chef              automates IT processes                                    ...
DEPLOYMENT TOOLS           CF Engine, Puppet, Chef              automates IT processes                               manag...
DEPLOYMENT TOOLS           CF Engine, Puppet, Chef              automates IT processes                                    ...
středa, 21. září 11
SOFTWAREstředa, 21. září 11
AUTOMATIC           DEPLOYMENT                      Není	  důležitá	  cesta,	  ale	  výsledek                             ...
Deployment prakticky, WEBEXPO 2011středa, 21. září 11
Deployment prakticky, WEBEXPO 2011středa, 21. září 11
Deployment prakticky, WEBEXPO 2011středa, 21. září 11
Deployment prakticky, WEBEXPO 2011středa, 21. září 11
Otázky ?                      http://blog.prskavec.net                                      Deployment prakticky, WEBEXPO ...
Upcoming SlideShare
Loading in …5
×

Deployment prakticky

4,894 views

Published on

K čemu je deployment? Proč automatizovat? Kdo to vyřeší za vás? Jak začít? Jak to dělat ve velkém? V přednášce si ukážeme na problematice nasazení jednoduché PHP aplikace (Wordpress) jak to jde dělat a ukážu v čem jsou úskalí a na čem je potřeba pokud máte heterogenní prostředí jako u nás v LMC (Jobs.cz, Prace.cz). Apllication deployment (capistrano, fabric, cfengine, controltier) a configuration management (bcfg2, pupper, chef, cfengine, lcfg) jsou hlavní oblasti o kterých budeme mluvit.

Published in: Technology
  • Be the first to comment

Deployment prakticky

  1. 1. Deployment  prak.cky Jak  to  nechat  na  jiných  a  jak  to  dělat  sám. Ladislav  Prskavec    -­‐    LMC,  s.r.o.středa, 21. září 11
  2. 2. Deployment “the  distribu.on  of  forces   in  prepara.on  for  baEle   or  work”středa, 21. září 11
  3. 3. Configura.on   Managementstředa, 21. září 11
  4. 4. "Automated  deployment,  .ed  into   good  CI  discipline,  is  essen.al  to   making  this  work." Martin Fowler Deployment prakticky, WEBEXPO 2011středa, 21. září 11
  5. 5. Deployment prakticky, WEBEXPO 2011středa, 21. září 11
  6. 6. Jak to nechat na jiných Deployment prakticky, WEBEXPO 2011středa, 21. září 11
  7. 7. DEPLOYMENT SERVICES Heroku, PHPFog, Pagodabox, Engineyard, ... git push git revert heroku create git push heroku master heroku rake db:migrate Deployment prakticky, WEBEXPO 2011středa, 21. září 11
  8. 8. Jak si to vyrobit sám Deployment prakticky, WEBEXPO 2011středa, 21. září 11
  9. 9. DEPLOYMENT TOOLS Capistrano gem install capistrano Deployment prakticky, WEBEXPO 2011středa, 21. září 11
  10. 10. DEPLOYMENT TOOLS Capistrano, deployment require railsless-deploy require capistrano/ext/multistage set :user, "vagrant" set :runner, "vagrant" set :sudo, false set :projects_dir, "/srv/www" set :ssh_options, {:forward_agent => true} # ENV set :stages, %w(production development) set :default_stage, "development" # SCM set :scm, :git set :repository, "git@github.com:abtris/webexpo2011-wordpress.git" set :branch, "master" set :scm_verbose, true set :git_shallow_clone, 1 Deployment prakticky, WEBEXPO 2011středa, 21. září 11
  11. 11. DEPLOYMENT TOOLS Capistrano, deployment require railsless-deploy require capistrano/ext/multistage set :user, "vagrant" set :runner, "vagrant" set :sudo, false set :projects_dir, "/srv/www" set :ssh_options, {:forward_agent => true} # ENV set :stages, %w(production development) set :default_stage, "development" # SCM set :scm, :git set :repository, "git@github.com:abtris/webexpo2011-wordpress.git" set :branch, "master" set :scm_verbose, true set :git_shallow_clone, 1 Deployment prakticky, WEBEXPO 2011středa, 21. září 11
  12. 12. DEPLOYMENT TOOLS Capistrano, deployment require railsless-deploy require capistrano/ext/multistage set :user, "vagrant" set :runner, "vagrant" set :sudo, false set :projects_dir, "/srv/www" set :ssh_options, {:forward_agent => true} # ENV set :stages, %w(production development) set :default_stage, "development" # SCM set :scm, :git set :repository, "git@github.com:abtris/webexpo2011-wordpress.git" set :branch, "master" set :scm_verbose, true set :git_shallow_clone, 1 Deployment prakticky, WEBEXPO 2011středa, 21. září 11
  13. 13. DEPLOYMENT TOOLS Capistrano, deployment capistrano/ext/multistage development.rb role :web, "default" set :application, "beta-website.com" set :deploy_to, "#{projects_dir}/#{application}" produc.on.rb role :web, "default" set :application, "website.com" set :deploy_to, "#{projects_dir}/#{application}" Deployment prakticky, WEBEXPO 2011středa, 21. září 11
  14. 14. DEPLOYMENT TOOLS Capistrano, deployment require railsless-deploy require capistrano/ext/multistage set :user, "vagrant" set :runner, "vagrant" set :sudo, false set :projects_dir, "/srv/www" set :ssh_options, {:forward_agent => true} # ENV set :stages, %w(production development) set :default_stage, "development" # SCM set :scm, :git set :repository, "git@github.com:abtris/webexpo2011-wordpress.git" set :branch, "master" set :scm_verbose, true set :git_shallow_clone, 1 Deployment prakticky, WEBEXPO 2011středa, 21. září 11
  15. 15. DEPLOYMENT TOOLS Capistrano, deployment def relative_path(from_str, to_str) require pathname Pathname.new(to_str).relative_path_from(Pathname.new(from_str)).to_s end namespace :deploy do desc "Relative symlinks for current/" task :symlink, :except => { :no_release => true } do if releases[-2] # not the first release previous_release_relative = relative_path(deploy_to,previous_release) on_rollback { run "rm -f #{current_path}; ln -s #{previous_release_relative} #{current_path}; true" } end latest_release_relative = relative_path(deploy_to,latest_release) run "rm -f #{current_path} && ln -s #{latest_release_relative} #{current_path}" end end Deployment prakticky, WEBEXPO 2011středa, 21. září 11
  16. 16. Deployment prakticky, WEBEXPO 2011středa, 21. září 11
  17. 17. DEPLOYMENT TOOLS Capistrano, Apache configuration Deployment prakticky, WEBEXPO 2011středa, 21. září 11
  18. 18. DEPLOYMENT TOOLS Capistrano, configuration management <VirtualHost *> ServerName <%=application%> DocumentRoot <%= "#{current_path}/wordpress" %> <Directory <%= "#{current_path}/wordpress" %>> Options Indexes FollowSymLinks AllowOverride All </Directory> LogLevel warn ErrorLog <%= "#{shared_path}/log/apache2/error.log" %> CustomLog <%= "#{shared_path}/log/apache2/access.log common" %> </VirtualHost> Deployment prakticky, WEBEXPO 2011středa, 21. září 11
  19. 19. DEPLOYMENT TOOLS Capistrano, configuration management desc "Configure Apache from template" task :setup, :roles => [:web] do set :apache_vhost_aconf, "#{projects_dir}/#{application}/apache.conf" set :apache_vhost_econf, "/etc/apache2/sites-enabled/#{application}" file = File.join(File.dirname(__FILE__ ), "/../templates", vhost_template) template = File.read(file) buffer = ERB.new(template).result(binding) put buffer, "#{apache_vhost_aconf}", :mode => 0444 send(run_method, "mkdir -p #{shared_path}/log/apache2") send(run_method, "chown www-data #{shared_path}/log/apache2") send(run_method, "ln -nfs #{apache_vhost_aconf} #{apache_vhost_econf}") end Deployment prakticky, WEBEXPO 2011středa, 21. září 11
  20. 20. "If  you  are  s.ll  do  manual   deployment,  you  need  of  know   in  devops  we  call  it  hand  job." Borat DEVOPS Deployment prakticky, WEBEXPO 2011středa, 21. září 11
  21. 21. DEPLOYMENT TOOLS Jenkins CI Deployment prakticky, WEBEXPO 2011středa, 21. září 11
  22. 22. DEPLOYMENT TOOLS Jenkins CI Deployment prakticky, WEBEXPO 2011středa, 21. září 11
  23. 23. DEPLOYMENT TOOLS Jenkins CI Deployment prakticky, WEBEXPO 2011středa, 21. září 11
  24. 24. DEPLOYMENT TOOLS CF Engine, Puppet, Chef Deployment prakticky, WEBEXPO 2011středa, 21. září 11
  25. 25. DEPLOYMENT TOOLS CF Engine, Puppet, Chef automates IT processes Deployment prakticky, WEBEXPO 2011středa, 21. září 11
  26. 26. DEPLOYMENT TOOLS CF Engine, Puppet, Chef automates IT processes manage your servers by writing code, not by running commands Deployment prakticky, WEBEXPO 2011středa, 21. září 11
  27. 27. DEPLOYMENT TOOLS CF Engine, Puppet, Chef automates IT processes manage your servers by writing code, not by running commands rapid & reusable configuration Deployment prakticky, WEBEXPO 2011středa, 21. září 11
  28. 28. středa, 21. září 11
  29. 29. SOFTWAREstředa, 21. září 11
  30. 30. AUTOMATIC DEPLOYMENT Není  důležitá  cesta,  ale  výsledek Deployment prakticky, WEBEXPO 2011středa, 21. září 11
  31. 31. Deployment prakticky, WEBEXPO 2011středa, 21. září 11
  32. 32. Deployment prakticky, WEBEXPO 2011středa, 21. září 11
  33. 33. Deployment prakticky, WEBEXPO 2011středa, 21. září 11
  34. 34. Deployment prakticky, WEBEXPO 2011středa, 21. září 11
  35. 35. Otázky ? http://blog.prskavec.net Deployment prakticky, WEBEXPO 2011středa, 21. září 11

×