DevOps es un cambio de cultura que acelera el ciclo de desarrollo de software sin comprometer la calidad. Esta diapositiva hace una breve introducción al DevOps con ejemplos concretos de proceso y herramientas.
El documento habla sobre la implementación de DevOps. Explica que actualmente los equipos de desarrollo están adoptando prácticas de DevOps sin integrar a los equipos de infraestructura, lo que causa problemas. También detalla algunos desafíos como procesos fragmentados y falta de colaboración entre equipos. Finalmente, propone algunas acciones iniciales para mejorar la integración entre desarrollo, infraestructura y operaciones como talleres conjuntos y pruebas piloto con flujos de aprobación compartidos.
De acuerdo a la definición de Michael Hüttermann, DevOps es una mezcla de patrones destinados a mejorar la colaboración entre desarrolladores y operadores. DevOps se dirige a compartir metas e incentivos, así como procesos compartidos y herramientas. En el presente workshop se proporcionará los conceptos básicos, características y recomendaciones que podrían considerar los agentes de cambio para impulsar este movimiento en las organizaciones.
Este documento presenta una introducción a DevOps, incluyendo:
1) Explica que Agile dejó atrás las operaciones de TI y que DevOps busca integrar el desarrollo y las operaciones.
2) Define DevOps como un enfoque ágil para reducir la brecha entre desarrollo y operaciones y entregar valor más rápido y de forma más confiable.
3) Señala que DevOps no es una herramienta o posición, sino un conjunto de prácticas que promueven la colaboración entre equipos.
Helm es una herramienta para administrar aplicaciones en Kubernetes mediante paquetes llamados charts. Los charts contienen los recursos de Kubernetes necesarios para implementar una aplicación. Helm facilita el despliegue, actualización y eliminación de aplicaciones en Kubernetes de una manera declarativa y reproducible.
GitOps è un nuovo metodo di CD che utilizza Git come unica fonte di verità per le applicazioni e per l'infrastruttura (declarative infrastructure/infrastructure as code), fornendo sia il controllo delle revisioni che il controllo delle modifiche. In questo talk vedremo come implementare workflow di CI/CD Gitops basati su Kubernetes, dalla teoria alla pratica passando in rassegna i principali strumenti oggi a disposizione come ArgoCD, Flux (aka Gitops engine) e JenkinsX
This document compares GitLab CI and Jenkins for continuous integration. It discusses how GitLab CI is integrated directly into GitLab while Jenkins is a separate product. It also covers differences in programming languages used, configuration approaches, and extensibility through plugins. The document then demonstrates how to set up a sample CI/CD pipeline in GitLab CI to package and deploy code and websites for different environments.
BootCamp Online en DevOps (and SecDevOps) de GeeksHubs AcademyTelefónica
Este documento describe un Bootcamp Online de Especialización en DevOps de 12 semanas. El bootcamp enseña habilidades como el rol de DevOps, arquitectura como código, infraestructuras híbridas, contenedores, balanceo de carga, automatización, clustering de contenedores, continuous delivery y continuous testing. El programa incluye 10 módulos y un proyecto final para automatizar una aplicación web. El bootcamp es impartido por 10 profesionales expertos y es 100% online con clases en directo.
El documento habla sobre la implementación de DevOps. Explica que actualmente los equipos de desarrollo están adoptando prácticas de DevOps sin integrar a los equipos de infraestructura, lo que causa problemas. También detalla algunos desafíos como procesos fragmentados y falta de colaboración entre equipos. Finalmente, propone algunas acciones iniciales para mejorar la integración entre desarrollo, infraestructura y operaciones como talleres conjuntos y pruebas piloto con flujos de aprobación compartidos.
De acuerdo a la definición de Michael Hüttermann, DevOps es una mezcla de patrones destinados a mejorar la colaboración entre desarrolladores y operadores. DevOps se dirige a compartir metas e incentivos, así como procesos compartidos y herramientas. En el presente workshop se proporcionará los conceptos básicos, características y recomendaciones que podrían considerar los agentes de cambio para impulsar este movimiento en las organizaciones.
Este documento presenta una introducción a DevOps, incluyendo:
1) Explica que Agile dejó atrás las operaciones de TI y que DevOps busca integrar el desarrollo y las operaciones.
2) Define DevOps como un enfoque ágil para reducir la brecha entre desarrollo y operaciones y entregar valor más rápido y de forma más confiable.
3) Señala que DevOps no es una herramienta o posición, sino un conjunto de prácticas que promueven la colaboración entre equipos.
Helm es una herramienta para administrar aplicaciones en Kubernetes mediante paquetes llamados charts. Los charts contienen los recursos de Kubernetes necesarios para implementar una aplicación. Helm facilita el despliegue, actualización y eliminación de aplicaciones en Kubernetes de una manera declarativa y reproducible.
GitOps è un nuovo metodo di CD che utilizza Git come unica fonte di verità per le applicazioni e per l'infrastruttura (declarative infrastructure/infrastructure as code), fornendo sia il controllo delle revisioni che il controllo delle modifiche. In questo talk vedremo come implementare workflow di CI/CD Gitops basati su Kubernetes, dalla teoria alla pratica passando in rassegna i principali strumenti oggi a disposizione come ArgoCD, Flux (aka Gitops engine) e JenkinsX
This document compares GitLab CI and Jenkins for continuous integration. It discusses how GitLab CI is integrated directly into GitLab while Jenkins is a separate product. It also covers differences in programming languages used, configuration approaches, and extensibility through plugins. The document then demonstrates how to set up a sample CI/CD pipeline in GitLab CI to package and deploy code and websites for different environments.
BootCamp Online en DevOps (and SecDevOps) de GeeksHubs AcademyTelefónica
Este documento describe un Bootcamp Online de Especialización en DevOps de 12 semanas. El bootcamp enseña habilidades como el rol de DevOps, arquitectura como código, infraestructuras híbridas, contenedores, balanceo de carga, automatización, clustering de contenedores, continuous delivery y continuous testing. El programa incluye 10 módulos y un proyecto final para automatizar una aplicación web. El bootcamp es impartido por 10 profesionales expertos y es 100% online con clases en directo.
Gitops: a new paradigm for software defined operationsMariano Cunietti
The document discusses GitOps and a new paradigm called cloud native applications. It promotes GitOps as an approach where the entire system, including code, config, monitoring rules and policies are described in a Git repository. This allows the entire system to be destroyed and re-built with no human intervention. It then describes Automium, a solution the author's company built based on GitOps fundamentals to help with cloud transformations.
This document discusses DevOps and continuous delivery. It begins by introducing the speaker and defining DevOps as applying kanban principles and focusing on reducing lead time from idea to production. It then discusses how continuous integration, continuous delivery, test automation, and breaking work into small batches can help reduce lead time. The document emphasizes that DevOps is not just about tools but also culture and processes.
Este documento presenta una introducción al ecosistema Docker. Docker es un proyecto de código abierto que permite empaquetar aplicaciones en contenedores ligeros que pueden ejecutarse en cualquier lugar. El documento describe las principales características de Docker como su comunidad de más de 200,000 usuarios, su compañía patrocinadora Docker Inc, y los principales componentes de su ecosistema como herramientas de desarrollo, sistemas operativos, gestión de configuraciones y más.
Kubernetes GitOps featuring GitHub, Kustomize and ArgoCDSunnyvale
A brief dissertation about using GitOps paradigm to operate an application on multiple Kubernetes environments thanks to GitHub, ArgoCD and Kustomize. A talk about this matters has been taken at the event #CloudConf2020
This document discusses improving the developer experience through GitOps and ArgoCD. It recommends building developer self-service tools for cloud resources and Kubernetes to reduce frustration. Example GitLab CI/CD pipelines are shown that handle releases, deployments to ECR, and patching apps in an ArgoCD repository to sync changes. The goal is to create faster feedback loops through Git operations and automation to motivate developers.
ArgoCD is a Continuous Delivery and Deployment tool based on GitOps principles. It helps to automate deployment to Kubernetes cluster from github. We will look into how to adopt and use argoCD for continuous deployment.
CI/CD Best Practices for Your DevOps JourneyDevOps.com
The journey to realizing DevOps in any organization is fraught with a number of obstacles for developers and other stakeholders. These challenges are often caused by key CI/CD practices being misunderstood, partially implemented or even completely skipped. Now, as the industry positions itself to build on DevOps practices with a Software Delivery Management strategy, it’s more important than ever that we implement CI/CD best practices, and prepare for the future.
Join host Mitchell Ashely, and CloudBees’ Brian Dawson, DevOps evangelist, and Doug Tidwell, technical marketing director, as they explore and review the CI/CD best practices which serve as your stepping stones to DevOps and a successful Software Delivery Management strategy.
The webinar will cover CI/CD best practices including:
Containers and environment management
Continuous delivery or deployment
Movement from Dev to Ops
By the end of the webinar, you’ll understand the key steps for implementing CI/CD and powering your journey to DevOps and beyond.
En esta charla se explicará cómo realizar implementar integración continua usando Gitlab y fastlane para que de forma automatizada haga:
- Ejecución de tests unitarios
- Ejecución de tests de interfaz con KIF
- Análisis de código en Sonar
- Despliegue de la app a TestFlight
DevOps Fest 2020. Дмитрий Кудрявцев. Реализация GitOps на Kubernetes. ArgoCDDevOps_Fest
The document discusses GitOps and ArgoCD for managing Kubernetes applications. It defines GitOps as storing the desired state of systems in Git repositories and using continuous delivery tools to ensure the live systems match that state. ArgoCD is introduced as a GitOps tool that monitors applications and ensures the running state matches the target state defined in Git. Key features of ArgoCD include a web UI, automated deployments, support for different config formats, and rollback capabilities. The document provides an example of using Kustomize to customize Kubernetes resources through overlays.
DevOps is an increasingly useful tool for achieving business objectives, enabling your teams to work together to improve the efficiency and quality of software delivery. However, despite its growing popularity, there is still a lack of clarity over what DevOps actually means, how organizations should do it and what's the best way to get started.
DevOps 101 takes a brief look at the history of DevOps, why it started, what problems it is intended to solve and how you can start implementing it.
The slides were delivered by James Betteley, Head of Education at the DevOpsGuys in a one-hour webinar. The full recording is available here - https://youtu.be/4gC3WpbetKs?t=2s
James has spent the last few years neck-deep in the world of DevOps transformation, helping a wide range of organizations optimize the way they collaborate to deliver better software, faster. James was joined by Elizabeth Ayer, Portfolio Manager, from Redgate Software. Elizabeth looks after a range of Redgate products that help teams extend their DevOps practices to SQL Server databases.
For more information visit www.devopsguys.com and www.red-gate.com
These are the slides for a talk/workshop delivered to the Cloud Native Wales user group (@CloudNativeWal) on 2019-01-10.
In these slides, we go over some principles of gitops and a hands on session to apply these to manage a microservice.
You can find out more about GitOps online https://www.weave.works/technologies/gitops/
What does a Maturity Curve for Enterprise Adoption of Agile and DevOps look like? Where would an organization like yours rank on the curve? Are there specific areas of improvement you might want to consider?
Related Source Code https://github.com/abdennour/meetup-deployment-k8s
Intro
Why Deployment ?
What’s Deployment ?
How Deployment?
Deployment Strategies ( in general & in k8s )
Deployment Features
Demo ( distributed )
DevOps is a software engineering culture and practice that aims to unify software development (Dev) and software operation (Ops) teams. The main goals of DevOps are to achieve shorter development cycles, increased deployment frequency, and more dependable releases that are closely aligned with business objectives. DevOps advocates for the automation and monitoring of all steps in the software development process, from integration and testing through release, deployment, and infrastructure management.
DevOps is a movement to change how IT is done by promoting collaboration between development and operations teams. It aims to reduce waste and improve delivery of software by making development and operations processes more efficient through automation, monitoring, and communication. The DevOps philosophy advocates enhancing software design with operational knowledge, building feedback loops from production into development to improve systems, and fostering a culture of shared responsibility. Key DevOps practices include accelerating the flow of changes to production through continuous integration, delivery, and deployment; adding development practices to operations like automated testing; and empowering developers to do production work to break down barriers between teams. DevOps uses tooling throughout the development and operations process to measure and monitor systems and provide feedback.
Focus on what matters: code
How to use and develop a GitHub Actions workflow using Node.js
With GitHub Actions (https://github.com/features/actions) you can automate your workflow from idea to production.
Actions can be written in any language, but we will take a closer look in how to write our workflow using Node.js and interact with the full GitHub API.
This document summarizes a presentation about deploying applications on Kubernetes with GitOps. The presentation covers GitOps workflows and tools like FluxCD and ArgoCD for managing Helm charts from Git repositories. It also discusses integrating continuous integration pipelines with ArgoCD and provides best practices for areas like secret management, scaling, and microservices. The presenter concludes by taking questions and inviting interested parties to join their company.
The document discusses how Helm can help manage Kubernetes deployments by bundling manifests into reusable charts. It describes how Helm works by initializing a Tiller server and installing charts which generate Kubernetes resources. The document outlines best practices for writing charts, including using templates, values, and dependencies. It also provides tips for tools like kubeval and kubetest that can help validate charts.
We are more than thrilled to announce the second meetup on 10 December 2022 where we discuss GitOps, ArgoCD and their fundamentals. Inviting SREs, DevOps engineers, developers & platform engineers from all around the world.
Agenda:-
1. GitOps Overview
2. Why and What is GitOps
3. Opensource GitOps tools
4. What is ArgoCD, Architecture
5. Let's Get our hands dirty on ArgoCD
6. Q&A
Este documento describe el caso de estudio de una organización que migró de un proceso de desarrollo y despliegue manual a uno de Continuous Delivery. Comenzaron automatizando el despliegue de un componente usando Git, empaquetado, pruebas automatizadas y Jenkins. Luego empaquetaron los componentes, automatizaron despliegues en ambientes de desarrollo y producción usando scripts de Bash y Ansible. Finalmente lograron que los desarrolladores puedan desplegar directamente a producción y mejoraron las pruebas con Smoke tests, UAT y despl
Este documento describe el caso de estudio de una organización que migró de un proceso de desarrollo y despliegue manual a uno de Continuous Delivery. Comenzaron separando componentes en repositorios Git y automatizando pruebas y despliegues. Luego empaquetaron componentes y los desplegaron automáticamente en ambientes de desarrollo y pruebas. Finalmente lograron despliegues directos a producción usando infraestructura como código y herramientas como Ansible, Jenkins y Artifactory.
Gitops: a new paradigm for software defined operationsMariano Cunietti
The document discusses GitOps and a new paradigm called cloud native applications. It promotes GitOps as an approach where the entire system, including code, config, monitoring rules and policies are described in a Git repository. This allows the entire system to be destroyed and re-built with no human intervention. It then describes Automium, a solution the author's company built based on GitOps fundamentals to help with cloud transformations.
This document discusses DevOps and continuous delivery. It begins by introducing the speaker and defining DevOps as applying kanban principles and focusing on reducing lead time from idea to production. It then discusses how continuous integration, continuous delivery, test automation, and breaking work into small batches can help reduce lead time. The document emphasizes that DevOps is not just about tools but also culture and processes.
Este documento presenta una introducción al ecosistema Docker. Docker es un proyecto de código abierto que permite empaquetar aplicaciones en contenedores ligeros que pueden ejecutarse en cualquier lugar. El documento describe las principales características de Docker como su comunidad de más de 200,000 usuarios, su compañía patrocinadora Docker Inc, y los principales componentes de su ecosistema como herramientas de desarrollo, sistemas operativos, gestión de configuraciones y más.
Kubernetes GitOps featuring GitHub, Kustomize and ArgoCDSunnyvale
A brief dissertation about using GitOps paradigm to operate an application on multiple Kubernetes environments thanks to GitHub, ArgoCD and Kustomize. A talk about this matters has been taken at the event #CloudConf2020
This document discusses improving the developer experience through GitOps and ArgoCD. It recommends building developer self-service tools for cloud resources and Kubernetes to reduce frustration. Example GitLab CI/CD pipelines are shown that handle releases, deployments to ECR, and patching apps in an ArgoCD repository to sync changes. The goal is to create faster feedback loops through Git operations and automation to motivate developers.
ArgoCD is a Continuous Delivery and Deployment tool based on GitOps principles. It helps to automate deployment to Kubernetes cluster from github. We will look into how to adopt and use argoCD for continuous deployment.
CI/CD Best Practices for Your DevOps JourneyDevOps.com
The journey to realizing DevOps in any organization is fraught with a number of obstacles for developers and other stakeholders. These challenges are often caused by key CI/CD practices being misunderstood, partially implemented or even completely skipped. Now, as the industry positions itself to build on DevOps practices with a Software Delivery Management strategy, it’s more important than ever that we implement CI/CD best practices, and prepare for the future.
Join host Mitchell Ashely, and CloudBees’ Brian Dawson, DevOps evangelist, and Doug Tidwell, technical marketing director, as they explore and review the CI/CD best practices which serve as your stepping stones to DevOps and a successful Software Delivery Management strategy.
The webinar will cover CI/CD best practices including:
Containers and environment management
Continuous delivery or deployment
Movement from Dev to Ops
By the end of the webinar, you’ll understand the key steps for implementing CI/CD and powering your journey to DevOps and beyond.
En esta charla se explicará cómo realizar implementar integración continua usando Gitlab y fastlane para que de forma automatizada haga:
- Ejecución de tests unitarios
- Ejecución de tests de interfaz con KIF
- Análisis de código en Sonar
- Despliegue de la app a TestFlight
DevOps Fest 2020. Дмитрий Кудрявцев. Реализация GitOps на Kubernetes. ArgoCDDevOps_Fest
The document discusses GitOps and ArgoCD for managing Kubernetes applications. It defines GitOps as storing the desired state of systems in Git repositories and using continuous delivery tools to ensure the live systems match that state. ArgoCD is introduced as a GitOps tool that monitors applications and ensures the running state matches the target state defined in Git. Key features of ArgoCD include a web UI, automated deployments, support for different config formats, and rollback capabilities. The document provides an example of using Kustomize to customize Kubernetes resources through overlays.
DevOps is an increasingly useful tool for achieving business objectives, enabling your teams to work together to improve the efficiency and quality of software delivery. However, despite its growing popularity, there is still a lack of clarity over what DevOps actually means, how organizations should do it and what's the best way to get started.
DevOps 101 takes a brief look at the history of DevOps, why it started, what problems it is intended to solve and how you can start implementing it.
The slides were delivered by James Betteley, Head of Education at the DevOpsGuys in a one-hour webinar. The full recording is available here - https://youtu.be/4gC3WpbetKs?t=2s
James has spent the last few years neck-deep in the world of DevOps transformation, helping a wide range of organizations optimize the way they collaborate to deliver better software, faster. James was joined by Elizabeth Ayer, Portfolio Manager, from Redgate Software. Elizabeth looks after a range of Redgate products that help teams extend their DevOps practices to SQL Server databases.
For more information visit www.devopsguys.com and www.red-gate.com
These are the slides for a talk/workshop delivered to the Cloud Native Wales user group (@CloudNativeWal) on 2019-01-10.
In these slides, we go over some principles of gitops and a hands on session to apply these to manage a microservice.
You can find out more about GitOps online https://www.weave.works/technologies/gitops/
What does a Maturity Curve for Enterprise Adoption of Agile and DevOps look like? Where would an organization like yours rank on the curve? Are there specific areas of improvement you might want to consider?
Related Source Code https://github.com/abdennour/meetup-deployment-k8s
Intro
Why Deployment ?
What’s Deployment ?
How Deployment?
Deployment Strategies ( in general & in k8s )
Deployment Features
Demo ( distributed )
DevOps is a software engineering culture and practice that aims to unify software development (Dev) and software operation (Ops) teams. The main goals of DevOps are to achieve shorter development cycles, increased deployment frequency, and more dependable releases that are closely aligned with business objectives. DevOps advocates for the automation and monitoring of all steps in the software development process, from integration and testing through release, deployment, and infrastructure management.
DevOps is a movement to change how IT is done by promoting collaboration between development and operations teams. It aims to reduce waste and improve delivery of software by making development and operations processes more efficient through automation, monitoring, and communication. The DevOps philosophy advocates enhancing software design with operational knowledge, building feedback loops from production into development to improve systems, and fostering a culture of shared responsibility. Key DevOps practices include accelerating the flow of changes to production through continuous integration, delivery, and deployment; adding development practices to operations like automated testing; and empowering developers to do production work to break down barriers between teams. DevOps uses tooling throughout the development and operations process to measure and monitor systems and provide feedback.
Focus on what matters: code
How to use and develop a GitHub Actions workflow using Node.js
With GitHub Actions (https://github.com/features/actions) you can automate your workflow from idea to production.
Actions can be written in any language, but we will take a closer look in how to write our workflow using Node.js and interact with the full GitHub API.
This document summarizes a presentation about deploying applications on Kubernetes with GitOps. The presentation covers GitOps workflows and tools like FluxCD and ArgoCD for managing Helm charts from Git repositories. It also discusses integrating continuous integration pipelines with ArgoCD and provides best practices for areas like secret management, scaling, and microservices. The presenter concludes by taking questions and inviting interested parties to join their company.
The document discusses how Helm can help manage Kubernetes deployments by bundling manifests into reusable charts. It describes how Helm works by initializing a Tiller server and installing charts which generate Kubernetes resources. The document outlines best practices for writing charts, including using templates, values, and dependencies. It also provides tips for tools like kubeval and kubetest that can help validate charts.
We are more than thrilled to announce the second meetup on 10 December 2022 where we discuss GitOps, ArgoCD and their fundamentals. Inviting SREs, DevOps engineers, developers & platform engineers from all around the world.
Agenda:-
1. GitOps Overview
2. Why and What is GitOps
3. Opensource GitOps tools
4. What is ArgoCD, Architecture
5. Let's Get our hands dirty on ArgoCD
6. Q&A
Este documento describe el caso de estudio de una organización que migró de un proceso de desarrollo y despliegue manual a uno de Continuous Delivery. Comenzaron automatizando el despliegue de un componente usando Git, empaquetado, pruebas automatizadas y Jenkins. Luego empaquetaron los componentes, automatizaron despliegues en ambientes de desarrollo y producción usando scripts de Bash y Ansible. Finalmente lograron que los desarrolladores puedan desplegar directamente a producción y mejoraron las pruebas con Smoke tests, UAT y despl
Este documento describe el caso de estudio de una organización que migró de un proceso de desarrollo y despliegue manual a uno de Continuous Delivery. Comenzaron separando componentes en repositorios Git y automatizando pruebas y despliegues. Luego empaquetaron componentes y los desplegaron automáticamente en ambientes de desarrollo y pruebas. Finalmente lograron despliegues directos a producción usando infraestructura como código y herramientas como Ansible, Jenkins y Artifactory.
Conferencia Rails: Integracion Continua Y RailsDavid Calavera
Este documento habla sobre integración continua y Rails. Explica qué es la integración continua, sus beneficios como reducir riesgos y errores. Detalla los pasos para configurar un servidor de integración continua como Hudson o CruiseControl y automatizar tareas como pruebas, despliegues y feedback.
Este documento describe las tecnologías para implementar microservicios, incluyendo Node.js, Express, Go y .NET Core. Explica conceptos como APIs agnósticas de lenguaje, REST, HATEOAS y persitencia en bases de datos NoSQL y SQL. También cubre temas como escalabilidad, registro, monitoreo, configuración, despliegue en Heroku, Bluemix, Docker y Docker Compose. Finalmente, discute ventajas y desventajas del stack MEAN para microservicios.
Opensouthcode: Microservicios sobre MEAN StackPedro J. Molina
Este documento resume los conceptos clave de los microservicios utilizando la pila MEAN (MongoDB, ExpressJS, AngularJS y Node.js). Explica brevemente los microservicios, la arquitectura MEAN, herramientas como Express, Mongoose, Baucis y Swagger. También cubre temas como despliegue, escalabilidad, monitorización, configuración y más. El documento proporciona una introducción general a los microservicios MEAN.
Este documento resume los conceptos clave de los microservicios utilizando la pila MEAN (MongoDB, ExpressJS, AngularJS y NodeJS). Explica brevemente los microservicios, la arquitectura propuesta basada en ExpressJS, Mongoose y Baucis para acceder a MongoDB, y los temas de seguridad, escalabilidad, despliegue y monitorización. También incluye una demostración práctica de una aplicación de microservicios desplegada en la nube.
Docker - Entorno de trabajo configurado en 1 minuto [WCBilbao]Keopx
El documento presenta una introducción sobre Docker. Explica que Docker es un proyecto de código abierto que permite crear, empaquetar y distribuir aplicaciones dentro de contenedores de software livianos. También describe algunas ventajas clave de Docker como su eficiencia en recursos y facilidad de transporte y despliegue de contenedores en comparación con máquinas virtuales. Finalmente, ofrece una demostración práctica de Docker y su uso en el desarrollo de aplicaciones.
En este Meetup nos metemos en harina haciendo un repaso de los conceptos principales relacionados con docker y aplicando los casos de uso típicos con contenedores, siempre desde la perspectiva del programador.
El Meetup está dividido en 3 secciones:
* Docker como herramienta de ayuda a la programación
* Docker como sistema de empaquetado de nuestras apps.
* Docker como entorno de despliegue (docker-compose).
Casi todos los desarrolladores, han oído hablar de Docker en mayor o menor medida,pero no tantos han podido ponerlo en práctica.
Hacemos un repaso de los conceptos principales relacionados con docker, aplicando los casos de uso típicos con contenedores, siempre desde la perspectiva del programador.
* Docker como herramienta de ayuda a la programación
* Docker como sistema de empaquetado de nuestras apps.
* Docker como entorno de despliegue (docker-compose).
El documento describe el stack V.E.No.M, que incluye VueJS para el frontend, NodeJS y Express para el backend y API, y MongoDB para la base de datos. Explica que provee un entorno de desarrollo isomórfico con control sobre el frontend, backend y datos. Adicionalmente, el documento demuestra cómo dockerizar una aplicación V.E.No.M para aislar y orquestar sus componentes mediante Docker y Docker Compose.
Este documento presenta una introducción a Docker, incluyendo: qué es Docker y sus principales componentes como imágenes, contenedores y Dockerfile; la instalación de Docker; consideraciones para trabajar con Docker como mantener los contenedores efímeros y evitar que crezcan; el uso de volúmenes para almacenar datos de forma persistente; y Docker Compose, una herramienta para definir y ejecutar aplicaciones compuestas por múltiples contenedores.
Las prácticas de integración continua e implementación/entrega continua (CI/CD) y DevOps ya están establecidas, no solo como buenas costumbres en todas las empresas, sino también como un diferencial clave a la hora de marcar una diferencia con nuestra competencia. En esta charla, veremos una breve introducción y las novedades de estas prácticas con foco en las herramientas que nos brinda Google Cloud.
El despliegue de aplicaciones dentro de contenedores en producción cada vez está más extendido y, de todas las opciones de orquestación, Kubernetes (K8s) es la que, indiscutiblemente, está ganando la batalla.
Pero, si soy developer, ¿esto me importa? No debemos ver los contenedores y la orquestación de estos como algo “de sistemas”. Hay distintas razones por las que (nos) conviene saber de qué va esto.
La primera razón, y posiblemente la más importante, es que el uso de contenedores nos facilita la vida durante el desarrollo y nos ayuda a mantener nuestro entorno de trabajo limpio sin tener que lidiar con la instalación de diferentes versiones del mismo software, por ejemplo. Si nuestra “aplicación” consta de diferentes servicios, tener una manera de describirlos todos y sus dependencias simplifica enormemente el arranque y parada de estos servicios, pudiendolo hacer en bloque.
También hay que tener en cuenta que para que las aplicaciones puedan aprovechar todas las ventajas que Docker y Kubernetes ofrecen deben cumplir ciertas condiciones. Como developers, debemos tenerlo en cuenta a la hora de pensar la arquitectura y diseño de estas: cómo se les provee la configuración, cómo se deben comportar ante el escalado y la convivencia de versiones,...
Sabemos que los distintos entornos, (local, test, staging, preproducción, producción, …) deben tener la misma configuración o podemos encontrarnos con sorpresas desagradables a la hora de desplegar. Esto, que históricamente ha sido una utopía, con los contenedores es posible. En esta charla veremos cómo podemos arrancar en local un entorno lo más similar a producción, arrancando Kubernetes en local.
En nuestro sistema de CI, además de por homogeneización de entornos, también podemos sacar partido de tener nuestra aplicaciones “contenerizadas”. Veremos cómo integrar cualquier sistema de CI con Kubernetes para conseguir un Continuous Deployment real. A partir de aquí, dar el salto a Continuous Delivery es prácticamente trivial con K8s!
Por si estas razones no fueran suficientes, conocer los conceptos y el entorno en los que nuestras aplicaciones se despliegan nos ayudará a comunicarnos con DevOps y atajar juntos los problemas que puedan surgir. Durante la charla veremos los conceptos básicos de K8s y cómo podemos desplegarlo en AWS con Elastic Container Service for Kubernetes (EKS) para hacer pruebas o, quién sabe, poder estar más cerca de ser un Full Cycle Developer.
inLab FIB MeteorJS workshop by uLab UPC - Telefonica I+DinLabFIB
Este documento proporciona información sobre Meteor JS, una plataforma open source para crear aplicaciones web. Explica que Meteor utiliza DDP para transferir datos entre el cliente y el servidor, con Node.js y MongoDB en el servidor. También describe algunas ventajas como la reactividad y la compensación de latencia, así como desventajas como posibles problemas de seguridad. Finalmente, ofrece instrucciones sobre instalación, estructura de proyectos, paquetes y despliegue de aplicaciones Meteor.
El documento resume las herramientas y conceptos necesarios para crear aplicaciones multiplataforma, incluyendo HTML, CSS, JavaScript, PhoneGap y el uso de una vista web. Explica cómo configurar el entorno de desarrollo en Eclipse y Android SDK y da un ejemplo simple de una aplicación estática usando jQuery Mobile. Finalmente, cubre temas como depuración en Chrome, uso de Git y firmado de aplicaciones.
Este documento describe el concepto de "Pipelines como código" para la entrega continua. Define un pipeline de despliegue como una secuencia automatizada de pasos para llevar el código desde el control de versiones hasta producción. Explica que las herramientas como Drone permiten definir estos pipelines dentro del código de la aplicación para obtener mayor control y reproducibilidad. Finalmente, destaca los beneficios de esta práctica como tener el código y el sistema de compilación en el mismo repositorio y librarse del mantenimiento de servidores.
Similar a Breve introducción práctica al DevOps - (es) 2021_03_18 (20)
Buscador de Eventos y Fiestas en España - Buscafiestaholabuscafiesta
Buscafiesta.es es el buscador líder en España para fiestas y eventos, diseñado para satisfacer las necesidades tanto de organizadores como de asistentes. Este innovador software ofrece una plataforma integral que permite a los organizadores de eventos añadir, gestionar y promocionar sus actividades de manera totalmente autónoma, facilitando la visibilidad y escalabilidad de sus eventos.
Buscafiesta.es no solo conecta a los organizadores con su público objetivo, sino que también ofrece herramientas de marketing y análisis que ayudan a maximizar el impacto de cada evento. Ya sea para una fiesta local, un concierto multitudinario o un evento corporativo, Buscafiesta.es es la solución definitiva para hacer de cada evento un éxito rotundo.
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...micarnavaltupatrimon
Mi Carnaval es la plataforma que permite conectar al usuario con la cultura y la emoción del Carnaval de Blancos y Negros en la ciudad de Pasto, esta plataforma brinda una amplia oferta de productos, servicios, tiquetería e información relevante para generarle valor al usuario, además, la plataforma realiza un levantamiento de datos de los espectadores que se registran, capturando su actividad e información relevante para generar la analítica demográfica del evento en tiempo real, con estos datos se generan modelos predictivos, que permiten una mejor preparación y organización del evento, de esta manera ayudando a reducir la congestión, las largas filas y, así como a identificar áreas de alto riesgo de delincuencia y otros problemas de seguridad.
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...micarnavaltupatrimon
Mi Carnaval es la plataforma que permite conectar al usuario con la cultura y la emoción del Carnaval de Blancos y Negros en la ciudad de Pasto, esta plataforma brinda una amplia oferta de productos, servicios, tiquetería e información relevante para generarle valor al usuario, además, la plataforma realiza un levantamiento de datos de los espectadores que se registran, capturando su actividad e información relevante para generar la analítica demográfica del evento en tiempo real, con estos datos se generan modelos predictivos, que permiten una mejor preparación y organización del evento, de esta manera ayudando a reducir la congestión, las largas filas y, así como a identificar áreas de alto riesgo de delincuencia y otros problemas de seguridad.
2. Creasoft.dev 2021
Young Suk Ahn Park / MSEng
Arquitecto de software.
Con Maestría en ingeniería de software en
Carnegie Mellon University.
Preocupado por la crisis ambiental, actualmente
está aprendiendo sobre sostenibilidad.
2
https://youngsukahn.com
https://creasoft.dev
https://empoderemosmas.com
3. Creasoft.dev 2021
A cerca del documento
Propósito
Introducción al DevOps con ejemplos
concretos de prácticas y herramientas.
Audiencia
Desarrolladores y líderes técnicos
trabajando en proyectos de desarrollo
de software
Contenido
1. Contexto
2. DevOps y su importancia
3. Proceso y Herramientas
a. Docker y contenedores
b. Kubernetes
c. Helm
d. Prueba funcional
e. Integracion Continua, Despliegue
continuo (CD/CI)
f. Detección de vulnerabilidad
4. Seguridad
3
7. Creasoft.dev 2021
Importancia del DevOps
CÓDIGO PRODUCCIÓN USUARIOS
CICLO EN CUESTIÓN DE MESES - MIENTRAS LA COMPETENCIA SE ADELANTA
Pruebas
Unitarias
Proceso
manual de
release
Etiquetado
de la
versión
Verifica
Seguridad
Rollback
manual
Compila-
ción
Pruebas
de
integración
Pruebas
carga
.. manual ...
IDEA
RETROALIMENTACIÓN
7
8. Creasoft.dev 2021
Aceleración con DevOps
CÓDIGO PRODUCCIÓN USUARIOS
CICLO EN CUESTIÓN DE DÍAS, HASTA HORAS - VALOR LLEGA AL CLIENTE MÁS
RÁPIDO
Compila-
ción
Pruebas
Unitarias
Etiquetado
de
la
versión
Verifica
seguridad
Pruebas
de
carga
IDEA
RETROALIMENTACIÓN
8
11. Creasoft.dev 2021
CALMS Framework
● Cultura - DevOps es un cambio de mentalidad en donde el
equipo trabaja en consona para mantener el producto.
● Automatización - Ciclo de desarrollo más rápido con
mínima intervención humana
● Ligero (Lean) - Eliminación de actividades de poco valor
● Mensurado - Métricas para ayudar al equipo a enfocar
● Compartido (Sharing) - Los conocimientos y cargas de
desarrolladores y operadores se comparten
11
12. Creasoft.dev 2021
Prácticas de DevOps
1. Desarrollo continuo
2. Automatización de integración y despliegue
3. Retroalimentación continua basados en monitoreo y
métricas
4. Análisis de raíz de la causa
5. Todo bajo control de versión - hasta la infraestructura
Todo trabajo mecánico repetitivo se automatiza y entra en
un ciclo virtuoso de rápido despliegue y validación del
software. El desarrollo y operación se maneja por el mismo
equipo
12
13. Creasoft.dev 2021
El proceso y las herramientas
PLANEA CODIFICA CONSTRUYE PRUEBA LANZA DESPLIEGA OPERA MONITOREA
Colabo-
ración
ChatOps Calidad de
código
IDE
Empaqueta
miento
Vulnera-
bilidad
Prueba
funcional
Prueba
Unitaria
Nube
bóveda
Roles
Autentic
Logs
Monitoreo
VCS Contenedor Artefactos CI/CD Orquestrador
Admin API
Provisión
Prueba Perf
& Caos
13
15. Creasoft.dev 2021
Docker - La plataforma de contenedores
¿Qué problemas resuelve?
● El paquete (imagen) generado include todo el entorno
completo. No más ¿Por que no funciona si funcionó en mi
máquina?
Facilita el empaquetamiento portable de software, los llamados
contenedores.
# Ejemplo: ejecuta el servicio nginx escuchando puerto 8080
$ docker run --rm --name mi-nginx -p 8080:80 nginx
# Ejemplo: ejecuta el servicio nginx escuchando puerto 8080
$ docker build -t miapp:latest -f docker/Dockerfile .
$ docker run miapp 15
17. Creasoft.dev 2021
Dockerfile
FROM node:12.13-alpine AS build
WORKDIR /usr/src/app
COPY package*.json yarn.lock ./
RUN yarn --frozen-lockfile
COPY . .
RUN yarn build
## Building the prod-only dependencies
FROM node:12.13-alpine AS deps
WORKDIR /usr/src/app
COPY package*.json yarn.lock ./
RUN yarn install --production
## Packaging the prod application
FROM node:12.13-alpine AS packaging
WORKDIR /usr/src/app
COPY --from=deps /usr/src/app/node_modules ./node_modules
COPY --from=build /usr/src/app/dist ./dist
COPY wait-for.sh ./
EXPOSE 3000
USER node
CMD ["node", "dist/main"]
FROM: Imagen base
COPY: Copia los archivos
para trabajar en ellos
RUN: Ejecuta comando, ej.
Compilar los codigos fuentes
FROM: Nuevo stage: ayuda a
reducir el tamaño de la imagen
CMD: ejecuta el comando al
correr la imagen. 17
18. Creasoft.dev 2021
docker-compose.yml
version: '3.7'
services:
mi-backend:
image: ${IMAGE_TAG}
ports:
- ${SERVER_PORT}:${SERVER_PORT}
command: sh -c "./wait-for.sh kno-db:5432 -- npx db-migrate.sh && node
dist/main"
env_file:
- ../.env.docker
depends_on:
- kno-db
mi-db:
image: postgres:12
container_name: postgres
environment:
POSTGRES_PASSWORD: ${DB_PASSWORD}
POSTGRES_USER: ${DB_USERNAME}
POSTGRES_DB: ${DB_DATABASE_NAME}
PG_DATA: /var/lib/postgresql/data
ports:
- 5432:5432
volumes:
- pgdata:/var/lib/postgresql/data
volumes:
pgdata:
services: lista de servicios
a correr
image: la imagen del docker a
correr
command: comando a ejecutar
depends_on: servicio a que
depende.
port: mapeo del puerto
[host]:[contenedor]
18
19. Creasoft.dev 2021
Kubernetes - El orquestrador de contenedores
¿Qué problemas resuelve?
● Mantiene el estado del servicio configurado de manera
declarativa
● Se encarga de los fallos automáticamente.
Automatiza el despliegue y escalamiento horizontal de las
aplicaciones.
# Ejemplo: Instala objetos (deployments) e incrementa replicas
$ kubectl apply -f k8-config.yaml
$ kubectl scale --replicas=3 -f k8-config.yaml
19
20. Creasoft.dev 2021
Kubernetes - Arquitectura
El despliegue en un cluster de Kubernetes Servicios expuestos a la red
Fuente: https://kubernetes.io/docs/tutorials/kubernetes-basics
20
21. Creasoft.dev 2021
Kubernetes - Ejemplo: k8-config.yaml
# Source: knoesia-backend/templates/deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: knoesia-backend
labels:
app.kubernetes.io/name: knoesia-backend
spec:
replicas: 1
selector:
matchLabels:
app.kubernetes.io/name: knoesia-backend
template:
metadata:
labels:
app.kubernetes.io/name: knoesia-backend
spec:
containers:
- name: knoesia-backend
image: "registry.gitlab.com/betternia/incubation/knoesia/knoesia-
backend:latest"
ports:
- name: http
containerPort: 8080
protocol: TCP
livenessProbe:
httpGet:
path: /info
kind: tipo de objeto
replicas: cantidad procesos
corriendo
matchLabels: selector del
pods a mantener la
especificación
template: plantilla del pod
image: la imagen de docker a
instanciar
livenessProbe: ruta para
probar si el servisio esta vivo
21
22. Creasoft.dev 2021
Helm - El orquestrador de contenedores
¿Qué problemas resuelve?
● Simplifica la definición de las aplicaciones con
configuraciones complejas
● Maneja las instalaciones de las aplicaciones en k8s.
Administrador de paquetes para kubernetes. Incluye utilidades,
motor de plantilla para declaraciones y registro de paquetes.
# Ejemplo: Instala postgres, luego hace un upgrade (ej. Incr. replica)
$ helm install mi-postgres bitnami/postgresql
$ helm upgrade mi-postgres bitnami/postgresql
22
23. Creasoft.dev 2021
Playwright - Automatizador de browser
¿Qué problemas resuelve?
● Puede ejecutar pruebas funcionales en diferentes tipos de
browser y grabar errores.
● Aumenta la cobertura de las pruebas.
Automatiza la ejecución del browser usando Nodejs.
# Ejemplo: Ejecuta las pruebas
$ npx folio --param screenshotOnFailure browserName=chromium
23
24. Creasoft.dev 2021
miprueba.test.ts
import './env';
import { Page } from "playwright";
import { describe, it, expect } from "@playwright/test";
describe("Mi prueba funcional", () => {
it("Login", async ({ page }) => {
await page.goto("http://localhost:8100/");
const loginBtn = await page.waitForSelector('ion-button[data-qa="login-
btn"]');
await loginBtn.click();
const usernameInput = await
page.waitForSelector('input[name="username"]');
await usernameInput.type(process.env.USER_ID);
const passwordInput = await
page.waitForSelector('input[name="password"]');
await passwordInput.type(process.env.USER_PWD);
await passwordInput.press('Enter');
const name = await page.innerText("ion-title");
expect(name).toBe("Daily");
});
Incluir las librerías
Navega hacia una página
Selecciona un objeto DOM
Hace click al objeto (boton en
este caso)
Verifica el resultado: la prueba
en si
24
25. Creasoft.dev 2021
CI/CD - Integración y Entrega Continua
¿Qué problemas resuelve?
● Minimiza la necesidad de intervención humana para
empaquetamiento, ejecución de pruebas y despliegue
● Reduce el ciclo de lanzamiento
Opciones
● GitHub Actions, GitLab-CI
● Bamboo, CircleCI, Jenkins, TravisCI, TeamCity, GoCD
Ejecuta tareas (ej. scripts) para automatizar el proceso desde
compilación hasta despliegue de la aplicación.
25
26. Creasoft.dev 2021
GitLab CI
test:e2e:
stage: test
image: docker/compose:latest
variables:
DOCKER_DRIVER: overlay
services:
- docker:dind
script:
- cd miapp-backend
- docker-compose --env-file .env.test -f docker-compose.test.yml up -d --build
- docker-compose -f docker-compose.test.yml --env-file .env.test run miapp-backend
yarn test -runInBand
- docker-compose -f docker-compose.test.yml --env-file .env.test down
docker:build:
stage: build
image: docker
variables:
DOCKER_DRIVER: overlay
services:
- docker:dind
before_script:
- docker login -u ${CI_REGISTRY_USER} -p ${CI_REGISTRY_PASSWORD} $CI_REGISTRY
script:
- cd knoesia-backend
- docker build -t ${CI_REGISTRY}/miapp-backend:${CI_COMMIT_SHORT_SHA} -f
docker/Dockerfile .
- docker push ${CI_REGISTRY}/miapp-backend:${CI_COMMIT_SHORT_SHA}
El script se ejecuta al realizar un
merge a la rama primaria (master)
26
27. Creasoft.dev 2021
Snyk - Detección de vulnerabilidades
SImplemente registre su repositorio con la clave en
el sitio de Snyk, y el servicio analizará su código.
27
28. Creasoft.dev 2021
Referencias
● Google, Accelerate State of DevOps 2019
● Google SRE Book
● Accelerate: The Science of Lean Software and DevOps: Building and
Scaling High Performing Technology Organizations
● Neil Ford, Continuous Delivery Workshop, Slide deck 1, deck 2, deck 3, video
● Agile Alliance, Continuous Delivery deck,
● Eliyahu M. Goldratt, The Goal: A Process of Ongoing Improvement
Enlace util:
● https://free-for.dev
28
29. Creasoft.dev 2021
Colaboracion
● GitHub, GitLab, Jira, PivotalTracker
Codificación
● VSCode, IntelliJ
Calidad de codito
● SonarQube, LGTM, DeepCode, DeepSource
Admin de API
● Swagger, Apigee, Apiary
Manejo de dependencias y paquetes
● Maven, Gradle, yarn, crate, Helm
Detección de Vulnerabilidad
● Snyk
Herramientas
Pruebas
● Unitarias: Cucumber, JUnit, Jest, TL
● Funcional: Playwright, Cypress, Selenium
● Perf: Gatling, k6, JMeter
Repositorio de Artefactos
● DockerHub, Quay, GitHub, GitLab
Provision, IaaC
● Terraform, Ansible, Chef
CICD
● GitHub Actions, GitLab-CI
● Bamboo, CircleCI, Jenkins, TravisCI, GoCD
Monitoreo
● New Relic, DataDog, AppDynamics, ELK,
29
30. Creasoft.dev 2021
“You build it, you run it”
- Werner Vogels, Amazon CTO
La cultura ágil y colaborativa es el alma de Devops.
El equipo comparte la responsabilidad del desarrollo,
operación y evolución del sistema.
30
Breve introducción práctica al DevOps, ver. 1.0 (es) 2021/03/18
-- DESCRIPCIÓN --
DevOps es un cambio de cultura que acelera el ciclo de desarrollo de software sin comprometer la calidad. Esta diapositiva hace una breve introducción al devops con ejemplos concretos de proceso y herramientas.
-- TAGS --
Devops, desarrollo, ciclo de vida de desarrollo, ingeniería de software, docker, kubernetes, helm, seguridad de software, CI/CD, integración continua, despliegue continuo
Fotos: https://pixabay.com/illustrations/knot-fixing-connection-torus-242409/
Como las diferentes empresas de tecnología y empresas que ofrecen servicios se adaptan diariamente, haciendo mejoras basados en métricas
Estas empresas introducen mejoras a sus productos de software casi diariamente.
Sin una cultura agil, tal velocidad no seria posible.