Escrito por ilegra,

5 minutos de leitura

Estruturação de um ambiente de dados totalmente gerenciado pela AWS e que suporte o negócio

A construção de um ambiente de dados performático, adaptável ao negócio, monitorado e que seja orientado à eventos e processos batches

Compartilhe este post:

Sobre o cliente:

Este cliente é uma rede de academias dos Estados Unidos. Esta rede de academias possui mais de 130 unidades espalhadas desde a costa leste até a oeste do país. Em seu ambiente tecnológico, possui um app para iOS e Android, além de um site com e-commerce e um sistema de auto-atendimento dentro dos estabelecimentos. Através da tecnologia, os membros da rede podem realizar compras de pacotes de personal trainers entre outros serviços, assim como a troca de planos mensais. Além disso, a empresa é orientada a dados para a tomada de decisões, possuindo um sistema de BI e iniciativas de Data Science.

O desafio:

A ilegra iniciou uma parceria estratégica com o cliente com o intuito de prover um ambiente que sustente as decisões de negócio e também as mudanças que são necessárias. Esta parceria começou em 2020, durante o auge da pandemia, onde ambientes presenciais, como academias, estavam sendo extremamente afetados no cerne do negócio. Neste cenário, era importante prover dados de qualidade e que auxiliassem os tomadores de decisão a manter o negócio rentável.

Com dores de negócio bem latentes quanto a velocidade de fornecimento de dados e também de fornecimento de dados de qualidade e prontos para análises, a ilegra iniciou os trabalhos com o intuito de fornecer a segurança para a tomada de decisão e de padronizar os processamentos de dados usando os serviços da AWS;

Por que escolher a Amazon Web Services?

O cliente já utiliza a AWS desde o início de sua operação, em 2011. Quando os especialistas em engenharia de dados da ilegra começaram a olhar o ambiente tecnológico comparando com as necessidades dos negócio, confirmou-se que foi uma sábia escolha. A AWS provê diversos serviços de processamentos de dados gerenciados por ela mesma. Serviços que dão escalabilidade e segurança para a empresa seguir acelerando seu negócio.

Além de suportar o negócio, existe a governança de tecnologia e das boas práticas que deveriam ser atendidas pelo time técnico de engenharia de dados. Um dos pedidos explícitos foi de utilizar ferramentas “code based”, preferencialmente usando Python para o processamento de dados. Além disso, o time técnico não poderia crescer muito, sendo necessário ferramentas que automatizassem o processamento e também que não exigissem muito tempo de gestão e manutenção dos serviços.

Solução:

A solução arquitetada e implementada no cliente foi totalmente baseada na infraestrutura e serviços que a AWS provê em seu catálogo.

Amazon Redshift: com a necessidade de armazenar dados em um local seguro, escalável, com ótima performance, que suporte sistemas de BI e também que rode SQL, o Amazon Redshift atendeu todas as necessidade técnicas e de negócios para trabalhar como um Data Warehouse (DW).

Amazon Managed Workflows for Apache Airflow (MWAA): o MWAA se encaixou perfeitamente com as necessidades técnicas e de negócio, onde é um serviço para orquestração de pipelines, totalmente “code based” usando a linguagem Python e também sem a necessidade de um time dedicado para a sustentação, uma vez que o mesmo é um serviço gerenciado pela AWS.

Amazon Database Migration Service (DMS): o DMS, além de ter o serviço de migração de dados, também fornece a possibilidade de uma replicação de bancos de dados transacionais em formato online e seguro. Os dados replicados são direcionados diretamente para para o Redshift em schemas a parte para a formação de uma camada “raw” no DW.

Amazon Timestream: com o fato do cliente possuir diversos dados temporais, havia a necessidade de fornecer informações temporais de uma forma mais assertiva e rápida. O Timestream é um banco de dados gerenciado pela AWS que trabalha com um engine time-series, sendo o mecanismo perfeito para este tipo de necessidade.

Amazon Relational Database Service (RDS): por mais que haja dentro da arquitetura o Redshift, em alguns casos de uso há a necessidade de trabalhar com um volume pequeno de dados e altamente indexado, desta forma, a utilização de RDS, principalmente do Amazon Aurora, ocorreu de forma natural para a disponibilização dos dados nestes casos de uso.

Amazon API Gateway: uma das formas mais inteligentes de um time fornecer informações para diferentes endpoints é através de métodos de API. O processamento de dados é realizado anteriormente e através dos métodos, onde se cria uma camada que se torna independente de quem é o data source.

Amazon Elastic Container Service (ECS): com o uso do MWAA para a orquestração de data pipelines, também tornou-se necessário o uso de ferramentas que auxiliem os engenheiros de dados a criar e manter melhor os modelos de dados. Desta forma, o dbt (Data Build Tool) se encaixou na arquitetura do ambiente, sendo utilizada em containers dentro do ECS.

AWS Lambda: funções lambdas são utilizadas para diversos cenários dentro dos ambientes da AWS. Isso se deve a sua praticidade e versatilidade de aplicações. Nos projetos, as existem diversas funções lambdas para práticas, principalmente para os casos de uso que exigem uma abordagem orientada a eventos.

Amazon EventBridge: com diversos casos de uso orientados à eventos, existe a necessidade técnica de uma sustentação da arquitetura para o acoplamentos destes eventos. Desta forma, a utilização do EventBridge para a integração entre as diferentes funções lambdas fez total sentido.

Amazon CodeBuild: quando falamos em ambientes modernos de dados, as práticas DataOps são mandatórias. Desta forma, o CodeBuild se encaixou neste ambiente para prover processos de CI/CD seguros e que garantam que todos os códigos gerados serão implantados com garantia de qualidade.

AWS Glue: além de fornecer mecanismos para processamentos de dados analíticos, principalmente usando os seus jobs com engine Spark, o Glue possui os crawlers que leem dados que estão dentro do Amazon S3, gerando tabelas que podemos ler dentro do Amazon Athena através da linguagem SQL.

Amazon Athena: o Athena é um serviço para Data Lakes, onde podemos ler dados estruturados e não estruturados através da linguagem SQL e que também possibilita uma integração direta com o Redshift, através do Redshift Spectrum.

Amazon Simples Queue Service (SQS): quando descrevemos serviços orientados a eventos e que possuem um banco de dados em alguma das pontas, faz-se necessário o uso de filas para que não haja um gargalo no processo. Assim, a utilização do SQS e suas filas vem para suportar os casos de uso.

Amazon Simple Notification Service (SNS): o SNS é um serviço de notificação baseado em tópicos, onde podemos realizar subscrições de diferentes serviços. Neste nosso cenário, ele serve principalmente para notificações de alarmes e alertas inteligentes e assertivos do ambiente.

Amazon CloudWatch: e por fim, quando falamos de um time enxuto e que é responsável por uma arquitetura que envolve diferentes casos de uso e tecnologias, o CloudWatch é o maior aliado que este time pode ter, sendo o responsável pela monitoria e métricas do ambiente. Todos os serviços da AWS estão conectados à ele, e para cada caso de uso, é gerado o alarme de forma assertiva no CloudWatch para que o tópico do SNS notifique seus subscritos.

Arquitetura:

Benefícios Gerados:

A geração de dados conforme a necessidade do negócio é o primeiro grande benefício. Através da arquitetura projetada e implementada, é possível entregar para diferentes endpoints o dado no formato desejado, não importando se é um outro desenvolvedor, um time, um sistema de BI, um time de ciência de dados ou uma outra aplicação.

Quando falamos na dore de negócio em ter um ambiente adaptável e maleável para o negócio, trouxemos uma abordagem incremental, com uma visão de roadmap, “atacando” primeiramente a estruturação e os alicerces da plataforma com o MWAA e o Redshift. Após os processos estabilizados, houve a possibilidade de trabalhar com um roadmap aliado à estratégia da empresa com o mercado, uma vez que os usuários de negócio desenvolveram total confiança nos dados gerados de forma automatizada. Em paralelo a criação de novas features, também houve e há um roadmap de engenharia visando o crescimento de forma ordenada, monitorada e sustentável.

Um dos maiores benefícios na forma como a arquitetura foi implementada, foi a geração de independência do ambiente técnico do cliente em relação aos seus demais fornecedores. Os provedores dos softwares de gestão das academias, do CRM e dos sistemas financeiros não possuem mais tanta influência sobre o cliente, gerando uma maior liberdade do cliente na gestão de seus parceiros de negócios.

Com um time enxuto e com ótimos profissionais, foi possível criar um ambiente robusto e seguro para prover dados dentro do ambiente do cliente graças a segurança e ao arsenal de serviços que a AWS possui para sustentar os mais diversos negócios da empresa.

Usando os serviços gerenciados da AWS, também foi possível remover da arquitetura sistemas pagos a terceiros que deixaram de fazer sentido, tais como Informática, causando um grande impacto financeiro na empresa.

Compartilhe este post: