Entendemos qual é a essência da metodologia e para quem ela pode se beneficiar.
Também falaremos sobre especialistas em DevOps: suas tarefas, salários e habilidades.
Foto de Matt Moor / Flickr / CC BY-SAO que é DevOps
O DevOps é uma metodologia de desenvolvimento de software cuja tarefa é estabelecer a interação de programadores e administradores de sistema em uma empresa. Se os profissionais de TI de diferentes departamentos não entenderem a essência das tarefas um do outro, o lançamento de novos aplicativos e atualizações será atrasado.
O DevOps forma um ciclo de desenvolvimento "contínuo", ajudando a acelerar o lançamento do produto de software. A aceleração é alcançada através da introdução de sistemas de automação. Além disso, os programadores começam a participar na configuração de servidores e na descoberta de bugs, por exemplo, eles podem escrever testes automatizados.
Assim, a interação entre departamentos é estabelecida. Os funcionários começam a entender melhor os estágios pelos quais um produto de software passa antes de cair nas mãos do usuário.
Quando o desenvolvedor entender com o que o administrador se depara ao configurar o servidor, ele tentará suavizar possíveis “ângulos agudos” no código. Isso reduz o número de erros ao implantar o aplicativo - de acordo com as estatísticas, ele
diminui cerca de cinco vezes.
Quem precisa e não precisa de uma metodologia
Muitos
especialistas em TI acreditam que o DevOps beneficiará qualquer organização que desenvolva software. Isso é verdade mesmo que a empresa seja uma simples 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 na inovação.
As startups
são uma exceção, mas aqui tudo depende do tamanho do projeto. Se seu objetivo é lançar um produto mínimo viável (MVP) para testar uma nova ideia, você pode fazer isso sem o DevOps. Por exemplo, o fundador da Groupon, no início do trabalho no serviço,
postou manualmente todas as ofertas no site e os pedidos coletados. Ele não usou nenhuma ferramenta de automação.
A implementação de uma metodologia e 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 DevOps
Além disso, algumas recomendações para a transição para uma nova metodologia.
Identifique problemas nos processos de negócios. Antes de implementar a metodologia, destaque os objetivos e os problemas da organização. A estratégia para mudar para o DevOps dependerá deles. Para fazer isso, faça uma lista de perguntas, por exemplo:
- Quanto tempo leva para atualizar o software?
- É possível automatizar esse processo?
- A estrutura da organização afeta isso?
Detalhes sobre a identificação de problemas na organização
podem ser encontrados nos livros "
Project Phoenix" e "
DevOps Guide " dos autores da metodologia.
Mude a cultura na empresa. É importante convencer todos os funcionários a mudar suas formas habituais de trabalhar e expandir sua gama de competências. Por exemplo, no Facebook, todos os programadores
são responsáveis por todo o ciclo de vida do aplicativo: da escrita de código à implementação. Também no Facebook não há departamento de testes separado - os testes são escritos pelos próprios desenvolvedores.
Comece pequeno. Escolha o processo que leva mais tempo e esforço ao liberar atualizações e automatize-o. Este
pode ser um processo de implantação de testes ou aplicativos. Especialistas
aconselham a primeira coisa a implementar ferramentas de controle de versão distribuída. Com eles, é mais fácil gerenciar a fonte. Entre essas soluções, as mais famosas são Git, Mercurial, Subversion (SVN) e CVS.
Também vale a pena prestar atenção nos sistemas de integração contínua responsáveis pela montagem e teste do produto final. Exemplos dessas ferramentas são Jenkins, TeamCity e Bamboo.
Medir melhorias. Desenvolva métricas da eficácia das soluções incorporadas e crie uma lista de verificação. Métricas podem ser a frequência de lançamentos, o tempo gasto trabalhando nas funções 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 quais ferramentas estão faltando. Lembre-se dessas solicitações ao otimizar ainda mais seus processos.
Crítica ao DevOps
Embora a metodologia
ajude as organizações a tomar decisões sobre o desenvolvimento de aplicativos mais rapidamente,
reduza o número de bugs de software e incentive os funcionários a aprender coisas novas, ela também tem críticas.
Acredita-
se que os programadores não devam entender os detalhes do trabalho dos administradores de sistema. Alegadamente, o DevOps leva ao fato de que, em vez de especialistas em desenvolvimento ou administração, aparecem pessoas na empresa que entendem tudo, mas superficialmente.
Também acredita-se que o DevOps
não funcione com um gerenciamento ruim. Se as equipes de desenvolvedores e administradores não têm objetivos comuns, a culpa é dos gerentes que não organizam a interação entre as equipes. Para resolver esse problema, não precisamos de uma nova metodologia, mas de um sistema para avaliar os gerentes com base no feedback dos subordinados. Aqui você pode ler
quais perguntas devem ser incluídas nos formulários da pesquisa para funcionários .
Foto Ed Ivanushkin / Flickr / CC BY-SAQuem é um engenheiro de DevOps
O engenheiro do DevOps está implementando a metodologia DevOps. Ele sincroniza todos os estágios da criação de um produto de software: da gravação de código ao teste e liberação de um aplicativo. Esse especialista controla os departamentos de desenvolvimento e administração, além de automatizar a execução de suas tarefas, apresentando várias ferramentas de software.
O recurso do engenheiro do DevOps é que ele combina muitas profissões: administrador, desenvolvedor, testador e gerente.
Joe Sanchez, evangelista de DevOps da VMware, uma empresa de software de virtualização,
descreveu várias habilidades que um engenheiro de DevOps deve possuir. Além do conhecimento óbvio da metodologia DevOps, essa pessoa deve ter experiência na administração do 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ódigos em alguns idiomas e entender as tecnologias de rede.
O engenheiro do DevOps é responsável por qualquer automação de tarefas relacionadas à configuração e implantação de aplicativos. O monitoramento de software também repousa sobre seus ombros. Para resolver esses problemas, ele usa vários sistemas de gerenciamento de configuração, soluções de virtualização e ferramentas de nuvem para equilibrar recursos.
Quem contrata
Os engenheiros do DevOps podem beneficiar qualquer organização cujos negócios envolvam o desenvolvimento de aplicativos ou o gerenciamento de um grande número de servidores. Gigantes de TI como Amazon, Adobe e Facebook estão
contratando engenheiros de DevOps. Eles também trabalham para Netflix, Walmart e Etsy.
Somente as startups
não contratam engenheiros de DevOps. A tarefa deles é lançar um produto minimamente viável para testar uma nova idéia. Na maioria dos casos, as startups podem ficar sem o DevOps.
Quanto eles pagam
Os engenheiros de DevOps
ganham o máximo do setor. O salário médio desses especialistas no mundo é de 100 a 125 mil dólares por ano.
Nos EUA,
recebem 90 mil dólares por ano (500 mil rublos por mês). No Canadá, eles
recebem 122 mil dólares por ano (670 mil rublos por mês) e no Reino Unido - 67,5 mil libras por ano (490 mil rublos por mês).
Quanto à Rússia, as empresas de Moscou
estão prontas para pagar aos especialistas em DevOps de 100 a 200 mil rublos por mês. Em São Petersburgo, os empregadores são um pouco mais generosos - eles oferecem de 160 a 360 mil rublos por mês. Nas regiões, o salário é de 100 a 120 mil rublos por mês.
Como se tornar um especialista em DevOps
O DevOps é uma direção relativamente nova em TI, portanto, não há uma lista estabelecida de requisitos para os engenheiros do DevOps. Nas vagas, os requisitos para esta posição incluem habilidades administrativas do Debian e CentOS e a capacidade de trabalhar com
matrizes RAID de disco.
Com base nisso, podemos concluir que, antes de tudo, o engenheiro do DevOps deve ter uma boa perspectiva técnica. É importante que essa pessoa aprenda constantemente novas ferramentas e tecnologias.
A maneira mais fácil de se tornar um engenheiro de DevOps será para o administrador ou desenvolvedor do sistema. Eles já possuem várias habilidades que precisam ser desenvolvidas. A principal tarefa é reforçar um conjunto mínimo de conhecimentos sobre DevOps, entender como trabalhar com ferramentas de automação e preencher as lacunas nas habilidades de administração, programação e virtualização.
Para entender onde ainda falta conhecimento, você pode usar a
mini-Wikipedia no GitHub ou um
mapa mental . Os residentes do Hacker News também
recomendam a leitura dos livros
Phoenix Project e o
DevOps Guide (que mencionamos acima) e a
DevOps Philosophy. The Art of IT Management ”, sob a assinatura de O'Reilly Media.
Você também pode assinar o
boletim informativo semanal da
Devops , ler os artigos do
portal temático DZone e começar a conversar com os engenheiros do DevOps no
Slack chat . Também vale a pena explorar cursos gratuitos sobre
Udacity ou
edX .
Posts do nosso blog: