Por onde começo a aprender DevOps?


10

Procurando "como começar com DevOps" realmente não ajuda, como, muitos deles, como este e este , bem como muitos outros realmente não apontar-me no caminho certo. Cada vídeo youtube eu tenho visto até agora não tem ajudado tanto (como eu não preciso de vídeos explicando para mim o que é DevOps), este vídeo sendo a única verdadeira excepção até agora (que mostra como as coisas se integram uns com os outros).

Eu sou um CCNA e também altamente proficiente em DBMS-s (atualmente aprendendo a execução de paralelismo e outras coisas).

Mas não tenho idéia do que devo aprender primeiro (ou onde encontrar os recursos corretos para esse assunto).

Estou prestes a me formar, então não tenho acesso à experiência do mundo real.

Algum conselho ou ajuda?

Respostas:


5

Devops estão relacionados à execução de software. É tudo sobre como executar um aplicativo ou serviço. Portanto, as ferramentas de configuração do servidor, as máquinas virtuais e os contêineres são as próximas etapas. Sugiro examinar a documentação dessas ferramentas e aprender com elas coisas como descoberta, observabilidade, escalabilidade e redundância. Apenas para citar alguns exemplos:

Configuração do servidor:

  • PXE
  • Ansible
  • Fantoche

VM:

  • Vagabundo
  • QEMU

Recipiente:

  • Docker
  • Kubernetes

EDIT: Visão geral das tecnologias em nuvem:

Quando sua arquitetura de software é sobre microsserviços, os contêineres são uma boa opção. Quando você está usando aplicativos monolíticos antigos, as VMs não são uma opção ruim. Portanto, sempre depende do contexto o que você precisa aprender especificamente. O tópico é bastante amplo para resumir. Um livro pode ajudar com isso, mas, infelizmente, não posso sugerir um bom livro. O "Kubernetes em ação" oferece um bom começo no Kubernetes.


Também adicionaria algo sobre ci / di, por exemplo, bambu, jenkins, teamcity ou similar.
Cyclonecode

11
Uma coisa que esqueci e que pode ajudar. Uma visão geral de tecnologias de nuvem: CNCF paisagem
jhamfler

Bem, edite sua postagem e adicione mais informações =) Na verdade, fiquei olhando isso.
Cyclonecode

@Cyclonecode você está certo. done
jhamfler

desculpe se esta é uma pergunta estúpida, se o EC2 já está sendo executado dentro de uma máquina virtual, por que preciso do Docker?
PirateApp 12/08/19

4

Antes de mais, gostaria de enfatizar que o DevOps é uma cultura e não um papel. Na minha opinião, pode-se compará-lo com uma equipe de comandos que possuem seus próprios conhecimentos, por exemplo, atirador de elite, fuzileiro naval, sapador (pense na série de comandos). A combinação dessas experiências, basicamente trabalhando juntas, possibilita realizar missões ou criar valor comercial o mais rápido possível.

LowOps e NoOps

Desde algumas semanas, descobri que, depois de muitas conversas com as pessoas, conversamos bastante sobre LowOps hoje em dia. Se eu implementar uma solução, isso significa que ela é totalmente automatizada e que um colega pode implantar máquinas por conta própria, em vez de me perguntar. Às vezes, não é imediatamente possível automatizá-lo completamente, mas garanto que ele seja automatizado para garantir que eu precise executar apenas um comando para concluir o trabalho (LowOps), em vez de perder algumas horas. Se eu criei essa solução, garanto que um ticket foi criado para que um colega automatize minha solução pessoal para todos. Exemplo: um colega meu transformou um dos meus scripts bash em um bot que agora é executado todas as noites.

insira a descrição da imagem aqui

Figura 1: https://www.gslab.com/blog-post/what-is-noops/

"como começar com devops"

Verifique se você faz parte de uma equipe com competências mistas e se a equipe precisa implantar o software por conta própria. Converse com todos os membros da equipe e comece com tarefas que ninguém deseja fazer, pois há falta de conhecimento ou vontade. Se você começar com uma tarefa, irá se deparar com coisas que não conhece. Comece a assistir a vídeos, participar de encontros , comprar e ler livros, ler blogs e documentação oficial sobre ferramentas, pedir aos colegas para rever suas solicitações de pull e comunicar e ouvir bem com as pessoas, documentos bem as coisas e preparar e demonstrar soluções para colegas (partilha de conhecimentos) . A última sugestão é manter um olho no equilíbrio entre vida profissional e pessoal .


2

Outras respostas aqui se concentraram em ferramentas. Na minha opinião, ganhar competência em um kit de ferramentas é obviamente uma coisa boa, mas não fará de você uma boa opção em uma cultura DevOps. O DevOps é primeiro um conjunto de práticas ou métodos .

Compreender por que essas práticas e métodos são úteis vem com a experiência, mas você não tem esse luxo. Eu, portanto, apontaria para você

como textos fundamentais.

O site de Entrega Contínua também possui um conjunto de Princípios e Fundações, que fornecem as bases relevantes ao iniciar.

A partir disso, você aprenderá práticas e métodos, que informarão como você colabora e usa ferramentas.


2

Tudo o que você precisa aprender é Linux, Docker, Rede, Git, Jenkins, etc. Você pode aprendê-los interativamente aqui

Se você está procurando tutoriais em vídeo, o pluralsight tem algo de bom para você.


1

Este é o tipo de pergunta que tenho me perguntado muitas vezes, e que tende a me seguir (agora que mal saí do "iniciante", fico imaginando onde aprender tópicos mais avançados). Infelizmente, como você apontou, fazer essas perguntas no mecanismo de busca tende a inundar sites que visam executivos e tentam explicar o que são devops? e Por que devemos industrializar o ciclo do software com devops?

Dito isto, para tentar responder à sua pergunta, só posso falar por experiência pessoal: iniciei minha jornada de aprendizado com o excelente guia de introdução do Docker .


1

"Learning DevOps" me parece uma consulta muito ampla, como você também descobriu, mas eu lembro de ter que pesquisar no Google a mesma coisa.

Para adicionar à resposta do @ jhamfler: Pergunte a si mesmo, por que você quer aprender sobre isso? De que contexto você vem? O DevOps geralmente tem a ver com a quebra de obstáculos manuais, ou também com estruturas de silos em equipes (todo mundo apenas fazendo sua própria tarefa e confiando em outra pessoa para pensar em integrar os resultados). Existem tais "lacunas" no seu projeto (presumo que você tenha uma)? Que partes dele poderiam se beneficiar da automação?

Os problemas típicos que eu poderia sugerir são:

  • manutenção manual do servidor VS soluções com script
  • confiabilidade e backups
  • automatizando testes de integração
  • automatizando a implantação contínua (por exemplo, de um serviço da web)
  • ...

Talvez uma pesquisa por "implantação contínua" e "integração contínua" (CI / CD) também possa ajudá-lo.


1

As primeiras coisas que você precisa aprender e se sentir confortável:

  • unix (sistema de arquivos, permissões, processos, serviços, logs, rede, etc.)
  • ssh e túnel reverso
  • nano / vim
  • Pitão
  • git

Então você pode passar para tópicos mais específicos:

  • conteinerização (por exemplo, janela de encaixe)
  • gerenciamento de configuração (por exemplo, ansible)
  • implantação contínua (por exemplo, jenkins)
  • monitoramento (por exemplo, prometheus / grafana)
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.