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

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

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

Deployment-strategieënVeiliger 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 WebhooksDe 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 [email protected] @arjansnaterse 06 - 28 48 86 37

www.uprise.nl www.radishconcepts.com