SlideShare une entreprise Scribd logo
1  sur  26
Télécharger pour lire hors ligne
Deployment-strategieën
Veiliger ontwikkelen en opleveren
Door Arjan Snaterse
WP-Meetup Enschede, 26-03-2015
Wie is Arjan?
Waarom over deployment?
Arjan Snaterse, WP Meetup 26-02-2015
Ik wil jullie overtuigen
• Dat je code in versiebeheer moet
• Dat werken in verschillende branches verrekte
handig is
• Dat verschillende omgevingen (test, acceptatie,
etc) noodzakelijk zijn
• Dat capistrano cool is
Let’s Get started
FTP is bad, mkay!
Versiebeheer rulez!
Arjan Snaterse, WP Meetup 26-02-2015
Capability Maturity Model
CMM1 CMM2 CMM3 CMM4 CMM5
• CMM1 (adhoc)

Working directly on FTP
• CMM2 (repeatable)

Local environment
• CMM3 (defined)

Version Control System
• CMM4 (managed)

Remote deployment
• CMM5 (optimised)

Automated deployment
Deployment begint bij
versiebeheer
Arjan Snaterse, WP Meetup 26-02-2015
Waarom versiebeheer?
• Historie van veranderingen
• Fouten herstellen
• Teamwork
• Werken aan verschillende features
Arjan Snaterse, WP Meetup 26-02-2015
Commits, Branches en Mergen
• Een commit is set met wijzigingen in de code
• Een branch bestaat uit een set van commits
• Branches merge je naar master
Arjan Snaterse, WP Meetup 26-02-2015
Handige opzet
• Master branch
• Release branch
• Hotfixes
• Voor ieder issue een aparte branch, gemerged
naar feature branch
Arjan Snaterse, WP Meetup 26-02-2015
A successful Git branching model
Arjan Snaterse, WP Meetup 26-02-2015
Lees meer...
http://git-scm.com/book/en/v2
Arjan Snaterse, WP Meetup 26-02-2015
OTAP
• Ontwikkeling
• Testen
• Acceptatie
• Productie
Arjan Snaterse, WP Meetup 26-02-2015
Deployment oplossingen
• Web based oplossingen
• Github webhooks
• Capistrano
• .....
Arjan Snaterse, WP Meetup 26-02-2015
Web based oplossingen
• deployhq.com
• codeship.com
• en vele andere...
Arjan Snaterse, WP Meetup 26-02-2015
Github Webhooks
De basis
Een iets geavanceerdere setup:
https://github.com/markomarkovic/simple-php-git-deploy/
Arjan Snaterse, WP Meetup 26-02-2015
Meet capistrano
• Deploy vanaf lokaal naar remote met één
commando
• Deploy naar verschillende omgevingen
• Deploy specifieke branches
Arjan Snaterse, WP Meetup 26-02-2015
Capistrano in gebruik
Arjan Snaterse, WP Meetup 26-02-2015
Bundler.io
• Ruby is erg dependency gevoelig.
• Tip: gebruik Bundler
• bundle install
• bundle exec <je_commando>
Arjan Snaterse, WP Meetup 26-02-2015
• bundle exec cap production deploy
• bundle exec cap staging deploy
• bundle exec cap test
branch="<branchname>" deploy
Capistrano voorbeelden
Arjan Snaterse, WP Meetup 26-02-2015
Ja maar, JA maar...
• Te hoog gegrepen?
• Start in ieder geval met Github en zoek een
bestaande deploy dienst
Arjan Snaterse, WP Meetup 26-02-2015
Voor de liefhebbers
• Deployment op basis van uitkomst unit tests
• Losse omgevingen per branch/issue
• Database deployment
Vragen?
Bedankt!
Arjan Snaterse
arjan@uprise.nl
@arjansnaterse
06 - 28 48 86 37
www.uprise.nl www.radishconcepts.com

Contenu connexe

Similaire à Deployment strategieën, WP Meetup Enschede, 26-02-2015

Dutch VMUG Event 2012 - Get Certified!
Dutch VMUG Event 2012 - Get Certified!Dutch VMUG Event 2012 - Get Certified!
Dutch VMUG Event 2012 - Get Certified!
Joep Piscaer
 
PFZ Workshop - Automatiseren van functionele tests
PFZ Workshop - Automatiseren van functionele testsPFZ Workshop - Automatiseren van functionele tests
PFZ Workshop - Automatiseren van functionele tests
Richard Tuin
 

Similaire à Deployment strategieën, WP Meetup Enschede, 26-02-2015 (20)

Take control of your deployments with Release Management
Take control of your deployments with Release ManagementTake control of your deployments with Release Management
Take control of your deployments with Release Management
 
New and improved ASP.NET MVC 5
New and improved ASP.NET MVC 5New and improved ASP.NET MVC 5
New and improved ASP.NET MVC 5
 
Dutch VMUG Event 2012 - Get Certified!
Dutch VMUG Event 2012 - Get Certified!Dutch VMUG Event 2012 - Get Certified!
Dutch VMUG Event 2012 - Get Certified!
 
PFZ Workshop - Automatiseren van functionele tests
PFZ Workshop - Automatiseren van functionele testsPFZ Workshop - Automatiseren van functionele tests
PFZ Workshop - Automatiseren van functionele tests
 
Web applicatie van scratch
Web applicatie van scratchWeb applicatie van scratch
Web applicatie van scratch
 
Windows Server2008
Windows Server2008Windows Server2008
Windows Server2008
 
Suneco Governance Model
Suneco Governance ModelSuneco Governance Model
Suneco Governance Model
 
Vagrant
VagrantVagrant
Vagrant
 
Drupaljam2015 logstash
Drupaljam2015 logstashDrupaljam2015 logstash
Drupaljam2015 logstash
 
Hoe releasen minder pijnlijk werd bij de ANWB Alarmcentrale
Hoe releasen minder pijnlijk werd bij de ANWB AlarmcentraleHoe releasen minder pijnlijk werd bij de ANWB Alarmcentrale
Hoe releasen minder pijnlijk werd bij de ANWB Alarmcentrale
 
Hoe releasen minder pijnlijk werd bij de ANWB Alarmcentrale
Hoe releasen minder pijnlijk werd bij de ANWB AlarmcentraleHoe releasen minder pijnlijk werd bij de ANWB Alarmcentrale
Hoe releasen minder pijnlijk werd bij de ANWB Alarmcentrale
 
Meetup ASP.NET 5 19/11/2015
Meetup ASP.NET 5 19/11/2015Meetup ASP.NET 5 19/11/2015
Meetup ASP.NET 5 19/11/2015
 
SEO Migraties #seobenelux
SEO Migraties #seobenelux SEO Migraties #seobenelux
SEO Migraties #seobenelux
 
Correct toepassen van cryptografie - (ISC)2 NL - 10 juni 2014
Correct toepassen van cryptografie - (ISC)2 NL - 10 juni 2014Correct toepassen van cryptografie - (ISC)2 NL - 10 juni 2014
Correct toepassen van cryptografie - (ISC)2 NL - 10 juni 2014
 
Workshop: Introductie tot Python
Workshop: Introductie tot PythonWorkshop: Introductie tot Python
Workshop: Introductie tot Python
 
Robocon @ Immune-it
Robocon @ Immune-itRobocon @ Immune-it
Robocon @ Immune-it
 
2019 diy migration webinar gs nl
2019 diy migration webinar gs nl2019 diy migration webinar gs nl
2019 diy migration webinar gs nl
 
Netwerkfunctievirtualisatie: proof-of-concept en demo
Netwerkfunctievirtualisatie: proof-of-concept en demoNetwerkfunctievirtualisatie: proof-of-concept en demo
Netwerkfunctievirtualisatie: proof-of-concept en demo
 
Mijn site beveiliging
Mijn site beveiligingMijn site beveiliging
Mijn site beveiliging
 
2tCloud update - Copaco Cloud Event 2015 (break-out 3)
2tCloud update - Copaco Cloud Event 2015 (break-out 3)2tCloud update - Copaco Cloud Event 2015 (break-out 3)
2tCloud update - Copaco Cloud Event 2015 (break-out 3)
 

Deployment strategieën, WP Meetup Enschede, 26-02-2015

  • 1. Deployment-strategieën Veiliger ontwikkelen en opleveren Door Arjan Snaterse WP-Meetup Enschede, 26-03-2015
  • 4. Arjan Snaterse, WP Meetup 26-02-2015 Ik wil jullie overtuigen • Dat je code in versiebeheer moet • Dat werken in verschillende branches verrekte handig is • Dat verschillende omgevingen (test, acceptatie, etc) noodzakelijk zijn • Dat capistrano cool is
  • 6. FTP is bad, mkay!
  • 8. Arjan Snaterse, WP Meetup 26-02-2015 Capability Maturity Model CMM1 CMM2 CMM3 CMM4 CMM5 • CMM1 (adhoc)
 Working directly on FTP • CMM2 (repeatable)
 Local environment • CMM3 (defined)
 Version Control System • CMM4 (managed)
 Remote deployment • CMM5 (optimised)
 Automated deployment
  • 10. Arjan Snaterse, WP Meetup 26-02-2015 Waarom versiebeheer? • Historie van veranderingen • Fouten herstellen • Teamwork • Werken aan verschillende features
  • 11. Arjan Snaterse, WP Meetup 26-02-2015 Commits, Branches en Mergen • Een commit is set met wijzigingen in de code • Een branch bestaat uit een set van commits • Branches merge je naar master
  • 12. Arjan Snaterse, WP Meetup 26-02-2015 Handige opzet • Master branch • Release branch • Hotfixes • Voor ieder issue een aparte branch, gemerged naar feature branch
  • 13. Arjan Snaterse, WP Meetup 26-02-2015 A successful Git branching model
  • 14. Arjan Snaterse, WP Meetup 26-02-2015 Lees meer... http://git-scm.com/book/en/v2
  • 15. Arjan Snaterse, WP Meetup 26-02-2015 OTAP • Ontwikkeling • Testen • Acceptatie • Productie
  • 16. Arjan Snaterse, WP Meetup 26-02-2015 Deployment oplossingen • Web based oplossingen • Github webhooks • Capistrano • .....
  • 17. Arjan Snaterse, WP Meetup 26-02-2015 Web based oplossingen • deployhq.com • codeship.com • en vele andere...
  • 18. Arjan Snaterse, WP Meetup 26-02-2015 Github Webhooks De basis Een iets geavanceerdere setup: https://github.com/markomarkovic/simple-php-git-deploy/
  • 19. Arjan Snaterse, WP Meetup 26-02-2015 Meet capistrano • Deploy vanaf lokaal naar remote met één commando • Deploy naar verschillende omgevingen • Deploy specifieke branches
  • 20. Arjan Snaterse, WP Meetup 26-02-2015 Capistrano in gebruik
  • 21. Arjan Snaterse, WP Meetup 26-02-2015 Bundler.io • Ruby is erg dependency gevoelig. • Tip: gebruik Bundler • bundle install • bundle exec <je_commando>
  • 22. Arjan Snaterse, WP Meetup 26-02-2015 • bundle exec cap production deploy • bundle exec cap staging deploy • bundle exec cap test branch="<branchname>" deploy Capistrano voorbeelden
  • 23. Arjan Snaterse, WP Meetup 26-02-2015 Ja maar, JA maar... • Te hoog gegrepen? • Start in ieder geval met Github en zoek een bestaande deploy dienst
  • 24. Arjan Snaterse, WP Meetup 26-02-2015 Voor de liefhebbers • Deployment op basis van uitkomst unit tests • Losse omgevingen per branch/issue • Database deployment
  • 26. Bedankt! Arjan Snaterse arjan@uprise.nl @arjansnaterse 06 - 28 48 86 37 www.uprise.nl www.radishconcepts.com