herramientas de trabajo para entorno lamp

59
Herramientas de trabajo para entorno LAMP Ruben Egiguren (keopx) 15/05/2015

Upload: keopx

Post on 25-Jul-2015

280 views

Category:

Technology


0 download

TRANSCRIPT

Herramientas de trabajo para entorno LAMP

Ruben Egiguren (keopx)15/05/2015

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

3Experts in Drupal solutions

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

7Experts 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 proyectosRedmine• Issue

10Experts in Drupal solutions

Gestión de proyectosRedmine• Gantt

11Experts in Drupal solutions

Gestión de proyectosRedmine• Plugin Scrum

12Experts 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 proyectosTrello

15Experts in Drupal solutions

Gestión de proyectosTrello

16Experts in Drupal solutions

Gestión de proyectosTaiga• https://taiga.io/

• Backlog

• Kanban

• Task

• Sprints

• Issues

17Experts in Drupal solutions

Herramientas de desarrollo (IDE)

18Experts 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

22Experts in Drupal solutions

Entorno LAMP

23Experts 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

30Experts 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

34Experts in Drupal solutions

DevOps es algo así como....

DevOps

35Experts in Drupal solutions

http://i.imgur.com/b1YihdT.gif

DevOps

36Experts in Drupal solutions

aprovisionamiento ->configuración ->

despliegue ->ejecución

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

DevOpsVagrant

38Experts 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

DevOpsDocker

40Experts in Drupal solutions

DevOpsVagrant vs. Docker

41Experts 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ódigo

43Experts 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

54Experts 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

Eskerrik asko

57Experts in Drupal solutions

58Experts 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)