Público objetivo
¿Eres un desarrollador que quiere redirigir su carrera hacia un modelo DevOps más avanzado? ¿Eres un ingeniero Ops clásico y te gustaría tener una idea de lo que significa DevOps? O ni siquiera eres uno ni otro y, después de haber pasado un tiempo trabajando en el campo de las tecnologías de la información, deseas cambiar de trabajo pero no tienes idea de por dónde empezar?
Si es así, sigue leyendo para descubrir cómo puedes convertirte en un ingeniero DevOps de nivel medio en seis meses. Finalmente, si ya has estado involucrado en DevOps durante muchos años, aún podrás sacar mucho provecho de este ciclo de artículos y ver dónde se encuentra la industria de la integración y automatización en este momento y hacia dónde se dirige en su desarrollo.

¿Qué es eso?
Primero, ¿qué es DevOps? Puedes buscar definiciones y leer toda esta palabrería, pero ten en cuenta que la mayoría de las definiciones son simplemente un galimatías de palabras empaquetadas en una forma atractiva. Así que te daré un resumen de todas esas definiciones: DevOps es un enfoque para la entrega de software donde el dolor y la responsabilidad se comparten entre todos los involucrados. Eso es todo.
Está bien, pero ¿qué significa realmente esta abreviatura? Significa que tradicionalmente los desarrolladores (las personas que crean software) estaban guiados por incentivos que eran muy diferentes de los incentivos de las operaciones (operacionistas, o personas que gestionan el software). Por ejemplo, como desarrollador, quiero crear tantas nuevas funciones como sea posible lo más rápido posible. Al fin y al cabo, ese es mi trabajo y eso es lo que los clientes exigen. Sin embargo, si soy una persona de Ops, entonces necesito la menor cantidad posible de nuevas funciones, porque cada nueva función es un cambio, y cualquier cambio conlleva el riesgo de fallos. Como resultado de esta discrepancia de incentivos, nació DevOps.
DevOps intenta unir el desarrollo y las operaciones (integración y automatización) en un solo grupo. La idea es que ahora un solo grupo compartirá tanto el dolor como la responsabilidad (y, probablemente, la recompensa) por la creación, implementación y obtención de ingresos a partir de software centrado en el cliente.
Los puristas te dirán que no existe algo como un "ingeniero DevOps". "DevOps es una cultura, no un rol", te dirán. Por supuesto, desde el punto de vista técnico tienen razón, pero como suele suceder, este término ha trascendido su significado original. Así que un ingeniero DevOps es algo así como un "ingeniero de sistemas 2.0". En otras palabras, es alguien que comprende el ciclo de vida del desarrollo de software y crea herramientas y procesos de desarrollo de software para abordar problemas operativos clásicos.

DevOps, en última instancia, significa crear canalizaciones digitales que toman el código de la computadora portátil del desarrollador y lo convierten en ingresos gracias al uso del producto final, esa es la esencia. Cabe destacar que la elección de una carrera en DevOps está bastante bien compensada, con casi cada empresa o "haciendo DevOps" o pretendiendo hacerlo. Independientemente de dónde se encuentren estas empresas, las oportunidades de empleo como DevOps son bastante altas y prometen "trabajos interesantes" y significativos durante muchos años.
Sin embargo, ten cuidado con las empresas que contratan "equipo DevOps" o "departamento DevOps". Estrictamente hablando, tales cosas no deberían existir, porque al final DevOps sigue siendo una cultura y una forma de entrega de software, no la creación de un nuevo equipo o un departamento con un nombre de moda.
Descargo de responsabilidad
Y ahora, dejemos de lado por un momento el vaso de "Cool-Aid" y pensemos en lo siguiente. ¿Has escuchado el viejo dicho "no hay ingenieros DevOps junior”? Si no lo has oído, debes saber que es un tropo popular en Reddit y StackOverflow. Pero, ¿qué significa?
En términos simples, esta frase significa que se requiere muchos años de experiencia combinados con un sólido entendimiento de las herramientas para eventualmente convertirse en un profesional Senior DevOps realmente eficaz. Y, desafortunadamente, no hay un camino corto para alcanzar este objetivo. Así que no se trata de tratar de engañar al sistema: no creo que realmente se pueda pretender ser un ingeniero Senior DevOps con solo unos meses de experiencia en este campo. Alcanzar una comprensión clara de las herramientas y metodologías en constante cambio requiere años de experiencia, y eso no se puede evitar. Sin embargo, hay un menú de herramientas y conceptos casi consensuado (moda, si se quiere) que utilizan la mayoría de las empresas, y de eso se tratará este texto.
De nuevo, las herramientas son diferentes de las habilidades, así que mientras estudias las herramientas, asegúrate de no descuidar tus habilidades (entrevistas, creación de redes, comunicación escrita, resolución de problemas, etc.). Lo esencial es no perder de vista lo que queremos encontrar: una forma de crear un canal digital completamente automatizado que tome ideas y las convierta en fragmentos de código que generen ingresos. ¡Esa es la única y más importante conclusión de todo este artículo!
¿Basta de charla, cuándo puedo empezar?
A continuación se presenta la hoja de ruta 'Conocimientos Fundamentales de DevOps'. Una vez que hayas dominado todo lo que se presenta allí, ¡puedes llamarte con confianza e honestidad un ingeniero DevOps! O ingeniero en la nube, si prefieres no usar el término 'DevOps'.

Este mapa refleja mi (y, probablemente, la de la mayoría de las personas que trabajan en este ámbito) visión de lo que debe saber un ingeniero DevOps competente. Sin embargo, es solo una opinión, y, por supuesto, habrá quienes no estén de acuerdo. ¡Eso está bien! No estamos buscando la perfección, estamos buscando una base sólida sobre la cual se pueda construir realmente.
Debes recorrer este camino gradualmente, capa por capa. Debes comenzar (y continuar) con los fundamentos básicos, estudiando primero los elementos marcados en azul: Linux, Python y AWS. Luego, si el tiempo lo permite o hay demanda en el mercado laboral, aborda las cosas en púrpura: Golang y Google Cloud.
Honestamente, la capa superior fundamental es algo que tendrás que estudiar indefinidamente. El sistema operativo Linux es muy complejo y se necesita años para dominarlo. Python requiere práctica constante para mantenerse al día. AWS evoluciona tan rápido que lo que sabes hoy será solo una parte de tu cartera de conocimientos en un año. Una vez que aprendas lo básico, pasa a un conjunto real de habilidades. Ten en cuenta que hay 6 columnas azules (Configuración, Versión, Empaquetado, Implementación, Ejecución, Monitoreo), una por mes de estudio.

Por supuesto, has notado la ausencia de una etapa importante en nuestra línea de producción de seis meses: las pruebas. Lo dejé fuera intencionadamente de la hoja de ruta porque la redacción del módulo, la integración y las pruebas de aceptación son desafiantes y tradicionalmente recaen sobre los desarrolladores. La omisión de la etapa de "pruebas" se debe a que el objetivo de esta hoja de ruta es adquirir habilidades y herramientas básicas lo más rápidamente posible. La falta de experiencia en pruebas, según el autor, es solo un obstáculo menor para el uso correcto de DevOps.
Además, recuerda que no estamos estudiando un montón de jerga técnica desconectada, sino que buscamos comprender las herramientas que, en conjunto, crean una narrativa clara. Esta narrativa es una automatización integral del proceso: una línea de producción digital que mueve bits de manera similar a una línea de ensamblaje. No querrás estudiar una multitud de herramientas y detenerte constantemente. Las herramientas de DevOps cambian rápidamente, mientras que los conceptos lo hacen con mucha menos frecuencia. Por lo tanto, debes esforzarte por usar las herramientas como proxies de aprendizaje para conceptos de nivel superior.
¡Bien, profundicemos un poco más!
Conocimientos fundamentales
Bajo el escalón superior con la inscripción Foundation, verás las habilidades que cada ingeniero DevOps debe dominar. Estas habilidades son el manejo seguro de los tres 'pilares' de la industria: el sistema operativo, el lenguaje de programación y la nube pública. No son cosas que se puedan aprender rápidamente y seguir adelante. Estas habilidades deben ser perfeccionadas constantemente y el dominio de su uso debe ser afilado para mantenerse a la vanguardia de la industria y actualizar el entorno profesional que te rodea. Vamos a revisarlas una por una.
Linux es donde todo funciona. ¿Puedes ser un practicante de DevOps increíble sin salir del ecosistema de Microsoft? ¡Por supuesto! No hay ninguna ley que estipule que solo se debe usar Linux. Sin embargo, ten en cuenta que, aunque muchas de las cosas de Linux se pueden hacer en Windows, se hacen de manera mucho más incómoda y con menos funcionalidades. En este momento, se puede suponer con seguridad que sin conocimientos de Linux no puedes convertirte en un verdadero profesional de DevOps, por lo que Linux es algo que debes estudiar y seguir estudiando.
Honestamente, la mejor manera de hacerlo es simplemente instalar Linux (Fedora o Ubuntu) en casa y usarlo tanto como sea posible. Por supuesto, romperás muchas cosas, te quedarás atascado en flujos de trabajo, tendrás que arreglar todo, pero ¡aprenderás Linux!

Por cierto, en América del Norte, las variantes de RedHat son más comunes, así que tiene sentido comenzar con Fedora o CentOS. Si te preguntas si debes adquirir la edición KDE o Gnome, elige KDE. Es lo que usa el propio Linus Torvalds.
Python es actualmente el lenguaje de backend dominante. Es fácil de comenzar a usar y se emplea ampliamente. Python es muy popular en inteligencia artificial y aprendizaje automático, así que si alguna vez deseas pasar a otra área caliente, estarás totalmente preparado para ello.

Amazon Web Services: nuevamente, es imposible convertirse en un profesional experimentado de DevOps sin un sólido entendimiento de cómo funciona la nube pública. Y si deseas aprender todo lo posible sobre esto, estudia Amazon Web Services. Es el actor líder en este campo de servicios y ofrece la gama más rica de herramientas de trabajo.
¿Se puede empezar con Google Cloud o Azure en lugar de eso? Por supuesto que sí. Pero, considerando la última crisis financiera, hay que tener en cuenta que AWS es la opción más segura, al menos en 2018, ya que permite registrarse gratuitamente y comenzar a explorar las posibilidades de los servicios en la nube. Además, la consola de AWS ofrece al usuario un menú simple y claro para elegir. La buena noticia es que no necesitas conocer todas las tecnologías de Amazon para esto.

Comienza con lo siguiente: VPC, EC2, IAM, S3, CloudWatch, ELB (Elastic Load Balancing detrás de EC2) y Security Group. Estas cosas son suficientes para empezar a trabajar, y cada empresa moderna en la nube utiliza activamente estas herramientas. El sitio de aprendizaje de AWS es un buen lugar para comenzar.
Te recomiendo que dediques de 20 a 30 minutos al día al estudio y la práctica del lenguaje Python, el sistema operativo Linux y el servicio en la nube AWS, además de otras cosas que tendrás que aprender. En general, creo que dedicar una hora al día cinco veces a la semana es suficiente para entender los procesos en la industria de DevOps en seis meses o incluso menos. Hay un total de 6 componentes principales, cada uno de los cuales corresponde a un mes de aprendizaje. Eso es todo lo que necesitas para adquirir conocimientos básicos.
En los próximos artículos, abordaremos el siguiente nivel de dificultad: cómo automatizar por completo la configuración, la versión, el empaquetado, el despliegue, la ejecución y la monitorización del software.
La continuación será muy pronto...
Un poco de publicidad 🙂
Gracias por permanecer con nosotros. ¿Te gustan nuestros artículos? ¿Quieres ver más contenido interesante? Apóyanos haciendo un pedido o recomendando a tus conocidos, , un análogo único de servidores entry-level que hemos diseñado para Ti: (disponibles opciones con RAID1 y RAID10, hasta 24 núcleos y hasta 40GB DDR4).
¿Dell R730xd a mitad de precio en el centro de datos Equinix Tier IV en Ámsterdam? Solo aquí ¡en los Países Bajos! Dell R420 — 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB — ¡desde $99! Lee sobre cómo
Fuente: habr.com
