Aplicativos candidatos a ser nativos de nuvem
Dica
Esse conteúdo é um trecho do livro eletrônico, para Projetar os Aplicativos .NET nativos de nuvem para o Azure, disponível no .NET Docs ou como um PDF para download gratuito que pode ser lido offline.
Pense nos aplicativos que sua organização precisa criar. Em seguida, examine os aplicativos existentes em seu portfólio. Quantos deles garantem uma arquitetura nativa de nuvem? Todos eles? Talvez alguns?
Ao aplicar a análise de custo/benefício, há uma boa chance de alguns não apoiarem o esforço. O custo de tornar-se nativo de nuvem excederia em muito o valor comercial do aplicativo.
Que tipo de aplicativo pode ser um candidato para nativo de nuvem?
Sistemas corporativos estratégicos que precisam evoluir constantemente os recursos/capacidades de negócios
Um aplicativo que requer uma alta velocidade de lançamento, com alta confiança
Um sistema com o qual os recursos individuais devem ser lançados sem uma reimplantação completa de todo o sistema
Um aplicativo desenvolvido por equipes com experiência em diferentes pilhas de tecnologia
Um aplicativo com componentes que devem escalar independentemente
Aplicativos de linha de negócios menores e menos impactantes, podem se sair bem com uma arquitetura monolítica simples hospedada em um ambiente de PaaS na nuvem.
Em seguida, há sistemas herdados. Embora todos gostaríamos de criar novos aplicativos, geralmente somos responsáveis por modernizar cargas de trabalho herdadas que são essenciais para os negócios.
Modernizando aplicativos herdados
O e-book gratuito da Microsoft Modernizar os aplicativos .NET existentes com a nuvem do Azure e os contêineres do Windows fornece diretrizes sobre como migrar cargas de trabalho locais para a nuvem. A Figura 1-10 mostra que não há uma única estratégia que sirva a todos para modernizar aplicativos herdados.
Figura 1-10. Estratégias para migrar cargas de trabalho herdadas
Aplicativos monolíticos que não são críticos podem se beneficiar de uma migração rápida de lift-and-shift. Aqui, a carga de trabalho local é redirecionada para uma VM baseada em nuvem, sem alterações. Essa abordagem usa o modelo IaaS (Infraestrutura como Serviço). O Azure inclui várias ferramentas, como Migrações para Azure, Azure Site Recovery e Serviço de Migração de Banco de Dados do Azure para ajudar a simplificar a movimentação. Embora essa estratégia possa gerar alguma economia de custos, esses aplicativos normalmente não foram projetados para desbloquear e aproveitar os benefícios da computação em nuvem.
Aplicativos herdados que são essenciais para os negócios geralmente se beneficiam de uma migração aprimorada com Otimização de Nuvem. Essa abordagem inclui otimizações de implantação que habilitam os principais serviços de nuvem sem alterar a arquitetura principal do aplicativo. Por exemplo, você pode colocar o aplicativo em contêiner e implantá-lo em um orquestrador de contêineres, como os Serviços de Kubernetes do Azure, discutido posteriormente neste livro. Uma vez na nuvem, o aplicativo pode consumir serviços de backup em nuvem, como bancos de dados, filas de mensagens, monitoramento e cache distribuído.
Por fim, aplicativos monolíticos que fornecem funções corporativas estratégicas podem se beneficiar melhor de uma abordagem nativa de nuvem, o assunto deste livro. Essa abordagem fornece agilidade e velocidade. Porém, ela tem um custo para realocar plataformas, rearquitetar e regravar código. Com o tempo, um aplicativo herdado pode ser decomposto em microsserviços, em contêineres e, finalmente, replataformado em uma arquitetura nativa de nuvem.
Se você e sua equipe acreditarem que uma abordagem nativa de nuvem é apropriada, cabe a você racionalizar a decisão com sua organização. Qual é exatamente o problema de negócios que uma abordagem nativa de nuvem resolverá? Como ela se alinharia às necessidades de negócios?
Versões rápidas de recursos com maior confiança?
Escalabilidade refinada para o uso mais eficiente de recursos?
Resiliência aprimorada do sistema?
Melhor desempenho do sistema?
Mais visibilidade das operações?
Misturar plataformas de desenvolvimento e armazenamentos de dados para chegar à melhor ferramenta para o trabalho?
Investimento em aplicativo preparado para o futuro?
A estratégia de migração correta depende das prioridades organizacionais e dos sistemas que você está direcionando. Para muitos, pode ser mais econômico otimizar uma nuvem de um aplicativo monolítico ou adicionar serviços refinados a um aplicativo N-Tier. Nesses casos, você ainda pode fazer uso total das funcionalidades de PaaS de nuvem, como as oferecidas pelo Serviço de Aplicativo do Azure.
Resumo
Neste capítulo, introduzimos a computação nativa de nuvem. Fornecemos uma definição junto com os principais recursos que impulsionam um aplicativo nativo de nuvem. Analisamos os tipos de aplicativos que podem justificar esse investimento e esforço.
Com a introdução por trás, agora nos aprofundamos em um olhar muito mais detalhado sobre a nuvem nativa.
Referências
Microsserviços do .NET: arquitetura para aplicativos .NET em contêineres
Modernizar aplicativos .NET existentes com contêineres do Windows e nuvem do Azure
Aplicativos nativos de nuvem: envie mais rápido, reduza o risco e aumente seus negócios
Microimplantação da Engenharia Uber: implantando diariamente com confiança
Controle de sobrecarga para escalar microsserviços do WeChat