Este artigo continua o https://bit.ly/2JojL5h abrangendo com o foco em Arquitetura e Infraestrutura.

Nara Barros
omnichannelnasquad
Published in
3 min readDec 3, 2020

Estou chocado que existe tudo isso! E como funciona esse produto?

Bom, vamos lá! Agora você vai entender como funciona a lógica e estruturação da arquitetura que hospeda e mandem todos esses canais em seu funcionamento dentro de uma determinada aplicação (que é o produto a qual já entendemos ali em cima).

No início eu mencionei que quem iria explicar a respeito seria um DevOps (abreviação de desenvolvedor e operações por ser responsável por assegurar a produtividade dos desenvolvedores, a confiabilidade das operações internas e a efetividade da estrutura de Infra.) Mas, nesse caso o DevOps não atua sozinho. Há no mínimo uma série de Devs envolvidos com todos esses canais, assegurando o tráfego da mensageria (sistema de comunicação por meio de trocas de mensagens (eventos) sendo gerenciadas por um Message Broker (servidor)) e criando o vínculo entre o Script que exibe esses canais no FrontEnd da aplicação (A interface gráfica do produto, o seu layout que permite que o usuário utilize de forma dinamica um recurso do BackEnd que é o código que processa as requisições para que os elementos visuais tenham processamento e retorno em tela).

Para compreender todo esse fluxo, precisamos ter alguns conceitos mais disseminados, como:

1- Quando há essa troca de mensagens entre um canal e uma aplicação, as mesmas ficam armazenadas em um Banco de dados (Sistema gerenciador de dados gerados por um domínio, os popularmente utilizados são MySQL, MongoDB, Redis, SQLite entre outros) que é capaz de armazenar, buscar, retornar ou até mesmo excluir determinada interação. Ou seja: Cada interação gerada na aplicação possui um ID único (primary key) que poderá ser utilizado como método de busca na tabela em que estiver armazenada no banco de dados.

2- O canal possui uma API (Documentação aberta que possibilita que outros sistemas façam acesso aos Endpoints de requisição do produto ou serviço a qual se deseja integrar) que possibilita a comunicação entre o código fonte da aplicação e o do canal. Para conseguir a manipulação e controle do comportamento de cada canal é necessário que a aplicação consiga acessar o seu código, mas, por questões de patentes e legibilidades a forma estabelecida para essa conversação é o acesso aos Endpoints predispostos na API, que são linhas do código abertas para inserção em outros códigos. Para o teste nesses Endpoints, criação de novas API’s ou centralização de Endpoints de um Workspace (Ambiente compartilhado entre vários devs com requisições já pré cadastradas) geralmente utiliza-se o Postman.

3- Para a centralização de todos esses serviços que precisam estar em execução enquanto todo o fluxo ocorre é preciso um ambiente que suporte o fluxo de interação, o armazenamento e o código fonte simultaneamente. Para isso, utilizamos o conceito de infraestrutura como um serviço (IaaS) que é a capacidade de armazenar todos esses recursos em nuvem, alocando máquinas virtuais que processem os serviços separadamente para que não haja sobrecarga e perda de performance. À medida que as requisições aumentam, esse armazenamento/processamento em Cloud aumenta de forma distribuída, alocando novas instancias para manter a aplicação em seu funcionamento performático.

4- O código fonte é a centralização de todas as funcionalidades e canais que foram desenvolvidos de forma colaborativa e em diversas branchs (ramificações do projeto) por desenvolvedores que se dividem para entregar as requisições, elementos visuais, integrações e demais particularidades que a aplicação ofertará. Acessando esse código, você conseguirá localizar cada canal e seus respectivos métodos, classes, integrações e sua exibição a nível layout.

Agora acho que você já compreendeu bem que o negócio é bem complexo, né? Hahahaha

Por essa razão, necessitamos dos desenvolvedores codificando todas essas integrações com diferentes serviços e o DevOps assegurando que esteja tudo centralizado em nuvem e mantendo o retorno performático ao usuário final. Ou seja: Permitindo que você usufrua do produto e haja o envio do boleto da faculdade, a consulta de preço das camisetas bacanas, a mensagem de desconto da perfumaria, entre outras interações que ocorrem em cerca de milésimos em sua rotina e você nem imagina o quanto de serviços precisam estar sendo executados de forma síncrona.

Bom, nesses 3 artigos eu trouxe o propósito de descomplicar diferentes escopos e visões de um mesmo conceito e espero ter trazido um panorama abrangente do tema quando é disseminado em uma Squad, te mostrando com exemplos reais os papéis desempenhados por cada membro de um time. Até a próxima!

--

--

Nara Barros
omnichannelnasquad

Hi, I’m Nara. I am an Automated Test Analyst and I write about Tech topics in general.