Os arquitetos ajudam a definir as proteções do processo e os recursos técnicos necessários para executar a estratégia digital dos negócios, o que geralmente inclui a evolução de aplicativos da web e infraestrutura de API — gateways de API, malhas de serviço e portais de desenvolvedores — em plataformas baseadas em nuvem.
Na prática, existem abordagens de “elevação e mudança”, “refatoração” (ou “re-arquitetura”) e “replataforma”, e a decisão sobre qual jornada arquitetônica tomar depende de vários fatores. Por exemplo, quanta acoplamento e coesão podem ser implementados com segurança. Uma API altamente coesa e fracamente acoplada deve ser o objetivo, pois fornece uma interface estável e um nível de abstração, protegendo o sistema de um efeito cascata de modificações de implementação que, de outra forma, seriam necessárias quando uma única alteração de design fosse feita. Isso permite que as diferentes partes da arquitetura evoluam de forma independente.
Decompor um aplicativo monolítico existente em microsserviços e migrá-lo para a nuvem é uma escolha prudente para modernização, pois essa abordagem permite que provedores de API e consumidores de API desenvolvam seus sistemas de forma mais eficaz.
Aqui, exploraremos um estudo de caso hipotético em que uma organização moderniza um sistema legado refatorando-o em uma arquitetura baseada em API e reestruturando-o para a nuvem.
O que significa modernizar um sistema legado? Um passo comum em qualquer jornada de transformação digital é fornecer os pontos de contato certos para os clientes realizarem transações, o que, no mínimo, significa criar um aplicativo móvel. Mas há mais envolvido. Na nova economia digital, a pressão do tempo de lançamento no mercado aumentou rapidamente o número de integrações de terceiros, à medida que as organizações “Criam, Pegam Emprestados ou Compram” para aumentar sua participação digital e base de clientes.
Se analisarmos detalhadamente como a modernização é feita na prática, descobriremos que ela envolve tanto processo quanto tecnologia — ou seja, automatizar a implantação e o aprimoramento de sistemas para entrega e verificação contínuas ( processo ) e evoluir aplicativos da web legados para arquiteturas orientadas a serviços e baseadas em API ( tecnologia ). Além disso, a infraestrutura de API, como um gateway de API, ajuda a garantir uma implantação eficaz em um ambiente de nuvem por meio de recursos robustos de gerenciamento de tráfego e segurança.
Aqui analisamos um estudo de caso hipotético para tal embarque digital envolvendo duas fases:
Em nosso exemplo hipotético, um sistema de conferência oferece suporte a funções como criação de uma conta de participante ( create account ), revisão de sessões disponíveis ( review sessions ) e reserva de participação ( book sessions ). O cliente interage com o sistema de conferência por meio de um navegador da web. Por exemplo, para reservar uma sessão de conferência:
Nos bastidores, o cliente interage com um aplicativo web, que envia chamadas de API para o aplicativo de conferência. O aplicativo de conferência usa SQL para consultar o armazenamento de dados de backend:
Vários requisitos estão impulsionando a necessidade de modernizar o sistema de conferência legado:
Um plano de alto nível é elaborado:
Estão sendo tomadas medidas para refatorar o componente Attendee em um serviço independente. O sistema de conferência agora tem duas interfaces de tráfego:
Em seguida, um gateway de API é implantado para facilitar o gerenciamento de tráfego escalável, sustentável e seguro, incluindo terminação SSL/TLS, autenticação e limitação de taxa:
Em seguida, uma malha de serviços é provisionada para redirecionar a funcionalidade de Sessões do sistema de conferência legado para um novo serviço de Sessão. Uma malha de serviço fornece controle detalhado do roteamento, garante confiabilidade e intermedia o tráfego de forma eficiente para comunicação de API de serviço para serviço para facilitar a visualização e a reserva das sessões de um participante:
Por fim, é hora de migrar o serviço Attendee e o gateway de API para a nuvem. Essa abordagem evita grandes retrabalhos ao mesmo tempo em que aproveita os serviços nativos da nuvem à medida que a organização migra de sua infraestrutura local existente:
Para colocar este manual em prática e modernizar seus aplicativos legados, confira o e-book Mastering API Architecture para aprender as melhores práticas para evoluir para sistemas baseados em API.