Por que é necesario DevOps e quen son especialistas en DevOps?

Cando unha aplicación non funciona, o último que queres escoitar dos teus compañeiros é a frase "o problema está do teu lado". Como resultado, os usuarios sofren e non lles importa que parte do equipo sexa responsable da avaría. A cultura DevOps xurdiu precisamente para unir o desenvolvemento e o apoio arredor dunha responsabilidade compartida polo produto final.

Que prácticas se inclúen no concepto de DevOps e por que son necesarias? Que fan os enxeñeiros de DevOps e que deberían ser capaces de facer? Os expertos de EPAM responden a estas e outras preguntas: Kirill Sergeev, enxeñeiro de sistemas e evanxelista de DevOps, e Igor Boyko, enxeñeiro de sistemas líder e coordinador dun dos equipos DevOps da compañía.

Por que é necesario DevOps e quen son especialistas en DevOps?

Por que é necesario DevOps?

Anteriormente, había unha barreira entre os desenvolvedores e o soporte (as chamadas operacións). Parece paradoxal, pero tiñan obxectivos e KPI diferentes, aínda que facían o mesmo. O obxectivo do desenvolvemento era implementar os requisitos comerciais o máis rápido posible e engadilos a un produto que funcione. O soporte foi o responsable de garantir que a aplicación funcionase de forma estable e calquera cambio puxo en risco a estabilidade. Hai un conflito de intereses: apareceu DevOps para solucionalo.

Que é DevOps?

É unha boa pregunta, e controvertida: o mundo aínda non se puxo de acordo sobre isto. EPAM cre que DevOps combina tecnoloxías, procesos e unha cultura de interacción dentro dun equipo. Esta asociación ten como obxectivo ofrecer valor continuamente aos usuarios finais.

Kirill Sergeev: "Os desenvolvedores escriben código, os probadores o revisan e os administradores implantan o produto final na produción. Durante moito tempo, estas partes do equipo estiveron algo dispersas, e entón xurdiu a idea de unilos mediante un proceso común. Así apareceron as prácticas de DevOps".

Chegou o día no que os desenvolvedores e os enxeñeiros de sistemas se interesaron polo traballo dos outros. A barreira entre produción e apoio comezou a desaparecer. Así xurdiu DevOps, que inclúe prácticas, cultura e interacción en equipo.

Por que é necesario DevOps e quen son especialistas en DevOps?

Cal é a esencia da cultura DevOps?

O caso é que a responsabilidade do resultado final é de cada membro do equipo. O máis interesante e difícil da filosofía DevOps é entender que unha persoa específica non só é responsable da súa propia etapa de traballo, senón que é responsable de como funcionará todo o produto. O problema non está de ninguén, é compartido e cada membro do equipo axuda a resolvelo.

O máis importante nunha cultura DevOps é resolver o problema, non só aplicar prácticas DevOps. Ademais, estas prácticas non se implementan "do lado de alguén", senón en todo o produto. Un proxecto non necesita un enxeñeiro de DevOps per se, necesita unha solución a un problema e o papel dun enxeñeiro de DevOps pódese distribuír entre varios membros do equipo con diferentes especializacións.

Cales son os tipos de prácticas de DevOps?

As prácticas de DevOps abarcan todas as etapas do ciclo de vida do software.

Igor Boyko: "O caso ideal é cando comezamos a usar as prácticas de DevOps xusto no inicio dun proxecto. Conxuntamente cos arquitectos, planificamos que tipo de paisaxe arquitectónica terá a aplicación, onde se situará e como escalar, e eliximos unha plataforma. Hoxe en día está de moda a arquitectura de microservizos, para iso escollemos un sistema de orquestración: cómpre poder xestionar cada elemento da aplicación por separado e actualizalo independentemente dos outros. Outra práctica é "infraestrutura como código". Este é o nome dun enfoque no que a infraestrutura do proxecto é creada e xestionada mediante código, en lugar da interacción directa cos servidores.

A continuación pasamos á fase de desenvolvemento. Unha das prácticas máis importantes aquí é a creación de CI/CD: cómpre axudar aos desenvolvedores a integrar os cambios no produto rapidamente, en pequenas porcións, con máis frecuencia e sen dor. CI/CD abrangue a revisión do código, a carga do mestre na base de código e a implantación da aplicación en ambientes de proba e produción.

Nas etapas CI/CD, o código pasa por portas de calidade. Coa súa axuda, comproban que o código que sae da estación de traballo do programador cumpre os criterios de calidade especificados. Aquí engádense as probas unitarias e de IU. Para unha implantación de produtos rápida, sen dor e centrada, pode escoller o tipo de implantación adecuado.

Os profesionais de DevOps tamén teñen un lugar na fase de apoio ao produto acabado. Utilízanse para supervisar, retroalimentar, segurar e introducir cambios. DevOps analiza todas estas tarefas desde unha perspectiva de mellora continua. Minimizamos as operacións repetitivas e automatizámolas. Isto tamén inclúe migracións, expansión de aplicacións e soporte de rendemento".

Cales son os beneficios das prácticas de DevOps?

Se estivésemos escribindo un libro de texto sobre prácticas modernas de DevOps, habería tres puntos na primeira páxina: automatización, aceleración dos lanzamentos e comentarios rápidos dos usuarios.

Kirill Sergeev: “O primeiro é a automatización. Podemos automatizar todas as interaccións do equipo: escribiu o código - lanzouno - comprobouno - instalouno - recolleu comentarios - volveu ao principio. Todo isto é automático.

O segundo é acelerar o lanzamento e incluso simplificar o desenvolvemento. Sempre é importante para o cliente que o produto entre no mercado canto antes e comece a proporcionar beneficios antes que os análogos dos competidores. O proceso de entrega do produto pódese mellorar infinitamente: reducir o tempo, engadir marcas de control adicionais, mellorar a vixilancia.

En terceiro lugar, a aceleración dos comentarios dos usuarios. Se ten comentarios, podemos facer axustes inmediatamente e actualizar a aplicación inmediatamente.

Por que é necesario DevOps e quen son especialistas en DevOps?

Como se relacionan os conceptos de "enxeñeiro de sistemas", "enxeñeiro de construción" e "enxeñeiro de DevOps"?

Superpóñense, pero pertencen a zonas lixeiramente diferentes.

Enxeñeiro de sistemas en EPAM é un posto. Veñen en diferentes niveis: dende junior ata especialista xefe.

Un enxeñeiro de construción é máis un papel que se pode desempeñar nun proxecto. Agora así se chaman os responsables de CI/CD.

Un enxeñeiro de DevOps é un especialista que implementa prácticas de DevOps nun proxecto.

Se resumimos todo, obtemos algo así: unha persoa no posto de enxeñeiro de sistemas desempeña o papel de enxeñeiro de construción nun proxecto e está implicado na implementación das prácticas de DevOps alí.

Que fai exactamente un enxeñeiro de DevOps?

Os enxeñeiros de DevOps reuniron todas as pezas que compoñen un proxecto. Coñecen as particularidades do traballo de programadores, probadores, administradores de sistemas e axudan a simplificar o seu traballo. Entenden as necesidades e requisitos da empresa, o seu papel no proceso de desenvolvemento e constrúen o proceso tendo en conta os intereses do cliente.

Falamos moito sobre automatización: isto é o que tratan os enxeñeiros de DevOps en primeiro lugar. Trátase dun punto moi grande, que, entre outras cousas, inclúe a preparación do medio ambiente.

Kirill Sergeev: "Antes de implementar actualizacións no produto, deben ser probadas nun ambiente de terceiros. Está preparado por enxeñeiros de DevOps. Inculcan unha cultura DevOps no proxecto no seu conxunto: introducen prácticas DevOps en todas as capas dos seus proxectos. Estes tres principios: automatización, simplificación e aceleración, levan a onde poden chegar".

Que debería saber un enxeñeiro de DevOps?

En xeral, debe ter coñecementos de diferentes áreas: programación, traballo con sistemas operativos, bases de datos, sistemas de montaxe e configuración. Estes compleméntanse coa capacidade de traballar con infraestruturas na nube, sistemas de orquestración e monitorización.

1. Linguaxes de programación

Os enxeñeiros de DevOps coñecen varias linguaxes básicas para a automatización e poden, por exemplo, dicirlle a un programador: "Que tal se instala o código non a man, senón usando o noso script, que automatiza todo? Prepararemos un ficheiro de configuración para el, será conveniente para ti e nós lelo, e poderemos cambialo en calquera momento. Tamén veremos quen, cando e por que fai cambios".

Un enxeñeiro de DevOps pode aprender un ou máis destes idiomas: Python, Groovy, Bash, Powershell, Ruby, Go. Non é necesario coñecelos a un nivel profundo: os conceptos básicos da sintaxe, os principios de POO e a capacidade de escribir scripts sinxelos para a automatización son suficientes.

2. Sistemas operativos

Un enxeñeiro de DevOps debe comprender en que servidor se instalará o produto, en que ambiente se executará e con que servizos interactuará. Podes optar por especializarte en Windows ou na familia Linux.

3. Sistemas de control de versións

Sen coñecemento dun sistema de control de versións, un enxeñeiro de DevOps non está en ningunha parte. Git é un dos sistemas máis populares neste momento.

4. Provedores de nube

AWS, Google, Azure, especialmente se falamos da dirección de Windows.

Kirill Sergeev: “Os provedores de nube ofrécennos servidores virtuais que se adaptan perfectamente a CI/CD.

A instalación de dez servidores físicos require uns cen operacións manuais. Cada servidor debe iniciarse manualmente, instalar e configurar o sistema operativo necesario, instalar a nosa aplicación nestes dez servidores e, a continuación, comprobar todo dez veces. Os servizos na nube substitúen este procedemento por dez liñas de código e un bo enxeñeiro de DevOps debería poder operar con elas. Isto aforra tempo, esforzo e diñeiro, tanto para o cliente como para a empresa".

5. Sistemas de orquestración: Docker e Kubernetes

Kirill Sergeev: “Os servidores virtuais están divididos en contedores, en cada un dos cales podemos instalar a nosa aplicación. Cando hai moitos contedores, cómpre xestionalos: activar un, desactivar outro, facer copias de seguridade nalgún lugar. Isto vólvese bastante complexo e require un sistema de orquestración.

Anteriormente, cada aplicación era xestionada por un servidor separado; calquera cambio no seu funcionamento podía afectar a funcionalidade da aplicación. Grazas aos contedores, as aplicacións quedan illadas e execútanse por separado, cada unha na súa propia máquina virtual. Se se produce un fallo, non hai que perder tempo buscando a causa. É máis fácil destruír o recipiente antigo e engadir un novo".

6. Sistemas de configuración: Chef, Ansible, Puppet

Cando necesitas manter toda unha flota de servidores, tes que facer moitas operacións do mesmo tipo. É longo e difícil, e o traballo manual tamén aumenta as posibilidades de erro. Aquí é onde os sistemas de configuración veñen ao rescate. Coa súa axuda, crean un script que é fácil de ler para programadores, enxeñeiros de DevOps e administradores de sistemas. Este script axuda a realizar as mesmas operacións nos servidores automaticamente. Isto reduce as operacións manuais (e polo tanto os erros).

Que tipo de carreira pode construír un enxeñeiro de DevOps?

Pódese desenvolver tanto horizontal como verticalmente.

Igor Boyko: "Desde o punto de vista do desenvolvemento horizontal, os enxeñeiros de DevOps teñen agora as perspectivas máis amplas. Todo cambia constantemente e podes desenvolver habilidades en diversas áreas: desde sistemas de control de versións ata monitorización, desde xestión de configuración ata bases de datos.

Podes converterte nun arquitecto de sistemas se un empregado está interesado en comprender como funciona unha aplicación en todas as etapas do seu ciclo de vida, desde o desenvolvemento ata o soporte".

Como converterse en enxeñeiro DevOps?

  1. Lea o proxecto Phoenix e o manual DevOps. Estes son os verdadeiros piares da filosofía DevOps, sendo o primeiro unha obra de ficción.
  2. Aprende tecnoloxías da lista anterior: pola túa conta ou mediante cursos en liña.
  3. Únete como enxeñeiro de DevOps a un proxecto de código aberto.
  4. Practica e ofrece prácticas DevOps nos teus proxectos persoais e laborais.

Fonte: www.habr.com

Engadir un comentario