Administración de Servidores y DevOps
Ruta de aprendizaje

Administración de Servidores y DevOps

DevOps es una cultura que combina buenas prácticas y software para mejorar el despliegue y puesta en marcha de aplicaciones de manera rápida y segura.
Implementar DevOps te permitirá automatizar y mejorar los procesos de construcción, pruebas y lanzamiento del software.
Administración de Servidores y DevOps
Basico

Basico

Básico
Básico
Introducción a Terminal y Línea de Comandos

Introducción a Terminal y Línea de Comandos

Curso de DigitalOcean

Curso de DigitalOcean

Curso de Fundamentos de AWS Cloud

Curso de Fundamentos de AWS Cloud

Fundamentos de Docker

Fundamentos de Docker

Curso Básico de Jenkins

Curso Básico de Jenkins

Curso de Programación en Bash Shell

Curso de Programación en Bash Shell

Intermedio

Intermedio

Intermedio
Intermedio
Curso de DevOps con GitLab

Curso de DevOps con GitLab

Curso de Deploy con Now.sh

Curso de Deploy con Now.sh

Curso Profesional de DevOps

Curso Profesional de DevOps

Fundamentos de IBM Cloud

Fundamentos de IBM Cloud

Avanzado

Avanzado

Avanzado
Avanzado
Curso de Administración de Servidores Linux

Curso de Administración de Servidores Linux

Curso de Azure IaaS

Curso de Azure IaaS

Curso de Azure PaaS

Curso de Azure PaaS

Curso de Swarm

Curso de Swarm

Por qué es importante DevOps?

Primero que todo vamos a definir ¿qué es? DevOps no es un cargo o una persona, es una cultura que agrupa una serie de prácticas y principios para mejorar y automatizar procesos entre los equipos de desarrollo e infraestructura (IT) para poder lanzar software de manera rápida, eficiente y segura.

Un concepto importante y uno de los pilares fundamentales en DevOps es la automatización de procesos, esta incluye la construcción, pruebas y lanzamiento del software gracias a herramientas como Git, Jenkins, Circle CI, Travis, Terraform, entre otras. Estas herramientas hacen prueban nuestra aplicación antes de ser lanzada a producción para identificar fallos, solucionarlos y que los usuarios no se vean afectados.

La implementación de DevOps en una organización trae beneficios como:

  • Confiabilidad: La aplicación es probada antes de ser llevada al usuario final.
  • Velocidad: Ahorro de tiempo y reducción de la intervención humana al probar la aplicación.

Ya conocemos algunas de las ventajas que tiene el utilizar o implementar DevOps en el flujo de trabajo, ahora veamos cómo encaja DevOps dentro de este flujo:

  1. Desarrollo (Nuevas características, mejoras, corrección de errores)
  2. Se crea el Pull Request
  3. Se compila o construye lo que sea necesario y se ejecutan las pruebas (Gracias a procesos automatizados con GitHub y herramientas como Jenkins, Travis, CircleCI, etc...)
  4. Se aprueba el Pull Request
  5. Se hace merge con Master
  6. Se compila o construye lo que sea necesario para un entorno de staging o producción y se ejecutan las pruebas.
  7. Deploy (Lo ejecuta automáticamente Jenkins o la herramienta que se usé una vez las pruebas pasan)

Viendo este proceso queda más claro como ayuda realmente en la calidad del desarrollo ya que no existe solo un momento donde se ejecuten pruebas, de hecho, se hacen en varios puntos y permite asegurar la reducción de bugs en producción. Este es un esquema muy básico el cual puede aumentar hay se tienen servidores de staging.

¿Cómo puedo trabajar en DevOps?

Ya mencionamos que DevOps no es una persona, pero su correcta implementación, seguimiento y mejora de los procesos necesita personas que se encarguen de este flujo para que todo funcione de forma eficiente.

Podemos implementar sistemas de integración continua como Jenkins, Travis, CircleCI que en algunos casos se deben instalar en un servidor y se configuran, o en otros, solo se deben configurar ya que son SaaS (Software As A Service) en la que solo creas una cuenta, personalizas el servicio y conectas con tu repositorio.

Siempre se pueden mejorar los procesos de DevOps, optimizar la construcción y procesos de despliegue, que es otro campo de acción para las personas que se enfocan y especializan en DevOps. Otro lugar donde también se puede aplicar los conocimientos en DevOps es estandarizando los entornos de desarrollo gracias a herramientas como Docker.

Como puedes ver el campo de acción para alguien que estudie y aprenda sobre DevOps es muy grande y puede estar involucrado en varios puntos del desarrollo de software.

¿Necesito saber programar para trabajar en DevOps?

No es un requisito programar en un lenguaje de alto nivel como Java, PHP, Ruby, sin embargo va a ser de gran ayuda que conozcas de lenguajes de scripting como Python, esto te puede ayudar a automatizar tareas. Adicionalmente conocer de Bash scripting y moverte con facilidad en la terminal de comandos.

¿Hay demanda laboral en DevOps?

Con el aumento de la complejidad de las aplicaciones se hace cada vez más indispensable la automatización de procesos que permitan asegurar la calidad, estabilidad y fiabilidad de las aplicaciones, grandes empresas están siempre en busca de este tipo de perfiles que ayuden a mejorar todo el proceso de pruebas y lanzamientos. No esperes más, este es el mejor momento para aprender y trabajar como DevOps.

Glosario

Glosario

Quality Assurance (QA): Son una serie de procedimientos que permite asegurar la calidad de un producto o pieza de software.

Pruebas Unitarias (Unit Testing): Son pruebas que se realizan a pequeñas partes del código de manera separada para verificar su funcionamiento.

Integración Continua (Continuos Integration): Es un proceso en el cual se puede construir, probar e incluso implementar aplicaciones cuando se realiza un cambio al código fuente.

Entrega Continua (Continuous Delivery): Es un enfoque que permite con la ayuda de la integración continua automatizar pruebas y despliegue de aplicaciones con mínima intervención humana.

Pull Request: Es la solicitud para incluir los cambios hechos en un rama de un repositorio de Git a la rama master

Aprende de los mejores

Yamil Asusta

Yamil Asusta

Production Engineer en auth0

@elbuo8
Gustavo Angulo

Gustavo Angulo

CTO en Ubidots

@woakas
Marco Antonio Toscano Freire

Marco Antonio Toscano Freire

Director de tecnologías en Matoosfe

@martosfre
Alberto Alcocer

Alberto Alcocer

en Independiente

@beco
Amin Espinoza

Amin Espinoza

Technical Evangelist en Microsoft

@aminespinoza
David Aroesti

David Aroesti

CTO en Novelistik

@jdaroesti

Rutas relacionadas para complementar tu aprendizaje

Google Cloud Platform
Ruta de aprendizaje

Google Cloud Platform

Intermedio
Esta ruta está pensada para aprender las herramientas que te permitirán utilizar servicios en la nube para la creación y administración de tus aplicaciones.
Desarrollo con IBM Cloud
Ruta de aprendizaje

Desarrollo con IBM Cloud

Intermedio
La era cognitiva está aquí y está construida sobre la nube. Aprende cómo y desarrolla proyectos de Machine Learning con las herramientas de IBM.
Amazon Web Services
Ruta de aprendizaje

Amazon Web Services

Intermedio
Amazon Web Services la plataforma de servicios de cómputo en la nube de Amazon que está dominando el mercado de computación en la nube.

¿Qué estás esperando?

Empieza a estudiar ahora y asegura tu futuro