Da Infraestrutura Microsoft ao Mundo Open Source: A Jornada DevOps
Um marco importante na vida de um profissional de infraestrutura de TI é quando ele reconhece que as áreas de desenvolvimento e infraestrutura devem andar em conjunto como um só. Porém, após trabalhar 12 anos como Analista de Redes e Infraestrutura Microsoft voltado unicamente para Operações (OPS) e Datacenter, o que faria um profissional a buscar desbravar o mundo Open Source e a cultura DevOps?
A resposta é simples: Mudança!
No último ano procurei buscar algo que pudesse me satisfazer profissionalmente e sair da zona de conforto e foi por indicação de um amigo que comecei a procurar sobre o termo DevOps e entender o porque era imprescindível ter esta cultura no sangue e aplicar seus fundamentos no dia a dia.
Neste momento em sua cabeça devem estar surgindo algumas perguntas:
“Mas Caio, você trabalhou 12 anos com Microsoft, já tem muita experiência na área, você não estaria jogando fora todo o conhecimento já adquirido? Não é tarde para esta mudança drástica? Porque Open Source (Linux) e não proprietário (Microsoft)? ”
Bem, conhecimento adquirido nunca é jogado fora, todos estes anos serviram para conhecer como uma infraestrutura deve se portar, quais são os pontos críticos de uma rede, dos servidores e datacenters, qual a importância de se ter um backup, firewall, redes segmentadas, documentações e diversas outras coisas.
Estar tarde? Se você estiver vivo, nunca é tarde para mudanças!
Porque Linux e não Microsoft?
Esta é a pergunta que todos nós fazemos e eu vou dar alguns motivos técnicos e culturais para você entender a resposta… a começar pelo motivo técnico: HARDWARE.
Se você abrir a página da Microsoft para ver quanto de Hardware é necessário para a instalação de um Windows Server 2016 você encontrará os seguintes requerimentos mínimos:
• Processador de 1.4Ghz e 64 bits
• 2 GB de memória RAM
• 45 GB de espaço em disco.
Lógico que hoje existe a versão “core edition” que não possui a interface gráfica – que consome incríveis 512MB RAM – porém ainda consome cerca de 32GB de disco rígido. Além disso tente “controlar” um Windows Server 2016 com 2GB de RAM, você terá vontade de colocar fogo em seu servidor e jogá-lo do vigésimo andar, fazendo com que sejam necessários ao menos 4GB para se ter uma experiência saudável à mente humana.
Quando falamos de Linux, podemos encontrar o seguinte cenário, onde irei aproveitar para trazer duas distribuições de “famílias” distintas:
Ubuntu Server 18.04 (requerimento mínimo):
• Processador 300Mhz x86
• 384 MB de memória RAM
• 2,5 GB de espaço em disco
CentOS 7 / RHEL 7 (requerimento recomendável):
• Processador 1Ghz 64 Bits
• 1 GB de memória RAM
• 5 GB de espaço em disco
Podemos observar uma enorme economia em hardware, onde isso pode refletir positivamente quando envolvemos custos de nuvem , mas também considerando a economia nos recursos locais. De uma forma generalista podemos dizer que cada hardware pode comportar 1 servidor com WS2016 ou no mínimo 2 servidores Linux like.
Bom, já falamos do HARDWARE e agora falaremos sobre CULTURA:
DevOps é um termo que surgiu por volta de 2009 na Velocity Conference, onde John Allspaw e Paul Hammond apresentaram uma palestra intitulada de “10 Deploys por dia, cooperação entre Dev & Ops no Flickr” onde eles abriram a apresentação com 3 slides em preto com textos simples em branco dizendo uma única frase em cada um:
“Dev versus Ops”
“Não são minhas máquinas, é seu código”
“Não é meu código, são suas máquinas!”
Estas frases são bem conhecidas no dia a dia de qualquer profissional de TI – seja ele Dev ou Ops – o que eles mostraram nesta palestra é que Dev e Ops deveriam formar um casal, onde um completa o trabalho do outro para atingir um único objetivo, o da empresa. Com esta abordagem eles (Flickr) chegaram ao ponto de realizar incríveis 10 deploys por dia sem maiores problemas, com as equipes trabalhando juntas. Ao término da apresentação foi dita uma única frase que em 2009 foi marcante:
“Na última semana foram feitos 67 deploys de 496 changes por 18 pessoas”
Convenhamos que em pleno 2019 esta frase ainda impressiona, imaginem a 10 anos atrás.
O meio Open Source nasceu e cresceu através de colaboração, onde a própria comunidade de usuários e desenvolvedores fazem com que o sistema seja constantemente atualizado e melhorado. Toda o sistema não está nas mãos de um único desenvolvedor como é o caso dos softwares proprietários e assim, todos trabalham para um bem comum que é o de melhoria.
Junto com DevOps nasceu também a IaC (Infra-as-Code) que é a infraestrutura como um código, onde passamos a tratar toda a infraestrutura da empresa como um código – literalmente – onde o mesmo é versionado em um repositório e assim nos tornamos verdadeiros “Desenvolvedores de Infraestrutura” e não mais apenas Analistas de Operação de Infraestrutura. Com a codificação e versionamento ganhamos velocidade e escalabilidade, onde tarefas que custavam dias para serem realizados são concluídas em minutos e até mesmo em segundos.
DevOps é tão certo e realidade que hoje a Microsoft esta correndo atrás do prejuízo e criando sua própria solução DevOps que era conhecido como VSTS (Visual Studio Team Services) e hoje se chama Azure DevOps.
E como podemos sair da rotina de ser apenas “Ops” e partir para um mundo DevOps?
Aqui vão algumas dicas:
Aprenda sobre a cultura – DevOps é um movimento e uma cultura muito antes de ser um “cargo” por isso os aspectos culturais são muito importantes.
Aprenda uma linguagem de programação – É altamente recomendado que você saiba programar, afinal, o futuro já está aqui e tudo esta virando programação até mesmo infraestrutura e redes. Python, Go, Nodejs existem várias opções, não necessariamente você precisa aprender a mesma linguagem que sua empresa utiliza. Eu particularmente recomendo Python pelo poder e simplicidade.
Aprenda a gerenciar Servidores, Virtualização, Redes e Segurança – A principal tarefa de um profissional DevOps é gerenciar servidores, entender seu funcionamento é muito importante, até a parte mais baixa da tecnologia (arquitetura, memória, processador) são conhecimentos necessários, sistemas operacionais e especialmente Linux, se você tem duvida onde começar, escolha uma distribuição como o Ubuntu. Entenda como os protocolos básicos de rede como HTTP, DNS e FTP funcionam, para você implementar a segurança você tem que conhecer os protocolos e entender como não deixar brechas para invasores.
Aprenda a criar scripts – Scripts podem ser considerados como uma programação, onde o Shell Script é um dos recursos mais utilizados, juntamente aos scripts escritos em Python que é uma linguagem onde é possível fazer muita coisa escrevendo pouco.
Aprenda a instalar e configurar middlewares – Middlewares são programas que fornecem serviços para aplicações de outros programas, como por exemplo, o Apache, Nginx e JBoss/Wildfly. Estes são utilizados em toda a internet para prover desde pequenos blogs wordpress até grandes marketplaces.
Aprenda como implantar software – Após aprender a configurar os middlewares, você vai precisar saber como implantar as aplicações em servidores, você pode ter em um servidor com mais de uma aplicação rodando e utilizar o Nginx como proxy reverso para ambas.
Aprenda controle de versionamento com GIT – GIT é o sistema de versionamento mais utilizado na industria de TI. Você não precisa ser um Expert mas é interessante saber o básico para entender a tecnologia.
Aprenda a Automatizar suas tarefas e Gerenciar configurações – Automatizando tarefas básicas e usando gerencia de configurações com softwares como Ansible, Chef, Puppet fará você ganhar tempo para dedicar a tarefas que trarão crescimento pessoal e profissional, no futuro você terá tantos ambientes para gerenciar que será impossivel fazer de forma manual.
Aprenda Infraestrutura como Código – IaC é um dos pontos mais fortes para um ambiente DevOps, ter um ambiente altamente confiável e escalável é uma das tarefas mais importantes para a TI.
Aprenda a monitorar sua Infraestrutura e seu Software – Imagine um atleta olímpico, ele precisa de constante monitoramento de seus sinais vitais, alimentação, etc… A infraestrutura e o software não são diferentes, o monitorando com ferramentas apropriadas como Zabbix e Prometheus você consegue prever e até evitar incidentes que possam causar um impacto negativo na organização.
Aprenda sobre Orquestração de Containers – Aprender Docker e Kubernets é altamente recomendado, pois com estas ferramentas você consegue criar e “destruir” um ambiente inteiro em pouco tempo, unindo isto a IaC você consegue construir um ambiente altamente dinâmico.
Aprenda a Compartilhar – O ponto mais importante de uma cultura DevOps é que o processo de aprendizagem é contínuo e compartilhar o conhecimento adquirido pode te ajudar ainda mais e ser um dos pontos chaves em seu processo de mudança.
Existem diversos cursos para que você possa entrar neste mundo, e a 4Linux fornece 4 cursos online e gratuitos para que você comece essa jornada:
- Iniciantes em Linux em Nuvem
- Curso de introdução à Programação
- Fundamentos da Cultura DevOps
- Mundo Web com HTML5
https://www.4linux.com.br/cursos-gratis
A 4Linux ainda possui o maior leque de cursos DevOps do Brasil como:
- DevOps Essentials
- Exin DevOps Master
- DevSecOps
- Infraestrutura Ágil
- Docker
- Integração e Entrega Contínua (CI/CD)
- Continous Monitoring
- Ferramentas de Automação (Chef, Puppet, Ansible)
- GIT
About author
Você pode gostar também
Guia Completo: Como Utilizar o Ansible Galaxy para Otimizar seu Trabalho
Durante minhas aventuras como SysAdmin, eu me deparei com a fantástica ferramenta chamada Ansible. Eu me empolguei tanto com a ferramenta que acabei criando um projeto chamado warudo, agora já não
4Linux se torna A.T.O do EXIN e lança curso DEVOPS Master
A 4linux acaba de se tornar um A.T.O. (Authorized Training Organization) do EXIN e juntamente teve o conteúdo de seu treinamento ‘DEVOPS Master’ aprovado, isso significa que o material didático criado
Terraform e Gitlab-CI: Como gerenciar sua infraestrutura em nuvem
Introdução O Terraform é uma ótima ferramenta para fazer o gerenciamento de sua infraestrutura em nuvem, normalmente iniciamos projetos de terraform rodando os principais comandos de construção e deleção de