Os desenvolvedores precisam de opções e o time de operações precisa de controle

Por Boris Kuszka | 29 de Outubro de 2019 às 07h15
isak55

A necessidade de atender às demandas do mercado o mais rápido possível tem origem na pressão da concorrência, que se materializa no desenvolvimento de novos serviços baseados em softwares, aplicativos móveis e APIs. Diante dessa realidade, as empresas estão constantemente explorando novos modelos de negócio para criar novas fontes de renda e, assim, reagir a essas mudanças, ficando para os desenvolvedores a função de criar novos aplicativos e o time de operações colocá-las no ar. Vejam como as startups estão evoluindo: há pouco tempo atrás víamos essas empresas apenas oferecendo o mesmo serviço por uma interface mais moderna, agora vemos novos produtos aparecendo no mercado efetivamente como: seguros atomizados (como por exemplo apólices de apenas alguns dias, caso você precise assegurar seu notebook ao viajar para alguma região com alto índice de furto) oferecidos por fintechs, serviços de controle de pragas digital, monitoramento da plantação e otimização da colheita oferecidas por agrotechs, entre outros.

Além disso, esta a pressão exercida pela regulamentação: à medida que novas normas vão surgindo, maior é a força produzida sobre as equipes de desenvolvimento, que precisam adaptar softwares em compliance com as regras vigentes o mais rápido possível.

Com o novo prazo de adequação da Lei Geral de Proteção de Dados (LGPD), por exemplo, que deverá entrar em vigor em agosto de 2020, as mudanças estruturais exigidas vêm fazendo com que as equipes de desenvolvimento trabalhem contra o relógio para que seus clientes alcancem suas metas. Outra regulamentação que está sendo definida mundialmente é o Open Banking: no Brasil o Banco Central emitiu o comunicado 334555, estabelecendo as diretrizes iniciais do open banking no Brasil. O documento determina quais informações deverão ser compartilhadas entre entidades financeiras com relação a dados cadastrais, produtos e serviços, comprovando que a integração dos produtos financeiros é de fato uma tendência irreversível. Além desses exemplos, temos também novas regras e atualizações, que agências como Anatel, Aneel e ANP regulamentam em suas áreas.

Neste cenário, o tempo levado para que um software ou solução seja desenvolvido ou adaptado de acordo com as normas vigentes e lançado no mercado (time-to-market) precisa ser drasticamente reduzido. E para conseguir atender prazos cada vez mais curtos e inesperados sem perder a competitividade, é preciso contar com plataformas e frameworks que confiram agilidade sem precedentes aos times de desenvolvimento.

O desenvolvimento baseado em microsserviços são o caminho para conseguir atender esses prazos. Mas como dar opções para que os desenvolvedores sejam mais eficientes e o time de operações consiga manter o ambiente estável, seguro e controlado?

Os containers são a opção para equilibrar e lidar com essas forças opostas. Por meio deles é possível desenvolver de forma mais ágil e com maior controle, dando alternativas para os desenvolvedores terem acesso a novas linguagens e frameworks de desenvolvimentos mas alinhado com o time de operações que checam a viabilidade e a segurança desses novos componentes de software.

É nesse ambiente que as equipes de operações conseguem criar catálogos com as ferramentas homologadas e, conforme as necessidades forem surgindo, existem processos para que esse catálogo seja atualizado para continuar evoluindo e acompanhando as evoluções de TI. Na prática, contar com uma plataforma que permite desfrutar de inovações no momento em que elas se mostrarem estáveis, é uma enorme vantagem competitiva.

Como a eficiência é chave nessa corrida, vemos bancos criando aceleradoras e incubadoras para seguir em consonância com os novos padrões ditados pelo mercado e pelo Open Banking. A busca é cada vez mais pelo uso de APIs abertas que permitem a construção de novos serviços financeiros, e seu desenvolvimento está diretamente ligado à plataforma de containers.

Essa plataforma ajuda na implementação da abordagem DevOps, que na operação gera escalabilidade, elasticidade e gerenciamento, e no desenvolvimento cria um ambiente de provisionamento mais ágil e seguro - com criptografia de todos os dados em trânsito, novas ferramentas, linguagens, frameworks e a utilização de imagens OCI (Open Container Initiative, fundação responsável pela padronização do formato dos Linux Containers) - que contém todas as peças de software que o desenvolvedor precisa, podendo ser disponibilizado em minutos. Tudo isso em um ambiente unificado e padronizado de operação e desenvolvimento, com liberdade para o desenvolvedor e controle para operação.

Contudo, para que isso ocorra, a criação de processos de homologação, teste e quality assurance é fundamental, além da revisão e simplificação dos processos existentes. DevOps integra os times de desenvolvedores e de operações para aumentar a colaboração e a produtividade automatizando a infraestrutura, os fluxos de trabalho e medir continuamente a performance das aplicações.

Para implantar uma abordagem de DevOps é necessária uma mudança cultural e de processos, bem como a implantação de ferramentas abertas e flexíveis. Uma pesquisa feita há dois anos mostra que é possível obter 200 vezes mais entregas com o desenvolvimento ágil em comparação com as metodologias tradicionais como waterfall.

No dia a dia, ao detectar uma falha, o profissional de operações questiona o desenvolvedor, que em muitos casos lança o já conhecido “no meu notebook funciona, então o problema não é meu”. Isso normalmente acontece por inconsistências dos ambientes de desenvolvimento, testes, homologação e produção: sejam frameworks faltantes ou versionamentos diferentes.

Facilitando essa dinâmica, uma imagem de container já contém todas as ferramentas, linguagens e frameworks, nas versões corretas, que operações homologou e disponibilizou para o desenvolvimento. A plataforma permite uma homogeneização dos ambientes, permitindo resolver uma série de problemas, desde que a equipe esteja aculturada com o processo e a tecnologia para desenvolver dessa maneira multidisciplinar. E quando falamos multidisciplinar não nos referimos apenas aos times de desenvolvimento e operações e sim a todas as áreas da empresa: cada vez mais compreende-se o valor que as áreas de negócios, marketing e até mesmo jurídico agregam no desenvolvimento de novas ideias; é assim que se cria um ambiente propício para a inovação.

Algumas empresas optam por contar com o desenvolvimento realizado por software houses, mas é comum que esses estabelecimentos entreguem o produto sem seguir as diretrizes que as companhias estipularam, as quais são colocadas muitas vezes para seguir normas e regulamentações.

Para ter certeza que os times de desenvolvimento, incluindo terceiros, irão seguir exatamente a forma de desenvolvimento homologada pelo time de operações, existem algumas formas de manter esse controle: permitir o acesso das imagens de container com os componentes homologados, acessar diretamente o ambiente de desenvolvimento via browser, ou ter alguma forma de sincronismo dos notebooks dos desenvolvedores com o ambiente homologado de desenvolvimento. As duas últimas opções são a abordagem do Eclipse Che (o nome não é coisa de gaúcho (rs) mas tem a ver com a cidade de onde vem o projeto: Cherkasy, na Ucrânia) da fundação eclipse e que obteve uma versão empresarial esse ano pela Red Hat como CodeReady Workspaces.

São soluções como essa que permitem que o ambiente de desenvolvimento, seguro, controlado e homologado, sejam entregues em minutos em vez de semanas ou mesmo meses!

Na economia da atenção, o tempo é o ativo mais valioso: e as soluções que permitem poupá-lo, as plataformas mais avançadas disponíveis.

Gostou dessa matéria?

Inscreva seu email no Canaltech para receber atualizações diárias com as últimas notícias do mundo da tecnologia.