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.
Kubernetes: Caso de uso real con mememtum y TaniwaJoselu Marina
La nueva versión del backend de mememtum (detección temprana de Parkison mediante pruebas en el móvil) la hemos desarrollado usando:
Docker
Kubernetes y
Go.
Este taller explica nuestra experiencia.
En resumen: Impresionante.
Autores: Jesús Pancorbo | José Luis Marina
Docker es una de las tecnologías que más revolucionó el manejo de ambientes y despliegue de aplicaciones a gran escala. Veremos por qué es tan importante conocer esta tecnología para desarrolladores y administradores de infraestructura y cómo facilita aplicar prácticas de devops.
Durante la charla introduciremos la tecnología, como así tambien los casos prácticos sobre clustering, repositorios privados de imágenes y arquitectura productivas.
Gustavo Brey
Gustavo Andres Brey es Ingeniero en Sistemas de Información con más de 15 años de experiencia en la Industria IT. Actualmente es el CIO del Instituto Nacional de Servicios Sociales para Jubilados y Pensionados (INSSJP/PAMI), donde está impulsando un cambio de paradigma innovador en IT para la gestión de la salud pública Argentina. Desde 2004 es fundador y profesor de la materia Arquitectura de Proyectos de IT en la UTN- FRBA. A su vez es Co-Fundador de CONF4IT, una organización sin fines de lucro, que desarrolla conferencias agnósticas para distintas comunidades IT como ARQCONF y KIDSCONF. Participó en importantes conferencias de Tecnologías de la Información, Salud , Innovación, Open Source, Big Data, Arquitectura de Software, Gobierno y Datos Abiertos, así como de Hackathones.
Andrés Calabrese
Ingeniero en Sistema de Información con más de 11 años de experiencia tanto en puestos de liderazgo técnico en grandes empresas, como así también como CTO en varios emprendiendo tecnologicos como socio. Andrés comenzó su carrera en IBM, liderando proyectos complejos en diferentes tecnologías, a su vez promovió encuentros de colaboración técnica. Como CTO definió, planificó e implementó prácticas de Devops que permitieron guiar tecnologicamente a la compañía en términos metodológicos, de desarrollo e infraestructura.
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
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
Docker: la revolución en virtualizaciónMarcelo Ochoa
Durante el último año la evolución de proyectos como LXC concluyo en el mundialmente reconocido proyecto Docker, un sistema de virtualización open source ultra delgado que permite optimizar por medio de la automatización vía scripts la provisión de ambientes para desarrollo, test y producción.
Entre las principales ventajas de este ambiente de virtualización podemos encontrar:
– Nativo en Linux, sin requerimientos de virtualización hardware, cero impacto en la performance
– Definición/Creación del entorno vía scripts
– Ultra liviano, se pueden correr hasta 2048 maquinas virtuales con un servidor Web en un simple micro-computador Raspberry PI
– Disponible en otras plataformas como Windows/Solaris
Solapas principales Ver(solapa activa) Editar Gestionar present...Software Guru
Docker es un sistema de virtualización de servicios que nos permite aislar aplicaciones o sistemas operativos completos de una manera muy eficiente ya que no se dedican recursos de cómputo a emular el hardware como se hace con los hipervisores tradicionales como KVM, VirtualBox o VMWare.
En es plática vamos a analizar que es Docker, como funciona, un vistazo a la tecnología que lo compone y algunos casos de uso.
Kubernetes technical overview and our experience at Restorando :: Buenos Aire...Restorando
A technical overview of kubernetes (in spanish). We, at Restorando, are running it in production for 6+ months.
This was presented at the AWS meet up, with some other guys talking about other options to run Docker in production on AWS. We talked about kubernetes (what we are using :))
Some animations are not correctly shown here, sorry about that.
Kubernetes: Caso de uso real con mememtum y TaniwaJoselu Marina
La nueva versión del backend de mememtum (detección temprana de Parkison mediante pruebas en el móvil) la hemos desarrollado usando:
Docker
Kubernetes y
Go.
Este taller explica nuestra experiencia.
En resumen: Impresionante.
Autores: Jesús Pancorbo | José Luis Marina
Docker es una de las tecnologías que más revolucionó el manejo de ambientes y despliegue de aplicaciones a gran escala. Veremos por qué es tan importante conocer esta tecnología para desarrolladores y administradores de infraestructura y cómo facilita aplicar prácticas de devops.
Durante la charla introduciremos la tecnología, como así tambien los casos prácticos sobre clustering, repositorios privados de imágenes y arquitectura productivas.
Gustavo Brey
Gustavo Andres Brey es Ingeniero en Sistemas de Información con más de 15 años de experiencia en la Industria IT. Actualmente es el CIO del Instituto Nacional de Servicios Sociales para Jubilados y Pensionados (INSSJP/PAMI), donde está impulsando un cambio de paradigma innovador en IT para la gestión de la salud pública Argentina. Desde 2004 es fundador y profesor de la materia Arquitectura de Proyectos de IT en la UTN- FRBA. A su vez es Co-Fundador de CONF4IT, una organización sin fines de lucro, que desarrolla conferencias agnósticas para distintas comunidades IT como ARQCONF y KIDSCONF. Participó en importantes conferencias de Tecnologías de la Información, Salud , Innovación, Open Source, Big Data, Arquitectura de Software, Gobierno y Datos Abiertos, así como de Hackathones.
Andrés Calabrese
Ingeniero en Sistema de Información con más de 11 años de experiencia tanto en puestos de liderazgo técnico en grandes empresas, como así también como CTO en varios emprendiendo tecnologicos como socio. Andrés comenzó su carrera en IBM, liderando proyectos complejos en diferentes tecnologías, a su vez promovió encuentros de colaboración técnica. Como CTO definió, planificó e implementó prácticas de Devops que permitieron guiar tecnologicamente a la compañía en términos metodológicos, de desarrollo e infraestructura.
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
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
Docker: la revolución en virtualizaciónMarcelo Ochoa
Durante el último año la evolución de proyectos como LXC concluyo en el mundialmente reconocido proyecto Docker, un sistema de virtualización open source ultra delgado que permite optimizar por medio de la automatización vía scripts la provisión de ambientes para desarrollo, test y producción.
Entre las principales ventajas de este ambiente de virtualización podemos encontrar:
– Nativo en Linux, sin requerimientos de virtualización hardware, cero impacto en la performance
– Definición/Creación del entorno vía scripts
– Ultra liviano, se pueden correr hasta 2048 maquinas virtuales con un servidor Web en un simple micro-computador Raspberry PI
– Disponible en otras plataformas como Windows/Solaris
Solapas principales Ver(solapa activa) Editar Gestionar present...Software Guru
Docker es un sistema de virtualización de servicios que nos permite aislar aplicaciones o sistemas operativos completos de una manera muy eficiente ya que no se dedican recursos de cómputo a emular el hardware como se hace con los hipervisores tradicionales como KVM, VirtualBox o VMWare.
En es plática vamos a analizar que es Docker, como funciona, un vistazo a la tecnología que lo compone y algunos casos de uso.
Kubernetes technical overview and our experience at Restorando :: Buenos Aire...Restorando
A technical overview of kubernetes (in spanish). We, at Restorando, are running it in production for 6+ months.
This was presented at the AWS meet up, with some other guys talking about other options to run Docker in production on AWS. We talked about kubernetes (what we are using :))
Some animations are not correctly shown here, sorry about that.
Docker es una plataforma abierta para construir, transportar y ejecutar aplicaciones distribuidas.
El objetivo de esta charla es dar a conocer la plataforma, su arquitectura y componentes. Para ello se parte del problema que trata de resolver y sus ventajas e inconvenientes con otras soluciones existentes.
"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
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).
Hoy en día Mercadolibre tiene mas de 20000 vms y unos 18MM de request por minuto. En esta sesión queremos mostrar como estamos utilizando Amazon y Docker (containers) para manejar parte de este workload. Veremos los detalles de como implementamos estas y otras tecnologías, para lograr tener una plataforma que se encargue de resolver los problemas, desde la maquina del desarrollador hasta la gestion de producción, para un equipo de ingeniería de 700+ personas en 5 paises y con 350 deploys por día
Traditional virtualization technologies have been used by cloud infrastructure providers for many years in providing isolated environments for hosting applications. These technologies make use of full-blown operating system images for creating virtual machines (VMs). According to this architecture, each VM needs its own guest operating system to run application processes. More recently, with the introduction of the Docker project, the Linux Container (LXC) virtualization technology became popular and attracted the attention. Unlike VMs, containers do not need a dedicated guest operating system for providing OS-level isolation, rather they can provide the same level of isolation on top of a single operating system instance.
An enterprise application may need to run a server cluster to handle high request volumes. Running an entire server cluster on Docker containers, on a single Docker host could introduce the risk of single point of failure. Google started a project called Kubernetes to solve this problem. Kubernetes provides a cluster of Docker hosts for managing Docker containers in a clustered environment. It provides an API on top of Docker API for managing docker containers on multiple Docker hosts with many more features.
Docker es una plataforma abierta para construir, transportar y ejecutar aplicaciones distribuidas.
El objetivo de esta charla es dar a conocer la plataforma, su arquitectura y componentes. Para ello se parte del problema que trata de resolver y sus ventajas e inconvenientes con otras soluciones existentes.
"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
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).
Hoy en día Mercadolibre tiene mas de 20000 vms y unos 18MM de request por minuto. En esta sesión queremos mostrar como estamos utilizando Amazon y Docker (containers) para manejar parte de este workload. Veremos los detalles de como implementamos estas y otras tecnologías, para lograr tener una plataforma que se encargue de resolver los problemas, desde la maquina del desarrollador hasta la gestion de producción, para un equipo de ingeniería de 700+ personas en 5 paises y con 350 deploys por día
Traditional virtualization technologies have been used by cloud infrastructure providers for many years in providing isolated environments for hosting applications. These technologies make use of full-blown operating system images for creating virtual machines (VMs). According to this architecture, each VM needs its own guest operating system to run application processes. More recently, with the introduction of the Docker project, the Linux Container (LXC) virtualization technology became popular and attracted the attention. Unlike VMs, containers do not need a dedicated guest operating system for providing OS-level isolation, rather they can provide the same level of isolation on top of a single operating system instance.
An enterprise application may need to run a server cluster to handle high request volumes. Running an entire server cluster on Docker containers, on a single Docker host could introduce the risk of single point of failure. Google started a project called Kubernetes to solve this problem. Kubernetes provides a cluster of Docker hosts for managing Docker containers in a clustered environment. It provides an API on top of Docker API for managing docker containers on multiple Docker hosts with many more features.
Presentation by Ross Kukulinski at the Philadelphia Docker Meetup on September 27, 2016.
This talk will introduce Kubernetes, the industry standard system for automatic deployment, scaling, and management of containerized applications. We'll walk through key concepts and you will learn how to deploy a multi-tier application to Kubernetes in 10 minutes.
DevoxxFR 2015 Talk http://cfp.devoxx.fr/2015/talk/WXY-1157/Scaling_Docker_with_Kubernetes
Kubernetes is an open source project to manage a cluster of Linux containers as a single system, managing and running Docker containers across multiple Docker hosts, offering co-location of containers, service discovery and replication control. It was started by Google and now it is supported by Microsoft, RedHat, IBM and Docker Inc amongst others.
Once you are using Docker containers the next question is how to scale and start containers across multiple Docker hosts, balancing the containers across them. Kubernetes also adds a higher level API to define how containers are logically grouped, allowing to define pools of containers, load balancing and affinity.
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!
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.
Actualizar a nuevos frameworks, paradigmas, explorar en proyectos "greenfield" está genial, pero ¿y si el software que estás manteniendo lleva años funcionando y no lo puedes modificar así como así? ¿Puedes modernizarlo de alguna manera: procesos, automatización, testing...?
En esta charla compartiremos las experiencias de cómo una aplicación "legacy" ha ido evolucionando con el paso de los años sin tocar el core de la aplicación (Java + Struts + MySQL), simplemente optimizando los procesos mediante la automatización de tareas, virtualización de entornos y gestión de la configuración.
Presentación sobre la herramienta Gulp. En ella se explica donde se sitúa gulp dentro de los ecosistemas javascript, como funciona internamente, como funciona el API y ejemplos de algunos plugins para utilizar en tareas.
Serverless: La evolucion de la arquitectura a la nubeQuito Lambda
En este encuentro veremos cómo ha evolucionado el despliegue de sistemas en Internet. Hablaremos de monolitos y microservicios, para por fin descubrir la evolución a serverless, y tendremos una sesión en vivo donde desplegaremos un pequeño sistema a AWS Lambda.
Los mejores trucos y prácticas para configurar drupalSiteGround España
En nuestro webinar gratuito de este mes sobre Drupal tuvimos el placer de contar con Oskar Calvo, que nos dió sus consejos sobre “Los mejores trucos y prácticas para configurar tu Drupal” (#SGwebinar).
El webinar trató de buenas prácticas para tener un proyecto Drupal funcionando correctamente, tanto en la base de datos, como en la caché, en los módulos instalados, así como en las plantillas. Himcios un repaso a las configuraciones, tanto de módulos, base de datos y servidores sin entrar en detalles de programación.
Puedes leer más en Twitter #SGwebinar y en nuestro blog https://www.siteground.es/blog/webinars-buenas-practicas-configuracion-drupal
Base de curso de 2 horas de introducción al cloud computing, simplificando bastante la historia de los modelos de provisión de software y de servicios, para mostrar que el cloud computing no es una invención ni una solución universal, sino un modelo surgido de avances combinados en varias areas de redes y computación
Dev Tools para Kubernetes - Codemotion 2019Micael Gallego
Charla impartida entre Pablo Chico y Micael Gallego en la que se muestran algunas herramientas para mejorar la experiencia de desarrollo de aplicaciones cloud native para Kubernetes. Concretamente, se presenta cómo okteto puede reducir el tiempo empleado en el ciclo de change, build, push, deploy de pods Java en Kubernetes usando la sincronización de ficheros.
Ejemplos de código en https://github.com/micaelgallego/k8s-dev-tools-codemo19
Introducción al Desarrollo de software usando containers en local mediante Earthly. Para evitar issues en entorno de continuous integration y continuous delivery que no puedan replicarse facilmente
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.
Ansible + AWS: Cómo administrar tu infraestructura de AWS con AnsibleQuito Lambda
En esta charla se hablará de cómo administrar la infraestructura de AWS con una de las más populares herramientas de gestión de configuración, Ansible. Hablaremos de las ventajas de la infraestructura como código y haremos un pequeño despliegue de una aplicación en AWS.
Experiencia del grupo Aula Virtual con Gitlab+SonarQube, trabajando con la filosofía open source de Sakai. Destaca la posibilidad de documentar el proyecto con markdown, la edición online, la revisión de código en línea mediante comentarios, las métricas de Sonar Qube sobre deuda técnica, entre otras
en la formacion del personal de emergencia en industrias, no debe limitarse al sistema fijo de extincion con o sin medio de impulsion propia, tambien debe de conocer los elementos que permiten el abastecimiento externo o no a la industria y su clasificacion para su debida identificacion
3. Agenda
● Kubernetes Intro
● Primeros pasos con Kubernetes en Restorando
○ Cosas que nos fueron útiles
○ Cosas que no, pero encontramos otra forma de hacerlas
○ Cosas que nos faltan resolver
4. Kubernetes features
● Automatic binpacking
● Horizontal scaling
● Automated rollouts and rollbacks
● Storage orchestration
● Self-healing
● Service discovery and load balancing
● Secret and configuration management
● Batch execution
5. Node
Kubelet
Pod Pod Pod
Container Container Container
Node
Kubelet
Pod Pod Pod
Container Container Container
Kubernetes basic architecture
Node
Kubelet
Pod Pod Pod
Container Container Container
Kubernetes
Master
6. ¿Qué son los pods?
● Conjunto de 1 o más containers
● Estos containers SIEMPRE se colocan en un mismo nodo
○ Modela grupo de apps que se corren en un host
● Comparten IP, namespace de red y storage
● Ejemplos
○ File puller + web server: comparten volumen para servir los archivos, reusables por
separado
○ App + interfaz con “el mundo exterior”
○ En Restorando: nginx, heka y app
7. Deployments
● Especifica el “template” de los pods
● Desired state: típicamente se especifica en un yaml/json
● Especificamos y nos asegura (entre otras cosas):
○ Que siempre haya la cantidad de “réplicas” que especificamos
■ Si un nodo muere, container crashea, etc.
○ Que los pods estén “vivos” y no reciban tráfico hasta estar listos
■ Hay chequeos especiales para esto que veremos más adelante
○ Límites y garantías de recursos (CPU, mem)
○ Deploys sin downtime (si queremos)
9. Hacer un deploy
● Se baja un pod viejo
● Se levanta un pod nuevo
● No se sigue hasta que está listo para recibir tráfico. Cuando está listo, se
repite hasta N
● El nodo lo elige k8s automáticamente, se pueden poner restricciones
○ O hasta crear nuestro propio scheduler y usarlo en su lugar!
10. ¿Y lo de configuration management?
● Otro yaml!
● El objeto se llama “configMap”
● Se puede montar en un path del fs o usarse como variable de entorno
● Hace posible tener una imagen de nginx y correrla con distintas
configuraciones
○ En vez de N imágenes
12. ¿Por qué el cambio?
● El principal objetivo hoy es que los equipos sean más independientes
○ No haya cuello de botella en “operaciones”
○ No coordinar para upgradear la versión de ruby con otros equipos
● Que tengan el control de “todo el stack” minimizando riesgos
○ Configuraciones de nginx, etc.
● Que sea igual de fácil que hoy deployear
13. ¿Qué tenemos hoy en k8s?
● Servicios web con HTTP/HTTPS en producción
● Los desarrolladores pueden cambiar la config de todo el stack sin miedo
○ Nginx, heka, etc.
● Monitoreo
● Interfaz web para que hagan deploy
● Builds de imágenes automáticos una vez que se mergea un cambio
○ Auto-deploy on green posible, nadie se anima a usarlo
● La infraestructura manejada con terraform
14. ● K8s crea los ELB de AWS
● Pero todavía no permite configurar el cert SSL
● Solución:
○ Exponer servicio internamente (dentro de K8s)
○ Manejar el ELB por fuera de K8s
Exponer los servicios con ELB y HTTPS
15. Cambios de config sin miedo
● Es muy fácil tener un “syntax error” al cambiar configuración
● Para evitar downtime por errores simples de config:
○ Configuraciones de nginx, heka, etc. con configmaps
○ Cambio de configuración = nuevo configmap + deploy
○ Si hay error, en un pod no se sigue con el deploy!
● La configuración de la app, por ahora, no usa configmaps
○ Facilita la migración y es simple volver en caso de emergencias
○ Y porque todavía no lo hicimos super feliz
○ Kubernetes hoy no da nada mágico para crearlos/actualizarlos en un deployment
16. Monitoreo
● Kubernetes viene con grafana+influxdb
● Nosotros usabamos signalfx
○ También hicieron un plugin para kubernetes con cAdvisor!
● Creamos un dashboard custom para ver la capacidad libre
○ Estandarizamos el tamaño de los pods
○ Podemos ver el número de pods disponibles
● Creamos/actualizamos dashboard customs para cada proyecto
17. Interfaz web para deploy
● Dashboard “built-in” no maneja deployments hoy
○ Los va a manejar para v1.3 (beta que sale este viernes ya los maneja!)
● Nosotros usabamos samson (gihub.com/zendesk/samson)
● Agregaron un plugin para kubernetes y seguimos con la misma interfaz!
○ Ellos también están migrando todo a kubernetes
○ Les mandamos algunos parches (plugin ECR) y la estamos usando
● DEMO!
18.
19. Lo que falta/Lo que viene
● Canary deployments
○ Trivial con otro deployment con distintos labels!
● Hacer el cluster multi-zone
○ Kubernetes ya lo soporta!
● Agregar jobs a samson (pronto)
● Automatizar upgrade de nodos (pronto)
● Migrar el gran “monolito”
● Desarrollo local integrado con service-discovery, etc.
20. ¿Preguntas?
¡Gracias!
Nos encantaría compartir experiencias con kubernetes:
Rodrigo Campos: rodrigo.campos@restorando.com, rodrigo@sdfg.com.ar
Juan Barreneche: jbarreneche@restorando.com
21. Links interesantes
● Borg, Omega, and Kubernetes: Lessons learned from three container-
management systems over a decade
○ http://queue.acm.org/detail.cfm?id=2898444
● Curso online
○ https://www.udacity.com/course/scalable-microservices-with-kubernetes--ud615
● KubeCon EU 2016
○ https://www.youtube.com/watch?v=Wyl4O3CHzV0
● Query Kubernetes API objects using SQL
○ https://github.com/brendandburns/ksql
Notas del editor
Kubernetes está hecho con microservicios, todas las partes son reemplazables e integrables con otros
Automatic Horizonatal Scaling
Master con etcd. Nodos iguales con “kubelet” y pods
Pensar en pod como mínima unidad para escalar
Los puertos con otros pods no conflictuan porque cada uno tiene su IP!
Sidecar: extend and enhance the "main" container (primer ejemplo)
Ambassador containers: container que splits read/writes y se conecta a redis
Adapter containers: interfaz con el mundo exterior
Desired state, describe lo que queremos, no cómo hacerlo
El readiness y liveness acá es igual, podrían ser distintos (probar que estén todas las dependencias up, por ejemplo)
Acá son un httpget, pueden ser ejecutar un comando en el container, conectarse por TCP nomás.
Muy flexible y configurable
Todo tiene labels pero muchos los saqué por espacio
Con esto vimos:
Automatic binpacking Y los puertos no conflictuan!
Horizontal scaling (hay automatico tambien!)
Automated rollouts and rollbacks
Self-healing
Secret management se maneja muy parecido
Mencionar que usabamos chef para el provisioning y que los devs no podían hacer cambios.