• Blog
  • 6 min de leitura
  • Abril 1, 2022

DevOps: domine uma das especializações mais requisitadas em Engenharia de Software com a Upstream

Por Michalis Ergazakis, Cloud Platform Manager

Um ciclo virtuoso de aprendizagem, mudança, erros e aperfeiçoamento enquanto se analisam os silos com o uso da tecnologia

Este recado é para qualquer pessoa que esteja considerando uma carreira como engenheiro de DevOps. Um trabalho que, durante os últimos anos, tornou-se um dos mais populares e de maior demanda e que está longe de ser só mais um modismo. Na verdade, de acordo com o Glassdoor, a Engenharia de DevOps está entre os 5 melhores empregos do mundo.

Digamos que você se formou em ciência da computação, engenharia de software ou tem uma formação técnica do gênero. Será que você está pronto para avançar nesta frente? Qual deve ser o seu próximo passo? Como fazer a sua carreira decolar? Você já considerou o DevOps em sua trajetória? Antes de compartilhar com você algumas ideias sobre o que realmente fazemos, permita-me ir direto ao ponto e tratar do programa de graduação que desenvolvemos aqui na Upstream, especialmente pensado para quem quer ser um DevOps.

“Comece na Upstream” é nosso programa de estágio remunerado de 12 meses que pode oferecer aos recém-formados a experiência profissional necessária para dar o pontapé inicial em suas carreiras. Estamos aceitando currículos atualmente – até o dia 8 de abril – e oferecendo um estágio remunerado de um ano, que inclui: um treinamento de Imersão, seguido pelo trabalho em projetos reais integrado em nossas equipes; seu próprio mentor por um ano inteiro, guiando-o em sua jornada a cada passo do caminho e, após o término dos doze meses, a oportunidade de continuar trabalhando conosco. Nosso treinamento de alto nível cobre todos os aspectos da engenharia, conceitos e práticas DevOps que você provavelmente nunca ouviu falar antes, incluindo programação, automação, gerenciamento e monitoramento de sistemas de produção e CI/CD.

O que é o DevOps

O DevOps é uma metodologia de desenvolvimento de software que combina desenvolvimento de software (Dev) com operações de tecnologia da informação (Ops), participando em conjunto em todo o ciclo de vida do aplicativo, desde o projeto, passando pelo processo de desenvolvimento contínuo, até o suporte à produção com entrega de alta qualidade. O DevOps está focado no aprendizado contínuo, na mudança e até mesmo no erro – e engloba pessoas, práticas e ferramentas. O DevOps quebra as barreiras entre as funções organizacionais que historicamente têm se mantido em silos, incluindo produto, engenharia, segurança, garantia de qualidade e operações. O DevOps significa uma mudança de cultura dentro da tecnologia, unificando habilidades de desenvolvimento com habilidades interpessoais. Possuir tais habilidades lhe permitirá colaborar com várias equipes e ter uma visão global do negócio.

Trabalhando como um Engenheiro de DevOps na Upstream

Aqui na Upstream, a equipe de DevOps tem um lema: “Tentamos automatizar tudo para nos tornarmos obsoletos!” Este é realmente o caso – a automação é vital para nós e o nosso objetivo final é atingir um ponto onde tudo estará funcionando tão bem que não seremos mais necessários! Desde a automatização de implantações, pipelines de entrega contínua e configurações de autoescalonamento, até a automatização da infraestrutura de failover, nós fazemos de tudo!

Para conseguir isso, utilizamos novas tecnologias e métodos não apenas para tarefas de engenharia, mas também para as operacionais. Em um cenário tecnológico em rápida evolução, estamos constantemente buscando e explorando tecnologias de ponta, a fim de garantir sempre a mais alta qualidade dos produtos, proporcionando aos nossos clientes a integração das melhores tecnologias de software, ferramentas e estruturas atualmente disponíveis.

Estamos constantemente aplicando ferramentas de engenharia personalizadas para facilitar nossas vidas e, em particular, já que estamos falando da pegada de grande produção e carregamento da Upstream, essas ferramentas estão lá para garantir a eficácia – para fazer o trabalho mais fácil, mais rápido e melhor. Portanto, nosso trabalho é ajudar a encontrar um caminho para maior eficiência e maior consistência – em última instância, para que nossa equipe produza melhor.

Nosso trabalho não é apenas de pesquisa e desenvolvimento. Também fazemos muito trabalho operacional, como fornecer novos ambientes de sistema para nossas contas, atender às necessidades específicas do cliente, implantações, atualizações ou mesmo solucionar problemas em ambientes de produção.

Na verdade, tudo que envolve produção passa pela gente, desde o hardware até o software. Nós fornecemos o projeto arquitetônico de produção e asseguramos o funcionamento ideal de toda a infraestrutura. A infraestrutura refere-se aos componentes de hardware, tais como armazenamento e servidores, todos os equipamentos de rede e todo o software necessário para operar um sistema de TI, de acordo com as necessidades estabelecidas e o “tamanho” do sistema da empresa. Associado a isso vem o monitoramento contínuo em todos os níveis (infraestrutura, rede, aplicação, configuração, terceiros, etc.) para criar uma melhor visibilidade e manter o tempo de funcionamento do sistema, disparando o devido alarme quando há uma degradação do serviço, interrupção ou qualquer problema de desempenho do aplicativo.

Outra responsabilidade que assumimos é a de fornecer treinamento técnico a outros departamentos. O treinamento e o desenvolvimento têm um valor enorme para os funcionários. O treinamento cruzado permite que os funcionários adquiram novas habilidades, aprimorem as já existentes, tenham um melhor desempenho, aumentem sua produtividade e alcancem a satisfação no trabalho. Isso nos ajuda a garantir que nosso pessoal descubra e desempenhe o seu potencial ao máximo.

Vamos agora nos aprofundar em um terreno mais técnico e apresentar algumas das principais tecnologias e ferramentas que utilizamos, juntamente com breves descrições:

Tecnologias:

  • VMware de tecnologia de virtualização como uma Arquitetura do Hypervisor. O software V cria uma camada de abstração sobre o hardware do computador, que permite que os elementos de hardware de um único computador – processadores, memória, armazenamento e mais – sejam divididos em vários computadores virtuais, comumente chamados de máquinas virtuais (VMs).
  • Docker é um conjunto de produtos de Plataforma como Serviço (Platform-as-a-Service, PaaS) que utilizam a virtualização ao nível do SO para entregar o software em pacotes chamados contêineres. Os contêineres são isolados uns dos outros e agrupam o seu próprio software, bibliotecas e arquivos de configuração, podendo se comunicar entre si através de canais bem definidos.
  • Kubernetes (também conhecido como k8s ou “kube”) é um sistema de orquestração de contêineres de grau de produção para automatizar a implantação, escalonamento e gerenciamento de aplicativos computadorizados em múltiplos hosts. Podemos agrupar grupos de hosts rodando contêineres Linux e o Kubernetes nos ajuda a gerenciar de maneira fácil e eficiente estes clusters. Os clusters Kubernetes podem abranger os hosts em nuvens locais, públicas, privadas ou híbridas. Por essa razão, o Kubernetes é uma plataforma ideal para hospedar aplicativos nativos de nuvens que requerem um rápido escalonamento. Utilizamos um ambiente de produção de PoC em 2016, quando esta tecnologia não estava sequer madura. Hoje, usamos dois clusters Kubernetes de produção de baunilha no local, instalados com a ajuda da Kubespray no topo da vSphere (Kubespray é uma composição de Ansible playbooks, inventário, ferramentas de provisionamento e conhecimento de domínio para tarefas genéricas de gerenciamento de configuração de clusters de SO/Kubernetes). Estamos perto da versão mais recente e, até agora, temos mais de 1.600 aplicativos de desenvolvimento/aplicativos statefulsets!
  • Cloudera Hadoop – CDH, a distribuição Hadoop mais popular do mundo, é a plataforma Cloudera 100% de código aberto. Ela inclui todos os principais componentes do ecossistema Hadoop (HDFS, Yarn, Hive, Spark, Kafka, Hbase, Impala, Zookeeper) para armazenar, processar, descobrir, analisar, modelar e fornecer dados ilimitados e é projetada para atender aos mais altos padrões empresariais de estabilidade e confiabilidade. A Cloudera criou um sistema funcionalmente avançado que ajuda você a realizar fluxos de trabalho de ponta a ponta de Big Data.

Principais Ferramentas DevOps

  • Jira software da Atlassian, para planejamento de sprints, rastreamento de problemas, lançamentos e relatórios de desempenho da equipe em tempo real.
  • Gitlab é uma ferramenta de ciclo de vida DevOps de base na Web que fornece um gerente de repositório Git, com controle de versão incorporado, rastreamento de emissões e integração contínua e muitas características de pipeline de implantação. (O gerenciamento do código fonte é onde começa o compartilhamento da equipe de desenvolvimento e a colaboração).
  • Ansible é uma ferramenta de software de código aberto para provisionamento, gerenciamento de configuração e implantação de aplicativos, habilitando a infraestrutura como código. Ele roda em muitos sistemas do tipo Unix e pode configurar tanto sistemas do tipo Unix quanto o Microsoft Windows.
  • Jenkins é um servidor de automação gratuito e de código aberto. Ele ajuda a automatizar as partes do desenvolvimento de software relacionadas à construção, teste e implantação, facilitando a integração e a entrega contínuas.
  • Harbor é um projeto de registro nativo em nuvem e de código aberto confiável que armazena, assina e escaneia o conteúdo. O Harbor estende a distribuição de Docker de código aberto adicionando as funcionalidades normalmente exigidas pelos usuários, tais como segurança, identidade e gerenciamento.
  • Nagios é um aplicativo de software gratuito e de código aberto que monitora sistemas, redes e infraestrutura. O Nagios oferece serviços de monitoramento e alerta para servidores, switches, aplicativos e serviços.
  • Prometheus é um aplicativo de software gratuito utilizado para monitoramento e alerta de eventos. Ele registra métricas em tempo real em um banco de dados de séries cronológicas, projetado usando um modelo de pull HTTP, com consultas flexíveis e alertas em tempo real.
  • Grafana é uma plataforma de código aberto para monitoramento e observação. O Grafana nos permite consultar, visualizar, alertar e compreender suas métricas, não importando onde elas estejam armazenadas. Ela nos permite criar, explorar e compartilhar belos dashboards com nossas equipes e fomentar uma cultura baseada em dados.
  • ELK stack foi projetado para permitir que os usuários obtenham dados de qualquer fonte, em qualquer formato e para pesquisar, analisar e visualizar esses dados em tempo real. “ELK” é a sigla para três projetos de código aberto: Elasticsearch, Logstash, e Kibana. O Elasticsearch é um mecanismo de busca e análise. O Logstash é um pipeline de processamento de dados do lado do servidor que absorve dados de múltiplas fontes simultaneamente, transforma-os e, depois, envia-os para um “esconderijo” como o Elasticsearch. O Kibana permite que os usuários visualizem os dados com diagramas e gráficos no Elasticsearch.

Você está intrigado com o que foi apresentado acima? Tem sede de conhecimento e o desejo de se tornar um Engenheiro de DevOps, dotado de um conjunto de habilidades variadas que impulsionarão a sua carreira? Junte-se a nós e trabalhe com uma equipe dinâmica, inteligente, ágil e altamente motivada em um ambiente competitivo e de ritmo acelerado.

Visite www.startatupstream.com e faça a sua inscrição agora!

Voltar

Compartilhar

Compartilhar

Não perca os nossos novos insights

Cadastre-se para receber nossos insights e notícias mais recentes. Fique por dentro.