Talleres de Las Palmas DevOps
En este repositorio de gestionarán los talleres propuestos desde el grupo Las Palmas DevOps (MeetUp).
Los talleres van enfocados a profesionales de IT (programadores, administradores de sistemas, ingenieros de calidad, maquetadores, etc) que quieran complementar su formación o ponerse al día.
También para estudiantes que quieran aprender herramientas, tecnologías, metodologías y problemas que se encontrarán en su futura vida profesional.
A continuación se explica el formato, la metodología y se listan los talleres propuestos. En este repositorio se irán guardando los contenidos (presentaciones, ejercicios propuestos y material de apoyo) de los mismos.
Metodología
- Progresivo.
- Muy práctico.
- 1 o 2 sesiones por taller.
- Aproximadamente 2 horas por sesión.
Esquema de una sesión
- El problema.
- Concepto genérico de la solución.
- Ejemplo práctico con una tecnología o herramienta.
- Manos a la obra.
Ejemplo
-
Problema: a mi me funciona (works on my machine).
-
Solución genérica: entornos de desarrollo y pruebas similares a producción.
-
Solución concreta: Vagrant + Chef.
-
Práctica: replicar un entorno de producción en nuestro portátil, hacer cambios en una aplicación y desplegarlo luego en producción.
Talleres
-
Editores:
- Vim.
- Emacs.
- Sublime Text.
- Eclipse.
- IntelliJ IDEA.
- Línea de órdenes y SSH:
- Bash, PowerShell.
- Uso básico de SSH.
- Claves públicas SSH.
- Sistema de control de versiones:
- Herramientas de gestión de proyectos:
- Redmine.
- Jira.
- Taiga.
- Github.
- GitHub como repositorio de código:
- Repos.
- Issues.
- Pull requests.
- Wiki.
- Organizaciones.
- Metodologías ágiles:
- Gestores de dependencias:
- Lenguajes dinámicos y REPL:
- Python + iPython.
- Ruby + irb.
- Depuración de código:
- Depuración en código.
- Depuración en el navegador.
- Testing:
- Unit Test.
- Functional test.
- TDD.
- Entornos de desarrollo I:
- RVM.
- Python virtualenv.
- ¿Java env?
- Entornos de desarrollo II:
- Máquinas virtuales.
- Vagrant.
- Servidores web:
- Bases de datos (servidor y cliente):
- MySQL.
- PostgreSQL.
- MongoDB.
- Redis.
- ORM.
- Aprovisionamiento de servidores:
- Entornos de desarrollo III:
-
IaaS:
- Amazon.
- DigitalOcean.
- Rackspace.
- Azure.
- Entorno de producción I:
- Integración Continua:
- Desarrollo web básico:
- HTTP.
- HTML5 + CSS.
- JavaScript + jquery.
- Frontend frameworks: Bootstrap, Foundation, etc.
- MVC.
- ORM.
- Frameworks web:
- Django.
- Rails.
- Symfony.
- JavaSomething.
- Desplegar aplicación web:
- Capistrano.
- Fabric.
- Ansible.
- Monitorización:
- Procesos: monit, supervisord, runit.
- Sistemas: Nagios, Zabbix.
- Tests para infraestructura:
- Análisis de logs:
- Métricas:
- Dashboards con métricas:
- Kibana.
- Grafana.
- Ducksboard.
-
SaaS de monitorización y métricas:
- NewRelic.
- DataDog.
- Otros.
- Cache:
- Balanceo de carga:
- HAProxy.
- Nginx.
- Amazon ELB.
Extras
* Hipervisores: KVM, XEN, VMware, VirtualBox.
* Linux Containers: LXC, Docker.
* Scrum, Kanban, ITIL, CMMI.
* Internacionalización de software.
* Content Delivery Network (CDN).
* Private cloud: OpenStack.
* ElasticSearch.
* Servicios de colas de mensajes:
* RabbitMQ.
* ZeroMQ.
* Celery Task Queue.
* Redis.
* Amazon SQS.
* Amazon web services:
* EC2.
* S3.
* RDS.
* Route 53.
* CloudFormation.
* CloudWatch.
* OpsWorks.