Docker, Containers, and the Future of Application Delivery Ivan Gaas.

Slides:



Advertisements
Similar presentations
Devops – The Last Mile. Jay Flowers
Advertisements

Ravi Mathur Updated December 5,  ODTBX uses Git (see the ODTBX Git Tutorial) ODTBXODTBX Git Tutorial ◦ SourceForge account needed (free). SourceForge.
A complete web app using flex. You can use the flex builder to generate the php (server side) code for a flex-php application. As before, Php connects.
Docker Martin Meyer Agenda What is Docker? –Docker vs. Virtual Machine –History, Status, Run Platforms –Hello World Images and Containers.
Building Bridges, Connecting Communities Paul Lieberman Non-Profit, Government, and Higher Education. May 21, 2013 How Oregon State University manages.
E-Commerce The technical side. LAMP Linux Linux Apache Apache MySQL MySQL PHP PHP All Open Source and free packages. Can be installed and run on most.
Securing LAMP: Linux, Apache, MySQL and PHP Track 2 Workshop PacNOG 7 July 1, 2010 Pago Pago, American Samoa.
E-Commerce LAB#1 Samia alblwi1E-Commerce ( IS412) 2011.
Cloud IT Better.
STIG Compliance and Remediation with Ansible April 2015.
Windows Azure Conference 2014 Running Docker on Windows Azure.
MCDevOps Infrastructure In One Hour. Sponsors Improving Enterprises Software Development.
Sending s with SendGrid and Laravel
Model a Container Runtime environment on Your Mac with VMware AppCatalyst VMworld Fabio Rapposelli
MSc. Miriel Martín Mesa, DIC, UCLV. The idea Installing a High Performance Cluster in the UCLV, using professional servers with open source operating.
Working with Ubuntu Linux Track 2 Workshop June 2010 Pago Pago, American Samoa.
DB server + PHPMyAdmin ดรัสวิน วงศ์ปรเมษฐ์ สาขาวิชาเทคโนโลยีสารสนเทศ คณะ วิทยาศาสตร์ มรภ. บร. 19/10/56.
Version control Using Git Version control, using Git1.
Managing Drupal with Aegir Chris Burge Burge Consulting, LLC 30 June 2013 Dublin, Ireland Drupal Dev Days.
CMSBrownBag,05/29/2007 B.Mangano How to “use” CMSSW on own Linux Box and be happy In this context “use” means: - check-out pre-compiled CMSSW code - run.
Puppet with vSphere Workshop Install, configure and use Puppet on your laptop for vSphere DevOps Billy Lieberman August 1, 2015.
Git (Get) it done right! Practical Applied Version Control for Drupal site developers Peter Chen - Stanford School of Engineering Technical Webmaster.
Source Control Primer Patrick Cozzi University of Pennsylvania CIS Spring 2012.
Version Control. How do you share code? Discussion.
GTRI Proprietary / Limited Distribution. Architecture File System DataLoader API Analytics API Visualization API MongoDB Resource Management Layer Python.
Vagrant workflow Jul. 15, 2014.
How to setup a Linux Web Server and use it to monitor your home SPEAKER: JESSICA DEEN – SYSTEMS INTEGRATION ENGINEER – SPK AND ASSOCIATES,
Introduction to GitHub Alex Bigazzi Dec. 4, 2013 ITS Lab GitHub Introduction1.
Centreon Deployment Chris Scicluna
Drush: The Drupal Shell Utility Trevor Mckeown Founder & Owner Sublime Technologies
Yang Kaiyuan Chen Yiping Wang Cong Apache http Server.
1 GIT NOUN \’GIT\ A DISTRIBUTED REVISION CONTROL AND SOURCE CODE MANAGEMENT (SCM) SYSTEM WITH AN EMPHASIS ON SPEED. INITIALLY DESIGNED AND DEVELOPED BY.
Ruby on Rails on Ubuntu Bradley Taylor Rails Machine, LLC
Wordpress with Mina Automated Deployment Solution Jonathan Gravato DIG 4104c.
Intro to Git presented by Brian K. Vagnini Hosted by.
Introduction to Linux Server Setup Jonathan Hood CSE 4000 Practical Issues in Software Engineering.
Installing Koha Presented By Aaron R. Williams KOHA North American Users Group.
#SummitNow Applying DevOps to the Alfresco Development Cycle 7 th November 2013 Robin Bramley, Ixxus.
Chef Fundamentals by Chef Software, Inc. is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.Chef Software, Inc. Creative.
Alfresco deployment with Docker Andrea Agili Software Engineer – Dr Wolf srl Tommaso Visconti DevOps – Dr Wolf srl.
Importing a github repository Dong Nie. Example used: JavaTeaching If you have already loaded JavaTeahcing from zip file, you should delete it before.
Installing git In Linux: sudo apt-get install git In Windows: download it from run the setuphttp://git-scm.com/download/win.
WordPress and Etherpad with BlueMix and Docker. Our aim is to run on BlueMix containers (now in beta) these two famous services In the BlueMix dashboard,
DECTRIS Ltd Baden-Daettwil Switzerland Continuous Integration and Automatic Testing for the FLUKA release using Jenkins (and Docker)
Linux Basics Part 2. VIM Editor vi improved Installed on most Linux machines Can be a bit confusing at first... o Cheat sheets FTW Other popular editors:
1 Policy Based Systems Management with Puppet Sean Dague
Alfresco Software Provisioning Kit
Kickstart drupal development
Agenda:- DevOps Tools Chef Jenkins Puppet Apache Ant Apache Maven Logstash Docker New Relic Gradle Git.
Site Administration Tools: Ansible
Daniel Templeton, Cloudera, Inc.
Efficient development and deployment of Hydra projects using Vagrant
Using Vagrant to Build a Manageable and Sharable Lab Environment
Version Control.
on behalf of the NRC-KI Tier-1 team
IT Atoumation / Conf. Mgmt...
Vagrant Managing Virtual Machines
Configuration Management
Lab 1 introduction, debrief
Drupal VM and Docker4Drupal For Drupal Development Platform
More Scripting & Chapter 11
Drupal VM and Docker4Drupal as Consistent Drupal Development Platform
Site Deployment Module
X in [Integration, Delivery, Deployment]
A simple way to configure PHP and Apache for Assignment 2
Presented By - Avinash Pawar
GBIF CESP Workshop, Madrid 2018 Dave Martin
Docker, Drupal and Persistence
Mark Buckler September 8, 2017
Dreaming up a CMS in Go (golang)
Presentation transcript:

Docker, Containers, and the Future of Application Delivery Ivan Gaas

DevOps Engineer Problems: How to configure destination server the same way of my one? How to do it repeatable and automatically? How to delivery my project to this server? How to be sure my project will work always with right environment?

Ivan Gaas DevOps Engineer Chef base = %w{ apt build-essential git curl vim } apache= %w{ apache2 apache2::mod_rewrite apache2::mod_php5 apache2::mod_expires } php = %w{ php php::module_mysql php::module_memcache php::module_gd php::module_curl} mysql = %w{ mysql::server} drupal= %w{ drush memcached } [base, apache, php, mysql, drupal].each do |group| group.each {|recipe| include_recipe recipe} end pkgs = value_for_platform( [ 'centos', 'redhat', 'fedora' ] => 'default' => %w{ pcre-devel php-mcrypt } }, [ 'debian', 'ubuntu' ] => { 'default' => %w{ libpcre3-dev php5-mcrypt } }, 'default' => %w{ libpcre3-dev php5-mcrypt} ) pkgs.each {|pkg| package ( pkg ) { action :install } } php_pear ('uploadprogress') { action :install } template "#{node['php']['ext_conf_dir']}/deploy-drupal.ini" do source "deploy-drupal.ini.erb" mode 0644 owner "root" group "root" notifies :reload, "service[apache2]" end class drupal_sandbox ( $virtual_document_root = '/srv/www/vhost/%0', $use_varnish = false, $php_memory_limit = $drupal_sandbox::params::php_memory_limit, $apache_addr = $drupal_sandbox::params::apache_addr, $apache_port = $drupal_sandbox::params::apache_port, $memcache_mem = $drupal_sandbox::params::memcache_mem, $apache_mpm_wk_max_clients = $drupal_sandbox::params::apache_mpm_wk_max_clients, $fpm_max_children = $drupal_sandbox::params::fpm_max_children, $fpm_start_servers = $drupal_sandbox::params::fpm_start_servers, $fpm_min_spare_servers = $drupal_sandbox::params::fpm_min_spare_servers, $fpm_max_spare_servers = $drupal_sandbox::params::fpm_max_spare_servers, $innodb_buffer_pool_size = $drupal_sandbox::params::innodb_buffer_pool_size, $innodb_log_file_size = $drupal_sandbox::params::innodb_log_file_size ) inherits drupal_sandbox::params Puppet - group_by: key={{ ansible_os_family }} - name: make sure the ssh user is part of users user: name={{ ansible_ssh_user }} groups=users,{{ www_user }} append=yes when: ansible_ssh_user != 'root' - name: make sure the vhosts directory exists (ignore chgrp errors on vagrant) file: path=/var/www/vhosts/{{ item.key }} state=directory mode=2775 owner={{ ansible_ssh_user }} group=users with_dict: sites ignore_errors: true - name: Clone the code from repository git: repo={{ item.value.git }} dest=/var/www/vhosts/{{ item.key }}/drupal version={{ item.value.version }} accept_hostkey=yes with_dict: sites sudo: no - name: Create files folder (ignore chgrp errors on vagrant) file: path=/var/www/vhosts/{{ item.key }}/drupal/sites/default/files state=directory mode=2775 owner={{ ansible_ssh_user }} group={{ www_user }} recurse=yes with_dict: sites ignore_errors: true - name: Create cache folder (boost) (ignore chgrp errors on vagrant) Ansible Skipped over lines…

Ivan Gaas DevOps Engineer WTF??? Chef Puppet Ansible SaltStack

Ivan Gaas DevOps Engineer Why and what is Docker?

Ivan Gaas DevOps Engineer Environment compatibility nightmare

Ivan Gaas DevOps Engineer Cargo transport pre 1960

Ivan Gaas DevOps Engineer Delivery matrix

Ivan Gaas DevOps Engineer Solution: shipping containers

Ivan Gaas DevOps Engineer Containers are standard

Ivan Gaas DevOps Engineer Docker containers

Ivan Gaas DevOps Engineer Delivery matrix

Ivan Gaas DevOps Engineer Docker is not only containers but packaging layers Me: Anyone: Base layer My layer Anyone’s layer Common layer

Ivan Gaas DevOps Engineer Docker layers

Ivan Gaas DevOps Engineer Fast and easy start Just learn: docker pull docker run docker exec docker commit docker push As easy as basic GIT!

Ivan Gaas DevOps Engineer Enjoy!

Ivan Gaas DevOps Engineer Ivan Gaas DevOps Engineer Золотой спонсор: Thank you! При поддержке: Серебряный спонсор: