Usando Openshift para deployment con Drupal DrupalCamp Mexico 2014 Luis Huacho @lhuacho lhuacho@drinux.com
Qué necesito para deployment? - Acceso a un servidor (local, vps, físico, cloud, etc.) - Habilitar servicios: web y bases de datos, con soporte de librerías, lenguaje, etc. - Conocimientos de Seguridad. - Conocimientos de la herramienta con la que se va a trabajar (Drupal, Symphony, Wordpress, etc.)
Conceptos Generales
Conceptos Generales IaaS (Infraestructure as an service) Amazon EC2, Microsoft Azure, Google Compute Engine, Rackspace, etc. PaaS (Platform as an service) Openshift, heroku... Construya Apps no Infraestructura SaaS (Software as an service) Gmail, Google Apps, Zoho, SalesFourge, etc.
Openshift OpenShift is Red Hat s PaaS, and there are three different versions: OpenShift Origin, OpenShift Online, and OpenShift Enterprise
Openshift: Terminología Application: Web application. Gear: es una unidad de recursos que permite que podamos correr nuestras aplicaciones. Existen 3 tipos de gear: small, medium, large. Cartridge: Son los elementos que usan uno o mas Gear. Existen 2 tipo: Standalone (apps functionality) y Embebed (apps enhance).
Openshift: Terminología Scalable application: configuración que permite que tu APPS consuma mas Gear automáticamente ante una cantidad mayor de tráfico. Client Tools: herramientas para interactuar por rhc con nuestro openshift cloud.
Manos a la Obra Crear una cuenta web en openshift.com (verificación por email y listo)
Primer Inicio https://www.openshift.com/get-started
Entorno Web A golpe de click, instalaremos: Drupal 7 Symphony Wordpress
Openshift Client Tools rhc <command> <arguments> rhc <comand> --help Muestra la ayuda global del comando utilizado
Openshift Client Tools rhc setup Permite la configuración del cliente y su conexión con el servidor de openshift. Una vez configurado, no se tendrá que hacer otra vez. La comunicación se realiza por Openshift Rest Api, se crea un token que expira cada 30 días. rhc logout Cierra la sessión, si no se realiza la línea de comandos graba la sessión por 30 días
Openshift Client Tools rhc account Visualiza la información de la cuenta asociada. rhc Muestra la ayuda global
Openshift Client Tools rhc domain list rhc domain show <nombre> rhc domain create <nombre> En openshift: http://<app's name>-<domain nombre>.rhcloud.com
Openshift Client Tools rhc cartridge list rhc app create <app name> <cartridge 1...n>
Openshift: Drupal 7 https://github.com/openshift/drupal-quickstart rhc app create drupal php-5.3 mysql-5.1 cron --from-code=git://github.com/openshift/drupal-quickstart.git http://drupal-namespace.rhcloud.com Default Admin Username: admin Default Admin Password: openshift_changeme
Openshift: Drupal 7 rhc app create drupal php-5.3 mysql-5.1 cron --from-code=git://github.com/openshift/drupal-quickstart.git --scaling -g small
Openshift: Drupal 7 rhc ssh <drupal> Nos abre SSH sobre el directorio donde se ha instalado nuestra aplicación. Ojo: se incluye drush 6.2
Openshift: Drupal 7 rhc scp <drupal> <upload/download> <local path> <remote path> REMOTE PATH: app-root/runtime/repo/php
Openshift: Gestión de App rhc app start <name_app> rhc app stop <name_app> rhc app restart <name_app> rhc app show <name_app> Permite la gestión de la aplicación
Openshift: Gestion de apps rhc cartridge add <cartucho> -a <name_app> rhc cartridge remove <cartucho> -a <name_app> rhc cartridge start stop restart <cartucho> <name_app> Permite la gestión de cada cartridge, sobre todo los embebed.
Openshift: Backup y Restore rhc snapshot save <app name> rhc snapshot restore <app name> <path bck> El backup se guarda íntegro, archivos y bases de datos. Se descarga en el directorio actual.
Conclusiones Openshift es seguro, modular y su control por consola y gráfico son muy dinámicos. Openshift permite al Desarrollador realizar puestas en marcha en muchos lenguajes como java, perl, ruby y php. Drupal + Openshift, puede funcionar desde git openshift official o como aplicación. Los Client tools (rhc) permiten integrar el equipo local, y varios equipos para un desarrollo basado en git. Snapshot es una herramienta muy potente para la relización de backups.
Libro Openshift https://www.openshift.com/promotions/ebook/thanks