Cómo convertirse en ingeniero de DevOps en seis meses o incluso más rápido. Parte 1. Introducción

El público objetivo


¿Eres un desarrollador que quiere cambiar su carrera hacia un modelo DevOps más avanzado? ¿Eres un ingeniero clásico de Ops y te gustaría tener una idea de lo que significa DevOps? ¿O no es ni uno ni el otro y, después de haber pasado algún tiempo trabajando en el campo de las tecnologías de TI, desea cambiar de trabajo y no tiene 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 ha estado involucrado en DevOps durante muchos años, aún puede extraer mucha información útil de esta serie de artículos y descubrir dónde está la industria de integración y automatización en este momento y dónde se está esforzando por desarrollar.



¿Qué es todo esto?


Primero, ¿qué es DevOps? Puede buscar en Google definiciones y abrirse camino a través de toda esta cáscara verbal, pero tenga en cuenta que la mayoría de las definiciones son solo un revoltijo de palabras envueltas en una forma aerodinámica. Por lo tanto, le daré un extracto de todas estas definiciones: DevOps es una forma de entregar software en el que el dolor de cabeza y la responsabilidad se comparten entre todos los involucrados. Eso es todo.

Bien, pero ¿qué significa esta reducción de todos modos? Significa que tradicionalmente los Desarrolladores (personas que crean software) en su trabajo se guiaron por incentivos que diferían significativamente de los incentivos de Operaciones (operadores o personas que administran software). Por ejemplo, como desarrollador, quiero crear tantas funciones nuevas como sea posible. Después de todo, este es mi trabajo, ¡y eso es exactamente lo que demandan los clientes! Sin embargo, si soy una persona de Ops, entonces necesito la menor cantidad de características nuevas posible, porque cada nueva función es un cambio y cualquier cambio está plagado de fallas. Como resultado de tales incentivos de inconsistencia, nació DevOps.

DevOps está tratando de combinar el desarrollo y las operaciones (integración y automatización) en un solo grupo. La idea es que ahora un grupo compartirá tanto el dolor como la responsabilidad (y probablemente la recompensa) por crear, implementar y generar ingresos del software orientado al cliente.

Los puristas le dirán que no existe un "ingeniero de DevOps". "DevOps es una cultura, no un papel", le dirán. Por supuesto, tienen razón desde un punto de vista técnico, pero, como suele suceder, este término salió más allá de su significado original. Por lo tanto, un ingeniero de DevOps es un poco un "ingeniero de sistemas 2.0". En otras palabras, es uno que entiende el ciclo de vida de desarrollo de software y crea herramientas y procesos de desarrollo de software para resolver problemas operativos clásicos.



En última instancia, DevOps significa crear canales digitales que toman el código de la computadora portátil de un desarrollador y lo convierten en ingresos por usar el producto final, ese es el punto. Preste atención al hecho de que la elección de carrera de DevOps está altamente compensada por recompensas financieras, y casi todas las compañías "hacen DevOps" o dicen serlo. Independientemente de dónde se encuentren estas empresas, las oportunidades generales de empleo como DevOps son bastante altas e implican un empleo "divertido" y significativo durante muchos años.

Sin embargo, tenga cuidado con las empresas que contratan a un "equipo de DevOps" o "departamento de DevOps". Hablando estrictamente, tales cosas no deberían existir, porque en última instancia DevOps sigue siendo una cultura y una forma de entregar software, en lugar de contratar un nuevo equipo o crear departamento con un nombre de moda.

Denegación de responsabilidad


Ahora, dejemos de lado un vaso de Cool-Ad por un momento y pensemos en lo siguiente. ¿Has oído el viejo adagio "Los ingenieros junior de DevOps no existen?" Si no, tenga en cuenta que este es un camino popular en Reddit y StackOverflow. ¿Pero a qué se refiere?

En términos simples, esta frase significa que se necesitan muchos años de experiencia, combinados con una sólida comprensión de las herramientas, para convertirse en un practicante Senior DevOps verdaderamente efectivo. Y, desafortunadamente, no hay atajos para lograr el objetivo. Por lo tanto, este no es un intento de engañar al sistema: no creo que pueda fingir ser un ingeniero senior de DevOps con varios meses de experiencia en esta industria. Lograr una comprensión clara de las herramientas y metodologías que cambian rápidamente requiere muchos años de experiencia, y no hay forma de evitarlo. Sin embargo, hay un menú casi constante (de moda, si lo desea) de herramientas y conceptos que utilizan la mayoría de las empresas, y esto es lo que se discutirá.

Una vez más, las herramientas son diferentes de las habilidades, así que mientras aprende las herramientas, asegúrese de no descuidar sus habilidades (encuestas, redes, comunicación escrita, resolución de problemas, etc.). Sobre todo, no perdamos de vista lo que queremos encontrar: una forma de crear una tubería digital totalmente automatizada que tome ideas y las convierta en fragmentos de código que generen ingresos. ¡Esta es la única y más importante conclusión de todo este artículo!

Deja de hablar, ¿cuándo puedo empezar?


A continuación se muestra la hoja de ruta del conocimiento fundamental de DevOps. ¡Después de dominar todo lo que se muestra allí, puede llamarse a sí mismo un ingeniero DevOps de manera segura y honesta! O un ingeniero en la nube si no te gusta el nombre "DevOps".



Este mapa refleja mi visión (y probablemente la mayoría de las personas que trabajan en este espacio) de lo que un ingeniero de DevOps competente debería saber. Sin embargo, esto es solo una opinión y, por supuesto, habrá desacuerdos con ella. ¡Esto es normal! Aquí no buscamos la excelencia, buscamos una base sólida sobre la cual construir realmente.

Tienes que ir por este camino gradualmente, capa por capa. Comience (¡y continúe!) Sigue los fundamentos, primero examinando los elementos marcados en azul: Linux, Python y AWS. Luego, si el tiempo o la demanda en el mercado laboral lo permiten, haga cosas moradas como Golang y Google Cloud.

Honestamente, la capa superior fundamental es algo que tendrá que estudiar sin cesar. OS Linux es muy complejo y lleva años dominarlo. Python requiere práctica constante para mantenerse actualizado. AWS se está desarrollando tan rápido que lo que sabe hoy en un año solo será parte de su cartera general de conocimientos. Una vez que aprenda lo básico, pase a un conjunto real de habilidades. Tenga en cuenta que hay 6 columnas azules en total (Configuración, Versión, Empaque, Implementación, Inicio, Monitoreo), una por un mes de estudio.



Por supuesto, notó la ausencia de una etapa importante en nuestra cartera de seis meses: las pruebas. No lo incluí intencionalmente en la hoja de ruta, porque escribir un módulo, las pruebas de integración y aceptación no son fáciles y tradicionalmente recaen en los hombros de los desarrolladores. Y la omisión de la fase de "prueba" se explica por el hecho de que el objetivo de esta hoja de ruta es dominar las habilidades y herramientas básicas lo más rápido posible. La falta de experiencia en pruebas, según el autor, es solo un obstáculo menor para el uso adecuado de DevOps.

Además, recuerde que no estamos estudiando un montón de balbuceos técnicos no relacionados aquí, sino que nos estamos esforzando por comprender las herramientas que, en un solo paquete, crean una historia comprensible. Esta historia es una automatización de proceso de extremo a extremo: un transportador digital que mueve bits como una línea de ensamblaje. ¡No querrás aprender un montón de herramientas y detenerte constantemente! El kit de herramientas DevOps está cambiando rápidamente, y los conceptos son mucho menos comunes. Por lo tanto, debe esforzarse por utilizar herramientas como representantes de capacitación para conceptos de nivel superior.

¡Bien, profundicemos un poco más!

Conocimiento fundamental


Debajo del peldaño superior con las palabras Fundación, verá las habilidades que todo ingeniero de DevOps necesita dominar. Estas habilidades son un manejo seguro de los tres "pilares" de la industria, que son: el sistema operativo, el lenguaje de programación y la nube pública. Estas cosas no son algo con lo que pueda familiarizarse rápidamente e ir más allá. Estas habilidades deben mejorarse y perfeccionarse constantemente para dominarlas a fin de estar a la vanguardia de la industria y actualizar el entorno profesional que lo rodea. Vamos a revisarlos a su vez.

Linux es donde todo funciona. ¿Puedes ser un excelente practicante de DevOps mientras permaneces completamente dentro del ecosistema de Microsoft? ¡Seguro que puede! No hay una ley que solo use Linux. Sin embargo, tenga en cuenta que, a pesar del hecho de que todas las cosas de Linux también se pueden hacer en Windows, sucede mucho más dolorosamente y con menos funcionalidad. Por el momento, podemos asumir con seguridad que sin el conocimiento de Linux es imposible convertirse en un verdadero profesional de DevOps, por lo que Linux es lo que debe estudiar y estudiar.

Honestamente, la mejor manera de hacer esto es simplemente instalar Linux (Fedora o Ubuntu) en casa y usarlo tanto como sea posible. Por supuesto, romperá un montón de cosas, se atascará en los procesos de trabajo, tendrá que arreglar todo, ¡pero aprenderá Linux!



Por cierto, las variantes de RedHat son más comunes en América del Norte, por lo que tiene sentido comenzar con Fedora o CentOS. Si se pregunta si debería comprar KDE o la edición Gnome, seleccione KDE. Esto es lo que usa el propio Linus Torvalds.

Python es el lenguaje de fondo dominante en estos días. Es fácil comenzar con él, es ampliamente utilizado. Python es muy común en el campo de la inteligencia artificial y el aprendizaje automático, por lo que si alguna vez quieres pasar a otro campo de actividad candente, estarás completamente preparado para esto.



Amazon Web Services: una vez más, es imposible convertirse en un profesional experimentado de DevOps sin una sólida comprensión de cómo funciona la nube pública. Y si desea obtener más información al respecto, consulte Amazon Web Services. Este es un jugador líder en el campo de los servicios, que ofrece el conjunto más rico de herramientas de trabajo.

¿Puedo comenzar con Google Cloud o Azure en su lugar? ¡Por supuesto! Pero recordando la última crisis financiera, debe tenerse en cuenta que AWS es la opción más segura, al menos en 2018, ya que le permite registrar una cuenta de forma gratuita y comenzar a explorar las capacidades de los servicios en la nube. Además, la consola de AWS ofrece al usuario un menú simple e intuitivo para la selección. La buena noticia es que no necesita conocer todas las tecnologías de Amazon para esto.



Comience con lo siguiente: VPC, EC2, IAM, S3, CloudWatch, ELB (Elastic Load Balancing bajo la apariencia de EC2) y Security Group. Estas cosas son suficientes para comenzar, y toda empresa moderna basada en la nube está utilizando activamente estas herramientas. El propio sitio de capacitación de AWS es un buen lugar para comenzar.

Le recomiendo que pase 20-30 minutos diarios aprendiendo y practicando con el lenguaje Python, el sistema operativo Linux y el servicio en la nube de AWS, además de otras cosas que tendrá que aprender. En general, creo que pasar una hora al día cinco veces a la semana es suficiente para comprender los procesos en la industria DevOps durante 6 meses o menos. Hay un total de 6 componentes principales, cada uno de los cuales corresponde a un mes de entrenamiento. Esto es todo lo que necesita para adquirir conocimientos básicos.
En artículos posteriores, consideraremos el siguiente nivel de complejidad: cómo automatizar completamente la configuración, versión, empaquetado, implementación, lanzamiento y monitoreo del software.

Cómo convertirse en ingeniero de DevOps en seis meses o incluso más rápido. Parte 2: configuración

Un poco de publicidad :)


Gracias por estar con nosotros. ¿Te gustan nuestros artículos? ¿Quieres ver más materiales interesantes? Apóyenos haciendo un pedido o recomendando a sus amigos, VPS en la nube para desarrolladores desde $ 4.99 , un análogo único de servidores de nivel básico que inventamos para usted: toda la verdad sobre VPS (KVM) E5-2697 v3 (6 núcleos) 10GB DDR4 480GB SSD 1Gbps desde $ 19 o cómo dividir el servidor? (las opciones están disponibles con RAID1 y RAID10, hasta 24 núcleos y hasta 40GB DDR4).

Dell R730xd 2 veces más barato en el centro de datos Equinix Tier IV en Amsterdam? ¡Solo tenemos 2 x Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 TV desde $ 199 en los Países Bajos!Dell R420 - 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB - ¡desde $ 99! Lea sobre Cómo construir un edificio de infraestructura. clase c con servidores Dell R730xd E5-2650 v4 que cuestan 9,000 euros por un centavo?

All Articles