Baixe o app para aproveitar ainda mais
Prévia do material em texto
ESTÁ TRANSFORMANDO Robert Silva Um olhar para o futuro COMO A ADOÇÃO DE CONTAINERS EMPRESAS E A TECNOLOGIA www.jlcp.com.br Sobre o autor 2 Robert Silva atualmente é DevOps e Instrutor na JLCP. Especialista em Docker, Kubernetes e Zabbix, atuando a +10 anos como consultor e arquiteto de soluções. Atuou como consultor em grandes projetos nos mais diversos segmentos, tais como Datacenter, jogos online, corretora de investimentos, varejo e empresas de comunicação. Robert é reconhecido por ser Especialista nos temas que aborda e também por ter uma didática simples e direta. Apaixonado por tecnologia e educação, atua também como produtor de conteúdo sobre tecnologia e carreira www.jlcp.com.br Introdução A utilização de containers dentro de ambientes de TI não vem de agora, mas a verdade é que Docker como tecnologia ajudou a abstrair aspectos complexos com relação à utilização de containers, o que fez com que containers se tornassem tão populares. Temos que tomar o cuidado de não olhar somente do ponto de vista técnico, é importante entender qual foi o impacto para as empresas que estão utilizando containers e como esse tipo de tecnologia vem transformando o mercado como um todo. Neste ebook eu vou compartilhar um ponto de vista estratégico para que você possa entender com detalhes como foi o início desta transformação e por que mesmo com tantas evoluções tecnológicas, contêineres vieram para ficar. 3 www.jlcp.com.br Da despesa ao valor: A Transformação da área de TI Precisamos entender quais a área de tecnologia saiu de uma posição de custo para uma posição estratégica dentro das empresas. Não é de agora que vemos o uso de tecnologia sendo utilizado como uma poderosa ferramenta para empresas criarem soluções inovadores que resolvem problemas de milhares de pessoas. A tecnologia também pode ajudar a otimizar processos internos e a reduzir custos, permitindo que as empresas ofereçam soluções acessíveis e eficientes para um grande número de pessoas. Com o uso estratégico da tecnologia, as empresas podem ter um impacto significativo e positivo na vida de milhares de pessoas, tornando-se um agente de mudança na sociedade. Podemos citar o caso de grandes empresas como Waze, Uber, Airbnb, Spotify, e Netflix. 4 www.jlcp.com.br Da despesa ao valor: A Transformação da área de TI O Waze é uma ferramenta colaborativa que resolve problemas de trânsito, segurança e meio ambiente, utilizando a comunidade para compartilhar informações em tempo real. Uber é um aplicativo de transporte que conecta passageiros a motoristas, oferecendo um serviço seguro e acessível em todo o mundo. Airbnb é uma plataforma de hospedagem que conecta viajantes a anfitriões que alugam suas casas, apartamentos ou quartos, oferecendo uma experiência autêntica e acessível. Spotify é uma plataforma de streaming de música que oferece acesso a milhões de faixas e recursos de descoberta, personalização e compartilhamento de conteúdo. Netflix é uma plataforma de streaming de vídeo que oferece acesso a uma ampla variedade de filmes, séries e documentários, com opções personalizadas de conteúdo. Provavelmente você conhece todas essas empresas e consegue lembrar como eram as coisas antes delas existirem. Quando falamos de músicas, era preciso comprar CDs, hoje temos acesso a milhares de músicas na palma da mão, agora quando falamos de filmes, temos acesso a centenas de filmes disponíveis sem ter que sair de casa para ir a locadora, por exemplo. Poderíamos ficar falando horas de outros casos de uso. O fato é que todas essas soluções mostraram o poder da tecnologia como um ponto estratégico ao negócio e fez com que outras empresas, até mesmo de pequeno perto, buscassem o uso de tecnologia para acelerar a inovação e criação de novas soluções. 5 Acompanhando o Ritmo: Atendendo a velocidade das demandas de negócio. Nas últimas décadas foi constante a evolução tecnológica, a área de TI teve que evoluir para atender a velocidade das demandas de negócio. Há alguns anos atrás, os servidores físicos eram o padrão para o armazenamento e execução de aplicações. Os servidores físicos eram grandes, pesados e caros. Exigindo uma grande equipe de profissionais de TI para gerenciá-los, além de ter um custo de energia elétrica e climatização, sem contar com o grande espaço físico necessário. Com o passar do tempo, a tecnologia evoluiu e novas soluções foram surgindo. Primeiro passamos pela era da virtualização, que permitiam a execução de múltiplos servidores em um único hardware. Reduzindo os custos de energia elétrica, climatização e espaço físico. Em seguida, containers se tornaram populares por permitir que aplicações fossem executadas em ambientes isolados, compartilhando recursos com outras aplicações em execução no mesmo servidor. Com containers é possível a criação de ambientes de desenvolvimento, QA e produção de forma mais eficiente, escalável e padronizada. A execução de aplicações em containers fez com que a área de TI conseguisse responder rapidamente às demandas de mercado. Como por exemplo, fazer o deploy de uma nova funcionalidade, para que um grupo seleto de usuários possam testar e assim permitir validar a ideia e em seguida escalar para todos os usuários se este for o caso. www.jlcp.com.br 6 Por dentro do processo: Conhecendo o dia a dia para entrega de um produto Você pode estranhar a frase “entrega de um produto”, entretanto o que vemos nos dias de hoje durante o desenvolvimento de um software é esse termo. A maioria das empresas estão utilizando metodologia ágil para gerenciar as tarefas e entregas dos times e quem é o responsável por controlar como as entregas estão indo é um Product Owner, este é o profissional responsável pela definição das tarefas, gestão de prazos, gerenciamento de propriedades entre outros aspectos relacionados a entrega. Mas nosso objetivo aqui não é falar sobre a gestão ágil e sim sobre Docker. www.jlcp.com.br 7 Por dentro do processo: Conhecendo o dia a dia para entrega de um produto www.jlcp.com.br 8 Dia a dia do desenvolvedor Para Java é utilizado Maven ou Gradle; Para Javascript é utilizado o NPM; Para PHP é utilizado o Composer; Para Python é utilizado o PIP; Entre outros. O fluxo começa quando temos uma nova demanda, essa demanda passa pela fase de refinamento onde é definido os requisitos, regras de negócio entre outras informações. Na sequência essa demanda chega para o time de desenvolvimento onde será criado o código fonte da aplicação. Não vamos nos aprofundar muito neste processo que pode conter etapas onde é necessário refatorar o código, corrigir bugs entre outras atividades. Vamos focar no processo macro onde o desenvolvedor precisa entregar o código fonte contendo ao menos uma funcionalidade para aplicação. Após o código pronto o mesmo deve ser empacotado para que seja possível instalar nos servidores. Este processo depende muito da linguagem de programação que está sendo utilizada, vou citar alguns exemplos: Por dentro do processo: Conhecendo o dia a dia para entrega de um produto Teste funcional; Teste de API; Teste de de desempenho; Teste de carga; Entre outros Nesta etapa consideramos também que o time de desenvolvimento está trabalhando com um sistema de versionamento como o Git e armazenando as alterações em um repositório público como: Github, Gitlab, Bitbucket entre outros. A seguir temos a etapa de teste, devido a alterações constantes no código é necessário fazer todos os testes necessários para identificar problemas de desempenho ou bugs na aplicação. Alguns testes comuns são: www.jlcp.com.br 9 Dia a dia do desenvolvedor As etapas podem mudar de empresa para empresa, neste momento estamos considerando um cenário macro. Após todas essas etapas o código está pronto para ser instalado em produção e aí entra o time de infraestrutura. Por dentro do processo: Conhecendo o dia a dia para entrega de um produto Os administradores de sistemas são responsáveis por instalar o código nos servidores e garantir que tudocontinue funcionando como anteriormente. Geralmente recebemos o código através de alguma pasta ou repositório e também um checklist contendo instruções para a instalação como: definições sobre parâmetros de configurações, bibliotecas necessárias e muito mais. Com essas informações o Sysadmin acessa o servidor e começa executar o procedimento e neste momento começam problemas que podem impactar a disponibilidade da aplicação. www.jlcp.com.br 10 Dia a dia do sysadmin Conflito crônico Desenvolver a aplicação; Corrigir bugs; Executar testes; Liberar novas versões o mais rápido possível. Fazer o deploy da aplicação; Gerenciar e manter a infraestrutura; Manter as aplicações disponíveis e evitar o downtime. Durante o processo de troca de informações entre o time de desenvolvimento e o time de infraestrutura, alguns problemas podem acontecer pelo fato de termos duas áreas: desenvolvimento e infraestrutura e cada uma dela possui objetivos diferentes dentro da empresa. Time de desenvolvimento: Time de infraestrutura: www.jlcp.com.br 11 Conflito crônico Checklist incompleto; Conflito de versões; Processo de deploy manual; Processo de deploy demorado; Pouca ou zero comunicação entre os times. O time de desenvolvimento quer fazer o deploy cada vez mais rápido para liberar as funcionalidades ao cliente final e o time de infraestrutura acaba segurando o deploy por problemas no processo e também para garantir a disponibilidade da aplicação. Todo esse receio vem devido a como é feita a passagem entre o fluxo de desenvolvimento e o fluxo de operações. Problemas como por exemplo: www.jlcp.com.br 12 Problemas durante o desenvolvimento Muito tempo para preparar o ambiente de dev local; Falta de conhecimento em infraestrutura por parte dos desenvolvedores; Processo de instalação diferente; Conflito de versões entre diferentes projetos. Em muitos cenários temos diversos desenvolvedores, agora imagine que cada um utilize um sistema operacional, temos Windows, Linux, Mac e também linguagens de programação diferente, com diferentes requisitos e ainda podemos encontrar aplicações na mesma linguagem porém com bibliotecas em versões diferentes. Esse tipo de situação pode gerar diversos problemas como por exemplo: www.jlcp.com.br 13 Como Docker pode ajudar? Ambiente de dev local pronto em minutos; Instalações padronizadas; Ambientes reutilizáveis; Deploy simplificado. Melhorando o dia a dia do desenvolvedor e sysadmin Para o time de dev teremos: www.jlcp.com.br 14 O processo atual Copia o código fonte e as suas dependências; Configurar o servidor seguindo as instruções. Conflito de versões encontrado; Instruções incompletas; Zero comunicação entre os times; Processo de deploy manual e demorado. Quando o desenvolvedor libera o código fonte e as instruções de Deploy. O sysadmin segue as seguintes etapas: Alguns problemas são encontrados novamente como por exemplo: Como Docker pode ajudar? www.jlcp.com.br 15 O novo processo Desenvolvedores e sysadmin trabalham juntos para construir um padrão de implementação, uma receita automatizada; Processo de deploy facilitado sem a necessidade de configuração nos servidores; Erros de instalação são identificados no momento do build da imagem. Com o novo processo implementado as entregas dos desenvolvedores serão realizadas com uma maior velocidade, permitindo que novas funcionalidades sejam entregues ao usuário final, gerando mais valor para a empresa e sendo estratégico na corrida competitiva por espaço no mercado. Imagem Desenvolvedor Sysadmin Código Fonte Dependencias Script de inicialização Resultado processo de dev Registry pull image Imagem Application download da imagem Conclusão www.jlcp.com.br 16 A gestão ideal de uma empresa busca deixar claro para seus líderes quais são os objetivos a curto, médio e longo prazo. O problema é que quando falamos sobre áreas técnicas a maioria dos profissionais não conseguem relacionar como suas atividades podem ou não impactar no resultado dos objetivos da empresa como um todo. O meu objetivo aqui foi te mostrar como Docker pode impactar e resolver problemas que vão contra ao que a empresa busca. Conflitos entre áreas sempre vão acontecer, entretanto isso não pode impactar no resultado final da empresa como um todo. A área de TI sempre foi reconhecida apenas como custo por não conseguir entender que poderia criar soluções que ajudassem o negócio a alcançar os seus objetivos e com isso por muito tempo os profissionais de TI foram desvalorizados. Mas isso mudou, é mesmo que não seja a sua realidade, você tem a oportunidade de mudar isso e a hora é agora. Continue estudando e de o primeiro passo pra se destacar no mercado atual. Estude mais sobre Docker e veja como essa tecnologia pode transformar a sua carreira. Espero que tenha aproveitado a leitura. Lembre-se, você teve acesso exclusivo a esse ebook após responder a nossa pesquisa. Você está um passo à frente de outros profissionais que ainda pensam apenas de forma técnica. Não compartilhe este ebook com quem não teve o mesmo comprometimento que você.
Compartilhar