Improving your Drupal Development workflow with Continuous Integration



Similar documents
Achieving Continuous Integration with Drupal

Continuous Integration and Delivery at NSIDC

Building Success on Acquia Cloud:

CPSC 491. Today: Source code control. Source Code (Version) Control. Exercise: g., no git, subversion, cvs, etc.)

Fundamentals of Continuous Integration

Advanced Computing Tools for Applied Research Chapter 4. Version control

Delivering Quality Software with Continuous Integration

DRUPAL CONTINUOUS INTEGRATION. Part I - Introduction

Continuous Integration. CSC 440: Software Engineering Slide #1

BuildBot. S.Cozzini/A.Messina/G.Giuliani. And Continuous Integration. RegCM4 experiences. Warning: Some slides/ideas.

Enterprise-level EE: Uptime, Speed, and Scale

Software Continuous Integration & Delivery

Zero-Touch Drupal Deployment

Practicing Continuous Delivery using Hudson. Winston Prakash Oracle Corporation

Continuous integration End of the big bang integration era

How To Manage A Multi Site In Drupal

Software configuration management

Putting It All Together. Vagrant Drush Version Control

DevShop. Drupal Infrastructure in a Box. Jon Pugh CEO, Founder ThinkDrop Consulting Brooklyn NY

Introduction to Version Control with Git

Continuous Integration: A case study

Version control systems. Lecture 2

Continuous Delivery for Force.com

Continuous Integration: Improving Software Quality and Reducing Risk. Preetam Palwe Aftek Limited

Software Configuration Management Best Practices for Continuous Integration

Git Branching for Continuous Delivery

Software Construction

Achieving Rolling Updates & Continuous Deployment with Zero Downtime

TestOps: Continuous Integration when infrastructure is the product. Barry Jaspan Senior Architect, Acquia Inc.

Optimizing Your Software Process

Virginia, United States Zurich, Switzerland Cape Town, South Africa. Hosted at the data center of VSHN, DIN-ISO/ IEC and Finma 2008/7 certified

5 Mistakes to Avoid on Your Drupal Website

Continuous Integration Optimizing Your Release Management Process

ACCELERATE DEVOPS USING OPENSHIFT PAAS

Implementing Continuous Integration Testing Prepared by:

Simple and powerful site deployment with capistrano

Continuous Integration Processes and SCM To Support Test Automation

GitLab as an Alternative Development Platform for Github.com

Continuous Integration Comes to China.

In depth study - Dev teams tooling

Continuous Delivery for Alfresco Solutions. Satisfied customers and happy developers with!! Continuous Delivery!

Version Uncontrolled! : How to Manage Your Version Control

A central continuous integration platform

Automatic promotion and versioning with Oracle Data Integrator 12c

Version Control Systems: SVN and GIT. How do VCS support SW development teams?

Software Configuration Management Best Practices

Jenkins World Tour 2015 Santa Clara, CA, September 2-3

Servers. Servers. NAT Public Subnet: /20. Internet Gateway. VPC Gateway VPC: /16

Continuous Integration and Deployment Modern Technique's

Software Engineering I (02161)

Hail or Fail: The Right Way. to Override Core. Mark Shust ecommerce Developer Metrics Marketing

Two Best Practices for Scientific Computing

Successful PaaS and CI in the Cloud

Git Basics. Christopher Simpkins Chris Simpkins (Georgia Tech) CS 2340 Objects and Design CS / 22

Source Control Systems

DJANGOCODERS.COM THE PROCESS. Core strength built on healthy process

HP ALM11 & MS VS/TFS2010

Gitflow process. Adapt Learning: Gitflow process. Document control

StriderCD Book. Release 1.4. Niall O Higgins

Continuous Integration and Bamboo. Ryan Cutter CSCI Spring Semester

Continuous Integration

Dry Dock Documentation

IT Home 2015 DevOps 研 討 會

5 barriers to database source control and how you can get around them

Version Control with Git. Dylan Nugent

Solution Spotlight KEY OPPORTUNITIES AND PITFALLS ON THE ROAD TO CONTINUOUS DELIVERY

SOA-14: Continuous Integration in SOA Projects Andreas Gies

Version Control for Computational Economists: An Introduction

Software Configuration Management. Slides derived from Dr. Sara Stoecklin s notes and various web sources.

Continuous Integration on System z

Surround SCM Best Practices

Software Engineering Process. Kevin Cathey

A (Web) Face for Radio. NPR and Drupal7 David Moore

Software development. Outline. Outline. Version control. Version control. Several users work on a same project. Collaborative software development

Continuous integration with Jenkins CI

Software Development Management. Mathieu Lacage - DREAM

The Role of Feedback in Continuous Integration, Continuous Delivery and Agile ALM

Drupalcamp Vienna 2009

Automation & Open Source. How to tame the Cloud?

Global Software Change Management for PVCS Version Manager

The Bazaar Version Control System. Michael Hudson, Canonical Ltd

Continuous Integration (CI) for Mobile Applications

Eliminate Workflow Friction with Git

Platform as a Service and Container Clouds

Version Control with Git

Modern CI/CD and Asset Serving

The Deployment Pipeline

Annoyances with our current source control Can it get more comfortable? Git Appendix. Git vs Subversion. Andrey Kotlarski 13.XII.

Automate Your Deployment with Bamboo, Drush and Features DrupalCamp Scotland, 9 th 10 th May 2014

About Me Developer Workspaces Enable Agile Teams

Distributed Agile Development in the Cloud

Continuous Delivery by example.net

Real Time Embedded Software Development Using Agile Technology An Experience Report

November 12 th 13 th London: Mastering Continuous Integration with Jenkins

Enabling Continuous Delivery for Java Projects with Oracle Cloud Services (Oracle PaaS) Siva Rama Krishna Oracle India

Version Control using Git and Github. Joseph Rivera

Jenkins Continuous Build System. Jesse Bowes CSCI-5828 Spring 2012

Continuous Delivery Benefits, Best Practices and Practical Advice

Content. Development Tools 2(63)

SQL Server Virtualization 101. David Klee, Group Principal and Practice Lead. SQL PASS Virtualization VC,

Transcription:

Improving your Drupal Development workflow with Continuous Integration Peter Drake Sahana Murthy DREAM IT. DRUPAL IT. 1

Meet Us!!!! Peter Drake Cloud Software Engineer @Acquia Drupal Developer & sometimes core contributor Sahana Murthy Developer Evangelist @Acquia Open Source Proponent @sahanatweets 2

Agenda! à Standard Development Workflow What does it look like? What can go wrong and why? à Continuous Integration workflow What does it look like? Why is it better? Demo! 3

What do we mean by a Standard Workflow? 4

5 Stage 1 Hacking Code on Server!

6 Stage 2 Develop locally, push to production!

Is the Standard Workflow ideal for today s Agile World? 7

8 What could go wrong?

Common Pitfalls! à Deploying broken Code Developers overwriting each others work Partial changes In-development changes Untested changes à Deploying broken Config Missing libraries or dependencies Wrong Drupal config settings à Deploying a broken Database Schema Failure to write schema update hooks Failure to run update.php Manual schema changes 9

So What is the RIGHT way??? 10

11 Stage 3 Continuous Integration!

What is Continuous Integration?! Continuous integration (CI) is software engineering s best practice of merging all developer working copies with a shared mainline several times a day. 12

CI - Principles! Use Version Control Integrate Code Constantly Test on Clone of Production Automate Testing Automate Deployment 13

Use Version Control! Principles Step zero for good software engineering Version everything Code Config Database Schema Automate Tests Documentation Depenencies Resources A Successful Git Branching Model Pro Git Book Recommendations Git is a distributed revision control and source code management (scm) system with an emphasis on speed. Common Command: pull: grab changes from repository. add: Index the changes. commit: track the changes. push: send changes to repository. status: list which files are staged, unstaged, or tracked. 14

What problems does Version Control solve for us?" 15

16

17

18

19

20

21 Version Control - Overview!

Integrate Code Constantly! Principles Break big features into small steps Commit changes often Automate the upgrade process Implement tests as you go Update from master branch daily Results Identify conflicts early on Build quality is ensured Test coverage is consistent Development mistakes don t impact others velocity 22

Test on a Clone of Production! Drupal depends heavily on its environment Principles Identical OS, Apache / MySQL / Varnish, PHP extensions, PEAR libraries, assorted packages Use a current (scrubbed) version of production database Results No more It worked on my machine! or It worked on the testing database! Manual server tweaks will not propagate to production Unify and automate build of all environments 23

Automate Testing! If it ain t broke, test it anyway. If it isn t tested, it doesn t work. Principles Tests: build, unit, browser-based Run tests on every commit Don t merge changes until tests pass Announce when master breaks Deploy frequently to QA environment Results Progress visibility for stakeholders Bugs discovered before deployment Consistent quality (QA) 24

Automate Deployment! Drag-and-Drop is as automated as automated gets!!! Principles Deployment should be a pushbutton-and-relax operation Tag each release for future reference or rollback Snapshot databases for rollback Change database schema via code Update config via code No change is done until the upgrade is automated Results Deployments are worry-free Eliminates human error Ensures stakeholder expectations are met Enables continuous deployment 25

26 In a Nutshell!!!

27 Three Phase Development!

Lets watch CI in" LIVE ACTION! 28

29

Whats next with CI and Drupal??? 30

31 Wait For It

Drupal 8" W00T W00T! Let s get er done! 32