Probablemente estés usando o hayas escuchado de Docker, el proyecto y empresa que se hizo extremadamente exitoso proveyendo a los desarrolladores y equipos de operaciones una manera sencilla para gestionar el uso de containers.
Los containers no son una tecnología nueva, hace varios años que muchas empresas como Heroku y Google los utilizan internamente para operar de manera efectiva su infraestructura y aplicaciones.
Si estás leyendo esto es porque seguro entiendes el beneficio de esta tecnología y te preguntas cuál es la mejor manera de adoptarla en tu organización. A continuación voy a enumerar unas serie de pasos y una breve descripción de cada uno para ayudarte en este proceso.
Antes de configurar o instalar un cluster de contenedores como Kubernetes o Docker Swarm es importante primero ganar la confianza de los equipos de desarrollo de tu organización. ¿Por qué es esto importante? Porque como cualquier otro proyecto de software, la figura del sponsor resulta indispensable. A fin de cuentas van a ser los equipos de tu organización quienes saquen el mayor provecho de esta plataforma.
Te recomiendo que hables mucho con tus equipos internos, que los ayudes escribiendo los archivos Dockerfiles y compose para que así logren ver el valor de manera rápida y no se frustren en el proceso.
Otro aspecto a tener en cuenta es dónde y cómo vamos a correr nuestro cluster productivo. Mi recomendación en estos casos es siempre intentar delegar las tareas más complejas a un proveedor externo ya que en caso contrario lo que suele suceder es que se pierde mucho tiempo en tareas de mantenimiento cuando sería mejor utilizado para mejorar procesos y ayudar a los equipos de desarrollo.
Hoy en día los cloud providers más populares como AWS, Azure, Google y Digital Ocean ofrecen soluciones managed de Kubernetes las cuales funcionan muy bien. Te sugiero que las evalúen y de ser posible intenten utilizar las mismas ya que nos ahorran muchos problemas como actualizar nuestro cluster y además ofrecen herramientas de administración muy sencillas.
En el caso de no poder utilizar alguna de éstas soluciones te recomiendo apalancarse sobre herramientas como Kops o Kubeadm que simplifican y automatizan la creación de un cluster de Kubernetes on-premise. En el curso de Kubernetes en Platzi explico en detalle sus diferencias y muestro ejemplos de cómo utilizar las mismas.
Por último el tercer punto a tener en cuenta para lograr una implementación exitosa de cultura de contenedores es establecer un pipeline de desarrollo efectivo en tu organización. ¿A qué me refiero con esto? Tus equipos de desarrollo deben desplegar y probar nuevas versiones de sus aplicativos de manera segura, simple y rápido. Tambíen es importante darles las herramientas para que puedan fácilmente volver a versiones anteriores en el caso de detectar problemas.
Este proceso se conoce comúnmente como CI / CD (Continuous Delivery y Continuous Deployment) y existen muchas maneras de implementarlo. Particularmente, una muy reciente i es GitOps y consiste principalmente en utilizar Git como fuente de verdad para hacer un seguimiento y auditoría de lo cambios que serán impactados en producción.
Si quieres aprender cómo implementar e interiorizar en los puntos anteriormente mencionados en tu trabajo o proyecto, no te pierdas el curso de Kubernetes en Platzi.