Como se tornar um engenheiro de DevOps em seis meses ou até mais rápido. Parte 1. Introdução

O público alvo


Você é um desenvolvedor que deseja mudar sua carreira para um modelo de DevOps mais avançado? Você é um engenheiro de operações clássicas e gostaria de ter uma idéia do que significa DevOps? Ou você não é nem um nem o outro e, tendo passado algum tempo trabalhando no campo das tecnologias de TI, deseja mudar de emprego e não tem idéia por onde começar?
Nesse caso, continue lendo para descobrir como você pode se tornar um engenheiro de DevOps de nível médio em seis meses! Por fim, se você estiver envolvido no DevOps há muitos anos, ainda poderá extrair muitas informações úteis desta série de artigos e descobrir onde está o setor de integração e automação no momento e onde está se esforçando para se desenvolver.



O que é isso tudo?


Primeiro, o que é DevOps? Você pode pesquisar nas definições do google e passar por toda essa casca verbal, mas esteja ciente de que a maioria das definições são apenas um amontoado de palavras agrupadas em uma forma simplificada. Portanto, darei a você um extrato de todas essas definições: O DevOps é uma maneira de fornecer software no qual a dor de cabeça e a responsabilidade são compartilhadas entre todos os envolvidos. Isso é tudo.

OK, mas o que significa essa redução? Isso significa que tradicionalmente os desenvolvedores (pessoas que criam software) em seu trabalho eram guiados por incentivos que diferiam significativamente dos incentivos das operações (operadores ou pessoas que gerenciam software). Por exemplo, como desenvolvedor, quero criar o maior número possível de novos recursos. Afinal, este é o meu trabalho, e é exatamente isso que os clientes exigem! No entanto, se eu sou uma pessoa Ops, preciso do mínimo de novos recursos possível, porque cada nova função é uma alteração e qualquer alteração está repleta de defeitos. Como resultado de tais incentivos de inconsistência, o DevOps nasceu.

O DevOps está tentando combinar desenvolvimento e operações (integração e automação) em um grupo. A idéia é que agora um grupo compartilhe tanto dor quanto responsabilidade (e provavelmente recompensa) pela criação, implantação e geração de receita com software orientado ao cliente.

Os puristas lhe dirão que não existe um "engenheiro de DevOps". "O DevOps é uma cultura, não uma função", eles dirão. É claro que eles estão certos do ponto de vista técnico, mas, como geralmente acontece, esse termo saiu Além de seu significado original, um engenheiro de DevOps é um pouco "engenheiro de sistema 2.0". Em outras palavras, ele entende o ciclo de vida de desenvolvimento de software e cria ferramentas e processos de desenvolvimento de software para resolver problemas operacionais clássicos.



Por fim, o DevOps significa criar pipelines digitais que pegam o código do laptop de um desenvolvedor e o transformam em receita com o uso do produto final. Esse é o ponto. Preste atenção ao fato de que a escolha de carreira do DevOps é altamente compensada por recompensas financeiras, e quase todas as empresas “fazem DevOps” ou afirmam ser. Independentemente de onde essas empresas estão localizadas, as oportunidades gerais de emprego como DevOps são bastante altas e implicam em empregos divertidos e significativos nos próximos anos.

No entanto, tenha cuidado com as empresas que contratam uma "equipe de DevOps" ou "departamento de DevOps". Estritamente falando, essas coisas não deveriam existir, porque, em última análise, o DevOps ainda é uma cultura e uma maneira de fornecer software, em vez de contratar uma equipe nova ou criar departamento com um nome elegante.

Negação de responsabilidade


Agora, deixe de lado um copo de Cool-Ad por um momento e pense no seguinte. Você já ouviu o velho ditado "Os engenheiros Junior DevOps não existem?" Caso contrário, lembre-se de que essa é uma trilha popular no Reddit e no StackOverflow. Mas o que ele quer dizer?

Em termos simples, essa frase significa que são necessários muitos anos de experiência, combinados com um sólido entendimento das ferramentas, para finalmente se tornar um praticante sênior de DevOps verdadeiramente eficaz. E, infelizmente, não há atalho para atingir a meta. Portanto, essa não é uma tentativa de enganar o sistema - não acho que você possa fingir ser um engenheiro sênior de DevOps com vários meses de experiência neste setor. Alcançar um entendimento claro das ferramentas e metodologias que mudam rapidamente exige muitos anos de experiência e não há como contornar isso. No entanto, existe um menu quase consistente (elegante, se você preferir) de ferramentas e conceitos usados ​​pela maioria das empresas, e é isso que será discutido.

Novamente, as ferramentas são diferentes das habilidades; portanto, enquanto você as aprende, não as negligencie (pesquisas, redes, comunicação escrita, solução de problemas etc.). Acima de tudo, não perca de vista o que queremos encontrar - uma maneira de criar um pipeline digital totalmente automatizado que pega idéias e as transforma em fragmentos de código geradores de receita. Esta é a única e mais importante conclusão deste artigo inteiro!

Pare de falar, quando posso começar?


Abaixo está o roteiro do Conhecimento Fundamental do DevOps. Depois de dominar tudo o que é descrito lá, você pode se chamar com segurança e honestidade de engenheiro de DevOps! Ou um engenheiro de nuvem, se você não gosta do nome "DevOps".



Este mapa reflete minha (e provavelmente a maioria das pessoas que trabalha neste espaço) do que um engenheiro competente do DevOps deve saber. No entanto, isso é apenas uma opinião e, é claro, haverá divergências. Isto é normal! Aqui, não buscamos a excelência, buscamos uma base sólida sobre a qual realmente construímos.

Você tem que seguir esse caminho gradualmente, camada por camada. Iniciar (e continuar!) Segue os fundamentos, examinando primeiro os elementos marcados em azul - Linux, Python e AWS. Então, se o tempo ou a demanda no mercado de trabalho permitir, faça coisas púrpuras como Golang e Google Cloud.

Honestamente, a camada superior fundamental é algo que você terá que estudar sem parar. OS Linux é muito complexo e leva anos para dominar. O Python requer prática constante para se manter atualizado. A AWS está se desenvolvendo tão rápido que o que você sabe hoje em um ano será apenas parte de seu portfólio geral de conhecimentos. Depois de aprender o básico, passe para um conjunto real de habilidades. Observe que existem 6 colunas azuis no total (Configuração, Versão, Embalagem, Implantação, Inicialização, Monitoramento), uma para um mês de estudo.



Obviamente, você notou a ausência de uma etapa importante em nosso pipeline de seis meses - testes. Eu deliberadamente não o incluí no roteiro, porque escrever um módulo, testes de integração e aceitação não são fáceis e tradicionalmente caem sobre os ombros dos desenvolvedores. E a omissão da fase de "teste" é explicada pelo fato de que o objetivo deste roteiro é dominar habilidades e ferramentas básicas o mais rápido possível. A falta de experiência em testes, de acordo com o autor, é apenas um pequeno obstáculo ao uso adequado do DevOps.

Além disso, lembre-se de que não estamos estudando um monte de balbucios técnicos não relacionados aqui, mas nos esforçando para entender as ferramentas que, em um único pacote, criam uma história compreensível. Esta história é uma automação de processo de ponta a ponta - um transportador digital que move bits como uma linha de montagem. Você não quer aprender várias ferramentas e parar constantemente! O kit de ferramentas do DevOps está mudando rapidamente e os conceitos são muito menos comuns. Portanto, você deve se esforçar para usar ferramentas como proxies de treinamento para conceitos de nível superior.

Ok, vamos cavar um pouco mais fundo!

Conhecimento fundamental


No topo da linha com as palavras Foundation, você vê as habilidades que todo engenheiro de DevOps precisa dominar. Essas habilidades são uma manipulação segura dos três "pilares" da indústria, que são: o sistema operacional, a linguagem de programação e a nuvem pública. Essas coisas não são algo com o qual você possa se familiarizar rapidamente e ir além. Essas habilidades precisam ser constantemente aprimoradas e aperfeiçoadas para dominá-las, a fim de estar na vanguarda da indústria e atualizar o ambiente profissional ao seu redor. Vamos passar por eles por sua vez.

Linux é onde tudo funciona. Você pode ser um ótimo praticante de DevOps enquanto permanece totalmente dentro do ecossistema da Microsoft? Certamente você pode! Não há lei que usaria apenas o Linux. No entanto, lembre-se - apesar de todas as coisas do Linux poderem ser feitas no Windows, isso acontece muito mais dolorosamente e com menos funcionalidade. No momento, podemos assumir com segurança que, sem o conhecimento do Linux, é impossível se tornar um verdadeiro profissional de DevOps; portanto, o Linux é o que você deve estudar e estudar.

Honestamente, a melhor maneira de fazer isso é simplesmente instalar o Linux (Fedora ou Ubuntu) em casa e usá-lo o máximo possível. Obviamente, você quebrará várias coisas, ficará preso nos processos de trabalho, terá que consertar tudo, mas aprenderá o Linux!



A propósito, as variantes do RedHat são mais comuns na América do Norte, por isso faz sentido começar com o Fedora ou o CentOS. Se você está se perguntando se deve comprar o KDE ou a edição Gnome, selecione KDE. É isso que o próprio Linus Torvalds usa.

Atualmente, o Python é a linguagem de back-end dominante. É fácil começar, é amplamente usado. O Python é muito comum no campo da inteligência artificial e do aprendizado de máquina; portanto, se você quiser mudar para outro campo ativo de atividade, estará totalmente preparado para isso.



Amazon Web Services: Novamente, é impossível se tornar um profissional experiente em DevOps sem uma sólida compreensão de como a nuvem pública funciona. E se você quiser saber mais sobre isso, consulte Amazon Web Services. Este é um player líder no campo de serviços, que oferece o conjunto mais rico de ferramentas de trabalho.

Posso começar com o Google Cloud ou Azure? Certo! Mas, lembrando-se da mais recente crise financeira, note-se que a AWS é a opção mais segura, pelo menos em 2018, pois permite registrar uma conta gratuitamente e começar a explorar os recursos dos serviços em nuvem. Além disso, o console da AWS fornece ao usuário um menu simples e intuitivo para seleção. A boa notícia é que você não precisa conhecer todas as tecnologias da Amazon para isso.



Comece com o seguinte: VPC, EC2, IAM, S3, CloudWatch, ELB (Elastic Load Balancing sob o disfarce do EC2) e Security Group. Essas coisas são suficientes para começar, e toda empresa moderna baseada na nuvem está usando ativamente essas ferramentas. O site de treinamento da AWS é um bom lugar para começar.

Eu recomendo que você gaste 20 a 30 minutos diariamente aprendendo e praticando com a linguagem Python, o sistema operacional Linux e o serviço de nuvem da AWS, além de outras coisas que você precisará aprender. Em geral, acredito que gastar uma hora por dia, cinco vezes por semana, é suficiente para entender os processos no setor de DevOps por 6 meses ou menos. Há um total de 6 componentes principais, cada um dos quais corresponde a um mês de treinamento. É tudo o que você precisa para adquirir conhecimentos básicos.
Nos artigos subsequentes, consideraremos o seguinte nível de complexidade: como automatizar totalmente a configuração, versão, empacotamento, implantação, lançamento e monitoramento de software.

Como se tornar um engenheiro de DevOps em seis meses ou até mais rápido. Parte 2: Configuração

Um pouco de publicidade :)


Obrigado por ficar com a gente. Você gosta dos nossos artigos? Deseja ver materiais mais interessantes? Ajude-nos fazendo um pedido ou recomendando aos seus amigos o VPS baseado em nuvem para desenvolvedores a partir de US $ 4,99 , um analógico exclusivo de servidores básicos que foi inventado por nós para você: Toda a verdade sobre o VPS (KVM) E5-2697 v3 (6 núcleos) 10GB DDR4 480GB SSD 1Gbps de 10GB de US $ 19 ou como dividir o servidor? (as opções estão disponíveis com RAID1 e RAID10, até 24 núcleos e até 40GB DDR4).

Dell R730xd 2 vezes mais barato no data center Equinix Tier IV em Amsterdã? Somente nós temos 2 TVs Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 TV a partir de US $ 199 na Holanda!Dell R420 - 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB - a partir de US $ 99! Leia sobre como construir infraestrutura classe c usando servidores Dell R730xd E5-2650 v4 que custam 9.000 euros por um centavo?

All Articles