Top Banner
Deployment-strategieën Veiliger ontwikkelen en opleveren Door Arjan Snaterse WP-Meetup Enschede, 26-03-2015
26

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

Jul 16, 2015

Download

Technology

Arjan Snaterse
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Deployment strategieën, WP Meetup Enschede, 26-02-2015

Deployment-strategieënVeiliger ontwikkelen en opleveren

Door Arjan Snaterse WP-Meetup Enschede, 26-03-2015

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

Wie is Arjan?

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

Waarom over deployment?

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

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

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

Let’s Get started

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

FTP is bad, mkay!

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

Versiebeheer rulez!

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

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

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

Deployment begint bij versiebeheer

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

Arjan Snaterse, WP Meetup 26-02-2015

Waarom versiebeheer?

• Historie van veranderingen

• Fouten herstellen

• Teamwork

• Werken aan verschillende features

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

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

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

Arjan Snaterse, WP Meetup 26-02-2015

Handige opzet

• Master branch

• Release branch

• Hotfixes

• Voor ieder issue een aparte branch, gemerged naar feature branch

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

Arjan Snaterse, WP Meetup 26-02-2015

A successful Git branching model

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

Arjan Snaterse, WP Meetup 26-02-2015

Lees meer...

http://git-scm.com/book/en/v2

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

Arjan Snaterse, WP Meetup 26-02-2015

OTAP

• Ontwikkeling

• Testen

• Acceptatie

• Productie

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

Arjan Snaterse, WP Meetup 26-02-2015

Deployment oplossingen

• Web based oplossingen

• Github webhooks

• Capistrano

• .....

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

Arjan Snaterse, WP Meetup 26-02-2015

Web based oplossingen

• deployhq.com

• codeship.com

• en vele andere...

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

Arjan Snaterse, WP Meetup 26-02-2015

Github WebhooksDe basis

Een iets geavanceerdere setup: https://github.com/markomarkovic/simple-php-git-deploy/

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

Arjan Snaterse, WP Meetup 26-02-2015

Meet capistrano

• Deploy vanaf lokaal naar remote met één commando

• Deploy naar verschillende omgevingen

• Deploy specifieke branches

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

Arjan Snaterse, WP Meetup 26-02-2015

Capistrano in gebruik

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

Arjan Snaterse, WP Meetup 26-02-2015

Bundler.io

• Ruby is erg dependency gevoelig.

• Tip: gebruik Bundler

• bundle install

• bundle exec <je_commando>

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

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

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

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

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

Arjan Snaterse, WP Meetup 26-02-2015

Voor de liefhebbers

• Deployment op basis van uitkomst unit tests

• Losse omgevingen per branch/issue

• Database deployment

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

Vragen?

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

Bedankt!

Arjan Snaterse [email protected] @arjansnaterse 06 - 28 48 86 37

www.uprise.nl www.radishconcepts.com