Skip to main content

Nos últimos tempos, temos ouvido muito sobre a importância de ser resiliente e estar atualizado para atender às exigências do mercado. E o mercado é um cliente muito exigente, diga-se de passagem. 

Nesse contexto, podemos observar empresas como a Amazon Web Services (AWS), que se destacam por sua resiliência e atualização constantes.

A AWS tem adotado uma abordagem que envolve a inclusão de produtos de terceiros em seu portfólio, aumentando assim o potencial de seu marketplace. Isso significa que você tem a liberdade de escolher as soluções com as quais deseja trabalhar, independentemente de serem nativas da AWS ou não.

Neste artigo, analisaremos dois serviços oferecidos pela AWS: Step Functions e MWAA (AWS Managed Workflows para Apache Airflow Service). Continue lendo para descobrir mais detalhes sobre essas soluções e como elas podem beneficiar o seu negócio.

O que é o AWS Step Functions?

O AWS Step Functions é uma solução nativa da AWS que oferece recursos de orquestração sem servidor. É um serviço que permite a integração perfeita com a AWS Lambda e outros serviços da AWS, possibilitando a criação de aplicações essenciais para o sucesso dos negócios. 

Por meio de uma interface visual intuitiva no console do Step Functions, é possível visualizar o fluxo de trabalho da sua aplicação como uma sequência de etapas acionadas por eventos.

Ele simplifica a criação, o gerenciamento e a depuração de fluxos de trabalho, tornando mais fácil entender a lógica do seu processo. É uma ferramenta poderosa para orquestrar processos em ambientes sem servidor.

O que é o MWAA?

O MWAA, também conhecido como AWS Managed Workflows para Apache Airflow Service, é um serviço oferecido pela AWS que permite a configuração e operação de data pipelines na nuvem em grande escala. Ele é construído em cima do Apache Airflow, uma ferramenta de código aberto utilizada para criar, programar e monitorar fluxos de trabalho compostos por diferentes processos e tarefas.

Com o MWAA, você pode aproveitar os recursos do Apache Airflow juntamente com a linguagem de programação Python, sem a necessidade de lidar com a complexidade da infraestrutura subjacente. O serviço gerencia automaticamente a escalabilidade, disponibilidade e segurança necessárias para executar seus fluxos de trabalho de maneira eficiente.

Além disso, o MWAA integra-se perfeitamente aos serviços de segurança da AWS, garantindo um acesso rápido e seguro aos seus dados. Dessa forma, você pode concentrar-se na criação dos fluxos de trabalho, enquanto a AWS cuida da infraestrutura e da proteção dos seus dados, proporcionando uma experiência simplificada e confiável para a orquestração das suas tarefas e processos.

Quais são os prós e contras?

Embora seja uma vantagem ter duas soluções fantásticas, como o AWS Step Functions e o Apache Airflow, que atendem à mesma finalidade de orquestração de processos e fluxos de trabalho, é essencial compreender os prós e contras de cada uma delas

Cada solução possui características distintas que podem impactar o desempenho, a escalabilidade, a complexidade de implementação e os custos envolvidos. 

Portanto, é importante analisar cuidadosamente os aspectos positivos e negativos de cada opção antes de tomar uma decisão. Considere as seguintes características:

Características do AWS Step Functions

  • é uma escolha ideal quando há necessidade de executar trabalhos ETL (Extração, Transformação e Carga) ou em paralelo, permitindo que conjuntos de dados de origem sejam processados em momentos distintos;
  • oferece um histórico de eventos abrangente, o que pode ser útil para análises posteriores;
  • pode apresentar certa dificuldade na coordenação de uma linguagem de declaração, especialmente ao incorporá-la;
  • fornece manutenção pronta para uso, alta disponibilidade e escalabilidade, atendendo às necessidades do seu caso de uso.

Características do Apache Airflow

  • possui uma interface de usuário amigável, tornando a configuração e o gerenciamento dos fluxos de trabalho mais acessíveis;
  • suporta várias representações da máquina de estado, proporcionando flexibilidade no design dos fluxos de trabalho;
  • a API REST do Airflow atingiu estabilidade a partir da versão 2.0, possibilitando sua integração com diversas ferramentas e serviços por meio de CLIs e SDKs.
  • envolve custos de servidor;
  • é necessário considerar opções de escalonamento automático ou balanceamento de carga em servidores ou contêineres (Kubernetes).

Outros aspectos relevantes a considerar

  • o AWS Step Functions oferece execuções de etapas gratuitas, limitadas a 4.000 por mês no nível gratuito, e um custo adicional por etapa após esse limite. Já o Apache Airflow tem custos associados ao uso de servidores para a execução dos fluxos de trabalho;
  • ambas as soluções podem ser integradas ao AWS Batch para melhorar o desempenho e a eficiência;
  • no Apache Airflow, é possível limpar e executar novamente uma tarefa com falha, enquanto no AWS Step Functions é necessário criar uma implementação personalizada para lidar com essa situação;
  • o Step Functions oferece uma representação visual clara dos estados com falha, fornecendo informações detalhadas ao clicar neles, além de suportar retornos de chamada assíncronos;
  • enquanto o Step Functions utiliza JSON para definir a máquina de estado, o Airflow utiliza scripts Python.

Qual é a solução mais vantajosa a ser usada?

No geral, o AWS Step Functions apresenta mais vantagens em comparação com o MWAA (AWS Managed Workflows para Apache Airflow Service). No entanto, é importante considerar o custo de manutenção e desenvolvimento para ambos os serviços, levando em conta o seu caso de uso específico. 

É importante frisar que ambas as soluções são excelentes, mas ressaltamos a importância de realizar testes e pesquisas antes de decidir quanto à adoção de uma delas. Nosso objetivo é fornecer informações que te auxiliem na tomada de decisão. É válido mencionar que os testes e abordagens apresentados foram realizados em um contexto 100% AWS.

A Leega possui uma parceria sólida com a Amazon Web Services Cloud para desenvolver soluções e serviços eficientes que atendam às necessidades dos clientes. Acesse nosso site e saiba como podemos ajudar sua empresa!

About Carlos Eduardo Santana