Entendamos en qué consiste la metodología y a quién puede beneficiar.
También hablaremos sobre los especialistas en DevOps: sus tareas, salarios y habilidades.
Foto / Flickr / CC BY-SA
¿Qué es DevOps?
DevOps es una metodología de desarrollo de software cuyo objetivo es establecer la colaboración entre programadores y administradores de sistemas en la empresa. Si los especialistas de TI de diferentes departamentos no comprenden bien las tareas de los demás, el lanzamiento de nuevas aplicaciones y sus actualizaciones se retrasa.
DevOps crea un ciclo de desarrollo "sin costuras", ayudando así a acelerar el lanzamiento del producto de software. Este aceleramiento se logra mediante la implementación de sistemas de automatización. Además, los programadores comienzan a participar en la configuración de servidores y en la búsqueda de errores, por ejemplo, pueden escribir pruebas automatizadas.
De este modo, se mejora la interacción entre departamentos. Los empleados comienzan a entender mejor qué etapas atraviesa un producto de software antes de llegar a las manos del usuario.
Cuando un desarrollador comprende con qué se enfrenta un administrador al configurar un servidor, se esfuerza por suavizar los posibles "puntos críticos" en el código. Esto reduce la cantidad de errores al desplegar la aplicación; según las estadísticas, se casi cinco veces.
¿A quién le sirve y a quién no le sirve la metodología?
Muchos , que DevOps será beneficioso para cualquier organización que se dedique al desarrollo de software. Esto es cierto incluso si la empresa es un simple consumidor de servicios de TI y no desarrolla sus propias aplicaciones. En este caso, la implementación de una cultura DevOps ayudará a concentrarse en la innovación.
Excepción son las startups, pero incluso aquí todo depende de la escala del proyecto. Si su objetivo es lanzar un producto mínimo viable (MVP) para probar una nueva idea, se puede prescindir de DevOps. Por ejemplo, el fundador de Groupon, al principio de trabajar en el servicio, publicaba manualmente Implementar la metodología y herramientas de automatización tiene sentido solo cuando la aplicación comienza a ganar popularidad. Esto ayudará a establecer procesos comerciales y acelerar la salida de actualizaciones.
Cómo implementar DevOps
A continuación, algunas recomendaciones para la transición a la nueva metodología.
Далее — несколько рекомендаций для перехода на новую методологию.
Identifique los problemas en los procesos empresariales. Antes de implementar la metodología, defina los objetivos y problemas de la organización. Esto influirá en la estrategia de transición a DevOps. Para ello, elabore una lista de preguntas, por ejemplo:
- ¿En qué se está invirtiendo más tiempo en la actualización del software?
- ¿Se puede automatizar este proceso?
- ¿Influye la estructura de la organización en esto?
Detalles sobre la identificación de problemas en la organización «» y «de los autores de la metodología.
Cambia la cultura en la empresa. Es importante convencer a todos los empleados de que cambien sus formas habituales de trabajo y amplíen su espectro de competencias. Por ejemplo, en Facebook todos los programadores del ciclo de vida de la aplicación en su totalidad: desde la escritura del código hasta la implementación. Además, en Facebook no hay un departamento separado de pruebas; los desarrolladores escriben las pruebas ellos mismos.
Comience con algo pequeño. Elija un proceso que consuma más tiempo y recursos durante el lanzamiento de actualizaciones, y automatícelo. Esto las pruebas o el proceso de implementación de aplicaciones. Los expertos implementar primero herramientas de control de versiones distribuidas. Con ellas es más fácil gestionar los archivos fuente. Entre estas soluciones, los más conocidos son Git, Mercurial, Subversion (SVN) y CVS.
También es recomendable prestar atención a los sistemas de integración continua, responsables de la construcción y pruebas del producto final. Ejemplos de tales herramientas son Jenkins, TeamCity y Bamboo.
Evalúe las mejoras. Desarrolle métricas de eficacia de las soluciones implementadas y elabore una lista de verificación. Las métricas pueden incluir la frecuencia de lanzamientos, el tiempo dedicado a las funciones del software y el número de errores en el código. Discuta los resultados no solo con los gerentes, sino también con el resto del equipo involucrado en el proyecto. Pregunte qué herramientas faltan. Tenga en cuenta estas solicitudes al optimizar aún más los procesos.
Críticas a DevOps
Aunque la metodología a las organizaciones a tomar decisiones más rápidamente en relación con el desarrollo de aplicaciones, el número de errores en el software y fomenta que los empleados aprendan cosas nuevas, también tiene sus críticos.
Hay , que los programadores no tienen que entender los detalles del trabajo de los administradores de sistemas. Supuestamente, DevOps lleva a que en la empresa, en lugar de especialistas en desarrollo o administración, aparezcan personas que saben un poco de todo, pero de manera superficial.
También se considera que DevOps en un mal manejo. Si los equipos de desarrolladores y administradores no tienen objetivos comunes, es culpa de los gerentes, que no organizan la interacción entre los equipos. Para resolver este problema, no se necesita una nueva metodología, sino un sistema de evaluación para los gerentes basado en comentarios de sus subordinados. Aquí puedes leer .

Foto / Flickr / CC BY-SA
¿Quién es un ingeniero DevOps?
El ingeniero DevOps se encarga de implementar la metodología DevOps. Sincroniza todas las etapas de creación del producto de software: desde la escritura del código hasta la prueba y lanzamiento de la aplicación. Este especialista supervisa los departamentos de desarrollo y administración, además de automatizar el cumplimiento de sus tareas, implementando diversas herramientas de software.
La clave del ingeniero DevOps es que combina múltiples profesiones: administrador, desarrollador, tester y gerente.
Joe Sánchez, evangelista de DevOps en VMware, una empresa desarrolladora de software de virtualización, una serie de habilidades que un ingeniero DevOps debe poseer. Además del conocimiento obvio de la metodología DevOps, esta persona debe tener experiencia en la administración de sistemas operativos Windows y Linux, así como experiencia con herramientas de automatización como , , . También debe ser capaz de escribir scripts y código en un par de lenguajes y entender las tecnologías de redes.
El ingeniero DevOps es responsable de toda la automatización de tareas relacionadas con la configuración y despliegue de aplicaciones. También supervisa el software. Para llevar a cabo estas tareas, utiliza diversos sistemas de gestión de configuraciones, soluciones de virtualización y herramientas en la nube para equilibrar recursos.
¿Quién contrata?
Los ingenieros DevOps pueden beneficiar a cualquier organización relacionada con el desarrollo de aplicaciones o la gestión de un gran número de servidores. Los ingenieros DevOps por gigantes de TI como Amazon, Adobe y Facebook. También trabajan en Netflix, Walmart y Etsy.
Los ingenieros de DevOps suelen trabajar en startups. Su tarea es lanzar un producto mínimamente viable para probar una nueva idea. En la mayoría de los casos, las startups pueden prescindir de DevOps.
¿Cuánto ganan?
Los ingenieros de DevOps más que nadie en la industria. El ingreso medio de estos especialistas en todo el mundo oscila entre 100,000 y 125,000 dólares al año.
En Estados Unidos, ellos 90,000 dólares al año (500,000 rublos al mes). En Canadá, ganan 122,000 dólares al año (670,000 rublos al mes), mientras que en el Reino Unido son 67,500 libras esterlinas al año (490,000 rublos al mes).
En lo que respecta a Rusia, las empresas de Moscú pagar a los especialistas en DevOps entre 100,000 y 200,000 rublos al mes. En San Petersburgo, los empleadores son un poco más generosos: ofrecen entre 160,000 y 360,000 rublos al mes. En las regiones, el salario indicado es de 100,000 a 120,000 rublos al mes.
Cómo convertirse en especialista en DevOps
DevOps es una dirección relativamente nueva en TI, por lo que no hay una lista establecida de requisitos para los ingenieros de DevOps. En las ofertas de trabajo, entre los requisitos para este puesto, se pueden encontrar tanto habilidades en la administración de Debian y CentOS como la capacidad para trabajar con arreglos de .
A partir de esto, se puede concluir que, ante todo, un ingeniero de DevOps debe tener un buen conocimiento técnico. Es importante para esa persona estudiar constantemente nuevas herramientas y tecnologías.
Es más fácil para un administrador de sistemas o un desarrollador convertirse en ingeniero de DevOps. Ellos ya poseen un conjunto de habilidades que solo necesitan desarrollar. La tarea principal es fortalecer el conjunto mínimo de conocimientos sobre DevOps, entender cómo trabajar con herramientas de automatización y llenar los vacíos en habilidades de administración, programación y virtualización.
Para identificar en qué áreas falta conocimiento, se puede utilizar o Los residentes de Hacker News también pueden leer los libros “» y «“ (que mencionamos anteriormente) y “” de O’Reilly Media.
También se puede suscribir a , leer artículos del portal temático y comenzar a comunicarse con ingenieros de DevOps en Además, vale la pena estudiar cursos gratuitos en o .
Publicaciones de nuestro blog:
Fuente: habr.com
