O que é a metodologia DevOps e para quem ela serve?

Vamos entender a essência da metodologia e quem pode se beneficiar dela.

Também falaremos sobre especialistas em DevOps: suas tarefas, salários e habilidades.

O que é a metodologia DevOps e para quem ela serve?
Foto Matt Moor / Flickr / CC BY-SA

O que é DevOps

DevOps é uma metodologia de desenvolvimento de software cujo objetivo é facilitar a interação entre programadores e administradores de sistemas na empresa. Quando especialistas de TI de diferentes departamentos não compreendem a essência das tarefas uns dos outros, o lançamento de novos aplicativos e suas atualizações é atrasado.

DevOps cria um ciclo de desenvolvimento "sem costura", ajudando, assim, a acelerar a entrega do produto de software. Essa aceleração é alcançada através da implementação de sistemas de automação. Além disso, os programadores começam a participar da configuração de servidores e da busca de bugs; por exemplo, eles podem escrever testes automatizados.

Dessa forma, a interação entre os departamentos se estabelece. Os funcionários começam a entender melhor quais etapas o produto de software passa antes de chegar às mãos do usuário.

Quando um desenvolvedor entende com o que um administrador lidou ao configurar o servidor, ele tentará suavizar possíveis "arestas" no código. Isso reduz a quantidade de bugs ao implantar o aplicativo — estatisticamente, ela diminui em cerca de cinco vezes.

Quem precisa e quem não precisa da metodologia

Muitos especialistas em TI acreditam, que o DevOps será benéfico para qualquer organização que esteja envolvida no desenvolvimento de software. Isso é verdade mesmo que a empresa seja apenas uma consumidora de serviços de TI e não desenvolva seus próprios aplicativos. Nesse caso, a implementação da cultura DevOps ajudará a se concentrar nas inovações.

A exceção são startups, mas mesmo aqui tudo depende da escala do projeto. Se seu objetivo é lançar um produto mínimo viável (minimum viable product, MVP) para testar uma nova ideia, você pode dispensar o DevOps. Por exemplo, o fundador do Groupon, no início do trabalho no serviço, mesmo manualmente publicava todas as ofertas no site e coletava pedidos. Nenhuma ferramenta de automação foi utilizada.

Implementar a metodologia e as ferramentas de automação só faz sentido quando o aplicativo começa a ganhar popularidade. Isso ajudará a estabelecer processos de negócios e acelerar o lançamento de atualizações.

Como implementar o DevOps

A seguir, algumas recomendações para a transição para a nova metodologia.

Identifique problemas nos processos de negócios. Antes de implementar a metodologia, defina as metas e os problemas da organização. A estratégia de transição para DevOps dependerá disso. Para isso, elabore uma lista de perguntas, como:

  • Onde está sendo gasto mais tempo na atualização de software?
  • Esse processo pode ser automatizado?
  • A estrutura da organização influencia isso?

Você pode ler detalhes sobre a identificação de problemas na organização em livros. «Projeto "Fênix"” e “Guia de DevOpsde autores da metodologia.

Mude a cultura da empresa. É importante convencer todos os colaboradores a alterar seus métodos de trabalho habituais e expandir suas competências. Por exemplo, no Facebook, todos os programadores são responsáveis pelo ciclo de vida completo da aplicação: desde a escrita do código até a implementação. No Facebook, também não existe um departamento de testes separado — os próprios desenvolvedores escrevem os testes.

Comece pequeno. Escolha o processo que consome mais tempo e esforço na liberação de atualizações e automatize-o. Isso pode ser testes ou o processo de implantação de aplicações. Especialistas recomendam implementar primeiramente ferramentas de controle de versão distribuído. Elas facilitam o gerenciamento dos códigos-fonte. Entre essas soluções, as mais conhecidas são Git, Mercurial, Subversion (SVN) e CVS.

Vale a pena também prestar atenção aos sistemas de integração contínua, responsáveis pela construção e teste do produto final. Exemplos dessas ferramentas incluem Jenkins, TeamCity e Bamboo.

Avalie as melhorias. Desenvolva métricas de desempenho para as soluções implementadas e crie uma lista de verificação. As métricas podem incluir a frequência de lançamentos, o tempo de trabalho em funcionalidades do software e o número de bugs no código. Discuta os resultados não apenas com os gerentes, mas também com o restante da equipe envolvida no projeto. Pergunte que ferramentas estão em falta. Considere esses pedidos em futuras otimizações de processos.

Críticas ao DevOps

Embora a metodologia ajude as organizações a tomarem decisões mais rápidas em relação ao desenvolvimento de aplicações, reduza o número de erros no software e incentive os colaboradores a aprenderem coisas novas, ela também tem seus críticos.

Há opinião, que os programadores não devem se preocupar com os detalhes do trabalho dos administradores de sistemas. Supostamente, o DevOps leva a que, em vez de especialistas em desenvolvimento ou administração, surgem pessoas que entendem de tudo, mas de forma superficial.

Também se acredita que o DevOps não funciona com uma má gestão. Se as equipes de desenvolvedores e administradores não têm objetivos comuns, isso é culpa dos gerentes que não organizam a interação entre as equipes. Para resolver esse problema, não é necessária uma nova metodologia, mas sim um sistema de avaliação de gerentes com base no feedback de seus subordinados. Aqui você pode ler quais questões devem ser incluídas nos formulários de pesquisa para os funcionários.

O que é a metodologia DevOps e para quem ela serve?
Foto Ed Ivanushkin / Flickr / CC BY-SA

Quem é um engenheiro DevOps

O engenheiro DevOps é responsável pela implementação da metodologia DevOps. Ele sincroniza todas as etapas da criação de um produto de software: desde a escrita do código até os testes e a liberação do aplicativo. Esse especialista controla os departamentos de desenvolvimento e administração, além de automatizar a execução das suas tarefas, implementando diversas ferramentas de software.

A qualidade do engenheiro DevOps é que ele combina várias profissões: administrador, desenvolvedor, testador e gerente.

Joe Sanchez, evangelista DevOps da VMware, uma empresa de software para virtualização, destacou uma série de habilidades que um engenheiro DevOps deve possuir. Além do conhecimento evidente da metodologia DevOps, essa pessoa deve ter experiência em administração de sistemas operacionais Windows e Linux e experiência com ferramentas de automação como Chef, Puppet, Ansible. Ele também deve ser capaz de escrever scripts e código em duas ou três linguagens e ter conhecimento em tecnologias de rede.

O engenheiro DevOps é responsável por toda a automação de tarefas relacionadas à configuração e implantação de aplicativos. É também sua responsabilidade monitorar o software. Para essas tarefas, ele aplica diversos sistemas de gerenciamento de configuração, soluções de virtualização e ferramentas em nuvem para balanceamento de recursos.

Quem contrata

Engenheiros DevOps podem trazer benefícios a qualquer organização que esteja envolvida no desenvolvimento de aplicativos ou na gestão de um grande número de servidores. Engenheiros DevOps são contratados por gigantes da TI como Amazon, Adobe e Facebook. Eles também trabalham na Netflix, Walmart e Etsy.

Não contratam Startup são os únicos que precisam de engenheiros DevOps. Sua tarefa é lançar um produto minimamente viável para testar uma nova ideia. Na maioria dos casos, as startups conseguem operar sem DevOps.

Quanto ganham

engenheiros DevOps ganham mais do que todos no setor. O ganho médio desses especialistas no mundo varia de 100 a 125 mil dólares por ano.

Nos EUA, eles recebem 90 mil dólares por ano (500 mil rublos por mês). No Canadá, eles pagam ganham 122 mil dólares por ano (670 mil rublos por mês), enquanto no Reino Unido ganham 67,5 mil libras esterlinas por ano (490 mil rublos por mês).

Quanto à Rússia, as empresas de Moscovo estão dispostas a pagar aos especialistas em DevOps entre 100 e 200 mil rublos por mês. Em São Petersburgo, os empregadores são um pouco mais generosos — oferecem de 160 a 360 mil rublos por mês. Nas regiões, os salários variam de 100 a 120 mil rublos por mês.

Como se tornar um especialista em DevOps

DevOps é uma área relativamente nova em TI, portanto, não há uma lista estabelecida de requisitos para engenheiros DevOps. Nas vagas, os requisitos podem incluir tanto habilidades em administrar Debian e CentOS quanto a capacidade de trabalhar com arrays de RAID..

Com base nisso, pode-se concluir que, acima de tudo, o engenheiro DevOps deve ter uma boa visão técnica. É importante para essa pessoa estudar constantemente novas ferramentas e tecnologias.

O mais fácil é se tornar um engenheiro DevOps para um administrador de sistemas ou um desenvolvedor. Eles já possuem uma série de habilidades que só precisam ser aprimoradas. A principal tarefa é adquirir um conjunto mínimo de conhecimentos em DevOps, entender como trabalhar com ferramentas de automação e preencher lacunas em habilidades de administração, programação e virtualização.

Para entender onde ainda faltam conhecimentos, pode-se utilizar uma mini-wiki no GitHub ou um mapa mental.Os residentes do Hacker News também recomendam ler os livros “Projeto "Fênix"” e “Guia de DevOps” (que mencionamos acima) e “A Filosofia DevOps. A Arte de Gerir TI” sob a editora O'Reilly Media.

Além disso, pode-se assinar a newsletter Devops Weekly, ler artigos do portal temático DZone e começar a interagir com engenheiros DevOps no Slack.Também vale a pena estudar cursos gratuitos em Udacity ou edX.

Postagens do nosso blog:



Fonte: habr.com

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster