Déploiement automatisé d applications Ruby on Rails. Etienne Charlier 20/03/2014

Documents pareils
Les termes du cloud CUMULO NUMBIO 2015 O. COLLIN

Optimisation de la supervision by Somone. - Présentation Générale -!

Présentation Level5. Editeur de Logiciels. «If it s not monitored, it s not in production» Theo Schlossnagle #velocityconf

Automatisation de l administration système

Gérer ses environnements de développement avec Vagrant RMLL 2012

Améliorez et industrialisez vos feedback produit

Catalogue de FORMATIONS 2015

VAGRANT POUR LES DÉVELOPPEURS

SAUVER LA DISTRIBUTION!

DOCUMENTATION KAPTravel Module de gestion des appels de disponibilité

Morea : Experts Cloud

Ma stack d ou,ls agiles, tout un programme! OU COMMENT BÉNÉFICIER DES TECHNOLOGIES GRAND PUBLIC POUR AMÉLIORER ET OPTIMISER MES OUTILS LOGICIELS.

Mon subjet et quelque chose qui est très per8nent etant donné que nos infrastructure devient de plus et plus virtualisée et élas8que.

Simplifiez la ges-on de votre parc informa-que

Évolu>on et maintenance

Grid 5000 : Administration d une infrastructure distribuée et développement d outils de déploiement et d isolation réseau

Comment CEGID et ses solu/ons peuvent elles implémenter les standards TICPME2010?

Déployer et sécuriser des applica1ons mobiles dans votre SI / Cloud

Nom du client. Date. Client Logo or project name

Ges$on des clients du réseau pédagogique. Stéphan Cammarata - DANE Strasbourg - Version 10/2013

Speed up your business

LES SOLUTIONS DE MESSAGERIE ET BUREAUTIQUE PROFESSIONNELLES

Découvrir Drupal. Les meilleurs thèmes et modules Drupal (présenta5on démo)

RESSOURCES INFORMATIQUES UFR IMAG ANNEE Présentation service informatique UFR IMAG année 2010/2011 1

Service de Messagerie Enseignement et Recherche

UN GUIDE PROPOSÉ PAR PME-WEB MARKETING GUIDE ULTIME DES MOTS INTERDITS. Un guide pour Éviter de voir vos passer en SPAM. web.

Cabinet de Conseil STRATÉGIE MANAGEMENT ORGANISATION JURIDIQUE FORMATION AVEC BW CONSULTANTS CHOISISSEZ DE GARANTIR VOTRE DEVELOPPEMENT

SÉCURITÉ POUR CTO DE STARTUP

Cloud Privé / Public / Hybrid. Romain QUINAT vente-privee.com

PHP et le Cloud. All rights reserved. Zend Technologies, Inc.

ParK24. Solu%on innovante pour un sta%onnement intelligent

Pe#t déjeuner Prévention des risques professionnels dans la Mutualité

Le contrôle fiscal anno 2013

Prépara&on Opéra&onnelle à l Emploi de BASYCA (POEB) BASYCA SAS FRANCE - Anzize BADAROU

Automatiser le Software-Defined Data Center avec vcloud Automation Center

Stéphane DERACO, DSI CNRS l Argos Devops : de l hyperviseur aux conteneurs l 11/12/2014 DOCKER

Présenta6on Isatech. ERP, Décisionnel, Architecture Systèmes & Réseaux. Isatech Tous droits réservés Page 1

I- USBKey Transfer. Guide d u5lisa5on. Comment u)liser I- USBKey Transfer?

Les méthodes Agiles. Introduc)on aux méthodes Agiles Exemple : Scrum

Gestion de configuration

Cloud Computing & PHP

Concepon et réalisaon

SPIP. Gestion de la performance dans SPIP. Préoccupa)on historique

De l'open source à l'open cloud

Le cloud computing au service des applications cartographiques à haute disponibilité

Oracle Public Cloud. Services & Roadmap. Jean- Marc Digne Oracle Public Cloud Ambassador Oracle France. Janvier 2015

Consultants, trouvez de nouveaux marchés grâce aux médias sociaux animé par Valérie March au Salon des micro- entreprises 2012

Cloud et PaaS: les développeurs reprennent le

Construire le Business Case lié à l automatisation du Cloud avec vcloud Suite

L essentiel de la communication Web To Store

vcloud Director Comment créer et gérer son «Cloud» Jean-Claude DAUNOIS Senior Systems Engineer VMware

MTI820 Entrepôts de données et intelligence d affaires. Les applica+ons de BI

Utilisation du cloud computing pour l infrastructure fédérale de données géographiques suisse : 4 années d expérience

MTI820 Entrepôts de données et intelligence d affaires. Gouvernance des données et ges1on des données de référence

Savoir- Faire Offres mé1ers Offres technologiques

22 & 23 NOVEMBRE 2012 LE MOT DU PRESIDENT 20 ANS ET UN NOUVEAU RECORD 142 PARTICIPANTS POUR 71 CABINETS LES TITRES

Qui sommes nous? Partie 1

H2PS engage ses compétences auprès des entreprises et des parculiers par la mise en place de soluons d accompagnements et de services.

Coopération Textile dans la Zone EuroMed

Le cycle de vie d'un projet en intelligence d'affaires

L Europe s engage en Mar/nique auprès des Entreprises

CATALOGUE DES OFFRES 2014

LA LOGISTIQUE LES BONNES QUESTIONS À SE POSER

VMware Infrastructure The New Computing Platform. Stéphane CROIX Systems Engineer

Getting Started. 10 étapes pour bien démarrer. Avant de démarrer. Première connexion PCC

La démarche Omnicanal Outils d'aide à l'amélioration de l'expérience client Avec le partenaire SKema Alumni

Entreprise Chiffres clefs

Maintenance et gestion approfondie des Systèmes d exploitation Master 2 SILI. Année universitaire David Genest

Le tout à l usage dans un IaaS public «Comment une plateforme industrielle permet de déployer des usages applicatifs en accord avec cette promesse»

Section I: Le Contexte du DATA CENTER Pourquoi l AGILITE est Nécessaire dans le DataCenter

Vers une meilleure gouvernance des plateformes d ingénierie

Veeam Backup & Replication v6

LA DIGITALISATION DE LA RELATION CLIENT

Réunion de rentrée Licence PER Programma3on en environnement répar3. Année universitaire

Open-cloud, où en est-on?

Machine virtuelle W4M- Galaxy : Guide d'installation

Jérémie Grodziski. Architecte Logiciel. Présenta2on Domaines et Compétences Contact Références Modes d interven2ons Exper2se Technologique

Qu est ce qu une PME? 4. Pourquoi investir dans une PME? 6. Comment investir en direct dans une PME? 10

Hébergement MMI SEMESTRE 4

Premier Accelerate Packages: Azure Fast Start

Vers un Système unique d informa4on na4onale de médicaments au Mexique, dans le cadre du suivi de l OMD 8.13

Offre Azimut CONTENT MARKETING. A l a&en)on de : Date de remise : Version : 3.0

INGÉNIEUR - DÉVELOPPEUR EXPÉRIMENT É PHP - MAGENT O. 30 ans - 6 ans d'expérience

Hands on Openstack : Introduction

Du Datacenter au Cloud Quels challenges? Quelles solutions? Christophe Dubos Architecte Microsoft

Le Cloud: Mythe ou Réalité?

HÉBERGEMENT CLOUD & SERVICES MANAGÉS

La stratégie Cloud de Microsoft

Tutoriel Cloud IFB - Initiation -

INTRASTAT No ce explica ve Merkbla

Construction et déploiement d applications Java avec Maven, Archiva, Groovy et Jenkins

Virtual Data Center d Interoute. Prenez la main sur votre Cloud.

Présenta)on DesignBuilder

ORACLE PAAS CLOUD MANAGEMENT

EXALOGIC ELASTIC CLOUD MANAGEMENT

Entrepôt de données et l Analyse en ligne. Maguelonne Teisseire Hugo Alatrista Salas hugo.alatrista- salas@teledetec9on.fr Flavien Bouillot

Cloud Computing. Groupe : Vincent, Mohammed, Yannick, Allan Tuteur : Mr. NUSSBAUM Lucas Année : 2009/2010

G.U.S.T.A.V. Gestion Unifiée des Systèmes de fichiers Transposée aux Appareillages Virtuels G U S T A V

GESTION DU CYCLE DE VIE. Albert Amar Avant-vente Middleware

Transcription:

Déploiement automatisé d applications Ruby on Rails Etienne Charlier 20/03/2014

Qui suis-je? E"enne Charlier Au CETIC depuis 2008 So8ware and Services Technologies Expert technique Senior Administra"on d infrastructure IT Missions d'aide à l'innova"on Projets de recherche Cloud e"enne.charlier@ce"c.be

Où travaille-je? Centre de R&D en TIC au service des entreprises ACADEMICS INDUSTRY Recherche appliquée Etudes de faisabilité Preuves de concept Transfert technologique

Agenda INTRODUCTION 3 Constats sur le déploiement Impacts Infrastructure as code Ou"ls et langages ILLUSTRATION : Applica"on Ruby on Rails Descrip"on Sélec"on des ou"ls de développement Déploiement sur l environnement de développement Déploiement sur l environnement de produc"on CONCLUSIONS

Agenda INTRODUCTION 3 Constats sur le déploiement Impacts Infrastructure as code Ou"ls et langages ILLUSTRATION : Applica"on Ruby on Rails Descrip"on Sélec"on des ou"ls de développement Déploiement sur l environnement de développement Déploiement sur l environnement de produc"on CONCLUSIONS

Constat 1: Produit OFF- THE- SHELF INFRASTRUCTURE CLIENT Fournisseur livre un produit à installer Déploiement par le client sur son infrastructure

Constat 1: Produit OFF- THE- SHELF SaaS INFRASTRUCTURE CLIENT FOURNISSEUR Fournisseur offre un service prêt à l emploi Déploiement opéré par le fournisseur de la solu"on

Constat 1: Produit OFF- THE- SHELF SaaS INFRASTRUCTURE CLIENT FOURNISSEUR Fournisseur offre un service prêt à l emploi Déploiement opéré par le fournisseur de la solu"on Améliorer le déploiement

Constat 2: Méthodologie WATERFALL AGILE EQUIPE OPS Releases régulières rares Déploiements rares Effort de déploiement doit être allégé

Constat 2: Méthodologie WATERFALL AGILE EQUIPE OPS Releases régulières Equipe surchargée

Constat 2: Méthodologie WATERFALL AGILE EQUIPE OPS Releases régulières Equipe surchargée Alléger le déploiement

Constat 3: Infrastructure SERVEUR PHYSIQUE EQUIPE OPS µ Serveur unique, nommé, connu et chouchouté Si malade à on le soigne Si abîmé à on le répare Equipe surchargée

Constat 3: Infrastructure SERVEUR PHYSIQUE VIRTUALISATION EQUIPE OPS Serveurs clonés, anonymes et maltraités Si malade, euthanasié Equipe sur- surchargée

Constat 3: Infrastructure SERVEUR PHYSIQUE VIRTUALISATION EQUIPE OPS Serveurs clonés, anonymes et maltraités Si malade, euthanasié Equipe sur- surchargée Automa4ser le déploiement

Agenda INTRODUCTION 3 Constats sur le déploiement Impacts Infrastructure as code Ou"ls et langages ILLUSTRATION : Applica"on Ruby on Rails Descrip"on Sélec"on des ou"ls de développement Déploiement sur l environnement de développement Déploiement sur l environnement de produc"on CONCLUSIONS

DEV + OPS => DEVOPS

DEV + OPS => DEVOPS

DEV + OPS => DEVOPS DEVOPS INFRASTRUCTURE AS CODE

Agenda INTRODUCTION 3 Constats sur le déploiement Impacts Infrastructure as code Ou"ls et langages ILLUSTRATION : Applica"on Ruby on Rails Descrip"on Sélec"on des ou"ls de développement Déploiement sur l environnement de développement Déploiement sur l environnement de produc"on CONCLUSIONS

Infrastructure as code Développement du code pour automa"ser le déploiement à U"liser les techniques de so8ware engineering dans le cadre de ces développements à Ou"ls à Langages

Agenda INTRODUCTION 3 Constats sur le déploiement Impacts Infrastructure as code Ou"ls et langages ILLUSTRATION : Applica"on Ruby on Rails Descrip"on Sélec"on des ou"ls de développement Déploiement sur l environnement de développement Déploiement sur l environnement de produc"on CONCLUSIONS

Rappel: Dans la tête d un DEV «APP» OUTILS LANGAGES?

Dans la tête d un DEV «OPS» OUTILS LANGAGES DEVOPS

Rappel: Outils du dev «APP» Environnement de travail du développeur «APP» Environnement de développement Déboggeur/Environnement de test Ges"onnaire de sources

Outils du dev OPS Environnement de travail du développeur «OPS» Environnement de développement Environnement de test des déploiements Ges"onnaire de sources

Outils OPS

Outils OPS

Outils OPS

Agenda INTRODUCTION 3 Constats sur le déploiement Impacts Infrastructure as code Ou"ls et langages ILLUSTRATION : Applica"on Ruby on Rails Descrip"on Sélec"on des ou"ls de développement Déploiement sur l environnement de développement Déploiement sur l environnement de produc"on CONCLUSIONS

Agenda INTRODUCTION 3 Constats sur le déploiement Impacts Infrastructure as code Ou"ls et langages ILLUSTRATION : Applica"on Ruby on Rails Descrip"on Sélec"on des ou"ls de développement Déploiement sur l environnement de développement Déploiement sur l environnement de produc"on CONCLUSIONS

Illustration : timetrack Dev Interne Web based Ruby on Rails MySql VM Ubuntu Cloud privé

Agenda INTRODUCTION 3 Constats sur le déploiement Impacts Infrastructure as code Ou"ls et langages ILLUSTRATION : Applica"on Ruby on Rails Descrip"on Sélec"on des ou"ls de développement Déploiement sur l environnement de développement Déploiement sur l environnement de produc"on CONCLUSIONS

Sélection des outils de DEV OUTILS LANGAGES?

Sélection des outils de DEV OUTILS LANGAGES

Sélection des outils de OPS OUTILS LANGAGES DEVOPS

Sélection des outils de OPS OUTILS LANGAGES DEVOPS

Sélection des outils de OPS OUTILS LANGAGES DEVOPS

Vagrant But: exécuter le code de déploiement dans un environnement de test Principe: pilotage de virtual box via l API pour cloner, démarrer et supprimer des vms sur la sta"on du DEVOPS Basé sur des baseboxes disponibles sur hgp://vagrantcloud.com Fabriquées sur mesure hgp://www.vagrantup.com/

Vagrant

vagrant box add Vagrant

vagrant up Vagrant

Sélection des outils de OPS OUTILS LANGAGES DEVOPS

Sélection des outils de OPS OUTILS LANGAGES DEVOPS

Puppet But: configurer la vm pour qu elle puisse héberger l applica"on Installa"on Configura"on MW Principe: Décrire les configura"ons des vms (paquets, services, fichiers de configura"on) et puppet prend en charge l applica"on des configura"ons. hgps://puppetlabs.com/ Note: exécute les ac"ons root

Puppet catalogue des configura"ons id id catalogue effec"f

Puppet id id catalogue effec"f

Puppet état actuel catalogue effec"f ac"ons à effectuer

Puppet effectue les ac"ons ac"ons à effectuer

vm dans l état spécifié dans le catalogue Puppet

Puppet Morceaux choisis Installa"on des paquets Installa"on de mysql Créa"on de la db Créa"on de l u"lisateur Installa"on de rbenv Compila"on d une version de ruby

Puppet Morceaux choisis Installa"on des paquets Installa"on de mysql Créa"on de la db Créa"on de l u"lisateur Installa"on de rbenv Compila"on d une version de ruby

Puppet Morceaux choisis Installa"on des paquets Installa"on de mysql Créa"on de la db Créa"on de l u"lisateur Installa"on de rbenv Compila"on d une version de ruby

Puppet Morceaux choisis Installa"on des paquets Installa"on de mysql Créa"on de la db Créa"on de l u"lisateur Installa"on de rbenv Compila"on d une version de ruby

Puppet Morceaux choisis Installa"on des paquets Installa"on de mysql Créa"on de la db Créa"on de l u"lisateur Installa"on de rbenv Compila"on d une version de ruby

Sélection des outils de OPS OUTILS LANGAGES DEVOPS

Sélection des outils de OPS OUTILS LANGAGES DEVOPS

Capistrano But: Déployer l applica"on sur la vm Principe: Exécuter les tâches désirées (task) sur une ou plusieurs vms appartenant à un environnement (stage) Se connecte en ssh à la vm Exécute des commandes en fonc"on de receges décrites dans le code (deploy.rb et deploy/*.rb) Les tâches consistent principalement à déployer une version d une applica"on, venant du SCM. Les stages définissent les environnements des"na"on Références des serveurs Branche du SCM à déployer (trunk ou release par exemple) hgp://www.capistranorb.com/

Capistrano

Capistrano

Capistrano Pour RoR, fournit un ensemble de receges (classes rb) de base qui déploie l applica"on Ges"on de l historique des déploiements Installa"on des dépendances OPT: précompila"on des assets Migra"on du schéma de db Chargement des données ini"ales Redémarrage du démon

Capistrano Pour RoR, fournit un ensemble de receges (classes rb) de base qui déploie l applica"on Ges"on de l historique des déploiements Installa"on des dépendances OPT: précompila"on des assets Migra"on du schéma de db Chargement des données ini"ales Redémarrage du démon

Capistrano Pour RoR, fournit un ensemble de receges (classes rb) de base qui déploie l applica"on Ges"on de l historique des déploiements Installa"on des dépendances OPT: précompila"on des assets Migra"on du schéma de db Chargement des données ini"ales Redémarrage du démon

Capistrano Pour RoR, fournit un ensemble de receges (classes rb) de base qui déploie l applica"on Ges"on de l historique des déploiements Installa"on des dépendances OPT: précompila"on des assets Migra"on du schéma de db Chargement des données ini"ales Redémarrage du démon

Capistrano Pour RoR, fournit un ensemble de receges (classes rb) de base qui déploie l applica"on Ges"on de l historique des déploiements Installa"on des dépendances OPT: précompila"on des assets Migra"on du schéma de db Chargement des données ini"ales Redémarrage du démon

Capistrano Pour RoR, fournit un ensemble de receges (classes rb) de base qui déploie l applica"on Ges"on de l historique des déploiements Installa"on des dépendances OPT: précompila"on des assets Migra"on du schéma de db Chargement des données ini"ales Redémarrage du démon

Capistrano Pour RoR, fournit un ensemble de receges (classes rb) de base qui déploie l applica"on Ges"on de l historique des déploiements Installa"on des dépendances OPT: précompila"on des assets Migra"on du schéma de db Chargement des données ini"ales Redémarrage du démon

Exemples de commandes Capistrano cap [stage] deploy:setup crée la structure de base des répertoires cap [stage] deploy déploie l applica"on et ses dépendances et migre le schéma de db cap [stage] seed charge la db avec les données ini"ales

Sélection des outils de OPS OUTILS LANGAGES DEVOPS

Sélection des outils de OPS OUTILS LANGAGES DEVOPS

Specs ops - Applica"on Migra"on Schéma de DB Create table, alter table, Dépendances Ruby Rails, Thin, driver Mysql, Processus Web, Worker, Specs ops - Système Configura"on Paquets à installer, ports, bibliothèques,

Structure du dépôt

Structure du dépôt

Structure du dépôt

Agenda INTRODUCTION 3 Constats sur le déploiement Impacts Infrastructure as code Ou"ls et langages ILLUSTRATION : Applica"on Ruby on Rails Descrip"on Sélec"on des ou"ls de développement Déploiement sur l environnement de développement Déploiement sur l environnement de produc"on EXTRAS CONCLUSIONS

DEV - Etape 1

Vagrantfile

vagrant up

DEV - Etape 2

puppet apply

DEV - Etape 3

DEV - Etape 4

Agenda INTRODUCTION 3 Constats sur le déploiement Impacts Infrastructure as code Ou"ls et langages ILLUSTRATION : Applica"on Ruby on Rails Descrip"on Sélec"on des ou"ls de développement Déploiement sur l environnement de développement Déploiement sur l environnement de produc"on CONCLUSIONS

PROD- Etape 1

bootstrap-aws.sh

PROD - Etape 2

PROD - Etape 2 cap aws deploy:setup

PROD - Etape 3

Contenu du dépôt

Agenda INTRODUCTION 3 Constats sur le déploiement Impacts Infrastructure as code Ou"ls et langages ILLUSTRATION : Applica"on Ruby on Rails Descrip"on Sélec"on des ou"ls de développement Déploiement sur l environnement de développement Déploiement sur l environnement de produc"on CONCLUSIONS

Agenda INTRODUCTION 3 Constats sur le déploiement Impacts Infrastructure as code Ou"ls et langages ILLUSTRATION : Applica"on Ruby on Rails Descrip"on Sélec"on des ou"ls de développement Déploiement sur l environnement de développement Déploiement sur l environnement de produc"on CONCLUSIONS

Infrastructure as code Nécessité d automa"ser les déploiements Développer du code de déploiement Appliquer les méthodes de So8ware Engineering au code de déploiement Conclusions Ou"ls présentés Vagrant: environnement de test des procédures de déploiement Puppet: installa"on des composantes MW nécessaires et configura"on de l OS Capistrano: déploiement du code de l applica"on et de ses dépendances

Avantages Meilleures connaissances des procédures de déploiement Entretenues régulièrement Partagées entre les DEV et OPS Conclusions Réduc"on des régressions Contenu des releases plus pe"ts Releases très régulières Réduc"on du temps entre la correc"on d un bug et sa mise en produc"on Releases très régulières Réduc"on du risque du déploiement Automa"sa"on de déploiement

Difficultés Changement de mé"er pour les OPS => DEV- OPS <= DEV Conclusions Nouveaux langages et ou"ls à maitriser Puppet: Nouveau paradigme : «procédure» => «état» Diagnos"c parfois plus difficile Choix entre réu"lisa"on de modules tout faits et implémenta"on from scratch

Extra: 12 factors Ensemble de bonnes pra"ques éditées par les développeurs de Heroku hgp://12factor.net

Score timetrack

Thank you Merci Remerciements: Orlando CASSANO Michaël VAN DE BORNE et Louis- Marie CROISEZ, pour AWS Nicolas DEVOS, pour les slides Aéropôle de Charleroi-Gosselies Rue des Frères Wright, 29/3 B-6041 Gosselies info@cetic.be www.cetic.be

Extra? Upstart RBENV Puppet master