Microserviços – Uma Arquitetura de Software para apoiar a transformação digital(Cultural) nos negócios. PARTE 1

A Transformação Digital como direcionador para o negócio

Já a alguns anos estamos vivendo uma transformação tecnológica literal no tocante diretamente envolvendo os bits e os bytes, o hardware, as possibilidades de conexões e troca de informações entre inúmeros dispositivos(IoT), que já foram imóveis, e hoje são cada vez mais móveis como tabletes, celulares, relógios, e até cartões de créditos e moedas. O Mundo se tornou BINÁRIO tecnologicamente falando, em cada movimento diário para atividades comuns ali está algum item tecnológico acompanhando o nossos afazeres.

Isso fez com que todos nós nos acostumássemos com inovações constantes e hábitos comuns com a tecnologia, hoje em dia é comum vermos gerações distintas utilizando-se no dia-a-dia das mesmas tecnologias “disrupturas”, um exemplo dentro de casa é minha filha de 07 anos, que desde os 3 anos já estava inserida nessa movimentação tecnológica, quando um dia me chama a atenção, pois estava passando os dedinhos na tela do televisor de 48″ na sala e me disse: ” Papai quebrou, quebrou, não muda, não muda”, pois ela pensava que era um grande tablete. Minha Sogra de 69 anos é super ativa nas redes sociais Facebook, Instagram, Twitter, WhatsApp que inclusive ela e minha filha se falam diariamente e trocam fotos e bate-papo pelo WhatsApp, minha sogra é usuária de internet bank e e-mail. São dois universos distintos, duas gerações longínquas, mas, que a tecnologia as aproxima e as iguala.

Hoje o que realmente vivemos é uma transformação CULTURAL, pois, a digital já está ai, e se a sua empresa não possui uma das duas(Cultural/Digital ou Sogra/Filha) em seu DATA LAKE, ou se o seu Big Data não as encontrou, ou se seu machine learning não está preparado para entender o comportamento de uma delas, ou das duas, e se elas não apareçam em seu cluster de consumidores( óbvio que se fazem parte do seu público alvo, ou talvez não seja necessário serem agora, mas…), está na hora de rever seus entendimentos sobre a continuidade de seus negócios e a inserção da sua empresa nessa nova CULTURA DIGITAL.

As empresas precisam mudar seu mindset, seu visão cultural, as mentalidades dos C-Level deve buscar a disruptura de conceito para poder guiar a transformação cultural em sua organização, pois, a digital já deve estar em planejamento, a caminho, sendo executada, buscando o que há de mais moderno tecnologicamente para poder encontrar, analisar, entender, prever, planejar as tomadas de decisões que façam a diferença para seus clientes de acordo com o comportamento de cada um, com a tendência de mercado atual e com as futuras, pois a PREDIÇÃO hoje é uma ferramenta mais que necessária no mundo dos negócios, quando falamos de big data, machine learning e AI, estamos entrando em um universo de visão para o futuro, não de futuro, pois, essas tecnologias já estão ai, que aliadas a matemática que é a tecnologia mais antiga que a humanidade possui, juntas dão as empresas e aos administradores a possibilidade até de CRIAR o futuro de acordo com o entendimento do comportamento de seus clientes, do engajamento deles para a sua marca.

A transformação não é apenas digital é CULTURAL, a digital já foi, não tem mais volta. Hoje em dia o negócio tem que estar focado em ter alta DISPONIBILIDADE em todos os setores, tem que ser ÁGIL, para poder mudar de ESTRATÉGIA ou de segmento de forma rápida, tem que ser SEGURO além do antigo cofre escondido na sala da presidência, tem que ser flexível para atuar em tempo de mudança, tem que ser PERSONALIZADO, ter a cara do cliente, se apresentar ao cliente como ele gostaria de ser atendido em sua JORNADA junto a sua empresa, a busca pela melhor EXPERIÊNCIA para o Cliente. Mas tudo isso é para um outro artigo que dá muitas visões, hoje iremos olhar para um ponto específico que é muito mais tecnológico que cultural, pois, para utilizá-lo você já deve ter se situado que a transformação digital já foi, e é preciso virar a mesa para buscar essa nova cultura, vamos falar de uma arquitetura de software que pode ajudar muito o departamento de TI em construir e entregar soluções que apõem as empresas a mudar o mindset e entregar melhor a tecnologia de software para suportar e alavancar o negócios, falaremos de Microservices ou Micro Serviços ou Microserviços.

A TI como parte integrante do negócio

Segundo o Gartner é preciso explorar, planejar, entregar e evoluir a estratégia de plataforma digital para poder apoiar na transformação digital, com isso posto, o departamento de TI deve estar sempre atualizado, antenado, pesquisando e buscando soluções, visões, ferramentas, tendências e arquiteturas inovadoras para constantemente se manter em evolução para poder apoiar e ajudar as empresas a alavancar seus negócios.

Um departamento de TI que esteja parado no tempo, ou sem visões ou a busca de inovações é parte comprometedora de possíveis perdas de negócios ou a falta de crescimento deste. É fundamental também que o mindset do departamento de TI esteja culturalmente antenado nas mudanças tanto comportamentais dos clientes quanto das ferramentas tecnológicas, o setor de tecnologia não é mais apenas bits e bytes, é um dos setores mais importantes no alicerce do sucesso das empresas, eu sempre digo as meus colaboradores e parceiros, que leiam além de java, c#, Banco de Dados, IA, Machine Learning, BigData, Python, Computação QUANTUM e etc.(Tudo isso já deve ser para nós igual ao ar que respiramos), leiam Administração, Marketing, Contabilidade, acessem a bolsa de valores, entendam porque o dólar subiu ou caiu, o profissional de TI hoje tem que estar antenado a cadeia de valores que nós atendemos diariamente estando dentro de uma empresa.

Hoje em dia o departamento de TI é um dos setores dentro das empresas que deve ser mais que completo, pois presta serviços a todos os setores da empresa, contábil, fiscal, compras, operação, vendas, marketing, logística, atendimento ao cliente entre outros, é um setor que entende, analisa, planeja junto com os gestores as melhores soluções para atender as necessidades, melhorias, evoluções de cada um desses setores, porém, a TI deve estar ligada ao TODO, pois, esses departamentos se relacionam de alguma maneira na cadeia de valor das empresas, e a TI deve tomar os cuidados para poder INTEGRAR a todos de forma que a engrenagem seja cada vez mais transparente, ágil, de alta disponibilidade, segura, e que leve a cada setor informações precisas para as tomadas de decisões diárias que podem mudar o rumo da companhia, por isso SER TI em uma empresa é SER PARTE INTEGRANTE DO NEGÓCIO. TI deve ser o setor que tome para si a responsabilidade de mostrar o norte para seu C-Level, que seja o departamento que busque a inovação constante engajada ao negócio e que faça a diferença junto a todos os setores da empresa para que esses possam evoluir e prestar um serviço cada vez melhor para os clientes da empresa.

Microserviços uma arquitetura para apoiar o crescimento do negócio

A busca da transformação digital está diretamente ligada a entregar a melhor experiênciapara os clientes das organizações e na relação direta de fidelização, captação, retençãodesses clientes. No contexto de tecnologia desenvolver software para atender a essa demanda requer uma visão ágil (Não apenas na forma de gerenciar os projetos, vai além disso), na escalabilidade real do software(Não estou falando apenas em clusterização de várias instâncias de servidores, que alias isso falaremos na parte 2, das vantagens do escalonamento dos Microserviços, já ouviu falar sobre o escalonamento em CUBO?), segurança, alta disponibilidade, autonomia de software por segmento de setor de responsabilidade.

A arquitetura de Microserviços ajudam o departamento de tecnologia a entregar aplicativos mais eficientes, de forma ágil, seguros, escaláveis e com uma melhor gestão de negócios, existem prós e contras no uso de qualquer arquitetura, porém, tomadas as devidas precauções na gestão das questões importantes, a arquitetura de Microserviços tem em sua maioria benefícios enormes para apoiar as empresas em sua transformação digital e a reformular todos os aspectos dos processos organizacionais da sua organização para aproveitar essa mudança de cultura digital.

Os Microserviços apoiam a construção de software de forma escalável, disruptiva, autônoma, segura e de alta disponibilidade, aliados a cultura de entregas contínuas e implantação continua, com a cultura DEVOPS, os Microserviços possuem inúmeras características que diferem dos sistemas monolíticos onde um único bloco de software é entregue em produção, o qual em tempo de qualquer mudança ou problema faz com que todo o sistema seja afetado, pois, quando algo está errado em um sistema monolítico, o todo pode estar comprometido dependendo do tipo de comprometimento.

Os Microserviços nos trazem a vantagem de olharmos o todo em partes isoladas de forma de sua elaboração, analise e construção, otimizando até o time de desenvolvimento a atuar de forma ESPECIALISTA por assuntos e Funções Sistêmicas (e que nos arremete a departamentos, como finanças, contábil, fiscal, RH e etc.) e atuarem na melhor entrega para cada uma das responsabilidades dessas partes menores. A DECOMPOSIÇÃO do TODO em partes especialistas, nos dá uma melhor gerencia na entrega e na melhoria continua dessas partes para enriquecer esse todo, aplicativos que se baseiam em Microserviços são a composição das partes para formar um todo, dando a cada parte a sua responsabilidade em gerenciar o seu modelo de negócio especifico que essa parte é responsável, é a concretização do DDD Domain Driven Design de Eric Evans , que mostra uma estratégia para decompor um grande projeto, baseado nas funções, em partes menores e mais gerenciáveis.

Características dos Microserviços

Foco em funcionalidades e no escopo específico em pequenas partes de software;

Independência ao time de desenvolvimento para focar no escopo específico;

Adoção de novas tecnologias por parte do time de desenvolvimento dos Microserviços;

Integração através de APIs ( Application Programming Interface) utilizando JSON e protocolo HTTP;

Gestão de AutoScalling através do uso da tecnologia de Containers (DOCKER E KUBERNTES);

Melhor tolerância a falha e na gestão da saúde da aplicação;

Permite mudanças exigidas pelo negócio de forma mais ágil, com testes mais precisos para cada versão sem altos custos operacionais;

A arquitetura em Microserviços apoiam a transformação digital nas empresas pois ajudam ao time de tecnologia em um melhor GERENCIAMENTO dos aplicativos, com uma ESCALABILIDADE mais eficiente, concretas melhorias na SEGURANÇA, criação de aplicativos MODERNOS através de diversos Frameworks consolidados no mercado tornando mais FLEXÍVEL e ÁGIL a codificação, e com maior DISPONIBILIDADE.

Mas, IMPLEMENTAR Arqutetura de Microserviços não é apenas utilizar de anotações de Framework dentro do código ou criar API’s ou serviços REST(Representational State Transfer), muitos profissionais de desenvolvimento de software param apenas na criação de serviços, e esquecem que a arquitetura vai desde a criação do método main (public static void main(){}) da aplicação até a gestão de como está a vida desse serviço no ecossistema global da aplicação, ou das integrações entre outros Microserviços que o utilizam. Para tudo isso ai entra a arte da ARQUITETURA de SOFTWARE com MICROSERVIÇOS, que iremos discutir mais na PARTE 2(caso tenhamos grande interesse por essa parte).

O que vem na PARTE 2 ( Não só teoria, GESTOR DE TI Hands-on! Vamos codificar tudo na prática, com exemplos)

O padrão API GATEWAY define como os clientes acessam os serviços em uma arquitetura de Microsserviço e os padrões Descoberta do Lado do Cliente (Client-side Discovery) e Descoberta do Lado do Servidor(Server-side Discovery) que são usados para rotear solicitações de um cliente para uma instância de serviço disponível em uma arquitetura de Microsserviço.

Na parte 03 veremos mais como gerenciar a saúde dos Microserviços, Circuit Breaker, configurações dos aplicativos de Microserviços, Docker, Kubernetes, ElasticSearch, SAGA e muito mais, eu e meu time de amigos(os loucos) estaremos aqui para explicar tudo passo a passo.

Obrigado por ter lido!

Espero ter sido útil de alguma forma.

Go ahead!