Possuir uma cultura com foco na melhoria contínua exige trabalho duro, mas que a longo a médio e longo prazo irá acarretar em benefícios para a empresa. A Cultura DevOps é uma das mais relevantes dentro do mundo digital e tem a capacidade de transformação positivamente o modo como suas equipes de TI operam, resultando em mais eficiência e velocidade.
Trata-se não apenas de um conjunto de ferramentas. Além de tecnologia , DevOps envolve processos e pessoas. Ele implica na oferta de recursos “self-service” para as equipes, esteiras de construção e testes automatizados e ferramentas que simplificam a comunicação, colaboração e monitoração, entre outros.
Tamanha é a importância da Cultura DevOps que reunimos painelistas do C6 Bank, Itaú Unibanco, Celepar e VMware para um bate-papo no dia 21/07.
Sob mediação de Rodrigo Mielke (VMware), Cultura DevOps contou com participação de:
Alexandre Cadima - Itaú Unibanco
Diego Rocha - VMware
Daniel Bronzatti - VMware
Leslie Watter - Celepar
Jhonatan Morais - C6 Bank
Anderson Duboc - VMware
O bate-papo se dividiu em 3 painéis:
Desenvolvedores: Como acelerar a entrega de valor do microsserviço à integração
Painel relacionado ao Build, ou seja, construção de aplicações, modelos ágeis, consumo de infraestrutura, PaaS (Plataform-as-a-Service) e APIs.Tendências e boas práticas para suportar aplicações modernas:
Relacionado ao Run, este painel tinha como foco discutir onde as aplicações eram consumidas, serviços nativos em cloud e como tudo era orquestrado para se obter uma melhor eficiência e produtividade. Painel sobre atuação do time de infra e operações..Observabilidade vs Monitoração:
Voltado para métricas, performance, troubleshooting e segurança.
Um primeiros pontos apresentados foi justamente a questão de modelos tradicionais e monolítos, que não conseguem mais prover o mesmo suporte às necessidades da equipe de TI. Há uma necessidade em trazer aplicações mais modernas e rápidas, atendendo assim o cenário atual que constantemente é atualizado e demanda bastante das equipes.
Porém, a quebra do modelo de monolíto para conseguir escalar e desenvolver rapidamente se faz um desafio, pois exige um refinamento constante e uma quebra da cultural tradicional, ou seja, não basta ter uma evolução da tecnologias sem que haja uma alteração cultural. É preciso alinhamento entre esses dois elementos.
Um dos exemplos apresentados no bate-papo foi como a VMware realiza seu processo de desconstrução de monolito:
Definição dos objetivos e resultados esperados
Realizar tempestade de eventos
Seleção de uma “fatia” das funcionalidades
Esboço da arquitetura nocional desejada
Preenchimento dos backlogs
Produção de códigos testados e em funcionamento
Criar Padrão de modernização da nuvem
Open Source e DevOps
Quando o assunto é desenvolvimento ágil de softwares e DevOps, umas das melhores maneiras de acelerar tal processo é a partir de softwares Open Source, já que eles permitem que todo o processo seja moldado de acordo com as demandas do desenvolvedor.
Hoje temos diversas ferramentas Open Source utilizadas no contexto DevOps, algumas mais conhecidas que as outras em função da disseminação dentre os desenvolvedores. A seguir alguns exemplos das soluções disponíveis no mercado:
Docker
Plataforma criada em Go, cujo objetivo é administrar ambientes isolados. Ele consegue armazenar uma aplicação em um contêiner, possibilitando o envio desta para qualquer outros host no qual o Docker esteja instalado.
Kubernetes
Essa ferramenta foi amplamente comentada pelos painelistas ao longo do bate-papo. Trata-se de software open-source de orquestração para a implantação, gerenciamento e escala de contêineres. Sua principal vantagem é eliminar diversas tarefas manuais necessárias no momento de implantar ou escalonar aplicativos em contêineres.
É ideal para uso com aplicações nativas em nuvem ou ambientes híbridos, sejam nuvens privadas ou públicas.
Usar Kubernetes resulta em:
Cargas de trabalho portáteis
Contêineres dimensionados mais facilmente
Criação de aplicativos mais extensíveis
Outro benefício envolvendo Kubernetes aplicados ao multicloud é a alta disponibilidade, considerando que você pode replicar clusters ativos em várias nuvens públicas. A questão do multi cloud é poder aproveitar o melhor de cada mundo e fazer isso da forma mais transparente possível para os desenvolvedores.
Como suportar as aplicações modernas
Da mesma forma que as aplicações se modernizaram, o time de infraestrutura e operações também precisou se adaptar para conseguir acompanhar tais avanços. Desde o início de um projeto, na fase de ideação, há um grande desafio para o time de TI em trazer a ideia para um ramo prático, no qual a empresa possa lucrar sobre.
É na fase de ideação que se percebe o grande valor de uma proposta ou melhoria contínua que está sendo aplicada. O problema é que mesmo com a eficiência da área de TI, especialmente Sistema, em identificar e arquitetar um sistema, aparecem os roadblocks.
Como foi citado pelos painelistas, por exemplo, o Kubernetes solucionou muitos problemas relacionados à portabilidade e escalabilidade de aplicações, entretanto temos a questão cultural envolvida. O TI permanece com dificuldades devido processos antigos e culturas tradicionais.
Um ponto crítico apresentado é a queda na percepção de valor ao longo do ciclo. Da ideação a validação interna e de mercado a percepção acaba sendo reduzida, pois quando falamos de grandes entregas, testes e integrações de desenvolvimento Waterfall, isso implica em desgaste e muito esforço de TI e em menos valor percebido pelo negócio
Os efeitos colaterais de uma abordagem assim podem ser atraso no lançamento de produto ou perder a entrada antecipada em cenários de grande concorrência.
Todas essas situações reiteram a necessidade de uma cultura Devops, de um alinhamento entre avanço tecnológico, ou seja das aplicações, acompanhado de mudanças culturais. É preciso que as mudanças estejam tanto no time de desenvolvimento com suas aplicações modernas, quanto no time de infraestrutura e operações.
Observação vs Monitoramento: o que isso significa de fato?
No que se refere ao monitoramento, houve uma mudança no perfil de profissionais. Se antes o time de monitoramento estava envolvido apenas no final do processo, hoje ele passa cada vez mais a integrar a esteira de entrega de produto.
A partir daí temos o surgimento de instrumentação de aplicações, conceito de métricas para aplicações através de bibliotecas e padrões.
Quanto a relação observabilidade e monitoramento: a primeira é atingida quando os dados são disponibilizados a partir do sistema que você deseja monitorar. Já monitoramento é o ato de coletar e exibir esses dados.
Se pensarmos em um processo de CI/CD (Continuous Integration e Continuous Delivery) é importante que haja feedback, afinal de contas, não faz sentido realizar entregas contínuas sem ter o conhecimento dos resultados.
No ciclo CI/CD dentro de DevOps, a efetividade é adquirida quando é possível automatizar o máximo possível de atividades deste processo. A fase de monitoramento do ciclo precisa fornecer feedbacks que impulsionem futuras iterações. Porém, no contexto de aplicações em nuvem, o monitoramento pode ser tornar complexo.
Daí o uso de ferramentas que auxiliam nesse processo. Uma exemplo de ferramenta open source de monitoramento de serviços e aplicações é o Prometheus. Ele extrai métricas de aplicações em ambientes kubernetes, métricas do próprio cluster do desenvolvedor e as externaliza para ferramentas do back-end.
Projetos Open Source
Ao longo do nosso bate-papo alguns ferramentas Open Source foram citadas pelos painelistas além do Prometheus. Confira a seguir alguns projetos open source da VMware:
Steeltoe (cloud native .NET Microservice)
Projeto Open Source que permite que desenvolvedores .NET implementem práticas recomendadas para microsserviços resilientes na nuvem.Buildpacks
Transforma o código-fonte da sua aplicação em imagens que podem ser executadas em qualquer nuvem. O Buildpacks nativo da nuvem adota padrões modernos de contêiner, como o formato de imagem OCI.Spring
O Spring torna a programação do Java mais rápida, fácil e segura. Seu foco está na velocidade e simplicidade. A produtividade do Spring fez dele o framework Java mais popular do mundo.
A chegada do DevOps veio para mostrar que além dos avanços da tecnologia, também é preciso de que empresas atualizem suas culturas e mudem sua mentalidade. Como já foi dito, DevOps não envolve simplesmente ferramentas e tecnologia, mas também pessoas, processos e práticas.
Sendo assim, uma iniciativa DevOps consegue proporcionar ao desenvolvedor menor atrito e obstáculos, o que facilita a entrega mais rápida de um serviço ou produto ao usuário. E mesmo para empresas com modelos de negócios e processos já consolidados só se tem a ganhar quando se caminha em direção a melhoria contínua. O padrões de hoje podem não ser melhores amanhã. Novos tempos requerem novas adaptações.
Se você quer saber ainda mais sobre o mundo DevOps, tivemos algumas indicações de leitura em nosso bate-papo para você se aprofundar mais no assunto: DevOps with Kubernetes, The Phoenix Project e Practical DevOps.
Este artigo foi escrito por Rodrigo Mielke e publicado originalmente em Prensa.li.