Metodologia de design para cargas de trabalho SaaS no Azure
Os ISVs (fornecedores independentes de software) devem planejar cuidadosamente os requisitos de sua solução de software como serviço (SaaS), já que a solução é o negócio deles. Os clientes empresariais, como outras empresas ou consumidores individuais, são os usuários diretos da solução. Esse modelo de negócios define altas expectativas porque você deve considerar seus requisitos de carga de trabalho e as necessidades dos clientes como arquiteto do projeto.
Este artigo descreve uma metodologia de design que pode ser usada para definir e refinar sistematicamente os requisitos. Se você não tiver certeza sobre várias decisões de design e opções de tecnologia, revise essa metodologia para se manter alinhado com os requisitos de negócios. A criação de uma carga de trabalho SaaS é um processo iterativo que requer flexibilidade para se adaptar aos mercados em evolução e às necessidades dos clientes. Essa estrutura pode ajudá-lo a colaborar com as equipes de marketing e vendas para validar decisões técnicas e avaliar o feedback do cliente para melhoria contínua.
Projete para o seu modelo de negócios
É importante entender como seus requisitos de negócios afetam sua solução downstream. Considere os seguintes pontos de decisão:
O local onde você implanta recursos limita os padrões de arquitetura que você pode usar. Você pode implantar todos os recursos em suas assinaturas do Azure ou os clientes podem comprar a solução e implantá-la em suas próprias assinaturas do Azure. Como alternativa, a carga de trabalho pode usar recursos que o cliente implanta em suas assinaturas do Azure.
Por exemplo, se você implantar seu software no ambiente do cliente, não poderá usar um padrão de arquitetura baseado apenas em recursos compartilhados porque cada cliente tem seu próprio ambiente autônomo com recursos dedicados.
Para obter mais informações, consulte Modelos de implantação de ISV.
Seu modelo de preços determina a receita da sua empresa, o que, por sua vez, afeta o custo permitido dos produtos vendidos. Essa dinâmica afeta diretamente sua arquitetura técnica.
Para obter mais informações, consulte Modelo de preços.
Os recursos ou produtos que você fornece podem afetar sua arquitetura. Talvez seja necessário fazer alterações ou adições à sua arquitetura técnica ao escolher recursos específicos. Fornecer produtos diferentes para vários clientes também pode levar a uma arquitetura mais complexa, pois deve suportar essas variações.
Design para as necessidades do seu cliente
Projete sua solução com os requisitos do cliente em mente. Os clientes podem ter requisitos extras para sua solução, o que cria um superconjunto que sua solução deve atender. Esses requisitos extras às vezes podem entrar em conflito com as necessidades de sua empresa ou com as necessidades de outros clientes. Quando esses requisitos diferem de suas necessidades de negócios ou adicionam mais restrições, tomar decisões para sua solução pode ser difícil. Por exemplo, sua solução pode atender aos seus padrões de segurança, mas um cliente pode ter requisitos de segurança mais rígidos que você deve cumprir para proteger seus negócios.
Crie uma arquitetura flexível para acomodar esses requisitos extras. Se os requisitos do cliente não afetarem seus próprios requisitos, tente integrá-los ao seu modelo de negócios. Calcule o custo desses ajustes. Se os requisitos exclusivos de um cliente incorrerem em custos extras, considere cobrá-los adequadamente.
Certifique-se de ter metas de confiabilidade realistas que atendam às expectativas do cliente e projete sua arquitetura para alcançá-las.
Projetar seu modelo de locação
A maioria das soluções SaaS depende da multilocação como a principal estratégia técnica para maximizar a eficiência de custos. A multilocação envolve uma variedade de opções que não têm padrões padrão. Seu modelo de locação afeta aspectos de sua arquitetura, incluindo sobrecarga de gerenciamento, custo e isolamento de dados. Encontre o equilíbrio certo para sua solução. O modelo de locação escolhido é crucial porque deve equilibrar as necessidades do cliente e da empresa.
Para ajudá-lo a tomar decisões informadas, consulte estes artigos:
Sua arquitetura deve ter a flexibilidade de alterar o modelo de locação com base nos requisitos novos ou de entrada do cliente. Por exemplo, você pode usar uma arquitetura totalmente multilocatário, mas obter um novo cliente em um setor altamente regulamentado que precisa de segurança extra. Você pode particionar verticalmente sua implantação para fornecer um carimbo dedicado. Essa mudança levanta uma decisão de negócios sobre se eles devem pagar mais do que seus outros inquilinos. Essa configuração aumenta os custos e a complexidade dos recursos, por isso faz sentido que eles paguem mais.
Design para ser bem arquitetado
Ao projetar uma carga de trabalho SaaS, tenha cuidado extra para garantir que o sistema seja resiliente, seguro, eficiente, eficiente e equilibre os requisitos do cliente. Ao contrário dos aplicativos corporativos, as falhas em um aplicativo SaaS também podem afetar seus negócios, clientes e seus usuários.
Para cada decisão, avalie as compensações entre os pilares do Azure Well-Architected Framework. Para obter informações sobre as abordagens estratégicas por pilar, consulte Princípios de design.
Crie designs para operações
As operações de carga de trabalho SaaS precisam de uma perspectiva diferente. Você precisa considerar fatores como capacidade de suporte. Determine como fornecer suporte à plataforma durante todo o dia e contrate pessoas com o conjunto de habilidades certo. Não trate as operações como uma reflexão tardia ou concentre-se apenas na criação de novos recursos. Inclua operabilidade em seu projeto desde o início. Considere como seus processos são dimensionados à medida que você obtém mais clientes. Por exemplo, as operações manuais podem funcionar no início, mas geralmente não são bem dimensionadas ao longo do tempo.
Se você tiver uma plataforma legada, considere como ou se deve mover os clientes para sua nova plataforma SaaS. Um caminho de migração tranquilo é fundamental para manter os clientes satisfeitos durante a transformação de seus negócios.