Zero-Touch Drupal Deployment

Size: px
Start display at page:

Download "Zero-Touch Drupal Deployment"

Transcription

1 Zero-Touch Drupal Deployment Whitepaper Date 25th October 2011 Document Number MIG5-WP-D-004 Revision 01 1

2 Table of Contents Preamble The concept Version control Consistency breeds abstraction Automation The Technology Git Jenkins Fabric The Process Branches Precautions Going live Notifications How the Zero-touch experience changes things Further reading 2

3 Preamble It s become a standard for agencies developing web applications for clients to adopt a development workflow to apply changes to that app over its lifecycle. These workflows typically transition a change starting from a development environment, through to Q/A, then staged for client approval, and finally deployed to the live or production environment. The purpose of such workflows is, of course, to maintain a sane audit trail of change, reduce risk and liability, and be able to roll back changes easily. For these reasons, it s no surprise many development teams use version control software to manage a revision history of the application. However, more often than not, the actual processes of applying those changes in the version control system to the various environments through this workflow, are performed manually, dragging everything back to the same pitfalls related to human error, loss of time, and low incentive to commit early and often. mig5 believes this problem has been accepted as the way of things by most agencies. mig5 also believes this should no longer be a problem. A sysadmin s mantra is to automate laborious, mundane, and human error prone tasks so that they no longer throw roadblocks and allow people to get on with what s important. This whitepaper describes the methodologies mig5 has produced and implemented for a wide range of existing clients to apply the sysadmin mantra to Drupal site development and deployment through the dev/stage/live process. This methodology is called Zero-touch deployment. 3

4 The concept There are several key components or concepts that are required to make Zerotouch deployment work successfully. Version control It is absolutely crucial to keep a codebase in a version control system 1. A VCS provides an audit trail showing who made a change to the code and why. Most VCS, by maintaining internal databases tracking those changes, also provide convenient methods for reverting or undoing changes, if something goes wrong. One of the VCS solutions that is gaining increasing popularity due to its enormous power and flexibility, is Git 2. Originally authored by Linus Torvalds 3, creator of the Linux kernel 4, Git is a type of VCS known as distributed - that is, it does not require a central server that holds all the data. With Git, it is possible to commit changes to an internal database on your local system, because every Git repository considers itself a fully-fledged database that can optionally be synced with other copies of the repository located remotely. Git is fast, optimised for certain common version control operations such as maintaining separate diverging branches of a codebase, advanced capabilities for merging changes from different remote copies of repositories and branches, and more

5 If you d like to learn how to use Git, how it differs from other version control systems, and the gritty technical details on how it works, the Pro Git book 5 is highly recommended. Consistency breeds abstraction Another important concept when attempting to achieve zero-touch deployment, is to be consistent with your approach across different projects. If you re a Drupal agency, it is highly unlikely that you re building just one application - you probably have a range of different clients and different websites to build. For this reason, it s only natural to achieve zero-touch for all your existing projects, and more importantly, all future projects! The faster the process can be made, the more time you have to take on more work and make more money. The zero-touch tools mig5 builds and implements, are designed to be as highly abstracted as possible, in order to be applied to whatever project / server you re working on. For this reason, consistency is key, so that the Zero-Touch tools can afford to make some assumptions about how you work. Consistency means everything from: using the same version of operating system versions and software in each environment (dev, stage, live) using the same naming standards for repositories and branches using the same workflow (from dev to Q/A, to stage, to live) other techniques to keep consistent (database naming conventions etc) Automation The ultimate aim of Zero-touch is to automate away the process of applying a change that a developer has committed to a repository in his or her development environment, to the respective remote environment (Q/A, stage or production)

6 The Zero-touch tools eliminate the need for a developer or release manager to, for example, login to a remote staging server via SSH and run a git pull or a custom Bash script to apply the change, adjust HTTP virtual host configurations or manually perform database modifications. How often did you do such a thing and forget to make a backup first, or perform your git pull on the live codebase and find it either broke unexpectedly, or caused a conflict because your co-developer make an on-the-fly change? Zero-touch puts the past behind you and makes deployment feel safe again and even fun! The Technology We ve talked about the concepts that help achieve Zero-touch. Now let s look at the actual tools mig5 implements to do the job. Git We ve discussed Git already as the version control system of choice. It is possible, however, to adapt the Zero-touch tools to your VCS of choice: be that Subversion, Bazaar, Mercurial or whatever you prefer. Jenkins Jenkins 6 is a Continuous Integration server, most commonly used for running test suites against codebases or applications. However, more generally it is a reactive tool that can run any arbitrary number of tasks either locally or on remote systems via SSH or other means of communication. Jenkins ability to recognise success vs failure when running tasks makes it important for Zero-touch, because it can help identify a problem and safely back out of what might ve been a disastrous change - especially to a live environment

7 In Zero-touch, Jenkins is the gatekeeper that detects changes that occur to a Git repository (triggered from a developer s commit and push), and sends the instructions to make change occur on the remote environments. Fabric Fabric 7 is a Python API for running arbitrary SSH commands and deployments on local and remote hosts. It is very similar to Capistrano 8, a Ruby tool that provides commands for users to deploy over SSH. In Zero-touch, a suite of tasks exist in a configuration file or Fabfile that fetch changes, backup existing systems, and apply changes in the various environments, in an important order or chain of events. It is the Fabfile tasks that Jenkins executes when a change has occurred in Git, activating those remote procedures

8 The Process Now that we ve looked at the concepts and the tools used, you re probably starting to wonder What actually *happens* during a deployment? Branches As already described, the procedure begins with a developer pushing a change to git. In Zero-touch methodology, several branches exist in the git repository, labeled so as to be recognised for the different environments to deploy to. master branch is the core branch that developers use to commit changes from 8

9 their development environment. Developers can maintain their own branches or use feature or hotfix branches to work on specific changes, but should ultimately merge those changes into the master branch. The Q/A or testing environment is tracked by Jenkins by watching the master branch, effectively collating changes from a possibly multi-developer team into a version of the site that reflects all those changes. This is a good opportunity for your Q/A engineers/testers to review what s happening and if the changes reflect what s been asked for / fixes what bugs have been reported. When the changes as seen in the Q/A environment are looking good, they should be merged into the stage branch in Git. This triggers a deployment to the staging site by Jenkins, whereby the client can be asked to sign-off on the change if they are happy with it. Once approved, that change is then carried on to the live or prod branch in git. Jenkins once again detects this change, and applies the change to the production environment, taking the change live. Precautions In each step or deployment, the site and critical components such as the database are backed up first before anything happens. The backup is labeled with a recognisable name such as $repo_prior_to_build_n where N is the build number or identifier in Jenkins. In the (unlikely) event of an unexpected big disaster requiring manual intervention to recover from, this allows an engineer to quickly identify exactly which backup should be restored from: if build 47 broke everything, then the prior_to_build_47 backup is probably what should be used to restore from. In Zero-touch, there is no pristine live copy of a site that gets routine git pull s or updates applied. Even with a version control system, this can be unpredictable and difficult to revert automatically. Instead, every time a deployment occurs, an entire copy of the codebase is checked out fresh, in a unique directory (again reflecting the build identifier), 9

10 separate from the current live or previous codebase. A symlink is used to point to whatever is the latest build. The HTTP vhost configuration considers this symlink to be the real live path or DocumentRoot 9 in Apache terminology. In this way, the site is always served up using whatever codebase the symlink currently points to. Going live If all tests pass and everything is looking good with a new deployment, that symlink is altered to point to the new build. This is what takes the change live, without having to alter the HTTP vhost configuration. If something unexpected occurred, it is very easy to roll back the change by simply setting the symlink to point back to the previous build. A Fabric task exists to retain a configurable number of old builds in case this is necessary. Notifications Zero-touch takes advantage of Jenkins existing Notification API, which can be configured to alert personnel to a failed build via a variety of methods ( , IRC 10 bot channel announcement, iphone push notification using Notifo 11, XMPP etc). Typically a successful deployment will be announced quietly, such as via an IRC announcement, whilst noisier alerts such as phone notifications and s will be used in the event of a failed build, to get attention quickly. Because Jenkins is tracking changes to a git repository, it is even capable of guessing, from the commit author metadata, the culprit that broke the build, and able to notify that specific person (based on the assumption that if that developer

11 pushed a change, they have knowledge of what change was meant to occur, are probably still at the office watching it occur, and able to respond reasonably quickly to fix the issue). 11

12 How the Zero-touch experience changes things Experience implementing Zero-touch for various Drupal agencies has identified numerous positive effects that the methodology has had for those agencies and development teams. These are the top 10 examples we ve seen. 1. Deployments start to occur more frequently with smaller changesets, reducing the effect of errors and risks associated 2. Audit trails become easier to track what changes have occurred 3. Developers become more confident with pushing changes 4. Developers take more ownership of their changes 5. Less potential for data loss occurs when more frequent pushing to git is occurring, instead of developers hanging on to their local copies 6. It is faster to work on multiple projects if they are all using Zero-touch 7. Less fatigue from developers who can concentrate on development and forget about deployment 8. More attention is paid to fixing problems before they reach production, because failed builds can t help but be noticed 9. Communication improves during a project 10.Security can be improved/tightened (developers don t all need SSH access or sudo, just a Jenkins user for remote tasks to work) Is this sounding like a big sigh of relief to you? Zero-touch only brings benefits and usually is straightforward to setup and even integrate into existing environments. Contact mig5 12 today to see if it s something you can take advantage of too!

13 Further reading mig5 and others (clients) have written about Zero-touch elsewhere too: Zero-touch Drupal deployment with Jenkins, Aegir, Git, Fabric and Drush How CodeEnigma does hosting One-touch provisioning and auto-monitoring of new servers Test your Drupal distro: Building a continuous integration server with Aegir and Jenkins Continuous Integration (Presentation at DrupalCamp Toulouse with CodeEnigma, November 2011) 13

How To Manage Change In Jeepers

How To Manage Change In Jeepers Continuous Integration Continuous Integration What is Continuous Integration? In software engineering, continuous integration (CI) implements continuous processes of applying quality control small pieces

More information

Practical continuous deployment

Practical continuous deployment Practical continuous deployment Who Am I? Steve Smith! An Atlassian for 8+ years! Original company sysadmin! Developer for last 5 years! Now working out of Amsterdam! Not a professional speaker Who Am

More information

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

Automate Your Deployment with Bamboo, Drush and Features DrupalCamp Scotland, 9 th 10 th May 2014 This presentation was originally given at DrupalCamp Scotland, 2014. http://camp.drupalscotland.org/ The University of Edinburgh 1 We are 2 of the developers working on the University s ongoing project

More information

Version control with GIT

Version control with GIT AGV, IIT Kharagpur September 13, 2012 Outline 1 Version control system What is version control Why version control 2 Introducing GIT What is GIT? 3 Using GIT Using GIT for AGV at IIT KGP Help and Tips

More information

Simple and powerful site deployment with capistrano

Simple and powerful site deployment with capistrano Simple and powerful site deployment with capistrano Kim Pepper kim@previousnext.com.au @scorchio96 d.o: kim.pepper How are you deploying now? FTP, SFTP, SCP? SSH + GIT? Aegir? Drush? Debian packages? Don't

More information

Advanced Computing Tools for Applied Research Chapter 4. Version control

Advanced Computing Tools for Applied Research Chapter 4. Version control Advanced Computing Tools for Applied Research Jaime Boal Martín-Larrauri Rafael Palacios Hielscher Academic year 2014/2015 1 Version control fundamentals 2 What you probably do now Manually save copies

More information

Continuous Integration

Continuous Integration Continuous Integration Collaborative development issues Checkout of a shared version of software ( mainline ) Creation of personal working copies of developers Software development: modification of personal

More information

Drupalcamp Vienna 2009

Drupalcamp Vienna 2009 Drupalcamp Vienna 2009 Development workflow and deployment at Klaus Purer 2009-11-28 http://klausi.fsinf.at Who am I? Student at the Vienna University of Technology Software Engineering & Internet Computing

More information

MATLAB @ Work. MATLAB Source Control Using Git

MATLAB @ Work. MATLAB Source Control Using Git MATLAB @ Work MATLAB Source Control Using Git Richard Johnson Using source control is a key practice for professional programmers. If you have ever broken a program with a lot of editing changes, you can

More information

MANAGE AND DEPLOY YOUR SITES WITH DRUSH

MANAGE AND DEPLOY YOUR SITES WITH DRUSH MANAGE AND DEPLOY YOUR SITES WITH DRUSH BASTIAN WIDMER @DASRECHT DEVOPS TRACK Who are you? Bastian Widmer @dasrecht Switzerland DevOps Track Chair Fuck it we do it live -Ops Agenda 1 Introduction 2 Where

More information

Version control. HEAD is the name of the latest revision in the repository. It can be used in subversion rather than the latest revision number.

Version control. HEAD is the name of the latest revision in the repository. It can be used in subversion rather than the latest revision number. Version control Version control is a powerful tool for many kinds of work done over a period of time, including writing papers and theses as well as writing code. This session gives a introduction to a

More information

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

5 barriers to database source control and how you can get around them WHITEPAPER DATABASE CHANGE MANAGEMENT 5 barriers to database source control and how you can get around them 91% of Fortune 100 companies use Red Gate Content Introduction We have backups of our databases,

More information

StriderCD Book. Release 1.4. Niall O Higgins

StriderCD Book. Release 1.4. Niall O Higgins StriderCD Book Release 1.4 Niall O Higgins August 22, 2015 Contents 1 Introduction 3 1.1 What Is Strider.............................................. 3 1.2 What Is Continuous Integration.....................................

More information

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

DevShop. Drupal Infrastructure in a Box. Jon Pugh CEO, Founder ThinkDrop Consulting Brooklyn NY DevShop Drupal Infrastructure in a Box Jon Pugh CEO, Founder ThinkDrop Consulting Brooklyn NY Who? Jon Pugh ThinkDrop Consulting Building the web since 1997. Founded in 2009 in Brooklyn NY. Building web

More information

using version control in system administration

using version control in system administration LUKE KANIES using version control in system administration Luke Kanies runs Reductive Labs (http://reductivelabs.com), a startup producing OSS software for centralized, automated server administration.

More information

Achieving Continuous Integration with Drupal

Achieving Continuous Integration with Drupal 23 Au gu Achieving Continuous Integration with Drupal st 20 12 Achieving Continuous Integration with Drupal Drupalcon Munich 2012 Barry Jaspan barry.jaspan@acquia.com The Evolution of a Drupal Developer

More information

Version Control! Scenarios, Working with Git!

Version Control! Scenarios, Working with Git! Version Control! Scenarios, Working with Git!! Scenario 1! You finished the assignment at home! VC 2 Scenario 1b! You finished the assignment at home! You get to York to submit and realize you did not

More information

Source Control Systems

Source Control Systems Source Control Systems SVN, Git, GitHub SoftUni Team Technical Trainers Software University http://softuni.bg Table of Contents 1. Software Configuration Management (SCM) 2. Version Control Systems: Philosophy

More information

Introduction to the Git Version Control System

Introduction to the Git Version Control System Introduction to the Sebastian Rockel rockel@informatik.uni-hamburg.de University of Hamburg Faculty of Mathematics, Informatics and Natural Sciences Department of Informatics Technical Aspects of Multimodal

More information

Continuous Integration. CSC 440: Software Engineering Slide #1

Continuous Integration. CSC 440: Software Engineering Slide #1 Continuous Integration CSC 440: Software Engineering Slide #1 Topics 1. Continuous integration 2. Configuration management 3. Types of version control 1. None 2. Lock-Modify-Unlock 3. Copy-Modify-Merge

More information

Version control systems. Lecture 2

Version control systems. Lecture 2 Version control systems Lecture 2 VCS Many people s version- control method of choice is to copy files into another directory (e.g. a @me- stamped directory). But this approach is error prone. Easy to

More information

Continuous integration for databases using Red Gate tools

Continuous integration for databases using Red Gate tools Whitepaper Continuous integration for databases using Red Gate tools A technical overview Continuous Integration source control develop Dev Dev Dev build test Automated Deployment Deployment package Testing

More information

Introduction to Git. Markus Kötter koetter@rrzn.uni-hannover.de. Notes. Leinelab Workshop July 28, 2015

Introduction to Git. Markus Kötter koetter@rrzn.uni-hannover.de. Notes. Leinelab Workshop July 28, 2015 Introduction to Git Markus Kötter koetter@rrzn.uni-hannover.de Leinelab Workshop July 28, 2015 Motivation - Why use version control? Versions in file names: does this look familiar? $ ls file file.2 file.

More information

Improving your Drupal Development workflow with Continuous Integration

Improving your Drupal Development workflow with Continuous Integration 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

More information

Introduction to Version Control with Git

Introduction to Version Control with Git Introduction to Version Control with Git Dark Cosmology Centre Niels Bohr Institute License All images adapted from Pro Git by Scott Chacon and released under license Creative Commons BY-NC-SA 3.0. See

More information

Introducing Xcode Source Control

Introducing Xcode Source Control APPENDIX A Introducing Xcode Source Control What You ll Learn in This Appendix: u The source control features offered in Xcode u The language of source control systems u How to connect to remote Subversion

More information

Version Control using Git and Github. Joseph Rivera

Version Control using Git and Github. Joseph Rivera Version Control using Git and Github Joseph Rivera 1 What is Version Control? Powerful development tool! Management of additions, deletions, and modifications to software/source code or more generally

More information

Putting It All Together. Vagrant Drush Version Control

Putting It All Together. Vagrant Drush Version Control Putting It All Together Vagrant Drush Version Control Vagrant Most Drupal developers now work on OSX. The Vagarant provisioning scripts may not work on Windows without subtle changes. If supplied, read

More information

CS 2112 Lab: Version Control

CS 2112 Lab: Version Control 29 September 1 October, 2014 Version Control What is Version Control? You re emailing your project back and forth with your partner. An hour before the deadline, you and your partner both find different

More information

Version Control with Git

Version Control with Git Version Control with Git Ben Wasserman (benjamin@cmu.edu) 15-441 Computer Networks Recitation 3 1/28 What is version control? Revisit previous code versions Backup projects Work with others Find where

More information

Content. Development Tools 2(63)

Content. Development Tools 2(63) Development Tools Content Project management and build, Maven Version control, Git Code coverage, JaCoCo Profiling, NetBeans Static Analyzer, NetBeans Continuous integration, Hudson Development Tools 2(63)

More information

Distributed Version Control with Mercurial and git

Distributed Version Control with Mercurial and git OpenStax-CNX module: m37404 1 Distributed Version Control with Mercurial and git Hannes Hirzel This work is produced by OpenStax-CNX and licensed under the Creative Commons Attribution License 3.0 Abstract

More information

CISC 275: Introduction to Software Engineering. Lab 5: Introduction to Revision Control with. Charlie Greenbacker University of Delaware Fall 2011

CISC 275: Introduction to Software Engineering. Lab 5: Introduction to Revision Control with. Charlie Greenbacker University of Delaware Fall 2011 CISC 275: Introduction to Software Engineering Lab 5: Introduction to Revision Control with Charlie Greenbacker University of Delaware Fall 2011 Overview Revision Control Systems in general Subversion

More information

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

DJANGOCODERS.COM THE PROCESS. Core strength built on healthy process DJANGOCODERS.COM THE PROCESS This is a guide that outlines our operating procedures and coding processes. These practices help us to create the best possible software products while ensuring a successful

More information

AVOIDING THE GIT OF DESPAIR

AVOIDING THE GIT OF DESPAIR AVOIDING THE GIT OF DESPAIR EMMA JANE HOGBIN WESTBY SITE BUILDING TRACK @EMMAJANEHW http://drupal.org/user/1773 Avoiding The Git of Despair @emmajanehw http://drupal.org/user/1773 www.gitforteams.com Local

More information

Streamline your drupal development workflow in a 3-tier-environment - A story about drush make and drush aliases

Streamline your drupal development workflow in a 3-tier-environment - A story about drush make and drush aliases Streamline your drupal development workflow in a 3-tier-environment - thomas.bussmeyer@init.de Berlin, 18.09.2011 1. Who we are 2. Scenario 3. Solution 4. Notes Who we are Have a look at http://www.init.de

More information

Software configuration management

Software configuration management Software Engineering Theory Software configuration management Lena Buffoni/ Kristian Sandahl Department of Computer and Information Science 2015-09-30 2 Maintenance Requirements System Design (Architecture,

More information

Version Control with. Ben Morgan

Version Control with. Ben Morgan Version Control with Ben Morgan Developer Workflow Log what we did: Add foo support Edit Sources Add Files Compile and Test Logbook ======= 1. Initial version Logbook ======= 1. Initial version 2. Remove

More information

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

TestOps: Continuous Integration when infrastructure is the product. Barry Jaspan Senior Architect, Acquia Inc. TestOps: Continuous Integration when infrastructure is the product Barry Jaspan Senior Architect, Acquia Inc. This talk is about the hard parts. Rainbows and ponies have left the building. Intro to Continuous

More information

COSC345 2013 Software Engineering. Lecture 7: Version Control

COSC345 2013 Software Engineering. Lecture 7: Version Control COSC345 2013 Software Engineering Lecture 7: Version Control Some Problems Communications File system problems Version control Basic principles and use Outline When to use version control Examples SCCS

More information

SOFTWARE DEVELOPMENT BASICS SED

SOFTWARE DEVELOPMENT BASICS SED SOFTWARE DEVELOPMENT BASICS SED Centre de recherche Lille Nord Europe 16 DÉCEMBRE 2011 SUMMARY 1. Inria Forge 2. Build Process of Software 3. Software Testing 4. Continuous Integration 16 DECEMBRE 2011-2

More information

CONTINUOUS INTEGRATION. Introduction

CONTINUOUS INTEGRATION. Introduction CONTINUOUS INTEGRATION Introduction Continuous Integration is the topic of quite a bit of buzz in Silicon Valley and beyond. And with good reason: continuous integration helps teams ship better software

More information

How To Manage A Multi Site In Drupal

How To Manage A Multi Site In Drupal http://platform.sh sales@platform.sh MODERNISING DRUPAL MULTI-SITE IMPLEMENTATIONS Drupal multi-site is easily re-architected to run each site in its own containerised environment. It s better and it costs

More information

Git Basics. Christopher Simpkins chris.simpkins@gatech.edu. Chris Simpkins (Georgia Tech) CS 2340 Objects and Design CS 1331 1 / 22

Git Basics. Christopher Simpkins chris.simpkins@gatech.edu. Chris Simpkins (Georgia Tech) CS 2340 Objects and Design CS 1331 1 / 22 Git Basics Christopher Simpkins chris.simpkins@gatech.edu Chris Simpkins (Georgia Tech) CS 2340 Objects and Design CS 1331 1 / 22 Version Control Systems Records changes to files over time Allows you to

More information

Version Control with Svn, Git and git-svn. Kate Hedstrom ARSC, UAF

Version Control with Svn, Git and git-svn. Kate Hedstrom ARSC, UAF 1 Version Control with Svn, Git and git-svn Kate Hedstrom ARSC, UAF 2 Version Control Software System for managing source files For groups of people working on the same code When you need to get back last

More information

Version Control with Git. Linux Users Group UT Arlington. Rohit Rawat rohitrawat@gmail.com

Version Control with Git. Linux Users Group UT Arlington. Rohit Rawat rohitrawat@gmail.com Version Control with Git Linux Users Group UT Arlington Rohit Rawat rohitrawat@gmail.com Need for Version Control Better than manually storing backups of older versions Easier to keep everyone updated

More information

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

CPSC 491. Today: Source code control. Source Code (Version) Control. Exercise: g., no git, subversion, cvs, etc.) Today: Source code control CPSC 491 Source Code (Version) Control Exercise: 1. Pretend like you don t have a version control system (e. g., no git, subversion, cvs, etc.) 2. How would you manage your source

More information

MOOSE-Based Application Development on GitLab

MOOSE-Based Application Development on GitLab MOOSE-Based Application Development on GitLab MOOSE Team Idaho National Laboratory September 9, 2014 Introduction The intended audience for this talk is developers of INL-hosted, MOOSE-based applications.

More information

Enterprise IT is complex. Today, IT infrastructure spans the physical, the virtual and applications, and crosses public, private and hybrid clouds.

Enterprise IT is complex. Today, IT infrastructure spans the physical, the virtual and applications, and crosses public, private and hybrid clouds. ENTERPRISE MONITORING & LIFECYCLE MANAGEMENT Unify IT Operations Enterprise IT is complex. Today, IT infrastructure spans the physical, the virtual and applications, and crosses public, private and hybrid

More information

Continuous integration @ Keylane

Continuous integration @ Keylane Continuous integration @ Keylane 1 Keylane Software for pension funds In the business since 2005 Working mostly on EU market 2 1 Teams Around 30 developers and project managers Divided in 10 teams Mostly

More information

WHITEPAPER. Improving database development

WHITEPAPER. Improving database development WHITEPAPER Improving database development Introduction At Redgate, we believe in creating simple, usable tools that address the problems of software developers and technology businesses. In considering

More information

DEPLOYING DRUPAL USING CAPISTRANO

DEPLOYING DRUPAL USING CAPISTRANO DEPLOYING DRUPAL USING CAPISTRANO Jochen Verdeyen @jochenverdeyen SITUATIONS PREREQUISITES SSH Ruby (local) Git (servers) INSTALLATION source 'https://rubygems.org' group :deploy do gem 'capistrano',

More information

Bundler v0.5 Documentation

Bundler v0.5 Documentation Bundler v0.5 Documentation Prepared by the West Quad Computing Group October, 2008 1 Overview In the past, all development and computational activities took place on the (former) Roth lab cluster head-node,

More information

Software Configuration Management Best Practices

Software Configuration Management Best Practices White Paper AccuRev Software Configuration Management Best Practices Table of Contents page Executive Summary...2 Introduction...2 Best Practice 1: Use Change Packages to Integrate with Issue Tracking...2

More information

Two Best Practices for Scientific Computing

Two Best Practices for Scientific Computing Two Best Practices for Scientific Computing Version Control Systems & Automated Code Testing David Love Software Interest Group University of Arizona February 18, 2013 How This Talk Happened Applied alumnus,

More information

Best Practices for Deploying and Managing Linux with Red Hat Network

Best Practices for Deploying and Managing Linux with Red Hat Network Best Practices for Deploying and Managing Linux with Red Hat Network Abstract This technical whitepaper provides a best practices overview for companies deploying and managing their open source environment

More information

Mobile Development with Git, Gerrit & Jenkins

Mobile Development with Git, Gerrit & Jenkins Mobile Development with Git, Gerrit & Jenkins Luca Milanesio luca@gerritforge.com June 2013 1 ENTERPRISE CLOUD DEVELOPMENT Copyright 2013 CollabNet, Inc. All Rights Reserved. About CollabNet Founded in

More information

Version control. with git and GitHub. Karl Broman. Biostatistics & Medical Informatics, UW Madison

Version control. with git and GitHub. Karl Broman. Biostatistics & Medical Informatics, UW Madison Version control with git and GitHub Karl Broman Biostatistics & Medical Informatics, UW Madison kbroman.org github.com/kbroman @kwbroman Course web: kbroman.org/tools4rr Slides prepared with Sam Younkin

More information

Testing Rails. by Josh Steiner. thoughtbot

Testing Rails. by Josh Steiner. thoughtbot Testing Rails by Josh Steiner thoughtbot Testing Rails Josh Steiner April 10, 2015 Contents thoughtbot Books iii Contact us................................ iii Introduction 1 Why test?.................................

More information

F Cross-system event-driven scheduling. F Central console for managing your enterprise. F Automation for UNIX, Linux, and Windows servers

F Cross-system event-driven scheduling. F Central console for managing your enterprise. F Automation for UNIX, Linux, and Windows servers F Cross-system event-driven scheduling F Central console for managing your enterprise F Automation for UNIX, Linux, and Windows servers F Built-in notification for Service Level Agreements A Clean Slate

More information

Version Control Systems

Version Control Systems Version Control Systems ESA 2015/2016 Adam Belloum a.s.z.belloum@uva.nl Material Prepared by Eelco Schatborn Today IntroducGon to Version Control Systems Centralized Version Control Systems RCS CVS SVN

More information

Best Practices Report

Best Practices Report Overview As an IT leader within your organization, you face new challenges every day from managing user requirements and operational needs to the burden of IT Compliance. Developing a strong IT general

More information

Automated build service to facilitate Continuous Delivery

Automated build service to facilitate Continuous Delivery MASTER S THESIS LUND UNIVERSITY 2015 Automated build service to facilitate Continuous Delivery Ture Karlsson Department of Computer Science Faculty of Engineering LTH ISSN 1650-2884 LU-CS-EX 2015-27 Automated

More information

OpenShift. OpenShift platform features. Benefits Document. openshift. Feature Benefit OpenShift. Enterprise

OpenShift. OpenShift platform features. Benefits Document. openshift. Feature Benefit OpenShift. Enterprise openshift Benefits Document platform features Feature Benefit FOR APPLICATIO DEVELOPMET Self-Service and On-Demand Application Stacks By enabling Developers with the ability to quickly and easily deploy

More information

In depth study - Dev teams tooling

In depth study - Dev teams tooling In depth study - Dev teams tooling Max Åberg mat09mab@ Jacob Burenstam Linder ada09jbu@ Desired feedback Structure of paper Problem description Inconsistencies git story explanation 1 Introduction Hypotheses

More information

DRUPAL WEBSITE PLATFORM BUYER S GUIDE

DRUPAL WEBSITE PLATFORM BUYER S GUIDE THE DRUPAL WEBSITE PLATFORM BUYER S GUIDE 5 Steps to Selecting the Best Technology to Build, Launch, and Manage Your Drupal Site 1 The Drupal Website Platform Buyer s Guide EVERYTHING YOU NEED TO KNOW

More information

Software Configuration Management and Continuous Integration

Software Configuration Management and Continuous Integration 1 Chapter 1 Software Configuration Management and Continuous Integration Matthias Molitor, 1856389 Reaching and maintaining a high quality level is essential for each today s software project. To accomplish

More information

Using GitHub for Rally Apps (Mac Version)

Using GitHub for Rally Apps (Mac Version) Using GitHub for Rally Apps (Mac Version) SOURCE DOCUMENT (must have a rallydev.com email address to access and edit) Introduction Rally has a working relationship with GitHub to enable customer collaboration

More information

Software Continuous Integration & Delivery

Software Continuous Integration & Delivery November 2013 Daitan White Paper Software Continuous Integration & Delivery INCREASING YOUR SOFTWARE DEVELOPMENT PROCESS AGILITY Highly Reliable Software Development Services http://www.daitangroup.com

More information

Introduc)on to Version Control with Git. Pradeep Sivakumar, PhD Sr. Computa5onal Specialist Research Compu5ng, NUIT

Introduc)on to Version Control with Git. Pradeep Sivakumar, PhD Sr. Computa5onal Specialist Research Compu5ng, NUIT Introduc)on to Version Control with Git Pradeep Sivakumar, PhD Sr. Computa5onal Specialist Research Compu5ng, NUIT Contents 1. What is Version Control? 2. Why use Version control? 3. What is Git? 4. Create

More information

The Real Challenges of Configuration Management

The Real Challenges of Configuration Management The Real Challenges of Configuration Management McCabe & Associates Table of Contents The Real Challenges of CM 3 Introduction 3 Parallel Development 3 Maintaining Multiple Releases 3 Rapid Development

More information

Global Software Change Management for PVCS Version Manager

Global Software Change Management for PVCS Version Manager Global Software Change Management for PVCS Version Manager... www.ikanalm.com Summary PVCS Version Manager is considered as one of the leading versioning tools that offers complete versioning control.

More information

Vistara Lifecycle Management

Vistara Lifecycle Management Vistara Lifecycle Management Solution Brief Unify IT Operations Enterprise IT is complex. Today, IT infrastructure spans the physical, the virtual and applications, and crosses public, private and hybrid

More information

Managing Source Code With Subversion

Managing Source Code With Subversion Managing Source Code With Subversion May 3rd, 2005: Linux Users Victoria Source Code Management Source Code Management systems (SCMs) rock. Definitely the single most useful tool for a development team,

More information

Gitflow process. Adapt Learning: Gitflow process. Document control

Gitflow process. Adapt Learning: Gitflow process. Document control Adapt Learning: Gitflow process Document control Abstract: Presents Totara Social s design goals to ensure subsequent design and development meets the needs of end- users. Author: Fabien O Carroll, Sven

More information

The Hitchhiker s Guide to Github: SAS Programming Goes Social Jiangtang Hu d-wise Technologies, Inc., Morrisville, NC

The Hitchhiker s Guide to Github: SAS Programming Goes Social Jiangtang Hu d-wise Technologies, Inc., Morrisville, NC Paper PA-04 The Hitchhiker s Guide to Github: SAS Programming Goes Social Jiangtang Hu d-wise Technologies, Inc., Morrisville, NC ABSTRACT Don't Panic! Github is a fantastic way to host, share, and collaborate

More information

Data management on HPC platforms

Data management on HPC platforms Data management on HPC platforms Transferring data and handling code with Git scitas.epfl.ch September 10, 2015 http://bit.ly/1jkghz4 What kind of data Categorizing data to define a strategy Based on size?

More information

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

Jenkins Continuous Build System. Jesse Bowes CSCI-5828 Spring 2012 Jenkins Continuous Build System Jesse Bowes CSCI-5828 Spring 2012 Executive summary Continuous integration systems are a vital part of any Agile team because they help enforce the ideals of Agile development

More information

Optimizing Your Software Process

Optimizing Your Software Process Optimizing Your Software Process Software Configuration Management Best Practices Executive Summary Software configuration management (SCM) comprises of factors such as compliance, workflow, security,

More information

Version Control with Subversion

Version Control with Subversion Version Control with Subversion http://www.oit.duke.edu/scsc/ http://wiki.duke.edu/display/scsc scsc@duke.edu John Pormann, Ph.D. jbp1@duke.edu Software Carpentry Courseware This is a re-work from the

More information

Version Control Your Jenkins Jobs with Jenkins Job Builder

Version Control Your Jenkins Jobs with Jenkins Job Builder Version Control Your Jenkins Jobs with Jenkins Job Builder Abstract Wayne Warren wayne@puppetlabs.com Puppet Labs uses Jenkins to automate building and testing software. While we do derive benefit from

More information

Version Uncontrolled! : How to Manage Your Version Control

Version Uncontrolled! : How to Manage Your Version Control Version Uncontrolled! : How to Manage Your Version Control Harold Dost III, Raastech ABSTRACT Are you constantly wondering what is in your production environment? Do you have any doubts about what code

More information

Intro to Patching. Thomas Cameron, Chief Architect, Western US, Red Hat thomas@redhat.com twitter: thomasdcameron IRC: choirboy on Freenode

Intro to Patching. Thomas Cameron, Chief Architect, Western US, Red Hat thomas@redhat.com twitter: thomasdcameron IRC: choirboy on Freenode Intro to Patching Thomas Cameron, Chief Architect, Western US, Red Hat thomas@redhat.com twitter: thomasdcameron IRC: choirboy on Freenode RHCA, RHCSS, RHCDS, RHCVA, RHCX Agenda 2 Who am I? Who are you?

More information

An Introduction to Mercurial Version Control Software

An Introduction to Mercurial Version Control Software An Introduction to Mercurial Version Control Software CS595, IIT [Doc Updated by H. Zhang] Oct, 2010 Satish Balay balay@mcs.anl.gov Outline Why use version control? Simple example of revisioning Mercurial

More information

Version Control for Computational Economists: An Introduction

Version Control for Computational Economists: An Introduction Version Control for Computational Economists: An Introduction Jake C. Torcasso April 3, 2014 Starting Point A collection of files on your computer Changes to files and new files over time Interested in

More information

Continuous integration for databases using

Continuous integration for databases using Continuous integration for databases using Red Wie Sie Gate die tools Microsoft SQL An overview Continuous integration for databases using Red Gate tools An overview Contents Why continuous integration?

More information

DRUPAL CONTINUOUS INTEGRATION. Part I - Introduction

DRUPAL CONTINUOUS INTEGRATION. Part I - Introduction DRUPAL CONTINUOUS INTEGRATION Part I - Introduction Continuous Integration is a software development practice where members of a team integrate work frequently, usually each person integrates at least

More information

Introduction to Source Control ---

Introduction to Source Control --- Introduction to Source Control --- Overview Whether your software project is large or small, it is highly recommended that you use source control as early as possible in the lifecycle of your project.

More information

Ansible in Depth WHITEPAPER. ansible.com +1 800-825-0212

Ansible in Depth WHITEPAPER. ansible.com +1 800-825-0212 +1 800-825-0212 WHITEPAPER Ansible in Depth Get started with ANSIBLE now: /get-started-with-ansible or contact us for more information: info@ INTRODUCTION Ansible is an open source IT configuration management,

More information

Version Control with Git. Kate Hedstrom ARSC, UAF

Version Control with Git. Kate Hedstrom ARSC, UAF 1 Version Control with Git Kate Hedstrom ARSC, UAF Linus Torvalds 3 Version Control Software System for managing source files For groups of people working on the same code When you need to get back last

More information

Tuskar UI Documentation

Tuskar UI Documentation Tuskar UI Documentation Release Juno Tuskar Team May 05, 2015 Contents 1 Tuskar UI 3 1.1 High-Level Overview.......................................... 3 1.2 Installation Guide............................................

More information

#define. What is #define

#define. What is #define #define What is #define #define is CGI s production system for Application Management and Development, offered in the context of software as a service. It is a project management tool, configuration management

More information

Using Git for Project Management with µvision

Using Git for Project Management with µvision MDK Version 5 Tutorial AN279, Spring 2015, V 1.0 Abstract Teamwork is the basis of many modern microcontroller development projects. Often teams are distributed all over the world and over various time

More information

Git Basics. Christian Hanser. Institute for Applied Information Processing and Communications Graz University of Technology. 6.

Git Basics. Christian Hanser. Institute for Applied Information Processing and Communications Graz University of Technology. 6. Git Basics Christian Hanser Institute for Applied Information Processing and Communications Graz University of Technology 6. March 2013 Christian Hanser 6. March 2013 Seite 1/39 Outline Learning Targets

More information

OpenShift Enterprise PaaS by Red Hat. Andrey Markelov RHCA Red Hat, Presales Solution Architect andrey@redhat.com

OpenShift Enterprise PaaS by Red Hat. Andrey Markelov RHCA Red Hat, Presales Solution Architect andrey@redhat.com OpenShift Enterprise PaaS Red Hat Andrey Markelov RHCA Red Hat, Presales Solution Architect andrey@redhat.com 1 Cloud Service Models IaaS PaaS SaaS APPLICATION APPLICATION PLATFORM (JBOSS, PHP, RUBY, ETC)

More information

Extending Remote Desktop for Large Installations. Distributed Package Installs

Extending Remote Desktop for Large Installations. Distributed Package Installs Extending Remote Desktop for Large Installations This article describes four ways Remote Desktop can be extended for large installations. The four ways are: Distributed Package Installs, List Sharing,

More information

CoDe:U Git Flow - a Continuous Delivery Approach

CoDe:U Git Flow - a Continuous Delivery Approach CoDe:U Git Flow - a Continuous Delivery Approach Praqmatic Software Development 1 Continuous Delivery (CoDe) is an approach that builds very much on divide and conquer. It s bred from a lean and agile

More information

WHITE PAPER. Avoiding the Pitfalls when Transitioning into Managed Services. By Nick Cavalancia

WHITE PAPER. Avoiding the Pitfalls when Transitioning into Managed Services. By Nick Cavalancia Avoiding the Pitfalls when Transitioning into Managed Services By Nick Cavalancia As you begin your journey transitioning into managed services, you ll quickly find the transition is more about how you

More information

Git Branching for Continuous Delivery

Git Branching for Continuous Delivery Git Branching for Continuous Delivery Sarah Goff-Dupont Automation Enthusiast Hello everyone I ll be talking about how teams at Atlassian use Git branches for continuous delivery. My name is Sarah, and

More information

Continuous Integration and Delivery at NSIDC

Continuous Integration and Delivery at NSIDC National Snow and Ice Data Center Supporting Cryospheric Research Since 1976 Continuous Integration and Delivery at NSIDC Julia Collins National Snow and Ice Data Center Cooperative Institute for Research

More information