Download - Herramientas de trabajo para entorno LAMP
Acerca de míDrupal Developer, Software Libre enthusiast, new technologies and geek
Ruben Egiguren a.k.a. keopxProfesional: www.isarea.comBlog: www.keopx.netDrupal: www.drupal.org/u/keopx
Miembro de:• Drupal association• Asociación Española de Drupal• G.D.O Basque Country• …
FreelanceDrupal Developer
Introducción
Hablaremos de• Gestión de proyectos• Herramientas de desarrollo (IDE)• Entorno: LAMP• DevOps• Repositorio de código• Despliegue
Experts in Drupal solutions4
Introducción
• Objetivo conocer qué partes están involucradas en el
desarrollo de software.
• Si, hablamos de LAMP también.
• Todo es parte del mismo entorno de trabajo.
• Importancia de conocer qué áreas están implicadas el
desarrollo de software.
5Experts in Drupal solutions
Introducción
Para poder probar algunas de las tecnologías
que hablaremos disponemos de los stacks de
Bitnami que nos facilitara la instalación de los
mismos para poder hacer pruebas.
6Experts in Drupal solutions
Gestión de proyectos
• Metodologías
• PMI
• Scrum
• Kanban
• Herramientas
• Redmine
• Trello
• Taiga
8Experts in Drupal solutions
Gestión de proyectosRedmine• Issue
• Tipos, feature, bug, task….• Estado
• Nuevo, en progreso, resuelto, cerrado,...• Versiones• Gantt• Integración con repositorio de código:
• Git, Subversion, Mercurial...• Wiki• Documentos• Ficheros• Plugin
• Scrum
9Experts in Drupal solutions
Gestión de proyectosRedmineDemo• https://bitnami.com/stack/redmine
• Instalador
• Máquina virtual
• Docker
13Experts in Drupal solutions
Gestión de proyectosTrello• Issues
• Estado
• Etiquetas
• Asignados
• Imágenes, ficheros….
• Drag and drop
• Extensión para valoraciones
• http://eminetto.github.io/blog/2014/01/05/project-
management-using-github-and-zenhub/14
Experts in Drupal solutions
Gestión de proyectosTaiga• https://taiga.io/
• Backlog
• Kanban
• Task
• Sprints
• Issues
17Experts in Drupal solutions
Herramientas de desarrollo (IDE)
• Libres
• Netbeans | https://netbeans.org
• Eclipse | https://eclipse.org
• Sublimetext | http://www.sublimetext.com
• Aptana | http://www.aptana.com
• Pago
• PHPStorm | https://www.jetbrains.com/phpstorm
• Zend Srtudio | http://www.zend.com
• Komodo | http://komodoide.com19
Experts in Drupal solutions
Herramientas de desarrollo (IDE)
Que nos ofrecen:
• Autocompletado• Debug / testing• Formateador• Seguir el código entre clases y métodos.• Editor de HTML/CSS/JavaScript• Búsquedas avanzadas.• Integración con repositorios de código (prefiero la
consola)• ...
20Experts in Drupal solutions
Herramientas de desarrollo (IDE)
Pero lo más importante es:
Coding standards
21Experts in Drupal solutions
Entorno LAMP
Que nos ofrece:
• Linux• Windows / Mac OS
• Apache• Nginx
• MySQL• MariaDB / Percona
• PHP• Perl / Python
24Experts in Drupal solutions
Entorno LAMPxDebugQue nos ofrece:
• Ver los valores de las variables
• Filtrar datos
• Puntos de parada donde controlar las acciones
• ...
25Experts in Drupal solutions
Entorno LAMPWAMPDemo• https://bitnami.com/stack/wamp
• Instalador
• Docker
26Experts in Drupal solutions
Entorno LAMPMAMPDemo• https://bitnami.com/stack/mamp
• Instalador
• Docker
27Experts in Drupal solutions
Entorno LAMPDrupalDemo• https://bitnami.com/stack/drupal
• Instalador
• Máquina virtual
• Docker
28Experts in Drupal solutions
Entorno LAMPWordPressDemo• https://bitnami.com/stack/wordpress
• Instalador
• Máquina virtual
• Docker
29Experts in Drupal solutions
DevOps
• DevOps es un acrónimo inglés de development
(desarrollo) y operations (operaciones)
• Qué ofrece
• Entornos configurados para su uso
• Entornos aislados
• Evitar conflictos de versiones y/o configuraciones
• Agilizar la puesta a punto de los entornos de
desarrollo/testing/producción
• Entornos CI31
Experts in Drupal solutions
DevOpsMáquina Virtual (VM)• Simula a un ordenador• Un duplicado eficiente y aislado de una
máquina física.• Algunos sistemas:
• VirtualBox (Libre - escritorio)• QEMU (Libre - escritorio)• VMWARE (Gratis/Pago - escritorio/server)• KVM (Libre - server)• XEN (Libre - server)
32Experts in Drupal solutions
DevOps
• Pero la maquina virtual solo es una parte
• Aísla el sistema pero…
• No nos facilita muchas operaciones
• Nos mantiene lo que hagamos, pero y si cambio
algo y se “rompe”
• No podemos desplegarlo tal y como está a
producción
• ...
33Experts in Drupal solutions
DevOps
35Experts in Drupal solutions
http://i.imgur.com/b1YihdT.gif
DevOpsVagrant• Vagrant es una aplicación escrita en Ruby
• Facilita considerablemente la creación de entornos
virtuales de desarrollo
• Vagrant nos abstrae del sistema de virtualización
• Nos permite instalar y configurar el software de la VM
• Herramientas de automatización
• Puppet, chef, ansible,...
• Más info: www.vagrantup.com
37Experts in Drupal solutions
DevOpsDocker• Crear, enviar y ejecutar aplicaciones
distribuidas.
• Portable, ligero en ejecución y herramienta
de empaquetado.
• Más info: www.docker.com/
39Experts in Drupal solutions
DevOpsOtros• Existen multitud de herramientas
• Cada una tiene sus pros y sus contras
• Cada uno utiliza lo que mejor se ajuste
• Esto no es un biblia, pero al menos genera una idea de
las posibilidades que tiene
• ....
42Experts in Drupal solutions
Repositorio de códigoDefinición• Es la gestión de los diversos cambios que se realizan
sobre los elementos de algún producto o una configuración del mismo
• Una versión, revisión o edición de un producto, es el estado en el que se encuentra el mismo en un momento dado de su desarrollo o modificación.
• Se usa para controlar las distintas versiones del código fuente dando lugar a los sistemas de control de código fuente o SCM
44Experts in Drupal solutions
Repositorio de códigoUn poco de historia• Sistemas de Control de Versiones Centralizados
(CVCS)• SCCS -> 1972.• RCS -> 1982.• CVS -> 1986.• TeamWare -> 1990• VSS -> 1994• SVN -> 2000
• Sistemas de Control de Versiones Distribuidos (DVCS)• HG -> 2005• Bazaar -> 2005• Git -> 2005
45Experts in Drupal solutions
Repositorio de códigoLos más usados actualmente
• (CVCS) Sistemas de Control de Versiones
Centralizados
• SVN -> 2000
• (DVCS) Sistemas de Control de Versiones Distribuidos
• Git -> 2005
46Experts in Drupal solutions
Repositorio de código(CVCS) Sistemas de Control de Versiones Centralizados
• Subversion (SVN)
47Experts in Drupal solutions
Repositorio de código(DVCS) Sistemas de Control de Versiones Distribuidos
• Git
48Experts in Drupal solutions
Repositorio de código(DVCS) Sistemas de Control de Versiones Distribuidos
49Experts in Drupal solutions
CVCS● CVS● Subversion● Perforce● SourceSafe● ...
DVCS● Git● Mercurial● Bazaar● BitKeeper● ...
Repositorio de códigoRepositorios gratuitos más usados• Github
• No permite repositorios privados
• Bitbucket
• Permite repositorios privados
• Gitlab
• Permite repositorios privados
50Experts in Drupal solutions
Herramientas para servidores de git
• Gitblit
• Gitlab
• Gitolite
• More
• Git Software
Repositorio de códigoRepositorios propios
51Experts in Drupal solutions
Repositorio de códigoGitoriousDemo• https://bitnami.com/stack/gitorious
• Instalador
• Máquina virtual
• Docker
52Experts in Drupal solutions
Repositorio de códigoGitlabDemo• https://bitnami.com/stack/gitlab
• Instalador
• Máquina virtual
• Docker
53Experts in Drupal solutions
Despliegue
• Existen diferentes herramientas
• FTP
• WinSCP
• Putty
• Terminal
• Git
• ....
55Experts in Drupal solutions
Despliegue
Pero...
• Automatizar
• scripts
• grunt
• Ansible + jenkins
• capistrano
• Siempre automatizar
56Experts in Drupal solutions
GNU/GPL Licence
Experts in Drupal solutions | Web: www.isarea.com | Telefono: +34.630.100.444 | Email: [email protected]
FreelanceDrupal Developer
Ruben Egiguren (keopx)