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

Similar documents
Git - Working with Remote Repositories

AVOIDING THE GIT OF DESPAIR

Putting It All Together. Vagrant Drush Version Control

How To Manage Change In Jeepers

Simple and powerful site deployment with capistrano

Extending Remote Desktop for Large Installations. Distributed Package Installs

Drupal Drush Guide. Drupal.org

A Git Development Environment

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

MANAGE AND DEPLOY YOUR SITES WITH DRUSH

Zero-Touch Drupal Deployment

Enterprise-level EE: Uptime, Speed, and Scale

MATLAB & Git Versioning: The Very Basics

Introduction to the Git Version Control System

Drupal CMS for marketing sites

Dry Dock Documentation

Achieving Continuous Integration with Drupal

Platform as a Service and Container Clouds

BOA BARRACUDA ON ÆGIR ~ MY FIRST YEAR ~ Mladen

Source Code Management for Continuous Integration and Deployment. Version 1.0 DO NOT DISTRIBUTE

Taking Drupal development to the Cloud. Karel Bemelmans

Using GitHub for Rally Apps (Mac Version)

Magento OpenERP Integration Documentation

MOOSE-Based Application Development on GitLab

Modern Web development and operations practices. Grig Gheorghiu VP Tech Operations Nasty Gal

INUVIKA OVD INSTALLING INUVIKA OVD ON UBUNTU (TRUSTY TAHR)

Version Control using Git and Github. Joseph Rivera

Improving your Drupal Development workflow with Continuous Integration

ULTEO OPEN VIRTUAL DESKTOP UBUNTU (PRECISE PANGOLIN) SUPPORT

depl Documentation Release depl contributors

Installing buzztouch Self Hosted

ALERT installation setup

IBM Cloud Manager with OpenStack

Livezilla How to Install on Shared Hosting By: Jon Manning

Installing an open source version of MateCat

Version Control with Git. Linux Users Group UT Arlington. Rohit Rawat

Creating a DUO MFA Service in AWS

DRUPAL CONTINUOUS INTEGRATION. Part I - Introduction

How To Manage A Multi Site In Drupal

Cloud Homework instructions for AWS default instance (Red Hat based)

FEEG Applied Programming 3 - Version Control and Git II

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

Data management on HPC platforms

Drupal for Designers

ABRAHAM ARCHITECTURE OF A CLOUD SERVICE USING PYTHON TECHNOLOGIES

Hudson configuration manual

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

Git Fusion Guide August 2015 Update

HW9 WordPress & Google Analytics

Hadoop Data Warehouse Manual

Module 11 Setting up Customization Environment

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

GitLab as an Alternative Development Platform for Github.com

Kollaborate Server Installation Guide!! 1. Kollaborate Server! Installation Guide!

Building Library Website using Drupal

Deploy Your First CF App on Azure with Template and Service Broker. Thomas Shao, Rita Zhang, Bin Xia Microsoft Azure Team

Embedded Based Web Server for CMS and Automation System

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

Virtual Machine daloradius Administrator Guide Version 0.9-9

Installation of PHP, MariaDB, and Apache

Installing Booked scheduler on CentOS 6.5

PZVM1 Administration Guide. V1.1 February 2014 Alain Ganuchaud. Page 1/27

Ulteo Open Virtual Desktop Installation

Camilyo APS package by Techno Mango Service Provide Deployment Guide Version 1.0

How To Install Project Photon On Vsphere 5.5 & 6.0 (Vmware Vspher) With Docker (Virtual) On Linux (Amd64) On A Ubuntu Vspheon Vspheres 5.4

Building a Continuous Integration Pipeline with Docker

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

CentOS. Apache. 1 de 8. Pricing Features Customers Help & Community. Sign Up Login Help & Community. Articles & Tutorials. Questions. Chat.

5 Mistakes to Avoid on Your Drupal Website

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

@CodenvyHQ

Bazaarvoice for Magento

Basic, Professional & Professional Box

About This Document 3. About the Migration Process 4. Requirements and Prerequisites 5. Requirements... 5 Prerequisites... 5

JAMF Software Server Installation and Configuration Guide for Linux. Version 9.2

Migration and Building of Data Centers in IBM SoftLayer with the RackWare Management Module

CI Pipeline with Docker

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.

Phoronix Test Suite v5.8.0 (Belev)

Using Microsoft Azure for Students

Distributed Version Control with Mercurial and git

SIG-NOC Meeting - Stuttgart 04/08/2015 Icinga - Open Source Monitoring

Implementing Continuous Integration and Cloud Server Infrastructure for an International Enterprise Based In Finland

Developer Workshop Marc Dumontier McMaster/OSCAR-EMR

EZblue BusinessServer The All - In - One Server For Your Home And Business

Setting up a local working copy with SVN, MAMP and rsync. Agentic

Host your websites. The process to host a single website is different from having multiple sites.

Memopol Documentation

CHEF IN THE CLOUD AND ON THE GROUND

Using Toaster in a Production Environment

Tips for getting started! with! Virtual Data Center!

Icinga and Puppet Dominik Schulz Head of Datacenter and Operations Magic Internet / MyVideo

ProjectPier v Getting Started Guide

Transcription:

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 apps since 2000. 100% Drupal and related. Building Drupal since 2004. Focus on hard problems: Migrations, Integrations, Security, Permissions, and Infrastructure.

What? "Drupal Infrastructure" 1. "Hardware" infrastructure: The computers physically 2. 3. storing and processing your sites and data. Software Infrastructure: The software tools that make Drupal possible: Linux, Apache, MySQL, PHP. Drupal Infrastructure: All of the above, plus scripts and tools to manage Drupal sites and data.

What? DevShop Open Source Drupal Infrastructure Management System IMS

What? IMS A Drupal Infrastructure Management System: 1. Provides a web and API interface for managing multiple environments and servers for Drupal sites. 2. Automates Drupal site provisioning. 3. Integrates with version control systems.

What? IMS Most Drupal IMS are: 1. 2. 3. 4. Only available as a service. Locked into a single hardware provider. Expensive. Servers are automatically provisioned.

What? IMS DevShop 1. 2. 3. 4. Is free and open source software. Can be installed on any Linux server. Does not automatically provision servers. Does not tell you how to configure your server.

What? DevShop is built on Aegir. Automating Drupal Hosting since circa 2004. Aegir handles: Provisioning database, db users, and grants. Creates VirtualHost config files. Creates settings.php, files folders, sets permissions. Allows deployment to multiple servers.

What? DevShop is built on Aegir. Enhancing Aegir since February 2012 DevShop adds to Aegir: Uses Git to deploy Drupal sites. Provides extra tools to Pull Code, Sync Data, etc. Friendly add-on features for efficient development.

Where? http://drupal.org/project/devshop

DevShop Installation

How? http://drupal.org/project/devshop 1. Get a (preferably short) domain name. 2. Get a Server and set the hostname to be the domain name. Use Ubuntu 12.04 LTS. 3. Add a DNS record for your domain and IP, plus a wildcard record: ourdevshop.com. IN A 1.2.3.4 *.ourdevshop.com. IN A 1.2.3.4 4. wget http://getdevshop.com/install.ubuntu sudo sh install.ubuntu

Screenshot: Completed install.ubuntu

DevShop Create your first project.

You have your Drupal site in a git repo, don't you?

This server's Public SSH Key. Add to your Git repository account so the server can access your repo.

git ls-remote git@github.com:thinkdrop/drupal-flat.git

Extensible perenvironment Settings Name your environments Pick your Git Branches Choose Servers Pull Code on Commit

Cloning your repo to each of your environments. git clone git@github.com:thinkdrop/drupal-flat.git --branch dev

Once cloned, DevShop analyzes your Drupal code.

BACKEND MAGIC MYSQL: CREATE USER 'devnycdevshop'; CREATE DATABASE 'devnycdevshop'; GRANT PERMISSIONS; APACHE: Create <virtualhost> entry. DRUPAL: Create settings.php and files folders. DRUSH: Create drush site alias. Install Drupal. FOR ALL ENVIRONMENTS

DevShop Project Dashboard

Available Tasks Git & Project Information Environments

Project Settings Easy-to-copy git URL Available git branches Last automatic Git Pull

Links Git Branch Commit Logs EVEN MORE THINGS Error Logs File Browser New Envs

View Task Logs O E R MO... R E T Run a LA IS H Task T N

DevShop Connect your Git Repo "Auto-pull!"

1. 2. 3. 4. Git host receives a commit. Git host pings your DevShop. DevShop runs "Pull Code". Drupal caches are cleared. Doesn't run update.php or revert all features. Don't automate those things.

DevShop Tasks, not Scripts

"Tasks" Front-end interface to backend commands. Drupal module + a drush command working together. drush @project_name provision-devshop-commit drush @project_name provision-devshop-pull drush @project_name provision-devshop-sync drush @project_name provision-devshop-test

"Tasks" Drupal forms become drush options. drush @project_name provision-devshop-commit dev -message="features Export!" --push --revert

"Tasks" Tracks who started it, when, and how long it took. Error logs are stored for easy viewing.

"Tasks" Every "script" you use to manage your server should be a task. A task is nothing more than a drush command and a Drupal module.

DevShop Development Workflow Tasks

Pull Code drush @project_name provision-devshop-pull dev --update --revert --cache git pull drush update-db drush features-revert-all drush cc all drush cc all drush cc all

Sync Data drush @project_name provision-devshop-sync dev test --files --databse -update --revert --cache --pull git pull drush sql-sync @source @destination drush rsync @source:%files @destination:%files drush update-db drush features-revert-all drush cc all; drush cc all; drush cc all;

Run Tests drush @project_name provision-devshop-test dev SystemIndexPhpTest drush en simpletest drush test-run SystemIndexPhpTest

Commit Features drush @project_name provision-devshop-commit dev --message="commit from the Web!" --push --revert drush features-update-all git commit -am git push drush features-revert-all --force

Fork Environment git clone --branch dev git checkout -b newbranch git push origin newbranch drush sql-sync @source @new_environment

DevShop Multiple Servers All Aegir

DevShop Servers Must setup the server ahead of time: LAMP + Aegir user + SSH Keys Once connected with SSH, Aegir can put Drupal platforms and their sites on any server. On "Verify", Aegir rsync's the codebase to the remote servers.

DevShop Bonus Features

Bonus Features Apache Solr for every site. Download Drush Aliases HTTP Password Protection Server Clusters and Master/Slave DBs NGINX Automatic Cron Setup

DevShop The Future?

The Future? Better GitHub Integration: Automated Git repo creation. Automatic Environments from Pull Requests. Merge Branch interface. Tag and Release system.

The Future? Better User Management SSH Key uploading. Assign users to project. Activity streams.

The Future? Better User Interface Needs a major facelift. Responsive/Mobile web.

The Future? Chef Integration node/add/server Improve the open source chef recipes for Aegir/DevShop. Integrate with any chef knife or openstack-compatible cloud host to instantly deploy properly configured servers.

Who? DevShop Contributors Aegir Contributors Jon Pugh alchemist fastangel helmo frazras wodenx ergonlogic kjl dfried ergonlogic anarcat Deciphered helmo Steven Jones omega8cc thedavidmeister Jon Pugh fastangel jlscott mig5 tstoeckler Dane Powell GuyPaddock seth. vincent joestewart sfyn Thomas Bosviel cafuego adrian drumm yhahn spiderman liorkesos lieb marvil07 wamilton Pol bgm halcyoncorsair juampy Thomas Bosviel greenscientist mathieu

Questions? drupal.org/project/devshop #devshop and #aegir on irc.freenode.net Jon Pugh CEO, Founder ThinkDrop Consulting Brooklyn NY

NYC Camp Announcement Get Involved in Core Sprints! 1. 2. 3. It starts at 9am tomorrow. Anyone who has site building experience and a laptop is qualified and encouraged to come. There will be friendly mentors onsite to help and match you with tasks.