Docker meetup :: Kubernetes en RestorandoRestorando
Presentamos en la meetup de docker nuestra experiencia (hasta ahora, junio 2016) con kubernetes. Al principio se introduce los conceptos básicos de kubernetes y luego contamos nuestra experiencia y workaround para obtener alguna funcionalidad.
This document discusses the evolution of Linux container virtualization, including technologies like LXC, Docker, CoreOS, and Kubernetes. It provides an overview of key concepts in virtualization like namespaces, cgroups, AppArmor, SELinux, and seccomp. It also summarizes features of Linux container engines like LXC, and container platforms like Docker, CoreOS, and the Kubernetes container cluster management system.
Workshop de introducción a docker, desde lo más básico hasta un dockerfile de producción no muy sofisticado.
Incluye link a un repositorio para seguir un ejercicio a lo largo de la presentación
Una introducción a Docker, los principales conceptos e ideas y como se lo puede utilizar desde Microsoft Azure. Esta presentación fue parte del Global Azure Bootcamp 2016 en Buenos Aires, Argentina
Este documento proporciona información sobre un seminario sobre Docker y su ecosistema impartido por Germán Moltó del Departamento de Sistemas Informáticos y Computación de la Universitat Politècnica de València. El seminario explica los conceptos básicos de Docker como herramienta de encapsulamiento de aplicaciones en contenedores, las ventajas de los contenedores frente a las máquinas virtuales, y el amplio ecosistema de herramientas relacionadas con Docker.
Este documento presenta una introducción a Docker. Explica conceptos clave como contenedores, imágenes y registros. Detalla los comandos básicos de Docker como docker run, docker build y docker pull. También cubre temas como la creación de imágenes, el uso de volúmenes, la vinculación de contenedores y la orquestación con Kubernetes. Finalmente, explora cómo Docker puede usarse para implementar microservicios y facilitar la integración continua.
"Introducción a Docker".
Global Mentor Day UPM. Noviembre 2016.
Ángel Barrera, Ingeniero de Software en BEEVA.
Encuéntranos en www.beeva.com y labs.beeva.com
Immutable infrastructure with Docker and EC2dotCloud
This document discusses Gilt's strategy of using immutable infrastructure with Docker and EC2 to enable continuous delivery and minimize risk when deploying new software versions. Some key points made include:
- Gilt builds Docker containers for each new application version, creates a new "stack" of infrastructure to run the container, and uses incremental rollout and automated rollback to reduce risk.
- Immutable infrastructure emerges naturally with Docker since each version requires new containers and infrastructure rather than updating existing instances.
- Automating deployment, rollback, and incremental rollout across new infrastructure stacks reduces probability, cost and occurrences of failures when deploying new versions.
- Instant rollback is possible by moving traffic back to the previous version's infrastructure if
Docker meetup :: Kubernetes en RestorandoRestorando
Presentamos en la meetup de docker nuestra experiencia (hasta ahora, junio 2016) con kubernetes. Al principio se introduce los conceptos básicos de kubernetes y luego contamos nuestra experiencia y workaround para obtener alguna funcionalidad.
This document discusses the evolution of Linux container virtualization, including technologies like LXC, Docker, CoreOS, and Kubernetes. It provides an overview of key concepts in virtualization like namespaces, cgroups, AppArmor, SELinux, and seccomp. It also summarizes features of Linux container engines like LXC, and container platforms like Docker, CoreOS, and the Kubernetes container cluster management system.
Workshop de introducción a docker, desde lo más básico hasta un dockerfile de producción no muy sofisticado.
Incluye link a un repositorio para seguir un ejercicio a lo largo de la presentación
Una introducción a Docker, los principales conceptos e ideas y como se lo puede utilizar desde Microsoft Azure. Esta presentación fue parte del Global Azure Bootcamp 2016 en Buenos Aires, Argentina
Este documento proporciona información sobre un seminario sobre Docker y su ecosistema impartido por Germán Moltó del Departamento de Sistemas Informáticos y Computación de la Universitat Politècnica de València. El seminario explica los conceptos básicos de Docker como herramienta de encapsulamiento de aplicaciones en contenedores, las ventajas de los contenedores frente a las máquinas virtuales, y el amplio ecosistema de herramientas relacionadas con Docker.
Este documento presenta una introducción a Docker. Explica conceptos clave como contenedores, imágenes y registros. Detalla los comandos básicos de Docker como docker run, docker build y docker pull. También cubre temas como la creación de imágenes, el uso de volúmenes, la vinculación de contenedores y la orquestación con Kubernetes. Finalmente, explora cómo Docker puede usarse para implementar microservicios y facilitar la integración continua.
"Introducción a Docker".
Global Mentor Day UPM. Noviembre 2016.
Ángel Barrera, Ingeniero de Software en BEEVA.
Encuéntranos en www.beeva.com y labs.beeva.com
Immutable infrastructure with Docker and EC2dotCloud
This document discusses Gilt's strategy of using immutable infrastructure with Docker and EC2 to enable continuous delivery and minimize risk when deploying new software versions. Some key points made include:
- Gilt builds Docker containers for each new application version, creates a new "stack" of infrastructure to run the container, and uses incremental rollout and automated rollback to reduce risk.
- Immutable infrastructure emerges naturally with Docker since each version requires new containers and infrastructure rather than updating existing instances.
- Automating deployment, rollback, and incremental rollout across new infrastructure stacks reduces probability, cost and occurrences of failures when deploying new versions.
- Instant rollback is possible by moving traffic back to the previous version's infrastructure if
A Gentle Introduction To Docker And All Things ContainersJérôme Petazzoni
Docker is a runtime for Linux Containers. It enables "separation of concern" between devs and ops, and solves the "matrix from hell" of software deployment. This presentation explains it all! It also explains the role of the storage backend and compares the various backends available. It gives multiple recipes to build Docker images, including integration with configuration management software like Chef, Puppet, Salt, Ansible. If you already watched other Docker presentations, this is an actualized version (as of mid-November 2013) of the thing!
This document discusses Docker and provides an overview of key Docker concepts. It defines Docker as a software container management platform. It describes images as templates for containers, and containers as running processes that are created from images. It also discusses the Docker workflow which involves building images, running containers, committing changes, and pushing images to a registry. The document uses examples of developing and deploying PHP web applications to illustrate how Docker can help manage environments and software versions.
Docker has created enormous buzz in the last few years. Docker is a open-source software containerization platform. It provides an ability to package software into standardised units on Docker for software development. In this hands-on introductory session, I introduce the concept of containers, provide an overview of Docker, and take the participants through the steps for installing Docker. The main session involves using Docker CLI (Command Line Interface) - all the concepts such as images, managing containers, and getting useful work done is illustrated step-by-step by running commands.
Docker is a system for running applications in isolated containers. It addresses issues with traditional virtual machines by providing lightweight containers that share resources and allow applications to run consistently across different environments. Docker eliminates inconsistencies in development, testing and production environments. It allows applications and their dependencies to be packaged into a standardized unit called a container that can run on any Linux server. This makes applications highly portable and improves efficiency across the entire development lifecycle.
This document provides an overview and agenda for a webinar on Docker orchestration in production environments. It includes:
- An introduction to Newt Global and their DevOps transformation services.
- Details on two speakers - the DevOps practice leader and an AWS solutions specialist from Newt Global.
- An outline of Newt Global's overall offerings including DevOps pipeline development, infrastructure automation, and architecture modernization.
- Topics that will be covered in the webinar related to using Docker in production including quick deployment, resource management, backup strategies, security, monitoring, and image/storage management.
- Instructions for participants on submitting questions and receiving follow-up responses.
This document provides an introduction to Docker. It discusses why Docker is useful for isolation, being lightweight, simplicity, workflow, and community. It describes the Docker engine, daemon, and CLI. It explains how Docker Hub provides image storage and automated builds. It outlines the Docker installation process and common workflows like finding images, pulling, running, stopping, and removing containers and images. It promotes Docker for building local images and using host volumes.
Drupal 8 puede utilizarse para almacenar datos de juegos en la nube de forma gratuita y sin necesidad de programar. Se instala fácilmente y proporciona una API para crear, leer, actualizar y eliminar datos de forma sencilla. La distribución ContentaCMS de Drupal 8 está diseñada específicamente para proporcionar una base de datos en la nube y una API pública sin complicaciones.
Tras tres años programando en la plataforma Android esta es la película de mi vida como Android Developer, un conjunto de buenas practicas y conceptos necesarios que aún a día de hoy sigo viendo que no se cumplen en la mayoría de proyectos con los que me cruzo. Son la conclusiones sacadas de mi experiencia y de multitud de debates con compañeros. Se abordan temas como: fragmentación, uso de la clase Context, naming, maquetación en Android, memory leaks y S.O.L.I.D.
Los diseñadores "digitales" (UX, UI, de interacción, de producto, etc) tenemos procesos y entregables diferentes a los editoriales o gráficos ¿En qué consisten estas diferencias?
Charla de 2018 para el equipo de diseño de marca e identidad corporativa de la agencia Saffron.
¿Quién va a desarrollar las Apps del futuro? (aviso: no serán los programadores)Jordi Cabot
Este documento discute cuatro posibles soluciones para quien desarrollará las aplicaciones del futuro: 1) aumentar la productividad y reducir errores mediante ingeniería dirigida por modelos; 2) aprovechar al máximo la comunidad de código abierto; 3) permitir que los usuarios finales se conviertan en desarrolladores ocasionales; y 4) externalizar parte del trabajo a la inteligencia artificial.
Desarrollo multiplataforma de apps con GWT y PhoneGapbetabeers
Este documento habla sobre el desarrollo de aplicaciones multiplataforma con los frameworks GWT y PhoneGap. Explica las ventajas de GWT para compilar Java a JavaScript y generar aplicaciones web y móviles, así como el uso de PhoneGap para acceder a las capacidades nativas de los dispositivos. También analiza alternativas como aplicaciones nativas, web móvil y híbridas, y resalta que GWT y PhoneGap pueden usarse juntos para aprovechar las ventajas de ambos frameworks.
Las transparencias de mi charla en el primer Betabeers Córdoba, sobre desarrollo multiplataforma de apps móviles, usando Google Web Toolkit (GWT) y Phonegap (Apache Cordova)
Este documento presenta un resumen de tres oraciones:
El documento introduce a José Carlos García Serrano y su experiencia con Big Data. Luego resume la evolución de Big Data desde Google hasta Hadoop y Spark, y describe algunas tecnologías clave como HDFS, MapReduce, Hive y Spark SQL. Finalmente, introduce bases de datos NoSQL como MongoDB y Cassandra.
Presentación utilizada por Raúl Jiménez durante la charla organizada el miércoles 14 de Marzo en el evento:
http://www.facebook.com/events/407523832597982/
PulpoCon23 Los Datos que no sabes que tienes y como usarlosNino Dafonte
En un entorno en donde personas y tecnología centran la atención de los temas sobre los que generamos y consumimos contenido, existe un espacio poco explorado todavía: el lugar exacto en el que se produce la intersección entre estas dos temáticas.
El código cuenta solamente una parte de la historia de un proyecto. Las personas y cómo éstas interactúan con él es lo que nos da una visión completa de cómo hemos llegado hasta aquí.
- ¿Por qué ciertas partes del código nos provocan cansancio, desesperación y/o dolor de cabeza?
- ¿Podemos ponerle palabras y una mejor descripción a eso de los "code smells"?
- ¿Cómo se distribuye el conocimiento de vuestro proyecto? ¿Cuánto de alto es el riesgo de que tengamos zonas oscuras si alguien dejase el proyecto mañana? ¿Y qué hacemos al respecto?
- ¿Se os amontona la deuda técnica y no sabéis ni por dónde empezar a devolver ese interés?
- ¿Alguna vez habéis visto una reorganización de equipos en el que de repente todo parece ir a peor?
Spoiler: tiene explicación y la respuesta la tenéis en vuestros repositorios de código.
En este ratito os contaré algunas de mis experiencias y aprendizajes sobre un tipo de análisis llamado “Behavioral Code Analysis”, (Adam Tornhill, “Your code as a crime scene” y “Software Design X-Rays”), así como muchas ideas interesantes que se entrecruzan con este tipo de análisis: cómo nuestro cerebro procesa el código y qué cosas facilitan o complican ese proceso en nuestro día a día (Felienne Hermans, “The Programmer’s brain”)
El documento presenta una introducción al desarrollo y gestión de aplicaciones móviles corporativas. Se discutirán conceptos como UX, UI y diseño de experiencia de usuario, así como tipos de aplicaciones, tamaños de pantalla, flujos de usuario y tendencias actuales en diseño visual para aplicaciones móviles. El objetivo es proporcionar recomendaciones para el desarrollo exitoso de aplicaciones móviles.
Scratch es una aplicación gratuita que permite a los usuarios aprender conceptos básicos de programación a través de bloques visuales. Scratch ayuda a desarrollar habilidades de pensamiento lógico y resolución de problemas. Además, permite compartir proyectos en línea con otros.
El documento describe las principales tendencias en software para 2016, incluyendo el desarrollo en la nube, las APIs, los componentes web, Apache Spark, bases de datos NoSQL, PHP 7, aprendizaje automático, realidad virtual, movilidad, negocios sociales, Internet de las Cosas, seguridad y aplicaciones móviles. El software se está convirtiendo en un componente fundamental de casi todos los sectores debido a su capacidad para procesar grandes cantidades de datos y ofrecer nuevas experiencias para los usuarios.
Este documento presenta una serie de consejos y recomendaciones de Ander Conal, un desarrollador frontend, sobre cómo prepararse para una carrera en desarrollo web. Se discuten temas como el hardware y software necesarios, editores de texto vs IDEs, preprocesadores CSS, Git y GitHub, JavaScript, frameworks populares como React y Angular, y las buenas perspectivas de empleo en el campo. El objetivo es ayudar a los estudiantes a adquirir las habilidades y conocimientos necesarios para tener éxito como desarrolladores web.
A Gentle Introduction To Docker And All Things ContainersJérôme Petazzoni
Docker is a runtime for Linux Containers. It enables "separation of concern" between devs and ops, and solves the "matrix from hell" of software deployment. This presentation explains it all! It also explains the role of the storage backend and compares the various backends available. It gives multiple recipes to build Docker images, including integration with configuration management software like Chef, Puppet, Salt, Ansible. If you already watched other Docker presentations, this is an actualized version (as of mid-November 2013) of the thing!
This document discusses Docker and provides an overview of key Docker concepts. It defines Docker as a software container management platform. It describes images as templates for containers, and containers as running processes that are created from images. It also discusses the Docker workflow which involves building images, running containers, committing changes, and pushing images to a registry. The document uses examples of developing and deploying PHP web applications to illustrate how Docker can help manage environments and software versions.
Docker has created enormous buzz in the last few years. Docker is a open-source software containerization platform. It provides an ability to package software into standardised units on Docker for software development. In this hands-on introductory session, I introduce the concept of containers, provide an overview of Docker, and take the participants through the steps for installing Docker. The main session involves using Docker CLI (Command Line Interface) - all the concepts such as images, managing containers, and getting useful work done is illustrated step-by-step by running commands.
Docker is a system for running applications in isolated containers. It addresses issues with traditional virtual machines by providing lightweight containers that share resources and allow applications to run consistently across different environments. Docker eliminates inconsistencies in development, testing and production environments. It allows applications and their dependencies to be packaged into a standardized unit called a container that can run on any Linux server. This makes applications highly portable and improves efficiency across the entire development lifecycle.
This document provides an overview and agenda for a webinar on Docker orchestration in production environments. It includes:
- An introduction to Newt Global and their DevOps transformation services.
- Details on two speakers - the DevOps practice leader and an AWS solutions specialist from Newt Global.
- An outline of Newt Global's overall offerings including DevOps pipeline development, infrastructure automation, and architecture modernization.
- Topics that will be covered in the webinar related to using Docker in production including quick deployment, resource management, backup strategies, security, monitoring, and image/storage management.
- Instructions for participants on submitting questions and receiving follow-up responses.
This document provides an introduction to Docker. It discusses why Docker is useful for isolation, being lightweight, simplicity, workflow, and community. It describes the Docker engine, daemon, and CLI. It explains how Docker Hub provides image storage and automated builds. It outlines the Docker installation process and common workflows like finding images, pulling, running, stopping, and removing containers and images. It promotes Docker for building local images and using host volumes.
Drupal 8 puede utilizarse para almacenar datos de juegos en la nube de forma gratuita y sin necesidad de programar. Se instala fácilmente y proporciona una API para crear, leer, actualizar y eliminar datos de forma sencilla. La distribución ContentaCMS de Drupal 8 está diseñada específicamente para proporcionar una base de datos en la nube y una API pública sin complicaciones.
Tras tres años programando en la plataforma Android esta es la película de mi vida como Android Developer, un conjunto de buenas practicas y conceptos necesarios que aún a día de hoy sigo viendo que no se cumplen en la mayoría de proyectos con los que me cruzo. Son la conclusiones sacadas de mi experiencia y de multitud de debates con compañeros. Se abordan temas como: fragmentación, uso de la clase Context, naming, maquetación en Android, memory leaks y S.O.L.I.D.
Los diseñadores "digitales" (UX, UI, de interacción, de producto, etc) tenemos procesos y entregables diferentes a los editoriales o gráficos ¿En qué consisten estas diferencias?
Charla de 2018 para el equipo de diseño de marca e identidad corporativa de la agencia Saffron.
¿Quién va a desarrollar las Apps del futuro? (aviso: no serán los programadores)Jordi Cabot
Este documento discute cuatro posibles soluciones para quien desarrollará las aplicaciones del futuro: 1) aumentar la productividad y reducir errores mediante ingeniería dirigida por modelos; 2) aprovechar al máximo la comunidad de código abierto; 3) permitir que los usuarios finales se conviertan en desarrolladores ocasionales; y 4) externalizar parte del trabajo a la inteligencia artificial.
Desarrollo multiplataforma de apps con GWT y PhoneGapbetabeers
Este documento habla sobre el desarrollo de aplicaciones multiplataforma con los frameworks GWT y PhoneGap. Explica las ventajas de GWT para compilar Java a JavaScript y generar aplicaciones web y móviles, así como el uso de PhoneGap para acceder a las capacidades nativas de los dispositivos. También analiza alternativas como aplicaciones nativas, web móvil y híbridas, y resalta que GWT y PhoneGap pueden usarse juntos para aprovechar las ventajas de ambos frameworks.
Las transparencias de mi charla en el primer Betabeers Córdoba, sobre desarrollo multiplataforma de apps móviles, usando Google Web Toolkit (GWT) y Phonegap (Apache Cordova)
Este documento presenta un resumen de tres oraciones:
El documento introduce a José Carlos García Serrano y su experiencia con Big Data. Luego resume la evolución de Big Data desde Google hasta Hadoop y Spark, y describe algunas tecnologías clave como HDFS, MapReduce, Hive y Spark SQL. Finalmente, introduce bases de datos NoSQL como MongoDB y Cassandra.
Presentación utilizada por Raúl Jiménez durante la charla organizada el miércoles 14 de Marzo en el evento:
http://www.facebook.com/events/407523832597982/
PulpoCon23 Los Datos que no sabes que tienes y como usarlosNino Dafonte
En un entorno en donde personas y tecnología centran la atención de los temas sobre los que generamos y consumimos contenido, existe un espacio poco explorado todavía: el lugar exacto en el que se produce la intersección entre estas dos temáticas.
El código cuenta solamente una parte de la historia de un proyecto. Las personas y cómo éstas interactúan con él es lo que nos da una visión completa de cómo hemos llegado hasta aquí.
- ¿Por qué ciertas partes del código nos provocan cansancio, desesperación y/o dolor de cabeza?
- ¿Podemos ponerle palabras y una mejor descripción a eso de los "code smells"?
- ¿Cómo se distribuye el conocimiento de vuestro proyecto? ¿Cuánto de alto es el riesgo de que tengamos zonas oscuras si alguien dejase el proyecto mañana? ¿Y qué hacemos al respecto?
- ¿Se os amontona la deuda técnica y no sabéis ni por dónde empezar a devolver ese interés?
- ¿Alguna vez habéis visto una reorganización de equipos en el que de repente todo parece ir a peor?
Spoiler: tiene explicación y la respuesta la tenéis en vuestros repositorios de código.
En este ratito os contaré algunas de mis experiencias y aprendizajes sobre un tipo de análisis llamado “Behavioral Code Analysis”, (Adam Tornhill, “Your code as a crime scene” y “Software Design X-Rays”), así como muchas ideas interesantes que se entrecruzan con este tipo de análisis: cómo nuestro cerebro procesa el código y qué cosas facilitan o complican ese proceso en nuestro día a día (Felienne Hermans, “The Programmer’s brain”)
El documento presenta una introducción al desarrollo y gestión de aplicaciones móviles corporativas. Se discutirán conceptos como UX, UI y diseño de experiencia de usuario, así como tipos de aplicaciones, tamaños de pantalla, flujos de usuario y tendencias actuales en diseño visual para aplicaciones móviles. El objetivo es proporcionar recomendaciones para el desarrollo exitoso de aplicaciones móviles.
Scratch es una aplicación gratuita que permite a los usuarios aprender conceptos básicos de programación a través de bloques visuales. Scratch ayuda a desarrollar habilidades de pensamiento lógico y resolución de problemas. Además, permite compartir proyectos en línea con otros.
El documento describe las principales tendencias en software para 2016, incluyendo el desarrollo en la nube, las APIs, los componentes web, Apache Spark, bases de datos NoSQL, PHP 7, aprendizaje automático, realidad virtual, movilidad, negocios sociales, Internet de las Cosas, seguridad y aplicaciones móviles. El software se está convirtiendo en un componente fundamental de casi todos los sectores debido a su capacidad para procesar grandes cantidades de datos y ofrecer nuevas experiencias para los usuarios.
Este documento presenta una serie de consejos y recomendaciones de Ander Conal, un desarrollador frontend, sobre cómo prepararse para una carrera en desarrollo web. Se discuten temas como el hardware y software necesarios, editores de texto vs IDEs, preprocesadores CSS, Git y GitHub, JavaScript, frameworks populares como React y Angular, y las buenas perspectivas de empleo en el campo. El objetivo es ayudar a los estudiantes a adquirir las habilidades y conocimientos necesarios para tener éxito como desarrolladores web.
En está charla trato de mostrar cómo la tecnología produce cambios profundos en la sociedad, y qué herramientas se están usando para hacerlo posible. Temas como Internet of Things, Big Data y Cloud han llegado gracias a una tormenta perfecta de factores que los hacen posibles.
Este documento presenta cómo el software libre puede ayudar a instituciones educativas desde las perspectivas del apoyo a la docencia y los estudiantes, y la ayuda a la administración y logística. Se discuten ejemplos como el uso de software libre para editar audio y video, hacer presentaciones, y programar, en lugar de depender de software propietario caro. También se proponen soluciones de software libre para tareas de administración como identidad digital, seguridad de red, impresión remota, respaldo de datos, y monitoreo
El documento presenta información sobre el desarrollo de aplicaciones multiplataforma de forma instantánea. Explica que la herramienta AbundTool permite generar de forma rápida aplicaciones para distintas plataformas como web, escritorio y móviles a partir de un modelo de datos, reduciendo significativamente el tiempo de desarrollo. También describe las características y etapas actuales del proyecto AbundTool, así como los lenguajes y herramientas involucradas en el desarrollo de aplicaciones multiplataforma.
Este documento presenta el framework Symfony para desarrollo de aplicaciones web con PHP. Symfony separa la lógica de negocio, la lógica del servidor y la presentación siguiendo el patrón MVC. El documento también cubre conceptos básicos de PHP y herramientas para programación web.
Similar a Vagrant ansible pesadilla en la consultoria (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.
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
Vagrant ansible pesadilla en la consultoria
1.
2. ¿Quien es este tío que viene a
darnos la charla?
Alejandro de la Hoz Martin
es.linkedin.com/in/alejandrodelahozmartin
sliphup@gmail.com
@sliphup
Desarrollador de aplicaciones informáticas
8 años de experiencia en el sector informático
en clientes como ISBAN (Siconet),
JAZZTEL(Wairbut), kuehne nagel (TAHBIT),
GEAR,TELCO,HPE (Polar Consultores)
Me encanta investigar y salir de mi zona de
confort, pero sobre todo programador JAVA
Actualmente “Ingeniero de Consultoría y
Desarrollo” aunque en cristiano diría analista
programador.
¿Y ahora DEVOPS?
3. ¿Volviendo a la pregunta recurrente
de hoy en día?
¿Big Data con mongoDB?
NO esta vez, pero quien sabe en un futuro
¿Contenedores ya sean de docker o html?
NO, pero con lo del docker nos vamos acercando
¿DEVOPS?
SI
31. ¿Organización de los entornos de
un proyecto cualquiera?
EQUIPO
DESARROLLO SERVIDOR
DESARROLLO
SERVIDOR
TEST IT
SERVIDOR
TEST QA
SERVIDORES
PRODUCCIÓN
43.
Alejandro de la Hoz Martin
es.linkedin.com/in/alejandrodelahozmartin
sliphup@gmail.com
@sliphup
PREGUNTAS
Notas del editor
Presentación
Ir siguiendo el hilo de los textos
La aceptación de la filosofía DevOps significa la adopción de una ideología que fomenta una cultura altamente productiva de colaboración entre sus equipos de desarrollo (Dev) y operaciones (Ops). El objetivo compartido de DevOps consiste en eliminar la fricción, el riesgo y otras restricciones para facilitar el éxito de los despliegues de producción de las aplicaciones, todo ello para encontrar el camino más rápido para obtener resultados de la máxima calidad.
La frontera entre el desarrollo y la parte operacional siempre es muy difusa y suele hacer mas complejos los desarrollos y el mantenimiento de las aplicaciones.
Esto se produce al tener separados estos dos mundos.
Con devops lo que se pretende es crear comunicación o grupos multidisciplinares para este cometido
DEV
rendimiento de las aplicaciones
desarrolladores modernos utilizan herramientas de APM para disminuir la latencia y tener mejor visibilidad en los código, bases de datos, memorias caché, las colas y de terceros.
Análisis del Usuario Final
Un gran desarrollador entiende a los usuarios finales, tienen la mejor reglamentación y análisis y juegan una parte enorme de la comprensión de los usuarios. Los desarrolladores están monitoreando constantemente la latencia del usuario final y comprueban el funcionamiento de los dispositivos y navegadores.
Código de Calidad
Los desarrolladores lo necesitan para asegurar sus despliegues y las nuevas versiones no implosionan ni degradan el rendimiento general.
Errores de código de nivel
Cuando se tiene una gran aplicación distribuida, es vital, tenerlos para disminuir tiempo medio de reparación mediante la búsqueda de la causa de los errores y excepciones.
OPS
Solicitud de disponibilidad
Las aplicaciones tienen que estar en funcionamiento y es de los ops la responsabilidad de garantizar el tiempo de actividad y que los SLA están en orden.
rendimiento de las aplicaciones
Las Operaciones clásicas generalmente se basan en las métricas de infraestructura - CPU, memoria, red y Dick E / S, etc. Las Operaciones modernas se correlacionan todas esas métricas con métricas de software que solucionan los problemas 10 veces más rápido.
Las quejas de los usuarios finales
el objetivo es conocer y solucionar los problemas antes de recibir quejas de los usuarios finales, reducir el número de tickets de soporte, y eliminar las falsas alertas.
rendimiento Analytics
Información automática de las métricas de Operaciones ayudan a comprender lo que ha cambiado y dónde enfocar los esfuerzos para dar solución a problemas. Alertas en base a la desviación de las líneas base observadas ayudan a mejorar la calidad y reducir el ruido de las alertas.
Al crear estos equipos y estas comunicaciones mas ágiles tendremos proyectos con la filosofía devops que ayudaran a agilizar, mejorar su rendimiento y hacerlos que sean menos susceptibles de errores. Con ello serán proyectos de mayor calidad.
Para crear proyectos que cumplan las exigencias de un equipo con filosofía devops existen muchos productos que ayudaran en dicho cometido. Según vayan apareciendo nuevas necesidades aparecerán mas productos. Algunas necesidades se cubren con estas cuatro categorías aunque se podrían añadir mas.
Automatización
Manejadores de configuración
Visualización de equipos
Visualización de datos
También tendremos herramientas de motorización y validación de proyectos pero la mayoría se integraran con las anteriores
Ahora solo falta entrar en esta vertiente de la gestión de proyectos y formar a los equipos para poder poco a poco cumplir estos hitos.
Con ello haremos que los proyectos cumplan lo comentado anteriormente ademas de conseguir que nuestros equipos sean mas conscientes de como funciona su proyecto y no crear personas indispensables para el proyecto.
También tendremos perfiles mas ricos y capaces de poder adaptarse a otros proyectos ya que tendrán una visión y predisposición a a tener varias funcionalidades dentro de su equipo.
Si pero para saber porque se han desarrollado estos productos tenemos que saber que necesidades han venido a cubrir.
Tranquilos que ya empezamos.
Vagrant es una herramienta para la creación y configuración de entornos de desarrollo virtualizados.
Vagrant es capaz de trabajar con múltiples proveedores, como virtualbox, VMware, Amazon EC2
Vagrant se ha desarrollado en Ruby se puede usar en multitud de proyectos escritos en otros lenguajes, tales como PHP, Python, Java, C# y JavaScript.
Vagrant esta disponible para plataformas linux, mac y windows.
Vagrant creara maquinas virtuales de plataformas diversas según el proveedor seleccionado.
Ademas de poder montar nuestras propias imágenes, vagrant nos permite recuperar imágenes de su repositorio con unas preconfiguraciones especificas
Vagrant nos permitirá a partir de unos comandas y unos ficheros de configuración crear y gestionar dichas maquinas virtuales en el proveedor seleccionado.
En la imagen tenemos un ejemplo de como vagrant + virtualbox + imagen ubuntu podremos crear n maquinas virtuales
Ahora pasaremos a ver unos ejemplos de configuración y ejecución de unos comandos para que veáis como funciona.
El fichero por excelencia que veremos sera el Vagrantfile
Para poder usar vagrant con amazon WS requeriremos del plugin vagrant-aws
No hemos podido crear ningún ejemplo de amazon porque tenemos todas las maquinas ocupadas
Ansible es una plataforma de software libre para configurar y administrar computadoras. Combina instalación multi-nodo, ejecuciones de tareas ad hoc y administración de configuraciones. Adicionalmente, Ansible es categorizado como una herramienta de orquestación.
Maneja nodos a través de SSH
Dispone de módulos que trabajan sobre JSON y la salida estándar puede ser escrita en cualquier lenguaje. Nativamente utiliza YAML para describir configuraciones reutilizables de los sistemas
El diseño de Ansible8 incluye:
Mínimo por naturaleza.
Los sistemas de administración no deben imponer dependencias adicionales.
Consistente. Seguro.
Ansible no instala agentes vulnerables en los nodos. Solamente se requiere OpenSSH que es considerado crítico y altamente testeado.
Alta confiabilidad.
El modelo de idempotencia es aplicado para las instalaciones y configuraciones, para prevenir efectos secundarios en la ejecución repetitiva de scripts.
Suave curva de aprendizaje.
Los playbooks usan un lenguaje descriptivo simple, basado en YAML
Ansible esta soportado en plataformas linux y mac
Para plataformas windows se puede soportar pero requiere de otros softwares para su funcionamiento y no es muy recomendable
Y la gestión de nodos o maquinas serán linux aunque ya se han implementado componentes que según la versión vienen incluidos tanto para windows como contenedores docker
Como se muestra en la imagen con ansible seremos capaces de gestionar varias maquinas desde un mismo playbook que es la estructura mínima de un proyecto de ansible.
En esta imagen podemos ver como desde el host en el que esta ansible tenemos:
playbook (ordenes, preconfiguraciones)
inventories (hosts a los que nos conectaremos y configuraciones concretas de cada host)
El propio ansible
Los módulos propios de ansible y los creados por nosotros mismo (los módulos son funciones concretas que realizara ansible)
Los plugins que son un conjunto de módulos y mejoras de ansible y entre ellos se encuentran los encargados de las conexiones con los hosts que queremos configurar
Ansible tiene una funcionalidad que es ansible galaxy en la que podremos generar proyectos con una estructura concreta para posterior mente publicarlas en un repositorio GitHub publico o privado para su posterior reutilización. También generar ficheros tar.gz para facilitar su almacenamiento.
En esta funcionalidad nos creara una estructura de fichero en la que ademas de las variables, funcionalidad y requisitos también nos dará ficheros para la documentación de dichos roles
Cada carpeta tiene su función:
-Defaults:
Son las variables por defecto necesarias para este role. Estas variables se podrán modificar sus variables desde la llamada a los roles o desde los groups vars
- Files:
Ficheros que se usaran dentro de los roles, ya sean para copiarse o descomprimirse en las maquinas a las que nos conectamos.
-Handlers
Mediante los “handlers” podemos utilizar la etiqueta “notify” y estas acciones se disparan al final de cada bloque de tareas en los playbooks. Solo se activan una vez, incluso si un mismo “notify” está definido en varias tareas diferentes.
-Meta
Estos archivos describen el entorno (SO, versión, etc), autor, licencia, y también establece las dependencias del role.
-Tasks
Conjunto de acciones que se realizan sobre los hosts si cumplen las exigencias marcadas. Este directorio puede contener mas de un yml pero solo serán ejecutados si son referenciados desde main.yml
-Templates
Los templates son parecidos a los files, pero éstos admiten modificaciones (cambiar valores según las variables,...)
-Test
Como su nombre indica contiene una ejecución para probar el funcionamiento del role contra un host concreto indicado en el inventory.
-Vars
Tiene la misma función que defaults y se usa para almacenar variables. Además, las variables definidas en vars tienen mas prioridad que las variables definidas bajo defaults
-.travis.yml
Este fichero solo es usado en el caso de usar ansible-galaxy para publicar el role.
-README.md
Como me imagino que suponéis es para documentar el role pero es usado para ansible-galaxy como documentación para la wiki del github
Ahora pasaremos a ver unos ejemplos de configuración y ejecución de unos comandos para que veáis como funciona.
El ansible puede ir desde un único fichero yml en el que tendremos todo o un playbook con sus inventories donde irán configurados los hosts
Ahora ya si que entramos en ver a la parejita feliz aunque también podríamos darle una vuelta mas en el siguiente curso y meter otro componente y hacer un trió pero eso ya sera para la siguiente charla.
Por ahora nos quedamos con la pareja feliz.
Para que quede mas claro vemos este flujo visual de como tendríamos nuestra arquitectura y las etapas por las que pasaremos para realizar la funcionalidad completa.
Primero tendremos Ansible y vagrant que duda cabe y ademas tendremos que tener un proveedor de maquinas virtuales para vagrant.
Haremos un vagrant up desde el directorio del vagrantfile a usar. Dicho vagrant file arrancara la imagen seleccionada y preconfigurara la maquina con lo indicado.
Posteriormente lanzaremos el playbook ya sea desde vagrant o manualmente con el host de la maquina virtual y este configurara la maquina y orquestara las acciones indicadas.
Posteriormente conectaremos a dicha maquina ya sea usando el vagrant ssh o a través del cliente de la propia maquina para comprobar que la maquina esta correctamente configurada.
Ahora pasaremos a ver unos ejemplos de las dos herramientas.
Ahora tampoco os penséis que crearemos maquinas como churros con un pájaro dándole a la letra S o Y,ni que dbas y los administradores de sistemas desaparecerán. Si que crearemos maquinas de manera mas sencilla, rápida, reutilizable, mantenible y mas fáciles de almacenar pero el conocimiento seguirá recayendo en los perfiles anteriormente indicados y para poder automatizar primero hay que haberlo instalado manualmente.
Lo mas importante es que conseguimos replicar configuraciones iguales o similares a entornos de producción en todos los escalafones del desarrollo e integrar las maquinas en los flujos de construcción.
Y tampoco os penséis que con esto dejaremos de trabajar ya que esto nos obliga a estar pendientes constantemente de la gestión de estos ficheros y estas maquinas para que estén incluidas en el flujo del proyecto, saber las vanguardias de las herramientas para mejorar y optimizar estos procesos. Ademas de estar conectados entre los proyectos de la empresa para poder reutilizar el trabajo ya realizado.
Tenemos un proyecto tipo con nuestro equipo de desarrollo,nuestro servidor de desarrollo,test,qa, n y llegamos hasta producción.
Todo parece muy bonito en este esquema en el que todo el equipo es feliz y vive en armonía hasta que empiezan a aparecer ciertas circunstancias que empiezan a alterar la visión del proyecto y la imagen perfecta del esquema empieza a verse que en su interior esconde una visión muy diferente.
Chicote a venido para enseñarnos la realidad de este proyecto tan bonito en el esquema pero tan turbio por dentro en la realidad
Programadores salvajes aparecen.
Están discutiendo sobre la ultima entrega que a realizado uno ellos ya que no le funciona al otro.
Con esto llegamos a la situación tan típica
En mi maquina funciona como que no funciona en la tuya.
De quien es el problema??
De uno, de ninguno, de los dos.Generalmente esta situación se da por una cagada del programador. Vale somos humanos.
Pero también hay situaciones que el programador a programado bien, en su entorno local funciona pero a un compañero no. O me funciona en mi equipo pero en el resto no.
Esto ocurre porque las plataformas en las que se a probado el código son distintas.
Las posibles situaciones son:
Cada equipo esta configurado de su padre y de su madre en desarrollo.
Resto de entornos se van parcheando cada cual a su ritmo y a mano. Pudiendo darse casos de olvidar migrar esos cambios a las maquinas en su ciclo de vida.
Si integramos en el flujo del desarrollo vagrant y ansible siempre tendremos entornos configurados de la misma manera indicando en cada entrega de software la versión correspondiente de scripts de ansible y vagrant. Generalmente el script de vagrant solo se usara la primera vez y se irán ejecutando en cada entrega los tasks de los scripts de ansible correspondientes.
También nos da la posibilidad de que el equipo de desarrollo pueda crear una maquina virtual completa igual a las de los entornos posteriores.
Encuentra una maquina en la cual están instaladas muchas aplicaciones, funcionalidades obsoletas que ademas no aportan valor al proyecto y muchos ficheros de configuración que no se sabe a que aplicaciones afectan. Pero claro hacer una revisión de todo ademas de costoso es un poco insufrible.
Entonces chicote pregunta sobre los scripts de configuración de la maquina y la persona que administro la maquina durante la vida del proyecto
Este proyecto ademas de no haber contado con una historificación o repositorio de scripts de instalación han pasado muchos administradores y por ello es imposible saber quien hizo que, ni porque.
Si hubieran usado ansible y vagrant hubieran podido historificar los scripts con la vida del proyecto y así saber porque y para que se instalaron ciertas aplicaciones y como están configuradas,
Esto hubiera ayudado a la buena administración y mantenimiento de estas maquinas. Los nuevos administradores hubieran sabido con facilidad la situación de la maquina y no tendrían tanta dependencia de las personas que la gestionaban
Paquito sorprende a chicote comunicándole que ese proyecto con tan bonito esquema pero con un mantenimiento mas que dudoso y un desarrollo con bastantes traspiés, tiene que salir a producción en modo producto esa misma semana y que tendrá que ser instalable de manera fácil y sencilla por sus clientes.
Teniendo en cuenta que no ha habido un repositorio en el que se hayan ido historificando los scripts de cambio de las maquinas y los responsables de mantenimiento del equipo ni el equipo de desarrollo saben realmente lo que es esencial para poder correr su software y ningún entorno tiene las versiones homogeneizas de aplicaciones instaladas.
Chicote decide huir del lugar sabiendo que tendría un largo trabajo de investigación para poder saber los requisitos mínimos que el software requiere realmente y eso no entraría en los tiempos que paquito quería cumplir
-Si el proyecto hubiera tenido entornos homogéneos.
-Si se hubiera historificado los scripts de mantenimiento de las maquinas y de versiones mínimas para el software
-Si no se hubiera dejado el conocimiento de las maquinas en manos de unos pocos
El proyecto hubiera salido adelante con mayor facilidad
Vagrant y ansible hubieran ayudado en ello
Cierto que siempre tendremos una curva de aprendizaje, tendremos que integrar o facilitar la comunicación entre departamentos y distribuir el conocimiento por todos los perfiles del equipo.
Pero con esto conseguiremos perfiles mas ricos y poder reutilizar muchos de estros esfuerzos en otros proyectos.
Ademas conseguiremos proyectos mas ágiles y con mayor calidad.