¿Es imprescindible aprender habilidades de DevOps como Kubernetes y CI / CD si quiero convertirme en desarrollador de backend?

Creo que la pregunta necesita una ligera aclaración.

Primero, Kubernetes NO es una habilidad de DevOps, sino una plataforma que permite las operaciones de DevOps.

En segundo lugar, CI / CD es actualmente una parte esencial del enfoque de DevOps que ha estado cobrando fuerza durante un par de años, por lo que si uno quiere seguir siendo competitivo en el desarrollo de software, la adopción de DevOps y todo lo relacionado es definitivamente imprescindible.

Crédito de la imagen: Izzet Mustafaiev a través de SlideShare

¿Por qué es importante DevOps ? En el prometedor mundo de los microservicios, entregar su aplicación de manera continua y rápida es una forma segura de impulsar las ventas y satisfacer las necesidades de sus clientes a tiempo. El énfasis está en ‘continuo’ y ‘rápido’ , y ahí es donde el enfoque de CI / CD es útil. Pero mantener su línea de entrega en línea con estos requisitos sería inimaginable y rígido si sigue el enfoque tradicional de ‘desarrollo de desarrolladores y operación de operaciones’. Tienes que concentrarte en ser flexible, porque flexible significa competitivo. Además de eso, CI / CD se trata de automatización: las compilaciones, las pruebas y las implementaciones se ejecutan en modo automático, por lo que el enfoque no solo es flexible, sino también conveniente y que ahorra tiempo. Ahora, supongo, está claro que DevOps y CI / CD es algo bueno para explorar.

Ahora volviendo a Kubernetes. Como dije, Kube es una plataforma que permite ejecutar software CI / CD como Jenkins, Travis y la gran cantidad de otras herramientas. Entonces, aprender o no aprender Kubernetes es una cuestión de lo que su empresa elige utilizar como orquestador de contenedores. Y, sinceramente, diría que veo poco uso para que los desarrolladores de back-end se involucren con Kubernetes en términos de instalación y configuración; en cambio, iría con una idea general de lo que es y de lo que es capaz. Según mi experiencia, a menudo es más eficiente implementar y administrar sus aplicaciones en una plataforma lista para producción (ya sea basada en Kube o no) que configurar una infraestructura completa desde cero.

Al decir ‘mi experiencia’ me refiero a mi experiencia personal en la implementación de Kubernetes para la producción y, luego, mi posición como Ingeniero DevOps (por lo que sé el ejercicio) en la plataforma Containerum, donde entregamos un PaaS para la implementación y administración instantánea de aplicaciones. Sé que a veces es difícil decidir si este o aquel software / solución / etc. es el correcto o no, por lo que es mejor probarlo en vivo y ver si eso funciona para usted. Ofrecemos una prueba gratuita de 30 días para que pueda ejecutar cualquier aplicación en contenedor y jugar con todas las características de Kubernetes y más (pruebe nuestro Webhook para actualizaciones automáticas, es un CD real en acción).

No, definitivamente no es obligatorio. Si lo necesitas en el trabajo, te enseñarán. Después de todo, si lo contratan, contratarán a “Un desarrollador de back-end” y no a devOps. De todos modos, no estoy diciendo que este conocimiento no sea útil. Para un desarrollador de back-end se reduce a esto:

CI: escribir pruebas unitarias

CD: escribe muy buenas pruebas unitarias

Yo diría que depende, seguramente no es un requisito.

Si tiene la intención de ser un buen ingeniero de back-end, le recomiendo que aprenda o, al menos, se interese por los temas de DevOps, le diría cómo funciona la pila tecnológica moderna y cómo terminaría trabajando, facilitará su trabajo. entender cómo se hace un CD: CD, por lo que es una mala idea escribir este cambio de API no compatible con versiones anteriores o un gran cambio de DB, le ahorrará mucho tiempo y esfuerzo de depuración para saber cómo funciona la arquitectura actual y, en general, si estás en una empresa de cultura DevOps, inevitablemente jugarás con ella.