0% encontró este documento útil (0 votos)
39 vistas24 páginas

Curso de DevOps: Automatización y Herramientas

El documento presenta un curso de DevOps que abarca la construcción de código, la automatización de procesos y el uso de herramientas como Git, Docker, Kubernetes, Terraform y Ansible. Se enfatiza la importancia de la infraestructura como código (IaC) para mejorar la rapidez, automatización y minimizar riesgos en el despliegue de aplicaciones. Además, se introducen los principios SOLID para una programación ordenada y eficiente.

Cargado por

lcosenza86
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
39 vistas24 páginas

Curso de DevOps: Automatización y Herramientas

El documento presenta un curso de DevOps que abarca la construcción de código, la automatización de procesos y el uso de herramientas como Git, Docker, Kubernetes, Terraform y Ansible. Se enfatiza la importancia de la infraestructura como código (IaC) para mejorar la rapidez, automatización y minimizar riesgos en el despliegue de aplicaciones. Además, se introducen los principios SOLID para una programación ordenada y eficiente.

Cargado por

lcosenza86
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

DevOps

Módulo 2

Curso de DevOps
Construyendo código

Esta fase es en donde se construye.


Sea escribiendo código, diseñando infraestructura,
automatizando procesos, definiendo las pruebas o implantando
la seguridad.

Es en donde, en la actualidad, se está realizando el esfuerzo


más importante en la automatización de las acciones
repetitivas o complejas y que debiera ser uno de los primeros
peldaños que escalar para implantar DevOps en una
organización.

Curso de DevOps
Codificación ?
En DevOps la Codificación es el proceso en el cual luego de
hacer la planeación correspondiente empezamos a desarrollar
nuestra aplicación y como automatizarla.

Esto implica hacer primero el diseño lógico de la aplicación,


las estructuras de la misma y luego la programación en el
lenguaje correspondiente.

Curso de DevOps
Git

Git es un software de control de versiones diseñado por Linus Torvalds, pensando en la eficiencia y la
confiabilidad del mantenimiento de versiones de aplicaciones cuando éstas tienen un gran número de archivos
de código fuente.

Su propósito es llevar registro de los cambios en archivos de computadora y coordinar el trabajo que varias
personas realizan sobre archivos compartidos.

Curso de DevOps
Git y DevOps

Cuando se habla de DevOps se habla siempre de automatizaciones como una forma de trabajar. Aquí entra git
como la herramienta base para todas las automatizaciones. No solamente para el código sino también para la
infraestructura.

En DevOps todo es código, las Apps como la infraestructura. Aquí se empieza a ver un nuevo concepto que es,
Infraestructura como código

Curso de DevOps
Git - ¿Qué es una rama?

Cualquier sistema de control de versiones moderno tiene algún mecanismo para soportar el uso de ramas.
Cuando hablamos de ramificaciones, significa que tú has tomado la rama principal de desarrollo (master) y a
partir de ahí has continuado trabajando sin seguir la rama principal de desarrollo.

Git promueve un ciclo de desarrollo donde las ramas se crean y se unen ramas entre sí, incluso varias veces en
el mismo día.

Esto supone que cada devops y/o desarrollador trabaje sobre una rama sin afectar el trabajo de otro y cuando
todos termines, se unan en una rama maestra para ponerse en producción.

Curso de DevOps
Infraestructura como código
La infraestructura como código (IaC) trata la infraestructura de
configuración como un software de programación.
De hecho, esto empieza a desdibujar los límite entre la escritura de
aplicaciones y la creación de entornos en los que se ejecutan.
Las aplicaciones pueden contener scripts para crear y organizar sus
propios servidores.
Se trata de una parte fundamental de la computación en la nube y
esencial para DevOps.

Curso de DevOps
Beneficios de la Iac
Rapidez

El diseño de una infraestructura con código permite agilizar de


manera significativa el despliegue posterior de manera rápida y
segura.

IaC permite desplegar toda una infraestructura que podría llevar


horas o días enteros ejecutando tan sólo un script en cuestión de
unos pocos minutos.

Curso de DevOps
Beneficios ...
Automatización

La automatización en la replicación de infraestructura es otro punto


interesante de la IaC.

Es posible tomar el diseño de una infraestructura con código para


que sea replicada exactamente igual en otro entorno únicamente
modificando los parámetros que se proporcionan durante la
creación.

Curso de DevOps
Beneficios ...
Minimización de riesgos

Otra de las ventajas que ofrece IaC es la minimización de riesgos.


Cuando se despliega infraestructura manualmente es inevitable que
en algún momento se cometa un error.

IaC permite hacer las comprobaciones necesarias antes de


desplegar para que exista una consistencia, minimizando al
máximo los errores anteriormente comentados

Curso de DevOps
Beneficios ...
Actualizaciones controladas y rollbacks

Los sistemas de IaC permiten la actualización de los stacks


proporcionando un fichero actualizado y pidiendo que en lugar de
crear un nuevo stack procede a actualizar uno existente, el sistema
se encarga de comprar el fichero con los recursos actualmente
desplegados y se encarga de hacer únicamente los cambios
necesarios.

Curso de DevOps
Docker
¿Qué es Docker? Es una plataforma que hace un nuevo y mejor uso de
containers para automatizar el despliegue de aplicaciones.

Lo bueno es que Docker te permite tener el control de cada una de las


etapas en las vida de un producto.

¿Cómo?

Todos los elementos de una aplicación, como el motor, el conjunto de


librerías y el kernel o el software, pueden ser agrupados en un mismo
contenedor y almacenados en nuestro disco para luego ejecutarlo de forma
independiente del sistema operativo.

Curso de DevOps
Kubernetes
Kubernetes es una plataforma portable y extensible de código abierto para
administrar cargas de trabajo y servicios.

Kubernetes facilita la automatización y la configuración declarativa. Tiene un


ecosistema grande y en rápido crecimiento. El soporte, las herramientas y
los servicios para Kubernetes están ampliamente disponibles.

Google liberó el proyecto Kubernetes en el año 2014. Kubernetes se basa en


la experiencia de Google corriendo aplicaciones en producción a gran
escala por década y media, junto a las mejores ideas y prácticas de la
comunidad

Curso de DevOps
Terraform

Terraform es un software de infraestructura como código desarrollado por


HashiCorp.

Permite a los usuarios definir y configurar la infraestructura de un centro de


datos en un lenguaje de alto nivel, generando un plan de ejecución para
desplegar la infraestructura en OpenStack, por ejemplo, u otros proveedores
de servicio tales como AWS, IBM Cloud, Google Cloud Platform, Linode,
Microsoft Azure, Oracle Cloud Infrastructure o VMware vSphere

Curso de DevOps
Ansible
Ansible es una plataforma de software libre para configurar y administrar
ordenadores.

Combina instalación multi-nodo (es decir: permite desplegar configuraciones


de servidores y servicios por lotes), ejecuciones de tareas ad hoc y
administración de configuraciones.

Adicionalmente, Ansible es categorizado como una herramienta de


orquestación.

Curso de DevOps
LiquiBase
Liquibase es una biblioteca de código abierto independiente de la base de
datos para rastrear, administrar y aplicar cambios en el esquema de la base
de datos.

Se inició en 2006 para permitir un seguimiento más fácil de los cambios en


la base de datos, especialmente en un entorno de desarrollo de software
ágil.

Curso de DevOps
Jenkins
Jenkins es un servidor de automatización open source escrito en Java. Está basado en el proyecto
Hudson y es, dependiendo de la visión, un fork del proyecto o simplemente un cambio de nombre.

Jenkins ayuda en la automatización de parte del proceso de desarrollo de software mediante


integración continua y facilita ciertos aspectos de la entrega continua.

Admite herramientas de control de versiones como CVS, Subversion, Git, Mercurial, Perforce y
Clearcase y puede ejecutar proyectos basados en Apache Ant y Apache Maven, así como
secuencias de comandos de consola y programas por lotes de Windows.

El desarrollador principal es Kohsuke Kawaguchi. Publicado bajo licencia MIT, Jenkins es software
libre

Curso de DevOps
Donde se conecta todo para DevOps?
Pues, en un contexto de DevOps:

1.- Git, es quien guarda todos nuestros repos


2.- Terraform, nos crear la infraestructura base (redes, vm, etc)
3.- Ansible, nos instala los componentes necesarios (apt, docker, kuberntes,
etc)
4.- Docker, nos brinda la visualización
5.- Kubernetes, nos orquesta los dockers
6.- Liquibase, nos controla los despliegues contra las bases de datos.
7.- Jenkins, es quien orquesta, controla y monitorea todas las herramientas
anteriores.

Curso de DevOps
Como llevamos adelante todo esto?
Pues, con una programación ordenada usando con los principios de SOLID

Curso de DevOps
SOLID
Principio de Responsabilidad Única

Reúne las cosas que cambian por las mismas razones. Separa aquellas que cambian por razones diferentes

Principio de Abierto/Cerrado

Deberías ser capaz de extender el comportamiento de una clase, sin modificarla”. En otras palabras: las
clases que usas deberían estar abiertas para poder extenderse y cerradas para modificarse

Curso de DevOps
SOLID ...

Principio de Sustitución de Liskov

La L de SOLID alude al apellido de quien lo creó, Barbara Liskov, y dice que “las clases derivadas deben
poder sustituirse por sus clases base”.

Principio de Segregación de la Interfaz

En el cuarto principio de SOLID, el tío Bob sugiere: “Haz interfaces que sean específicas para un tipo de
cliente”, es decir, para una finalidad concreta.

Curso de DevOps
SOLID ...
Principio de Inversión de Dependencias

Depende de abstracciones, no de clases concretas


El objetivo del Dependency Inversion Principle (DIP) consiste en reducir las dependencias entre los módulos
del código, es decir, alcanzar un bajo acoplamiento de las clases.

Curso de DevOps
Revisión

● Repase los conceptos básicos

- Git
- IaC
- Orquestación
- SOLID

Curso de DevOps
¡Muchas gracias!
¡Sigamos trabajando!

Curso de DevOps

También podría gustarte