Beginners guide to at #phpworld

Size: px
Start display at page:

Download "Beginners guide to at #phpworld"

Transcription

1 Beginners guide to deployments at #phpworld

2 Let s talk deployment

3 Your deploys should be as boring, straightforward, and stress-free as possible. - Zach Holman (

4 How do you deploy?

5 Edit on the server?

6 FTP?

7 git pull?

8 Third party deployment?

9 Deployment script?

10 OS packages?

11 These are all valid ways to deploy

12 Deployment for beginners

13 Your deploys should be as boring, straightforward, and stress-free as possible. - Zach Holman (

14 1. What is a deployment? 2. Option A: External tools 3. Option B: Internal tools 4. Option C: System packages 5. Option D: Blue / Green deployments 6. Option E: Immutable infrastructure 7. Deployment techniques 8. Summary

15 What is a deployment?

16 Code

17 Dependencies

18 Configuration

19 Database Migrations

20 Other Migrations

21 Assets

22 Post Install Tasks

23 We re aiming for

24 Your deploys should be as boring, straightforward, and stress-free as possible. - Zach Holman (

25 Our Codebase

26 Simple to do list application

27 Composer Silex Doctrine Migrations

28 Time to deploy!

29 Option A: External tool

30

31

32

33

34

35

36

37

38

39

40 Useful tools Beanstalkapp DeployHQ Laravel Forge

41 Pros Cons 1. Easy setup 2. One-click deployments 3. Environment support 4. Can only deploy from repo 1. Files copied one by one 2. Composer run on server 3. No build steps 4. Their way, or the highway 5. Can t deploy if provider is offline

42 Option B: Internal tool

43

44 $ gem install capistrano

45 $ cap install => mkdir -p config/deploy => create config/deploy.rb => create config/deploy/staging.rb => create config/deploy/production.rb => mkdir -p lib/capistrano/tasks => create Capfile => Capified

46 $ cat config/deploy.rb lock '3.6.1' set :application, 'silex_todo' set :repo_url, set :deploy_to, '/var/www/todo'

47 $ cat config/deploy/production.rb server 'todo.example.com', user: 'deploy', roles: %w{app db}

48 $ cap production deploy 00:00 git:wrapper 01 mkdir -p /tmp 02 chmod 700 /tmp/git-ssh-silex_todo-production-michael.sh 00:07 git:check 01 git ls-remote --heads 00:08 deploy:check:directories 01 mkdir -p /var/www/todo/shared /var/www/todo/releases 00:08 git:clone 01 git clone --mirror /var/www/todo/repo 01 Cloning into bare repository '/var/www/todo/repo'... 00:10 git:update 01 git remote update --prune 01 Fetching origin 00:11 git:create_release 01 mkdir -p /var/www/todo/releases/ git archive master tar -x -f - -C /var/www/todo/releases/ :12 git:set_current_revision 01 echo "6cc1b6cbc827e205b24d0d599ea7b667a3ec5ca0" >> REVISION 00:12 deploy:symlink:release 01 ln -s /var/www/todo/releases/ /var/www/todo/releases/current 02 mv /var/www/todo/releases/current /var/www/todo 00:12 deploy:log_revision 01 echo "Branch master (at 6cc1b6cbc827e205b24d0d599ea7b667a3ec5ca0) deployed as release by michael" >> /var/www/todo/revisions.log

49 $ cap production deploy Generate and upload deployment script Clone repo Generate archive from repo Untar archive into releases folder Symlink current folder to the latest release

50 $ gem install capistrano-composer In Capfile: require 'capistrano/composer'

51 $ cap production deploy 00:18 composer:run 01 composer install --no-dev --prefer-dist --no-interaction -- quiet --optimize-autoloader s

52 lib/capistrano/tasks/database_tasks.rake: namespace :database do desc 'migrate database' task :migrate do on roles(:db) do execute "cd #{release_path} &&./vendor/bin/ doctrine-migrations migrations:migrate --db-configuration config/db-config.php --configuration config/migrations.yml" end end end

53 lib/capistrano/tasks/database_tasks.rake: namespace :database do desc 'migrate database' task :migrate do on roles(:db) do execute "cd #{release_path} &&./vendor/bin/ doctrine-migrations migrations:migrate --db-configuration config/db-config.php --configuration config/migrations.yml" end end end

54 lib/capistrano/tasks/database_tasks.rake: namespace :database do desc 'migrate database' task :migrate do on roles(:db) do execute "cd #{release_path} &&./vendor/bin/ doctrine-migrations migrations:migrate --db-configuration config/db-config.php --configuration config/migrations.yml" end end end

55 lib/capistrano/tasks/database_tasks.rake: namespace :database do desc 'migrate database' task :migrate do on roles(:db) do execute "cd #{release_path} &&./vendor/bin/ doctrine-migrations migrations:migrate --db-configuration config/db-config.php --configuration config/migrations.yml" end end end

56 lib/capistrano/tasks/database_tasks.rake: namespace :database do desc 'migrate database' task :migrate do on roles(:db) do execute "cd #{release_path} &&./vendor/bin/ doctrine-migrations migrations:migrate --db-configuration config/db-config.php --configuration config/migrations.yml" end end end

57 Capfile: after "composer:install", "database:migrate"

58 $ cap production deploy 00:22 database:migrate 01 cd #{release_path} &&./vendor/bin/doctrine-migrations migrations:migrate db-co s

59

60 Useful tools Capistrano Webistrano Rocketeer Ansible

61 Pros Cons 1. One-click deployments 2. Environment support 3. Can only deploy from repo 4. Internal solution 5. Atomic deploys 1. Learning curve 2. Composer run on server 3. No build steps 4. Probably want to use Bundler to manage versions 6. Rollback support

62 Option C: System Packages

63 $ apt-get install todo $ yum install todo $ pacman -S todo

64

65

66 .!"" resources!"" src #!"" application # #!"" controller # # # $"" IndexController.php # #!"" model # # # $"" User.php # # $"" view # # $"" show-user.php #!"" composer.json #!"" composer.lock #!"" config # #!"" mappings.json # # $"" targets.json # $"" public # $"" index.php $"" test

67 .!"" resources $ fpm -s dir -t rpm -n todo!"" src #!"" application # #!"" controller # # # $"" IndexController.php # #!"" model # # # $"" User.php # # $"" view # # $"" show-user.php #!"" composer.json #!"" composer.lock #!"" config # #!"" mappings.json # # $"" targets.json # $"" public # $"" index.php $"" test

68 .!"" resources!"" src #!"" application $ fpm -s dir -t rpm -n todo \ src/=/var/www/todo \ src/config/=/etc/todo # #!"" controller # # # $"" IndexController.php # #!"" model # # # $"" User.php # # $"" view # # $"" show-user.php #!"" composer.json #!"" composer.lock #!"" config # #!"" mappings.json # # $"" targets.json # $"" public # $"" index.php $"" test

69 .!"" resources!"" src #!"" application # #!"" controller # # # $"" IndexController.php $ fpm -s dir -t rpm --config-files /etc \ -n todo \ src/=/var/www/todo \ src/config/=/etc/todo # #!"" model # # # $"" User.php # # $"" view # # $"" show-user.php #!"" composer.json #!"" composer.lock #!"" config # #!"" mappings.json # # $"" targets.json # $"" public # $"" index.php $"" test

70 .!"" resources!"" src #!"" application # #!"" controller # # # $"" IndexController.php # #!"" model $ fpm -s dir -t rpm --config-files /etc \ --exclude "var/www/todo/config*" \ -n todo \ src/=/var/www/todo \ src/config/=/etc/todo # # # $"" User.php # # $"" view # # $"" show-user.php #!"" composer.json #!"" composer.lock #!"" config # #!"" mappings.json # # $"" targets.json # $"" public # $"" index.php $"" test

71 $ fpm -s dir -t rpm --config-files /etc --exclude "var/www/todo/config*" -n todo src/=/var/ www/todo src/config/=/etc/todo => Created package {:path=>"todo x86_64.rpm"}

72 Continous Integration

73 What is Continous Integration?

74 Use it to run tests

75 Use it to composer install

76 Use it to mitigate risk

77 Use it to build on identical platforms

78 Use it to package your application

79 Use it to deploy to production

80 Use it to AUTOMATE THINGS

81

82 Option C: System Packages

83 $ apt-get install todo $ yum install todo $ pacman -S todo

84 Almost

85 Database migrations

86 $ fpm -s dir -t rpm --config-files /etc --exclude "var/www/todo/config*" -n todo src/=/var/ www/todo src/config/=/etc/todo => Created package {:path=>"todo x86_64.rpm"}

87 $ fpm -s dir -t rpm --config-files /etc --exclude "var/www/todo/config*" -n todo --after-install /path/to/script src/=/var/www/ todo src/config/=/etc/todo => Created package {:path=>"todo x86_64.rpm"}

88 Useful tools FPM Jenkins RPM / Deb / Pkg

89 Releases are immutable

90 Pros Cons 1. Atomic releases 2. Build on system tools 3. Proper build toolchain 1. Steep learning curve 2. Need to run package repo 3. Ideal to run CI system 4. Signed builds 5. Easy upgrade/rollback 6. Immutable

91 Option D: Blue / Green

92 Load Balancer

93 Load Balancer

94 Shared databases

95 Single database

96 Server maintenance

97 g u l P p a s s e e h l e m a Sh

98 Infrastructure level

99 Useful tools Puppet / Chef / Ansible HAProxy

100 Pros Cons 1. Low risk deployments 2. Test on production systems 3. Easy changeover 1. Can be expensive 2. Databases are hard 3. More moving parts to manage

101 Option E: Immutable

102 1 0 0 Load Balancer 1 0 1

103 Load Balancer 1 0 1

104 1 0 1 Load Balancer

105 1 0 1 Load Balancer

106 Load Balancer

107 Why immutable?

108 1 0 0 Load Balancer 1 0 1

109 1 0 0 Load Balancer 1 0 1

110 1 0 0 Load Balancer

111 1 0 0 Load Balancer 1 0 2

112 Useful tools Puppet / Chef / Ansible Packer Cloud providers

113 Pros Cons 1. Known environment 2. Test 2+ releases at once 3. Easy changeover 1. Cost 2. Slow to build 3. Database sync 4. Truly atomic releases

114 Deployment techniques

115 Build (at least) daily (even better if it s automated)

116 Announce releases

117 Staggered Releases

118 Canary deploys

119 Go / No Go

120 Containers

121 Chatops

122 Summary

123 Automate your deployment

124 Local builds

125 Immutable releases

126 Think about deployment before you write any code

127 The three strikes rule

128 Make it a single command

129 Your deploys should be as boring, straightforward, and stress-free as possible. - Zach Holman (

130 Michael Heap at #phpworld

The Long Road from Capistrano to Kubernetes

The Long Road from Capistrano to Kubernetes The Long Road from Capistrano to Kubernetes Tobias Schwab, Co-Founder of PhraseApp Slides: http://bit.ly/cap-to-kube How to deploy Ruby on Rails? Deploying Ruby on Rails required on all servers: OS + system

More information

Advanced Continuous Delivery Strategies for Containerized Applications Using DC/OS

Advanced Continuous Delivery Strategies for Containerized Applications Using DC/OS Advanced Continuous Delivery Strategies for Containerized Applications Using DC/OS ContainerCon @ Open Source Summit North America 2017 Elizabeth K. Joseph @pleia2 1 Elizabeth K. Joseph, Developer Advocate

More information

Pulp Python Support Documentation

Pulp Python Support Documentation Pulp Python Support Documentation Release 1.0.1 Pulp Project October 20, 2015 Contents 1 Release Notes 3 1.1 1.0 Release Notes............................................ 3 2 Administrator Documentation

More information

Garment Documentation

Garment Documentation Garment Documentation Release 0.1 Evan Borgstrom March 25, 2014 Contents i ii A collection of fabric tasks that roll up into a single deploy function. The whole process is coordinated through a single

More information

DEVOPS COURSE CONTENT

DEVOPS COURSE CONTENT LINUX Basics: Unix and linux difference Linux File system structure Basic linux/unix commands Changing file permissions and ownership Types of links soft and hard link Filter commands Simple filter and

More information

Managing Infrastructure with Python, Fabric and Ansible. By Tim Henderson hackthology.com github.com/timtadh

Managing Infrastructure with Python, Fabric and Ansible. By Tim Henderson hackthology.com github.com/timtadh Managing Infrastructure with Python, Fabric and Ansible By Tim Henderson tadh@case.edu hackthology.com github.com/timtadh part 00 death of a sys-admin there are too many machines now, we have become root

More information

GIT. A free and open source distributed version control system. User Guide. January, Department of Computer Science and Engineering

GIT. A free and open source distributed version control system. User Guide. January, Department of Computer Science and Engineering GIT A free and open source distributed version control system User Guide January, 2018 Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur Table of Contents What is

More information

Composer Best Practices Nils Private Packagist

Composer Best Practices Nils Private Packagist Composer Best Practices 2018 Private Packagist https://packagist.com 2018? Delete your lock files 2018? Delete your lock files Composer Ecosystem Reality Update 2018 Best Practices? Deployment Improving

More information

Deployability. of Python. web applications

Deployability. of Python. web applications Deployability of Python web applications Bruno Renié EuroPython 2013 Deployability, n The extent to which something is deployable Disclaimer Most of this isn't python-specific or even web-specific Oriented

More information

Linux System Management with Puppet, Gitlab, and R10k. Scott Nolin, SSEC Technical Computing 22 June 2017

Linux System Management with Puppet, Gitlab, and R10k. Scott Nolin, SSEC Technical Computing 22 June 2017 Linux System Management with Puppet, Gitlab, and R10k Scott Nolin, SSEC Technical Computing 22 June 2017 Introduction I am here to talk about how we do Linux configuration management at the Space Science

More information

AEM Code Promotion and Content Synchronization Best Practices

AEM Code Promotion and Content Synchronization Best Practices AEM Code Promotion and Content Synchronization Best Practices Ian Reasor, Technical Architect, Adobe Partner Experience Introduction When considering the movement of content through environments in an

More information

Getting Started With Containers

Getting Started With Containers DEVNET 2042 Getting Started With Containers Matt Johnson Developer Evangelist @mattdashj Cisco Spark How Questions? Use Cisco Spark to communicate with the speaker after the session 1. Find this session

More information

Continuous Delivery of your infrastructure. Christophe

Continuous Delivery of your infrastructure. Christophe Continuous Delivery of your infrastructure Christophe Vanlancker @Carroarmato0 Christophe Vanlancker Internal operations and consulting Mentor Kris couldn t make it so I s/kris/christophe/g Todays Goals

More information

Pipeline as Code for your IAC. Kris

Pipeline as Code for your IAC. Kris Pipeline as Code for your IAC Kris Buytaert @krisbuytaert Kris Buytaert I used to be a Dev, Then Became an Op Chief Trolling Officer and Open Source Consultant @inuits.eu Everything is an effing DNS Problem

More information

GETTING STARTED WITH. Michael Lessard Senior Solutions Architect June 2017

GETTING STARTED WITH. Michael Lessard Senior Solutions Architect June 2017 GETTING STARTED WITH Michael Lessard Senior Solutions Architect June 2017 Agenda What is Git? Installation of Git Git basis Github First steps with Git 2 WHAT IS GIT? What is Git? Started in 2005 Created

More information

Getting the Source Code

Getting the Source Code Getting the Source Code The CORD source code is available from our Gerrit system at gerrit.opencord.org. Setting up a Gerrit account and ssh access will also enable you to submit your own changes to CORD

More information

Drupal & Composer Matthew Grasmick & Jeff Geerling

Drupal & Composer Matthew Grasmick & Jeff Geerling Drupal & Composer Matthew Grasmick & Jeff Geerling Speakers Matthew Grasmick @grasmash Jeff Geerling @geerlingguy Acquian BLT maintainer 10+ years of Drupal Acquian Drupal VM maintainer Agenda Composer

More information

Deploy Like A Boss Oliver Nicholas

Deploy Like A Boss Oliver Nicholas Deploy Like A Boss Oliver Nicholas DEPLOY LIKE A BOSS THE JOURNEY FROM 2 SERVERS TO 20,000 THE DEPLOYMENT PIPELINE MARCH 1, 2015 3 UBER TECHNOLOGIES, INC BUSINESS METRICS 311 Cities 57 Countries 1,000,000+

More information

Composer and Drupal. CIDUG Meeting December 13, 2018 John Rearick

Composer and Drupal. CIDUG Meeting December 13, 2018 John Rearick Composer and Drupal CIDUG Meeting December 13, 2018 John Rearick * Similar to other dependency managers such as: yum, apt, brew, macports, npm, pip, etc. * Helps manage dependency hell. * Lots of dependencies

More information

Git & Github Fundamental by Rajesh Kumar.

Git & Github Fundamental by Rajesh Kumar. Git & Github Fundamental by Rajesh Kumar About me Rajesh Kumar DevOps Architect @RajeshKumarIN www.rajeshkumar.xyz www.scmgalaxy.com 2 What is git Manage your source code versions Who should use Git Anyone

More information

Version control system (VCS)

Version control system (VCS) Version control system (VCS) Remember that you are required to keep a process-log-book of the whole development solutions with just one commit or with incomplete process-log-book (where it is not possible

More information

LENS Server Maintenance Guide JZ 2017/07/28

LENS Server Maintenance Guide JZ 2017/07/28 LENS Server Maintenance Guide JZ 2017/07/28 Duty Maintain LENS server with minimum downtime Patch critical vulnerabilities Assist LAB member for using the LENS services Evaluate for custom requirements

More information

Quick Prototyping+CI with LXC and Puppet

Quick Prototyping+CI with LXC and Puppet Quick Prototyping+CI with LXC and Puppet Ben Kero 2014-05-04 Introduction Ben Kero Release Engineer Responsible for version control systems: CVS, SVN, BZR, Darcs, RCS, Git, Mercurial Before at Mozilla

More information

There Should be One Obvious Way to Bring Python into Production. Sebastian Neubauer

There Should be One Obvious Way to Bring Python into Production. Sebastian Neubauer There Should be One Obvious Way to Bring Python into Production Sebastian Neubauer sebastian.neubauer@blue-yonder.com 1 Agenda What are we talking about and why? Delivery pipeline Dependencies Packaging

More information

Walter walterebert.de slideshare.net/walterebert

Walter walterebert.de slideshare.net/walterebert Walter Ebert @wltrd walterebert.de slideshare.net/walterebert https://getcomposer.org/doc/00-intro.md Composer installieren php -r \ "readfile('https://getcomposer.org/installer');" \ > composer-setup.php

More information

Build & Launch Tools (BLT) Automating best practices for enterprise sites

Build & Launch Tools (BLT) Automating best practices for enterprise sites Build & Launch Tools (BLT) Automating best practices for enterprise sites Who are you? Matthew Grasmick @grasmash on Drupal.org, twitter, etc. Acquia Professional Services, 4yrs Drupalist, 9yrs Maintainer

More information

Gunnery Documentation

Gunnery Documentation Gunnery Documentation Release 0.1 Paweł Olejniczak August 18, 2014 Contents 1 Contents 3 1.1 Overview................................................. 3 1.2 Installation................................................

More information

COMPOSER IN DRUPAL WORLD

COMPOSER IN DRUPAL WORLD #drupaldevdays / Composer in Drupal World / @derhasi COMPOSER IN DRUPAL WORLD Johannes Haseitl - @derhasi ME Johannes Haseitl @derhasi everywhere Maintainer of Master, Search API Override,... CEO of undpaul

More information

DevOps Course Content

DevOps Course Content DevOps Course Content 1. Introduction: Understanding Development Development SDLC using WaterFall & Agile Understanding Operations DevOps to the rescue What is DevOps DevOps SDLC Continuous Delivery model

More information

This tutorial provides a basic understanding of the infrastructure and fundamental concepts of managing an infrastructure using Chef.

This tutorial provides a basic understanding of the infrastructure and fundamental concepts of managing an infrastructure using Chef. About the Tutorial Chef is a configuration management technology developed by Opscode to manage infrastructure on physical or virtual machines. It is an open source developed using Ruby, which helps in

More information

Tizen Project Guideline. SKKU Embedded Software Lab.

Tizen Project Guideline. SKKU Embedded Software Lab. 1 Tizen Project Guideline Tizen Project Process 2 Assume that you have done flashing Tizen images. 1. Preparation Install Tizen Development Environments 2. Github 1. Sign in Github 2. Make an Organization

More information

Configuration Management - Using Puppet. lctseng / Liang-Chi Tseng

Configuration Management - Using Puppet. lctseng / Liang-Chi Tseng Configuration Management - Using Puppet lctseng / Liang-Chi Tseng Our Target Share several files Configuration files (httpd.conf) Regular data files (wallpapaer.jpg) System-wide configuration Add/Modify

More information

Developing and Testing Java Microservices on Docker. Todd Fasullo Dir. Engineering

Developing and Testing Java Microservices on Docker. Todd Fasullo Dir. Engineering Developing and Testing Java Microservices on Docker Todd Fasullo Dir. Engineering Agenda Who is Smartsheet + why we started using Docker Docker fundamentals Demo - creating a service Demo - building service

More information

PHP-Einführung - Lesson 8 - Composer (Dependency manager) and JSON. Alexander Lichter June 27, 2017

PHP-Einführung - Lesson 8 - Composer (Dependency manager) and JSON. Alexander Lichter June 27, 2017 PHP-Einführung - Lesson 8 - Composer (Dependency manager) and JSON Alexander Lichter June 27, 2017 Content of this lesson 1. Recap 2. Composer 3. JSON 4. Collections (next lesson) 1 Recap Recap Recap Recap

More information

Ruby in the Sky with Diamonds. August, 2014 Sao Paulo, Brazil

Ruby in the Sky with Diamonds. August, 2014 Sao Paulo, Brazil Ruby in the Sky with Diamonds August, 2014 Sao Paulo, Brazil JELASTIC PLATFORM AS INFRASTRUCTURE Jelastic provides enterprise cloud software that redefines the economics of cloud deployment and management.

More information

If you had a freshly generated image from an LCI instructor, make sure to set the hostnames again:

If you had a freshly generated image from an LCI instructor, make sure to set the hostnames again: Storage Node Setup A storage node (or system as your scale) is a very important unit for an HPC cluster. The computation is often about the data it produces and keeping that data safe is important. Safe

More information

Git Command Line Tool Is Not Installed

Git Command Line Tool Is Not Installed Git Command Line Tool Is Not Installed Make Sure It Is Accessible On Y Error: "git" command line tool is not installed: make sure it is accessible on y I have installed git tool. even in git bash its showing

More information

Created by: Nicolas Melillo 4/2/2017 Elastic Beanstalk Free Tier Deployment Instructions 2017

Created by: Nicolas Melillo 4/2/2017 Elastic Beanstalk Free Tier Deployment Instructions 2017 Created by: Nicolas Melillo 4/2/2017 Elastic Beanstalk Free Tier Deployment Instructions 2017 Detailed herein is a step by step process (and explanation) of how to prepare a project to be deployed to Amazon

More information

Version Control: Gitting Started

Version Control: Gitting Started ting Started Cai Li October 2014 What is Version Control? Version control is a system that records changes to a file or set of files over time so that you can recall specific versions later. Local Version

More information

DevOps Online Training

DevOps Online Training DevOps Online Training IQ Online training facility offers Devops online training by trainers who have expert knowledge in the Devops and proven record of training hundreds of students. Our Oracle Devops

More information

CS 261 Recitation 1 Compiling C on UNIX

CS 261 Recitation 1 Compiling C on UNIX Oregon State University School of Electrical Engineering and Computer Science CS 261 Recitation 1 Compiling C on UNIX Winter 2017 Outline Secure Shell Basic UNIX commands Editing text The GNU Compiler

More information

TECHNICAL DESCRIPTION

TECHNICAL DESCRIPTION TECHNICAL DESCRIPTION Product Snow Inventory Version 5 Release date 2016-09-27 Document date 2017-11-24 CONTENTS 1 Introduction... 3 1.1 What s new?... 3 2 Platform overview... 4 2.1 Architecture... 4

More information

Implementing the Twelve-Factor App Methodology for Developing Cloud- Native Applications

Implementing the Twelve-Factor App Methodology for Developing Cloud- Native Applications Implementing the Twelve-Factor App Methodology for Developing Cloud- Native Applications By, Janakiram MSV Executive Summary Application development has gone through a fundamental shift in the recent past.

More information

Infoblox Kubernetes1.0.0 IPAM Plugin

Infoblox Kubernetes1.0.0 IPAM Plugin 2h DEPLOYMENT GUIDE Infoblox Kubernetes1.0.0 IPAM Plugin NIOS version 8.X August 2018 2018 Infoblox Inc. All rights reserved. Infoblox Kubernetes 1.0.0 IPAM Deployment Guide August 2018 Page 1 of 18 Overview...

More information

UP! TO DOCKER PAAS. Ming

UP! TO DOCKER PAAS. Ming UP! TO DOCKER PAAS Ming Jin(mjin@thoughtworks.com) March 15, 2015 1 WHO AM I Ming Jin Head of Cloud Solutions of ThoughtWorks China Architect, Agile Consulting Solutions and Consulting on DevOps & Cloud

More information

Continuous Integration and Delivery with Spinnaker

Continuous Integration and Delivery with Spinnaker White Paper Continuous Integration and Delivery with Spinnaker The field of software functional testing is undergoing a major transformation. What used to be an onerous manual process took a big step forward

More information

Copyright Heraflux Technologies. Do not redistribute or copy as your own. 1

Copyright Heraflux Technologies. Do not redistribute or copy as your own. 1 @kleegeek davidklee.net heraflux.com in/davidaklee Specialties / Focus Areas / Passions: Performance Tuning Business Continuity Virtualization & Cloud Infrastructure Architecture Health & Efficiency Capacity

More information

TangeloHub Documentation

TangeloHub Documentation TangeloHub Documentation Release None Kitware, Inc. September 21, 2015 Contents 1 User s Guide 3 1.1 Managing Data.............................................. 3 1.2 Running an Analysis...........................................

More information

Docker at Lyft Speeding up development Matthew #dockercon

Docker at Lyft Speeding up development Matthew #dockercon Docker at Lyft Speeding up development Matthew Leventi @mleventi #dockercon Lyft Engineering Lyft Engineering Organization - Rapidly growing headcount - Fluid teams - Everyone does devops Technology -

More information

The 12-Factor app and IBM Bluemix IBM Corporation

The 12-Factor app and IBM Bluemix IBM Corporation The 12-Factor app and IBM Bluemix After you complete this section, you should understand: The characteristics of a 12-Factor app Examples of following 12-Factor App methodology in Bluemix 2 What are the

More information

Debian 8 Jessie. About. Commit Log. Please NOTE that Debian 9 Stretch is now officially supported by FreeSWITCH.

Debian 8 Jessie. About. Commit Log. Please NOTE that Debian 9 Stretch is now officially supported by FreeSWITCH. Debian 8 Jessie About Please NOTE that Debian 9 Stretch is now officially supported by FreeSWITCH. Debian 8 "Jessie" was the reference platform for FreeSWITCH as of version 1.6. We recommend Debian 9 "Stretch"

More information

Simplified CICD with Jenkins and Git on the ZeroStack Platform

Simplified CICD with Jenkins and Git on the ZeroStack Platform DATA SHEET Simplified CICD with Jenkins and Git on the ZeroStack Platform In the technical article we will walk through an end to end workflow of starting from virtually nothing and establishing a CICD

More information

SQL Server Administration on Linux 2017

SQL Server Administration on Linux 2017 @kleegeek davidklee.net heraflux.com davidaklee Specialties / Focus Areas / Passions: Performance Tuning Business Continuity Virtualization & Cloud Infrastructure Architecture Health & Efficiency Capacity

More information

Aspirin as a Service: Using the Cloud to Cure Security Headaches

Aspirin as a Service: Using the Cloud to Cure Security Headaches SESSION ID: CSV-T10 Aspirin as a Service: Using the Cloud to Cure Security Headaches Bill Shinn Principle Security Solutions Architect Amazon Web Services Rich Mogull CEO Securosis @rmogull Little. Cloudy.

More information

git the SCM system Jan-Simon Möller training.linuxfoundation.org

git the SCM system Jan-Simon Möller training.linuxfoundation.org git the SCM system Jan-Simon Möller training.linuxfoundation.org Topics What is git (what is a SCM) How to install git How to personalize git How to use git for development What is git? What is a SCM System?

More information

fpm-cookery Documentation

fpm-cookery Documentation fpm-cookery Documentation Release 0.33.0 Bernd Ahlers Jun 10, 2018 Contents 1 Features 3 2 Documentation Contents 5 2.1 Getting Started.............................................. 5 2.2 Using Hiera................................................

More information

CS 520: VCS and Git. Intermediate Topics Ben Kushigian

CS 520: VCS and Git. Intermediate Topics Ben Kushigian CS 520: VCS and Git Intermediate Topics Ben Kushigian https://people.cs.umass.edu/~rjust/courses/2017fall/cs520/2017_09_19.zip Our Goal Our Goal (Overture) Overview the basics of Git w/ an eye towards

More information

We are ready to serve Latest Testing Trends, Are you ready to learn?? New Batches Info

We are ready to serve Latest Testing Trends, Are you ready to learn?? New Batches Info We are ready to serve Latest Testing Trends, Are you ready to learn?? New Batches Info START DATE : TIMINGS : DURATION : TYPE OF BATCH : FEE : FACULTY NAME : LAB TIMINGS : PH NO: 9963799240, 040-40025423

More information

CORD How to build a POD and automate deployments. #OpenCORD

CORD How to build a POD and automate deployments. #OpenCORD CORD How to build a POD and automate deployments Full POD: definition The minimum amount of hardware that can be used to perform a full test of the current CORD features Mgmt L2 switch switch Tricks Avoid

More information

platform Development Process Optimization For Drupal centric projects

platform Development Process Optimization For Drupal centric projects platform Development Process Optimization For Drupal centric projects Introduction This document explains how Platform impacts your Drupal centric project development process. Performance data from digital

More information

Git Basi, workflow e concetti avanzati (pt2)

Git Basi, workflow e concetti avanzati (pt2) Git Basi, workflow e concetti avanzati (pt2) Andrea Fornaia, Ph.D. Department of Mathema.cs and Computer Science University of Catania Viale A.Doria, 6-95125 Catania Italy fornaia@dmi.unict.it hfp://www.cs.unict.it/~fornaia/

More information

OXID eshop developer documentation

OXID eshop developer documentation OXID eshop developer documentation Release 1.0.0 OXID esales AG Oct 26, 2017 Contents 1 Table of Contents 3 1.1 Getting started.............................................. 3 1.1.1 Environment preparation....................................

More information

e2 factory the emlix Embedded Build Framework

e2 factory the emlix Embedded Build Framework e2 factory the emlix Embedded Build Framework Agenda Motivation Basic Concepts Design and Implementation Working with e2 factory e2 factory Motivation Motivation Development Tools Source Code Management

More information

APEX Installation Guide. Sven van der Meer, Liam Fallon, John Keeney. Version SNAPSHOT, T16:01:13Z

APEX Installation Guide. Sven van der Meer, Liam Fallon, John Keeney. Version SNAPSHOT, T16:01:13Z APEX Installation Guide Sven van der Meer, Liam Fallon, John Keeney Version 2.0.0-SNAPSHOT, 2018-10-10T16:01:13Z Table of Contents 1. Requirements............................................................................................

More information

CONTINUOUS INTEGRATION CONTINUOUS DELIVERY

CONTINUOUS INTEGRATION CONTINUOUS DELIVERY USING KUBERNETES FOR CONTINUOUS INTEGRATION AND CONTINUOUS DELIVERY Carlos Sanchez csanchez.org / @csanchez ABOUT ME Engineer @ CloudBees, Scaling Jenkins Author of Jenkins Kubernetes plugin Contributor

More information

Con$nuous Integra$on Development Environment. Kovács Gábor

Con$nuous Integra$on Development Environment. Kovács Gábor Con$nuous Integra$on Development Environment Kovács Gábor kovacsg@tmit.bme.hu Before we start anything Select a language Set up conven$ons Select development tools Set up development environment Set up

More information

Think Small to Scale Big

Think Small to Scale Big Think Small to Scale Big Intro to Containers for the Datacenter Admin Pete Zerger Principal Program Manager, MVP pete.zerger@cireson.com Cireson Lee Berg Blog, e-mail address, title Company Pete Zerger

More information

INDIGO PAAS TUTORIAL. ! Marica Antonacci RIA INFN-Bari

INDIGO PAAS TUTORIAL. ! Marica Antonacci RIA INFN-Bari INDIGO PAAS TUTORIAL RIA-653549! Marica Antonacci!! marica.antonacci@ba.infn.it! INFN-Bari INDIGO PAAS Tutorial Introductory Concepts TOSCA Ansible Docker Orchestrator APIs INDIGO TOSCA custom types and

More information

Platform Migrator Technical Report TR

Platform Migrator Technical Report TR Platform Migrator Technical Report TR2018-990 Munir Contractor mmc691@nyu.edu Christophe Pradal christophe.pradal@inria.fr Dennis Shasha shasha@cs.nyu.edu May 12, 2018 CONTENTS: 1 Abstract 4 2 Platform

More information

Building Tizen Development Environment

Building Tizen Development Environment Building Tizen Development Environment Minsoo Ryu Real-Time Computing and Communications Lab. Hanyang University msryu@hanyang.ac.kr Tizen 2.3 Development Environment Target hardware device Tizen Reference

More information

What I ll be talking about. About me & bol.com The CI/CD bol.com Current setup. The future in the cloud

What I ll be talking about. About me & bol.com The CI/CD bol.com Current setup. The future in the cloud CI/CD @ bol.com What I ll be talking about 1. 2. 3. 4. 5. About me & bol.com The CI/CD story @ bol.com Current setup Mayfly The future in the cloud About me Maarten Dirkse @mdirkse on Twitter In IT since

More information

@jonahhorowitz. Configuration Management is an anti-pattern

@jonahhorowitz. Configuration Management is an anti-pattern Configuration Management is an anti-pattern jonah@laptop$ cvs update website jonah@laptop$ tar zcvf website.tar.gz website jonah@laptop$ scp website.tar.gz root@server1:/var/ something/ jonah@laptop$ ssh

More information

Automating All The Things. Sebastian Feldmann

Automating All The Things. Sebastian Feldmann Automating All The Things Sebastian Feldmann Automation "Automate until the job is boring as hell" Automation System Configuration Software Deployment Software Preparation Putting it all together App deployment,

More information

DEVOPS TRAINING COURSE CONTENT

DEVOPS TRAINING COURSE CONTENT DEVOPS TRAINING COURSE CONTENT SECTION 1 Introduction to DevOps Certification What is DevOps? Why DevOps? Benefits of DevOps Overview of DevOps SECTION 2- Provisioning Vargant-What is vagrant-compare with

More information

Working in Teams CS 520 Theory and Practice of Software Engineering Fall 2018

Working in Teams CS 520 Theory and Practice of Software Engineering Fall 2018 Working in Teams CS 520 Theory and Practice of Software Engineering Fall 2018 Version Control September 18, 2018 Thursday (September 20) First in-class exercise On using git (today is a prelude with useful

More information

A BASIC UNDERSTANDING OF VERSION CONTROL

A BASIC UNDERSTANDING OF VERSION CONTROL A BASIC UNDERSTANDING OF VERSION CONTROL DID YOU EVER DO THIS? DID YOU EVER DO THIS? DID YOU EVER DO THIS? DID YOU EVER DO THIS? DID YOU EVER DO THIS? DID YOU EVER DO THIS? DID YOU EVER DO THIS? DID YOU

More information

Technical Manual. Software Quality Analysis as a Service (SQUAAD) Team No.1. Implementers: Aleksandr Chernousov Chris Harman Supicha Phadungslip

Technical Manual. Software Quality Analysis as a Service (SQUAAD) Team No.1. Implementers: Aleksandr Chernousov Chris Harman Supicha Phadungslip Technical Manual Software Quality Analysis as a Service (SQUAAD) Team No.1 Implementers: Aleksandr Chernousov Chris Harman Supicha Phadungslip Testers: Kavneet Kaur Reza Khazali George Llames Sahar Pure

More information

Version control. what is version control? setting up Git simple command-line usage Git basics

Version control. what is version control? setting up Git simple command-line usage Git basics Version control what is version control? setting up Git simple command-line usage Git basics Version control - intro ensure we keep track of changes, updates, contributions, suggested mods... could try

More information

Step 1: Setup a Gitlab account

Step 1: Setup a Gitlab account Most of us agree that Continuous Integration (CI), Continuous Delivery (CD), cloud infrastructure, test automation, and configuration management make up the basics of devops. Depending on the scale of

More information

Lecture 01 - Working with Linux Servers and Git

Lecture 01 - Working with Linux Servers and Git Jan. 9, 2018 Working with Linux Servers: SSH SSH (named for Secure SHell) is a protocol commonly used for remote login. You can use it from a command line interface with the following syntax ssh username@server_url

More information

Flatpak a technical walk-through. Alexander Larsson, Red Hat

Flatpak a technical walk-through. Alexander Larsson, Red Hat Flatpak a technical walk-through Alexander Larsson, Red Hat What is Flatpak? apps for the Linux Desktop Distribute your app Run it anywhere Build in anywhere Run it sandboxed How is this different from

More information

GIT DISTRIBUTED IS THE NEW CENTRALISED

GIT DISTRIBUTED IS THE NEW CENTRALISED GIT DISTRIBUTED IS THE NEW CENTRALISED BEGINNER WORKSHOP FETCH YOURSELF LAPTOP INSTALLING linux: sudo apt-get install git linux: sudo yum install git osx: brew install git osx: macports install git windows:

More information

Sometimes Tools Matter. John E. Vincent DevOpsDays Goteborg 2011

Sometimes Tools Matter. John E. Vincent DevOpsDays Goteborg 2011 Sometimes Tools Matter John E. Vincent DevOpsDays Goteborg 2011 We all know about DevOps We all know about DevOps I R DEV! I R OPS! So what's the big deal? With XXXXX you are be able to do easily common

More information

Ansible Cookbook 2014

Ansible Cookbook 2014 René Moser Tue Nov 25 23:13:45 UTC 2014 1 Contents Contents Intro 4 Basics 5 How do I use all hosts data in my play or template? 6 Solution................................................... 6 Explanation.................................................

More information

Modern and Fast: A New Wave of Database and Java in the Cloud. Joost Pronk Van Hoogeveen Lead Product Manager, Oracle

Modern and Fast: A New Wave of Database and Java in the Cloud. Joost Pronk Van Hoogeveen Lead Product Manager, Oracle Modern and Fast: A New Wave of Database and Java in the Cloud Joost Pronk Van Hoogeveen Lead Product Manager, Oracle Scott Lynn Director of Product Management, Oracle Linux and Oracle Solaris, Oracle October

More information

Using git to download and update BOUT++

Using git to download and update BOUT++ ER Meeting 14th Sept 2015 1/28 Using git to download and update BOUT++ Peter Hill ER Meeting 14th Sept 2015 2/28 Outline What is git? Getting git Basic git usage Getting BOUT++ Compiling BOUT++ Running

More information

LSST software stack and deployment on other architectures. William O Mullane for Andy Connolly with material from Owen Boberg

LSST software stack and deployment on other architectures. William O Mullane for Andy Connolly with material from Owen Boberg LSST software stack and deployment on other architectures William O Mullane for Andy Connolly with material from Owen Boberg Containers and Docker Packaged piece of software with complete file system it

More information

a. puppet should point to master (i.e., append puppet to line with master in it. Use a text editor like Vim.

a. puppet should point to master (i.e., append puppet to line with master in it. Use a text editor like Vim. Head Node Make sure that you have completed the section on Precursor Steps and Storage. Key parts of that are necessary for you to continue on this. If you have issues, please let an instructor know to

More information

Howto: CVS to Git Efficient Multi-Module CVS Migration

Howto: CVS to Git Efficient Multi-Module CVS Migration Howto: CVS to Git Efficient Multi-Module CVS Migration Simon Cook Embecosm Application Note 11. Issue 1 Publication date February 2013 Legal Notice This work is licensed under the Creative Commons Attribution

More information

DevOps Course Content

DevOps Course Content Introduction to DevOps: Background Ingredients of DevOps DevOps principles Who has adopted? Mirage or Reality? Challenges, Domain specific Technology specific DevOps Toolchain (Practices and Tools) SDLC

More information

IBM z Systems Development and Test Environment Tools User's Guide IBM

IBM z Systems Development and Test Environment Tools User's Guide IBM IBM z Systems Development and Test Environment Tools User's Guide IBM ii IBM z Systems Development and Test Environment Tools User's Guide Contents Chapter 1. Overview......... 1 Introduction..............

More information

This tutorial introduces you to FuelPHP framework and makes you comfortable with its various components.

This tutorial introduces you to FuelPHP framework and makes you comfortable with its various components. About the Tutorial FuelPHP is an open source web application framework, designed for developers who need a simple and elegant toolkit to create full-featured web applications. The development of FuelPHP

More information

swiftenv Documentation

swiftenv Documentation swiftenv Documentation Release 1.3.0 Kyle Fuller Sep 27, 2017 Contents 1 The User Guide 3 1.1 Installation................................................ 3 1.2 Getting Started..............................................

More information

CMSilex Documentation

CMSilex Documentation CMSilex Documentation Release 0.1 Leigh Murray December 01, 2016 Contents 1 Introduction 3 2 Usage 5 2.1 Installation................................................ 5 2.2 Bootstrap.................................................

More information

AALOK INSTITUTE. DevOps Training

AALOK INSTITUTE. DevOps Training DevOps Training Duration: 40Hrs (8 Hours per Day * 5 Days) DevOps Syllabus 1. What is DevOps? a. History of DevOps? b. How does DevOps work anyways? c. Principle of DevOps: d. DevOps combines the best

More information

BPPM Patrol Agent Installation Steps on Linux and Automation Integration

BPPM Patrol Agent Installation Steps on Linux and Automation Integration BPPM Patrol Agent Installation Steps on Linux and Automation Integration Author: Karlis Peterson, Software Consultant, BMC Software Version: 1.0 Date: May 12, 2013 DISCLAIMER NOTICE This is Field Developed

More information

Continuous Integration using Docker & Jenkins

Continuous Integration using Docker & Jenkins Jenkins LinuxCon Europe 2014 October 13-15, 2014 Mattias Giese Solutions Architect giese@b1-systems.de - Linux/Open Source Consulting, Training, Support & Development Introducing B1 Systems founded in

More information

AWS Course Syllabus. Linux Fundamentals. Installation and Initialization:

AWS Course Syllabus. Linux Fundamentals. Installation and Initialization: AWS Course Syllabus Linux Fundamentals Installation and Initialization: Installation, Package Selection Anatomy of a Kickstart File, Command line Introduction to Bash Shell System Initialization, Starting

More information

Niv Mizrahi. VP github.com/nivm

Niv Mizrahi. VP  github.com/nivm Python Packaging Niv Mizrahi VP R&D @ emedgene @ravinizme github.com/nivm Python We Love Python Python The syntax is simple and expressive, it has tons of open source modules and frameworks and a great

More information

Hg Tutorial. For : COP Object oriented Programming (Using C++) Biswas Parajuli

Hg Tutorial. For : COP Object oriented Programming (Using C++)  Biswas Parajuli Hg Tutorial For : COP 3330. Object oriented Programming (Using C++) http://www.compgeom.com/~piyush/teach/3330 Biswas Parajuli Need for Version Control http://hginit.com/01.html Repository Working directory:

More information