Estratégias de Migração para a Nuvem com API Gateway
January 18, 2023
Migração para a nuvem é o processo de mover dados, aplicativos ou outros elementos de negócios de um ambiente local, parcial ou totalmente, para um baseado em nuvem oferecido por um provedor de serviços em nuvem popular como Azure, AWS ou Google Cloud. Este post explora diferentes abordagens para construir sua estratégia de migração para a nuvem usando um API Gateway.
Benefícios de migrar para a nuvem
Para empresas que realizam o processo de migração para a nuvem, a nuvem pode ter um impacto massivo. Isso inclui economizar dinheiro no hardware necessário para a infraestrutura de TI, tempo mais rápido para entrega, escalar seus aplicativos conforme a necessidade, proteger cargas de trabalho críticas para o negócio e dados mais sensíveis, e oportunidades aprimoradas para inovação.
Aqui, resumimos mais benefícios de migrar para a nuvem:
- Maior agilidade e flexibilidade
- Capacidade de inovar mais rapidamente
- Facilitação do aumento da demanda por recursos
- Melhor gerenciamento das expectativas crescentes dos clientes
- Redução de custos
- Entrega imediata de resultados de negócios
- Simplificação da TI
- Mudança para tudo-como-serviço
- Melhor gerenciamento de consumo
- Escalabilidade na nuvem
- Melhoria de desempenho
Desafios da migração para a nuvem
A migração para a nuvem pode trazer benefícios significativos, mas há alguns desafios ao longo do caminho, como não ter uma estratégia de migração para a nuvem no início, arquitetura existente complexa, processo de migração longo, tempo de inatividade do negócio durante a migração, adoção organizacional, segurança e conformidade.
As empresas migram para a nuvem para aproveitar a maior disponibilidade de serviços, escalabilidade ou qualquer um dos outros benefícios que a nuvem promete. No entanto, aproveitar ao máximo a nuvem requer um design e planejamento cuidadosos para garantir que a organização selecionou a nuvem mais adequada ao seu caso de uso.
Estratégias de Migração para a Nuvem
Existem várias abordagens para evoluir ou migrar um sistema baseado em API para a nuvem, variando desde manter ("não fazer nada"), até rehospedar, replataformar, recomprar, refatorar/rearquitetar (reescrever para aproveitar a infraestrutura da nuvem) e aposentar.
Este post descreve 6 estratégias diferentes de migração e é um ótimo ponto de partida se você foi encarregado de avaliar ou liderar a migração de sua arquitetura e sistemas existentes para a nuvem. Como as APIs são frequentemente o componente mais próximo do usuário e um ponto chave de entrada para a maioria das solicitações, você deve prestar atenção especial a elas ao decidir sua abordagem de migração. Os seis Rs apresentam um espectro de opções desde "não fazer nada" até uma reconstrução completa ou aposentadoria de um sistema. Eles são:
- Manter ou Revisitar
- Rehospedar
- Replataformar
- Recomprar
- Refatorar/Re-arquitetar
- Aposentar
Papel do Gerenciamento de API na migração para a nuvem
Independentemente da estratégia escolhida para sua jornada evolutiva, o gerenciamento de API pode desempenhar um papel fundamental na migração e no desbloqueio do valor das APIs dentro e fora de uma organização. Os gerenciadores de API são essencialmente um gateway superpotente, fornecendo vários recursos adicionais para publicar e controlar APIs. Os gerenciadores de API fornecem políticas que habilitam preocupações de borda, como desafios OAuth2, validação de conteúdo, limitação de taxa, cache, limitação de largura de banda, e muitos outros recursos típicos de um gateway. Existem muitas ferramentas de gerenciamento de API e é importante estar ciente de como escolher a certa.
Além disso, eles podem fornecer portais de desenvolvedores contendo um mercado de todas as APIs que os desenvolvedores podem usar ao construir sistemas para consumir as APIs oferecidas. As organizações também podem usar o gerenciamento de API para monetizar o acesso às APIs, tanto para clientes externos quanto para "chargebacks" internos, que são comuns em empresas e implantações entre divisões. Talvez a parte mais importante do gerenciamento de API seja que ele pode oferecer um ponto central para descobrir APIs, enquanto você continua a fazer alterações nos bastidores.
API Gateway como uma ferramenta para migração
O API Gateway é um componente essencial das soluções de gerenciamento de API. Você pode ler os 10 casos de uso mais comuns de um API Gateway no blog do Apache APISIX. O uso de um API gateway pode fornecer transparência de localização para serviços e APIs que estão sendo servidos, o que permite a implantação de um serviço na nuvem e o tráfego ser gradualmente desviado do serviço existente para o novo com impacto limitado (ou nenhum) nos consumidores.
Abaixo, 3 estratégias possíveis:
-
Uma maneira de usar um API Gateway em uma estratégia de migração para a nuvem é começar criando um proxy para seus serviços locais. Isso permite redirecionar o tráfego de seus serviços locais para os serviços correspondentes na nuvem, sem fazer alterações em seus aplicativos existentes. Também podemos fazer testes A/B simples, coletar métricas sobre o desempenho do novo endpoint na nuvem e a experiência do usuário, e voltar ao serviço local se, por qualquer motivo, o novo serviço na nuvem não for adequado.
-
Outra estratégia é usar um API Gateway como uma fachada para seus serviços na nuvem. Isso permite ocultar a complexidade de sua arquitetura de microsserviços dos consumidores externos, enquanto ainda permite que eles acessem a funcionalidade de que precisam.
-
Uma terceira estratégia é usar um API Gateway para implementar uma malha de serviços que pode ajudá-lo a implementar redes de confiança zero. Isso permite gerenciar e proteger a comunicação entre microsserviços, sem precisar fazer alterações nos serviços individuais.
Os serviços do Apache APISIX se mostram uma solução eficiente para implementar as preocupações acima, pois podem atuar como um proxy para todo o aplicativo ou como um único ponto de acesso. Atuando como um proxy, o API Gateway é capaz de lidar eficientemente com solicitações e rotear o aplicativo legado com endpoints refatorados.
Replataformando um aplicativo de exemplo para a nuvem
Vamos supor que temos um aplicativo de conferência que possui 5 componentes principais: um aplicativo web, API Gateway, um sistema de conferência legado e dois microsserviços (Sessão e Participante). Você pode ver a responsabilidade de cada serviço no diagrama arquitetônico abaixo.
Sua equipe escolhe migrar incrementalmente os serviços do aplicativo de conferência para a nuvem—em vez de arriscar uma abordagem "big bang"—a execução de serviços em vários ambientes de nuvem e data centers locais apresenta desafios adicionais. Dada essa tarefa, você decide "replataformar" primeiro o serviço de Participante. Como você já re-arquitetou a funcionalidade dos participantes, extraindo-a para um microsserviço independente em um estágio anterior, as estratégias de refatoração/re-arquitetura não pareceram apropriadas. No entanto, ao adicionar novas funcionalidades ao sistema de conferência no futuro, re-arquitetar o sistema (potencialmente extraindo um serviço) e movê-lo para a nuvem seria uma opção a ser fortemente considerada. Rehospedar poderia ser uma estratégia sólida, mas estamos ansiosos para aproveitar um banco de dados como serviço baseado em nuvem, em vez de "levantar e deslocar" nossa própria instância do banco de dados MySQL.
Além disso, você precisa migrar o API gateway para a nuvem (ou usar soluções de APIM fornecidas por fornecedores de nuvem) porque, com muitas migrações incrementais para a nuvem, o tráfego precisará transitar por várias redes para atender a uma solicitação de API feita por um usuário. Mover o API gateway para a nuvem agora também ajudará a suportar o tráfego de API sendo roteado incrementalmente do local local existente para a nuvem. O diagrama abaixo mostra o estado final da arquitetura replataformada.
Resumo
No geral, usar um API Gateway em uma estratégia de migração para a nuvem pode trazer muitos benefícios, como facilidade de gerenciamento, segurança e escalabilidade. Ele permite que você mova gradualmente seus serviços para a nuvem e pode ajudá-lo a ocultar a complexidade de sua arquitetura de microsserviços dos consumidores externos. Por exemplo, o Apache APISIX é uma solução de gerenciamento de tráfego de API totalmente open-source e nativa da nuvem que você pode implantar em qualquer nuvem e melhorar a produtividade dos desenvolvedores com plugins embutidos que reduzem o tempo de sua migração para a nuvem.
Recursos relacionados
Conteúdo recomendado
Comunidade
🙋 Junte-se à Comunidade Apache APISIX 🐦 Siga-nos no Twitter 📝 Encontre-nos no Slack