Entendemos cuál es la esencia de la metodología y a quién puede beneficiar.
También hablaremos sobre los especialistas de DevOps: sus tareas, salarios y habilidades.
Foto de Matt Moor / Flickr / CC BY-SA¿Qué es DevOps?
DevOps es una metodología de desarrollo de software cuya tarea es establecer la interacción de programadores y administradores de sistemas en una empresa. Si los profesionales de TI de diferentes departamentos no comprenden la esencia de las tareas de los demás, se demora el lanzamiento de nuevas aplicaciones y actualizaciones para ellos.
DevOps forma un ciclo de desarrollo "sin interrupciones", lo que ayuda a acelerar el lanzamiento del producto de software. La aceleración se logra mediante la introducción de sistemas de automatización. Además, los programadores comienzan a participar en la configuración de servidores y la búsqueda de errores, por ejemplo, pueden escribir pruebas automatizadas.
Por lo tanto, se establece la interacción entre los departamentos. Los empleados comienzan a comprender mejor qué etapas atraviesa un producto de software antes de caer en manos del usuario.
Cuando el desarrollador comprenda a qué se enfrenta el administrador al configurar el servidor, intentará suavizar las posibles "esquinas agudas" en el código. Esto reduce la cantidad de errores al implementar la aplicación; según las estadísticas,
disminuye aproximadamente cinco veces.
¿Quién necesita y no necesita una metodología?
Muchos
expertos en TI creen que DevOps beneficiará a cualquier organización que desarrolle 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 la cultura DevOps ayudará a centrarse en la innovación.
Las startups
son una excepción, pero aquí todo depende del tamaño del proyecto. Si su objetivo es lanzar un producto mínimo viable (MVP) para probar una nueva idea, puede hacerlo sin DevOps. Por ejemplo, el fundador de Groupon al comienzo del trabajo en el servicio mismo
publicó manualmente todas las ofertas en el sitio y recogió los pedidos. No usó ninguna herramienta de automatización.
La implementación de una 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 publicación de actualizaciones.
Cómo implementar DevOps
Además, algunas recomendaciones para la transición a una nueva metodología.
Identificar problemas en los procesos de negocio. Antes de implementar la metodología, resalte los objetivos y problemas de la organización. La estrategia para cambiar a DevOps dependerá de ellos. Para hacer esto, haga una lista de preguntas, por ejemplo:
- ¿Qué toma más tiempo actualizar el software?
- ¿Es posible automatizar este proceso?
- ¿La estructura de la organización lo afecta?
Los detalles sobre la identificación de problemas en la organización
se pueden encontrar en los libros "
Proyecto Phoenix" y "
Guía DevOps " de los autores de la metodología.
Cambiar la cultura en la empresa. Es importante convencer a todos los empleados para que cambien sus formas habituales de trabajo y amplíen su gama de competencias. Por ejemplo, en Facebook, todos los programadores
son responsables del ciclo de vida completo de la aplicación: desde la escritura del código hasta la implementación. También en Facebook no hay un departamento de pruebas separado: las pruebas son escritas por los propios desarrolladores.
Comience pequeño. Elija el proceso que requiera más tiempo y esfuerzo al lanzar actualizaciones, y automatícelo. Esto
puede ser un proceso de prueba o implementación de la aplicación. Los expertos
aconsejan lo primero para implementar herramientas de control de versiones distribuidas. Con ellos es más fácil administrar la fuente. Entre estas soluciones, las más famosas son Git, Mercurial, Subversion (SVN) y CVS.
También vale la pena prestar atención a los sistemas de integración continua responsables del montaje y las pruebas del producto final. Ejemplos de tales herramientas son Jenkins, TeamCity y Bamboo.
Medir mejoras. Desarrolle métricas de la efectividad de las soluciones integradas y cree una lista de verificación. Las métricas pueden ser la frecuencia de los lanzamientos, el tiempo dedicado a trabajar en las funciones del software y la cantidad 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 cuando optimice aún más sus procesos.
Críticas de DevOps
Aunque la metodología
ayuda a las organizaciones a tomar decisiones sobre el desarrollo de aplicaciones más rápido,
reduce la cantidad de errores de software y alienta a los empleados a aprender cosas nuevas, también tiene críticas.
Se
cree que los programadores no deben comprender los detalles del trabajo de los administradores del sistema. Supuestamente, DevOps lleva al hecho de que, en lugar de especialistas en desarrollo o administración, aparecen personas en la empresa que entienden todo, pero superficialmente.
También se cree que DevOps
no funciona con una gestión deficiente. 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 necesitamos una nueva metodología, sino un sistema para evaluar gerentes basado en la retroalimentación de los subordinados. Aquí puede leer
qué preguntas deben incluirse en los formularios de la encuesta para empleados .
Foto Ed Ivanushkin / Flickr / CC BY-SA¿Quién es un ingeniero de DevOps?
El ingeniero DevOps está implementando la metodología DevOps. Sincroniza todas las etapas de la creación de un producto de software: desde escribir código hasta probar y lanzar una aplicación. Dicho especialista controla los departamentos de desarrollo y administración, además de automatizar la ejecución de sus tareas mediante la introducción de diversas herramientas de software.
La característica del ingeniero DevOps es que combina muchas profesiones: administrador, desarrollador, probador y gerente.
Joe Sánchez, evangelista de DevOps en VMware, una compañía de software de virtualización,
describió una serie de habilidades que un ingeniero de DevOps debe poseer. Además del conocimiento obvio de la metodología DevOps, esta persona debe tener experiencia en la administración de Windows y Linux y experiencia con herramientas de automatización como
Chef ,
Puppet ,
Ansible . También debería poder escribir scripts y códigos en un par de idiomas y comprender las tecnologías de red.
El ingeniero DevOps es responsable de cualquier automatización de tareas relacionadas con la configuración y el despliegue de aplicaciones. El monitoreo de software también descansa sobre sus hombros. Para resolver estos problemas, utiliza varios sistemas de gestión de configuración, soluciones de virtualización y herramientas en la nube para equilibrar los recursos.
Quien contrata
Los ingenieros de DevOps pueden beneficiar a cualquier organización cuyo negocio implique el desarrollo de aplicaciones o la administración de una gran cantidad de servidores. Gigantes de TI como Amazon, Adobe y Facebook están
contratando ingenieros de DevOps. También trabajan para Netflix, Walmart y Etsy.
Solo las startups
no contratan ingenieros de DevOps. 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.
Cuanto pagan
Los ingenieros de DevOps
ganan más en la industria. El salario promedio de tales especialistas en el mundo es de 100 a 125 mil dólares al año.
En los Estados Unidos
reciben 90 mil dólares al año (500 mil rublos al mes). En Canadá, se
les paga 122 mil dólares al año (670 mil rublos al mes), y en el Reino Unido: 67.5 mil libras al año (490 mil rublos al mes).
En cuanto a Rusia, las compañías de Moscú
están listas para pagar a los especialistas de DevOps de 100 a 200 mil rublos al mes. En San Petersburgo, los empleadores son un poco más generosos: ofrecen entre 160 y 360 mil rublos al mes. En las regiones, el salario es de 100-120 mil rublos por mes.
Cómo convertirse en un especialista de DevOps
DevOps es una dirección relativamente nueva en TI, por lo que no existe una lista establecida de requisitos para los ingenieros de DevOps. En las vacantes, los requisitos para este puesto incluyen las habilidades de administración de Debian y CentOS y la capacidad de trabajar con
matrices de discos
RAID .
En base a esto, podemos concluir que, en primer lugar, el ingeniero DevOps debe tener una buena perspectiva técnica. Es importante que una persona así aprenda constantemente nuevas herramientas y tecnologías.
La forma más fácil de convertirse en ingeniero de DevOps será mediante el administrador o desarrollador del sistema. Ya tienen una serie de habilidades que solo necesitan desarrollarse. La tarea principal es reforzar un conjunto mínimo de conocimientos sobre DevOps, comprender cómo trabajar con herramientas de automatización y llenar los vacíos en las habilidades de administración, programación y virtualización.
Para comprender dónde aún falta conocimiento, puede usar la
mini-Wikipedia en GitHub o un
mapa mental . Los residentes de Hacker News también
recomiendan leer los libros Proyecto
Phoenix y la
Guía de DevOps (que mencionamos anteriormente) y la
Filosofía de DevOps. The Art of IT Management ”bajo la firma de O'Reilly Media.
También puede suscribirse al
boletín semanal Devops , leer artículos del
portal temático DZone y comenzar a chatear con los ingenieros de DevOps en el
chat de Slack . También vale la pena explorar cursos gratuitos en
Udacity o
edX .
Publicaciones de nuestro blog: