Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥

Fundamentos de Project Atomic: Paraíso para DevOps

Fundamentos de Project Atomic: Paraíso para DevOps

Presentación para el primer Pre DevConf. Explicación sobre qué es Project Atomic, sus componentes y arquitectura, mayores beneficios y formas de implementación.

Abdel G. Martínez L.

December 28, 2016
Tweet

More Decks by Abdel G. Martínez L.

Other Decks in Technology

Transcript

  1. Fundamentos de Project Atomic: Paraíso para DevOps Abdel G. Martínez

    L. [email protected] @abdelgmartinezl Licencia: CC Attribution-NonCommercial-NoDerivs License
  2. Fundamentos de Project Atomic: Paraíso para DevOps 2 AGENDA 1.

    Estado Actual de DevOps 2. Project Atomic 101 3. Anatomía 4. Razones para ♥ 5. Lo Que No Debes Esperar 6. Estoy Interesado
  3. Fundamentos de Project Atomic: Paraíso para DevOps 3 ESTADO ACTUAL

    DE DEVOPS Herramientas más utilizadas: DevOps está creciendo rápido, especialmente en corporaciones La adopción de contenedores está madurando, especialmente en corporaciones Hay un alto interés en ejecutar contenedores en servidores físicos Todavía existe una brecha de conocimiento en el manejo de estas tecnologías
  4. Fundamentos de Project Atomic: Paraíso para DevOps 4 PROJECT ATOMIC

    101 Project Atomic es un paraguas para muchos proyectos relacionados con re-definir el concepto de sistema operativo alrededor del principio de infraestructura inmutable, utilizando una capa LDK (Linux, Docker, Kubernetes). Provee un servidor optimizado para ejecutar y gestionar contenedores Todas las aplicaciones son ejecutadas como contenedores, no como programas de servidor Listo para ambientes en la nube, virtualizados y servidores físicos El servidor debe desplegar y manejar actualizaciones de manera sencilla
  5. Fundamentos de Project Atomic: Paraíso para DevOps 5 ANATOMÍA Atomic

    Host Docker Kubernetes rpm-ostree /usr/bin/atomic Cockpit AtomicApp Nulecule Atomic Registry Commissaire Atomic Developer Bundle
  6. Fundamentos de Project Atomic: Paraíso para DevOps 6 ANATOMÍA: ATOMIC

    HOST • Bloque de construcción principal de Project Atomic. • Sistema operativo ligero para contenedores. • Son inmutables, es decir, viene de un único repositorio. • Las aplicaciones se ejecutan en contenedores. • Implementado en Fedora, CentOS y Red Hat.
  7. Fundamentos de Project Atomic: Paraíso para DevOps 7 ANATOMÍA: ATOMIC

    HOST Modelo de Sistema de Archivos • /usr es sólo-lectura • Sólo /etc y /var se pueden escribir. • /etc se reconfigura en actualizaciones (diff) • /var no se toca • /home -> /var/home
  8. Fundamentos de Project Atomic: Paraíso para DevOps 8 ANATOMÍA: ATOMIC

    HOST Modelo de Almacenamiento • Partición por defecto crea 3GB para el volúmen lógico root. • El servicio docker-storage-setup configura un pool llamado docker-pool con el espacio restante. • Este espacio es utilizado para almacenar todas las imágenes de los contenedores. • Dimensionamiento por defecto de la partición root puede ser cambiando durante o después de la instalación.
  9. Fundamentos de Project Atomic: Paraíso para DevOps 9 ANATOMÍA: ATOMIC

    HOST Modelo de Red (1 servidor) • Los contenedores tendrán una IP privada. Esto permite comunicación entre contenedores. • Los contenedores se pueden comunicar con aplicaciones externas a través de métodos de pase de puertos. • La comunicación entre contenedores se da utilizando nombres en lugar de valores de red.
  10. Fundamentos de Project Atomic: Paraíso para DevOps 10 ANATOMÍA: ATOMIC

    HOST Modelo de Red (n servidores) • Kubernetes • Flannel: Red virtual que da una subred a cada servidor para utilizar con contenedores.
  11. Fundamentos de Project Atomic: Paraíso para DevOps 12 ANATOMÍA: DOCKER

    • Plataforma de contenerización más popular. • Permite componer aplicaciones de microservicios, sin preocuparse en las inconsistencias entre los ambientes de producción y desarrollo. • Permite arquitectar el ciclo completo de desarrollo, pruebas y distribución de la aplicación. • Ofrece la habilidad de desplegar servicios escalables, seguros y confiables, en una amplia variedad de plataformas.
  12. Fundamentos de Project Atomic: Paraíso para DevOps 14 ANATOMÍA: KUBERNETES

    • Automatización de despliegue, escalabilidad y administración de aplicaciones en contenedores. • Agrupa contenedores para convertir aplicaciones en unidades lógicas para su fácil gestión y descubrimiento. • Automáticamente mueve contenedores basados en sus requerimientos de recursos y limitaciones. • Reinicia contenedores que fallan o que no responden a validaciones de salud de usuario. • Usa almacenamiento tipo NFS, iSCSI, Gluster y AWS.
  13. Fundamentos de Project Atomic: Paraíso para DevOps 16 ANATOMÍA: RPM-OSTREE

    • Es un sistema de paquetes/imágenes híbrido. • Utiliza OSTree como formato base. • Soporta RPM utilizando la librería core libhif (implementada en dnf, PackageKit). • Las actualizaciones de sistema son atómicas. • Tiene una herramienta de servidor para consumir RPMs y entregarlos a un repositorio OSTree y de un demonio para consumir como actualizaciones. • Es conocido como el 'Git de los sistemas operativos'.
  14. Fundamentos de Project Atomic: Paraíso para DevOps 18 ANATOMÍA: /USR/BIN/ATOMIC

    atomic run • Atomic permite a un proveedor de imagen proveer cómo una imagen de contenedor se pueda ejecutar. Ejemplo: Construcción de un contenedor con ntpd con capacidad de SYS_TIME LABEL RUN /usr/bin/docker run –d --cap-add=SYS_TIME ntpd La ejecución de atomic run ntpd, leerá el JSON definido en el LABEL RUN.
  15. Fundamentos de Project Atomic: Paraíso para DevOps 19 ANATOMÍA: /USR/BIN/ATOMIC

    atomic install / atomic uninstall • Esta herramienta permite a los desarrolladores embeber los scripts de instalación y desinstalación dentro de la aplicación. • Los métodos LABEL INSTALL y LABEL UNINSTALL permiten actualizar la metadata para ejecutar los procedimientos.
  16. Fundamentos de Project Atomic: Paraíso para DevOps 20 ANATOMÍA: COCKPIT

    • Herramienta de administración que provee una interfaz de usuario para monitorizar y administrar servidores a través de un navegador web. • Permite gestionar valores actuales y ajustar límites en recursos del sistema, controlar el ciclo de vida de las instancias de los contenedores y manipular las imágenes de contenedores.
  17. Fundamentos de Project Atomic: Paraíso para DevOps 21 ANATOMÍA: COCKPIT

    No incluye una capa de funcionalidades no presentes en los sistemas. No toma control de los servidores. Lo que se configura desde Cockpit, se maneja ahí. No quiere configuración o infraestructura, y una vez instalado, está listo para uso. Tiene cero footprint de memoria y procesos en el servidor cuando no está en uso. No almacena data o políticas. Incluso no tienen usuarios propios. Dinámicamente se actualiza para reflejar el estado del servidor, en segundos. No está intencionado para gestión de configuración, pero se puede integrar con otras herramientas.
  18. Fundamentos de Project Atomic: Paraíso para DevOps 24 ANATOMÍA: NULECULE

    • Es un instalador para aplicaciones basadas en contenedores. • Permite cambiar parámetros de ejecución para distintos entornos. • Tiene proveedores de orquestación para empaquetar la aplicación para diferentes plataformas (OpenShift, Kubernetes, Helios, entre otros). • Define un patrón y modelo para empaquetar aplicaciones y servicios multi- contenedores complejas, referenciando todas sus dependencias, incluyendo metadata de orquestación.
  19. Fundamentos de Project Atomic: Paraíso para DevOps 25 ANATOMÍA: ATOMICAPP

    • Es una implementación de referencia sobre la especificación Nulecule. • Los contenedores en Project Atomic se trabajan en este marco. • Un instalador empaquetado para todos las aplicaciones y entornos basados en contenedores (eliminación de scripts). • Trabaja con múltiples proveedores (Kubernetes, OpenShift, Mesos+Marathon). • Hereda contenedores que ya fueron empaquetados (apache, etherpad, flask, redis, gitlab, gocounter, mariadb, mongodb, postgresql, skydns, wordpress) • Recupera y ejecuta entornos completos.
  20. Fundamentos de Project Atomic: Paraíso para DevOps 27 ANATOMÍA: ATOMIC

    REGISTRY • Está basado en tecnología de OpenShift que maneja un registro embedido usando la librería Docker distribution (de donde nace Docker Registry). • Utiliza lo siguiente: • Consola web orientada a usuario final • Proveedor de autenticación global • Colaboración basado en RBAC • Gestión de servicios basado en clústeres Kubernetes • Vista única virtual de imágenes con Image Streams.
  21. Fundamentos de Project Atomic: Paraíso para DevOps 29 ANATOMÍA: COMMISSAIRE

    • Es un API REST ligero para gestión de servidores Kubernetes. • Está compuesto por: • commissaire-service: Provee microservicios y código base para los servicios • commissaire-http: Provee front-end HTTP REST. Responsable de enrutar las peticiones, la lógica de negocio, pasar el trabajo a los servicios y responder los resultados de vuelta al cliente. • Funciona con Python 3.5+
  22. Fundamentos de Project Atomic: Paraíso para DevOps 30 ANATOMÍA: ATOMIC

    DEVELOPER BUNDLE • Es un entorno de desarrollo pre- empaquetado (para Vagrant) llenado con herramientas que hacen el desarrollo de contendores más fácil. • Soporta el desarrollo de aplicaciones multi-contenedores contra diferentes tecnologías y orquestadores mientras provee una ruta para promover las mejores prácticas. Pre- configurado Soporte a múltiples entornos Listas para producción Auto- contenidas Código abierto
  23. Fundamentos de Project Atomic: Paraíso para DevOps 31 RAZONES PARA

    ♥ PROJECT ATOMIC Ejecutamos contenedores Linux en CentOS, Fedora o Red Hat. Cumplimos el modelo empresarial centrado en aplicaciones. Reduce la complejidad de la capa de software, el cantidad de capas y la velocidad de cambio de forma consistente. DevOps tiene control sobre su entorno de ejecución debajo de sus aplicaciones, sin necesariamente conocer todo la capa completa. Olvidamos a las máquinas virtuales, que incrementa el uso de recurso y tiempo de administración.
  24. Fundamentos de Project Atomic: Paraíso para DevOps 32 LO QUE

    NO DEBES ESPERAR Los Atomic Host son inmutables. No se debe esperar instalar paquetes en sistemas en ejecución. Las imágenes oficiales son mínimas. Posiblemente tus herramientas favoritas no estarán incluidas. Fuera de tareas de desarrollo y soporte, no se debe iniciar sesión en un Atomic Host.
  25. Fundamentos de Project Atomic: Paraíso para DevOps 33 ESTOY INTERESADO

    Sitio Web: projectatomic.io Github: github.com/projectatomic Facebook: /projectatomic Twitter: @projectatomic Lista de Correos: http://www.projectatomic.io/community/
  26. Fundamentos de Project Atomic: Paraíso para DevOps 35 ¡MUCHAS GRACIAS!

    Abdel G. Martínez L. [email protected] @abdelgmartinezl Mayo 25-26 https://www.devconfpanama.com Packaging Multi-Container Apps using Project Atomic