MAGALLANES. deployment tool

Documentos relacionados
DEPLOYMENTS Y EL CICLO DE DESARROLLO EN DRUPAL

GUÍA PARA LA INSTALACIÓN DE MOODLE EN UN COMPUTADOR PERSONAL QUE USA EL SISTEMA OPERATIVO MS. WINDOWS

Implementación de una Solución Tecnológica para la Gestión y Control de la Planificación Institucional del Gobierno Regional de Los Lagos

MANUAL DE AYUDA TAREA PROGRAMADA COPIAS DE SEGURIDAD

Roles y Características

MANUAL DE INSTALACIÓN DEL COMPONENTE WEBSIGNER ACTIVEX. Versión 4.0

Manual Mage Translator by Interactiv4 Versión /06/2013

Estimado usuario. Tabla de Contenidos

Manual de usuario Versión: 1.3 Edición: 05/02/2015 1

Acronis License Server. Guía del usuario

MANUAL COPIAS DE SEGURIDAD

- MANUAL TÉCNICO - Implantación de software de Marketing Online

GIT Dinahosting 3. Hola!

Instalable módulo criptográfico Ceres. Manual de usuario

Guía rápida de instalación y puesta en marcha del Agente ADSL

Iniciar flujo a partir de un archivo XML

Comisión Nacional de Bancos y Seguros

Historial de Versiones: Velneo vversion. Funcionamiento. Repositorio de versiones. Funcionalidades del Historial de Versiones. Bloquear.

Instructivo para descarga del código fuente

CVS Concurrent Versions System Manual de Usuario

Cobian Backup. Inguralde [Enero 2011]

Tutorial: Cómo realizar tu primer programa en C++ En el Sistema Operativo Windows

Manual de Usuario De Respaldo y Restauración de Información

Realización de Backups

Escudo Movistar Guía Rápida de Instalación Para Windows

- MANUAL TÉCNICO - Software de diagnóstico de la seguridad de la información y autoimplantación de LOPD. Rev. 01- FEBRERO 2013

ASISTENCIA TÉCNICA A LA SEGURIDAD INFORMÁTICA EN PYMES MANUAL COBIAN BACKUP

INSTALACIÓN DE GITLAB

Instalar y configurar MailStore. para Exchange Server

Instalación y administración de un aula virtual con Moodle COPIAS DE SEGURIDAD DE NUESTRA PLATAFORMA MOOLDE

MANUAL DE USUARIO. Webservice simple para la exportación rápida de información proveniente de una base de datos. Versión 0,1,1

Trabajo Práctico Guía de Instalación

INSTRUCTIVO DE INSTALACION ATOM 2.0.1

laboratorio de sistemas operativos y redes

PROGRAMAS, ADMINISTRACIÓN Y MEJORAMIENTO, SA DE CV

SSH IPHONE E IPAD : WinSCP PARA WINDOWS

Desarrollo de WordPress con Vagrant

Guí a Ra pida Dropbox.

1. INTRODUCCIÓN 2 2. EVERDRIVE LITE 3 3. SINCRONIZADOR DE EVERDRIVE 4 4. VISTA GENERAL DE LAS OPCIONES DE LA APLICACIÓN 5

(PHP y APACHE), y el programa de comunicación Skype, para controlar de manera

Manual hosting acens

Práctica 1: Instalación de un servidor de aplicaciones web y diseño de la vista de una aplicación

App para realizar consultas al Sistema de Información Estadística de Castilla y León

Implementación y administración de Microsoft Exchange Server 2003

Actualización del certificado público del Sepblac en la aplicación DMO v3.0

Instrucciones de instalación de TrueCode

Proceso de cifrado. La fortaleza de los algoritmos es que son públicos, es decir, se conocen todas las transformaciones que se aplican al documento

Qué es un servicio de Proxy?

Compartiendo conocimiento... Guía básica de instalación de Asterisk 11 en Centos6.5

General Parallel File System

Servidor de correo en Linux/ubuntu

Comodo Time Machine v. 2.8

WPeMatico. Wordpress-Plugin

Componentes de Integración entre Plataformas Información Detallada

Manual de Migración de SQL Server 2005 Express a SQL Server 2008 Express R2

IIS 7(Internet Information Services 7)

Sistema Integral de Nomina y Recursos Humanos

Desarrollo de un Sistema de Gestión de Proyectos mediante el framework GWT

PANDA USB VACCINE QUÉ ES? PRO CESO DE INSTALACIÓN. Abrir archivo le daremos a Ejecutar.

Universidad Luterana Salvadoreña Cátedra: Redes I Docente: Ing. Manuel de Jesús Flores Evaluación: Defensa Final Fecha de entrega: 30/05/2015 Linux

Implantar Microsoft Software Updates Service (SUS)

Laboratorio de Redes y Sistemas Operativos Laravel 5.0

MANUAL SINCRONIZADOR LEKOMMERCE FACTUSOL

GUÍA DE INSTALACIÓN Y USO PISIS CLIENTE

Instalación de OpenMPI

Migrar una organización Microsoft Exchange 2003 a Microsoft Exchange 2007

Implementación de Shared Application Tier en e-business Suite R12

Guía rápida del usuario. Disco duro virtual.

Manejo de versiones 392

Guía inicio rápido nube R profesional

Instalación del Software Magaya

Práctica 2: Instalación de un gestor de bases de datos relacionales y desarrollo de una aplicación Web con persistencia de datos

Manual OWAControl. Contenido. Manual OWAControl

Grupo Cibermundo Consultores S.A. DE C.V.

G uía de Usuario Mi EBSCOhost

Integración KNX - LYNX

Estructuras de Datos y Algoritmos Tecnólogo en Informática

CAPÍTULO NOVENO PUPPET

MACROS. Automatizar tareas a través del uso de las macros.

Crear una Campaña Nueva Proceso de migración Proceso de migración+ fusión. Versión 10.0

Creación un instalador con Visual Studio.NET. Irene Sobrón. Ingeniero de Telecomunicaciones por la Escuela Técnica Superior de Bilbao

Qué ventajas presenta Google Drive para catedráticos y alumnos?

COPIA DE SEGURIDAD CON NTBACKUP

Guía del usuario - escan para Linux Escritorio

Cómo instalar fácilmente tu WordPress tras contratar un hosting en Hostalia

Información del Producto: XenData X2500 LTO-6 Digital Video Archive System

Configuración de la red

Manual de usuario del Directorio Activo

Conceptronic CFULLHDMA Cómo usar Samba/CIFS y NFS

MANUAL DE INSTALACIÓN DE ESTACIONES CLIENTE

Preguntas sobre DNS y HTTP Sistemas Telemáticos - I

Instituto Tecnológico de Las Américas (ITLA)

La tortuga y los documentos: Tortoise + Subversion

Guía de Instalación. Glpi

MANUAL DE INSTALACIÓN Y CONFIGURACIÓN

MANUAL DE INSTALACIÓN

Sophos Anti-Virus para Mac OS X, versión 4.9 guía de inicio. Para Macs en red con Mac OS X

Se ha confeccionado una aplicación sencilla para poder probar el interfaz de gestión explotación de MEGA, Modelo Estandarizado de Gestión de Agua.

GUÍA PARA LA CONFIGURACIÓN Y UTILIZACIÓN DE LA IDE DRJAVA

Guía de inicio. NetWare. Documento versión 1.0

Transcripción:

MAGALLANES deployment tool Mayo 2014

Quién soy? PHP Developer en @AciliaInternet Fulltime Nerd a la Dungeons & Dragons Dog owner andresmontanez.com

Qué es Magallanes? Una Herramienta 100% PHP Para estandarizar deployments No se apega a ningún framework Ayudas para cualquier framework PSR-0, PSR-1, PSR-2 (php-fig.org)

Lo dice GitHub

Cómo surge? Forma ordenada de publicar la aplicación Sólo con shell script no alcanza Usar lo que ya conocemos y tenemos Configuración persistente Capistrano es muy complicado y requiere ruby

Instalando Composer "andres-montanez/magallanes": "1.0.*" User space Descargando el código de magephp.com bin/mage install --installdir=~/magallanes System Wide bin/mage install --systemwide --installdir=/opt/magallanes

Cómo funciona? Configuración local y persistente Stages Pre Deployment Deployment Release Post Release Post Deployment Estrategias de Deployment Releases Tasks

Iniciando un Proyecto mage init --name= My app" -email= notify@my.app.mage config general.yml tasks logs

Creando un Entorno mage add environment --name= production" -enablereleases.mage config environments production.yml

Ejemplo de Entorno

El primer Deployment mage deploy to:production Configuración de production.yml Se copia el código a cada Host Se ejecutan las Tasks en orden

Ejemplo de Ejecución

Stage: Pre-Deployment Es lo primero en ejecutarse Es opcional Casos de uso Actualizar código Instalar vendors Pre-procesos Assets Assetics Compilación etc

Stage: Deployment Se ejecuta por cada Host definido No necesita tener Tasks definidas Casos de uso Deployment de código Crear enlaces simbólicos Realizar WarmUps de cachés

Estrategias de Deployment Rsync Es la estrategia usada cuando no hay releases TarGz Es la estrategia usada cuando hay releases Disabled No copia ningún archivo Git Rebase (experimental) No se copia código, se hace rebase en el destino

Ejemplo de Estrategia

Stage: Post-Deployment Se ejecuta al final del deployment El opcional Casos de uso Limpiar Cachés Habilitar alertas Lanzar notificaciones

Stage: Releases Si están habilitados los releases Release Se realiza el cambio de symlink Post Release Se pueden ejecutar Tasks Caso de Uso Purgar APC Purgar Cachés Persistenes WarmUp de Cachés especiales

Usando Releases Pros Mantener histórico de los deployments Poder volver a una versión anterior de forma fácil y rápida Contras Ocupa más espacio en el servidor No siempre el rollback es automático Cambios en Base de Datos Migraciones

Oops Rollback! mage releases rollback --release=-1 to:production Configuración de production.yml Se cambia el symlink en cada Host Se ejecutan las Tasks RollbackAware

Tareas Incluidas SCM (solo git) Update (scm/update) Symfony 2 Assetics Dump (symfony2/assetics-dump) Assets Install (symfony2/assetics-dump) Cache Clear (symfony2/cache-clear) Cache Warmup (symfony2/cache-warmup) Magento Clear Cache (magento/clear-cache) Clear Full Page Cache (magento/clear-full-page-cache)

Tareas Propias Son clases PHP comunes y corrientes Extienden de Mage\Task\AbstractTask Deben pertenecer al namespace Task Obliga a implementar getname() y run() Se almacenan en el directorio.mage/tasks Casos de uso Operaciones de File System Ejecución de comandos propios Interacción con otros sistemas

Ejemplo de Custom Task

Resultados del Task Retorna true La tarea se ha ejecutado correctamente Retorna false La tarea se ha ejecutado con error Lanza Mage\Task\ErrorWithMessageException La tarea se ha ejecutado con error y hay mensaje Lanza Mage\Task\SkipException La tarea se ha omitido

Tasks y Releases Mage\Task\Releases\IsReleaseAware El task sabe que está siendo ejecutado en un entorno con releases y obtiene acceso desde la raíz Mage\Task\Releases\RollbackAware El task sabe que está siendo ejecutado en un rollback. Si no lo implementa se omite. Mage\Task\Releases\SkipOnOverride El task se omite en un --releaseoverride

Comandos init, install, upgrade y add list environments lock to:production y unlock to:production deploy to:production branch= dev1 deploy to:production --overriderelease releases rollback --release=-1 to:production releases list to:production compile version

Mage Tips APC Borrar cache con curl Reiniciar php-fpm o Apache Shared Folder Directorio externo a los releases Se engancha con enlaces simbólicos Ramas Arrastrar la configuración entre ramas Asegurarse de hacer track de la rama Cuando no usar Releases? Cuando no importa tener un histórico O no se tiene necesidad de hacer rollback Impacto del releaseoverride Puede que en algunas aplicaciones no se reflejen cambios No es la solución para todo

Roadmap Más Tasks Composer File System Parallel Deployment Optimizar estrategias de Deployment Más opciones de Configuración Tests

Gracias! Preguntas?

Más Info Código: github.com/andres-montanez/magallanes Documentación: magephp.com API: api.magephp.com/1.0 Packagist: más de 2100 instalaciones Social: @MagePHP Contacto: andresmontanez.com