Compartilhar via


Princípios de design de cargas de trabalho SaaS no Azure

Como um fornecedor independente de software (ISV) que fornece uma solução SaaS, você é responsável pela excelência arquitetônica da solução e compartilha a responsabilidade com seu cliente. Eles dependem de sua solução e os problemas podem se espalhar para eles. Se sua organização é madura e tem uma base de clientes estabelecida, confiabilidade e segurança são provavelmente suas maiores preocupações. O tempo de inatividade e as violações de segurança podem ter consequências negativas para a receita e a reputação da sua empresa.

Mas muitos ISVs, especialmente ISVs de startups, operam com recursos limitados para minimizar custos. Se sua organização estiver na fase inicial, talvez seja necessário fazer concessões agressivas para avançar para a próxima fase de crescimento. Você pode não ter equipes dedicadas para governança, segurança ou automação de implantação, mas lembre-se de planejar o crescimento futuro. Se você tiver que correr riscos, tome decisões calculadas.

A forma como você projeta uma solução que opera em um baixo volume de escala difere de uma solução de alta escala. Para dar suporte ao crescimento rápido, você deve projetar uma arquitetura de carga de trabalho SaaS com flexibilidade e adaptabilidade. Este artigo apresenta os princípios subjacentes levando em consideração essa evolução do crescimento. Considere todos os cinco pilares do Well-Architected Framework juntos, incluindo as compensações. Há um padrão mínimo em todos os pilares, então considere cada um. Se você não aplicar esses princípios, poderá introduzir perdas financeiras e reduzir a confiança do cliente.

Confiabilidade

Princípio de design Considerações
Priorize a disponibilidade. Sua solução é o seu negócio. Mantenha a alta disponibilidade tanto quanto possível. Se sua solução sofrer uma interrupção, o impacto poderá afetar não apenas seus clientes, mas também os clientes deles.
Seja explícito sobre os SLAs (contratos de nível de serviço) que você oferece aos seus clientes. Ao criar SLAs com suporte financeiro para seus clientes, certifique-se de que você pode atendê-los e que os componentes dos quais você depende são compatíveis com eles. Examine os SLAs compostos para serviços subjacentes do Azure como parte do processo de design de SLA. Não faça suposições. Reflita seu modelo de responsabilidade compartilhada em seus SLAs.

Compensação: Confiabilidade e custo. Para obter alta confiabilidade, muitas vezes você precisa implantar recursos extras. Por exemplo, você pode distribuir recursos em várias zonas de disponibilidade ou regiões. Alguns serviços do Azure oferecem replicação geográfica interna ou replicação entre zonas, mas esses recursos geralmente vêm com altos custos.

Tome decisões informadas sobre o nível de resiliência que seu orçamento permite. Se a confiabilidade de alguns componentes ou fluxos na carga de trabalho não tiver implicações financeiras, considere oportunidades de baixo custo para melhorar sua resiliência. Por exemplo, você pode usar zonas de disponibilidade de serviços de plataforma, fazer backup regular de dados em outro local físico e usar a IaC (infraestrutura como código) para reimplantar recursos rapidamente durante os processos de recuperação.

Segurança

Princípio de design Considerações
Estabeleça a governança como base para a segurança. Estabeleça boas práticas de governança desde o início, em vez de resolver os problemas posteriormente. Muitos fatores afetam a segurança, como a forma como você gerencia funções, organiza recursos e implementa políticas. Sem uma governança robusta, os controles de segurança não protegem o sistema.
Siga uma linha de base de segurança na nuvem desde o primeiro dia. Espere auditorias de segurança de seus clientes. Incorpore trilhas de auditoria no início do seu projeto.
Isole seus clientes e isole seus segmentos. Use seu modelo de locação como uma estratégia para isolamento de dados. Segmente suas implantações e ambientes.
Comece com Zero Trust e forneça o menor acesso possível. Padrão para uma posição sem acesso. Introduza acesso mínimo somente quando necessário. Use essa estratégia para gerenciamento de identidade e tráfego de rede. Revise regularmente os fluxos pelo sistema e tome medidas sobre anomalias.
Evite credenciais sempre que possível. Se você precisar usar credenciais, proteja-as. Trate as credenciais como um passivo. Use provedores de identidade e técnicas confiáveis que minimizem o armazenamento de credenciais. Quando inevitável, proteja as credenciais com abordagens nativas de nuvem seguras. Lide com as credenciais e segredos do cliente com o máximo cuidado.
Adote a segurança como um processo contínuo. Reavalie continuamente sua postura de segurança. Considere o cenário de ameaças em evolução, novos recursos e protocolos e requisitos regulatórios ou de conformidade atualizados.

Compensação: Segurança e otimização de custos. Projetar e operar soluções seguras é caro. Mas você pode obter etapas significativas em direção à segurança, como boa governança e adesão a uma linha de base de segurança, com o mínimo ou nenhuma despesa. Determine o equilíbrio entre a eficiência de custos e sua postura de segurança ideal.

Otimização de custo

Princípio de design Considerações
Pague apenas pelo que você precisa. Aproveite os recursos do Gerenciamento de Custos da Microsoft para entender seus gastos gerais. Priorize as categorias de recursos mais caras para uma análise mais aprofundada. Identifique áreas onde você pode gastar demais.
Use o que você paga. Maximize o valor dos recursos pelos quais você paga, mas que pode subutilizar.
Modele seus custos. Acompanhe o custo dos produtos vendidos. Entenda o custo para entregar sua solução aos clientes. Este processo é semelhante à fabricação de um produto físico. Para informar sua tomada de decisão, monitore o custo de cada cliente em relação à receita que eles geram. Para entender e agregar rapidamente seus gastos do Azure, implemente processos de governança, como boa organização de recursos e marcação.
Entenda como seus custos e receitas estão relacionados. Evite situações em que os custos aumentem sem um aumento correspondente na receita. Por exemplo, os custos podem aumentar se você adicionar um novo recurso que ofereça armazenamento gratuito ilimitado. Da mesma forma, se você cobrar dos clientes com base no número de usuários, certifique-se de vincular a funcionalidade aos usuários.

Compensação: Otimização de custos e confiabilidade. Para criar soluções confiáveis, muitas vezes você precisa implantar componentes extras, transferir mais dados e usar SKUs de componentes-chave mais resilientes, o que aumenta os custos. A confiabilidade adicional geralmente vale a pena, mas você deve tomar decisões informadas. Para compensar esses aumentos de custo, certifique-se de usar outros componentes de forma eficaz e maximizar seu valor.

Excelência operacional

Princípio de design Considerações
Entenda o modelo de responsabilidade compartilhada. Defina claramente as responsabilidades do seu provedor de nuvem, seus clientes e sua organização. Certifique-se de que todos saibam quem é responsável por quais tarefas.
Prepare-se para operar uma solução em nome de seus clientes. Configure sua organização, equipe, processos e ferramentas para dar suporte à operação de SaaS em escala.
Adote processos consistentes. Use selos de implantação. Impulsione a consistência na configuração e arquitetura do selo. Automatize ou padronize processos.
Formalize exceções ou diferenças. Defina diferentes SKUs para atender a necessidades variadas. Use esse método para evitar implantações, configurações ou códigos personalizados para clientes diferentes.
Implemente as alterações com segurança. Implemente um processo de implantação seguro que você possa usar para exposição progressiva, monitoramento constante e reversão se surgirem problemas. Use um processo consistente para alterações de código, infraestrutura e configuração. Controle o número de versões da solução que você implanta a qualquer momento.

Compensação: Excelência operacional e o custo da complexidade. As operações de gerenciamento automatizadas podem aumentar a complexidade da sua solução e levar tempo para serem criadas. Inicialmente, o custo da automação pode superar os benefícios, especialmente com uma pequena base de clientes. Mas, à medida que o número de clientes cresce, o custo da automação compensa e os benefícios aumentam.

Eficiência de desempenho

Princípio de design Considerações
Implemente escala global para permitir o desempenho global. Forneça uma boa experiência para clientes globais por meio de implantações multirregionais ou roteamento de tráfego acelerado.
Quantifique sua escala esperada. Modele os cenários de crescimento melhor, médio e pior. Analise tendências e consulte sua equipe de vendas para projeções realistas. Planeje estratégias de dimensionamento flexíveis para acomodar várias possibilidades de crescimento.
Entenda os pontos de escala. Identifique onde você provavelmente precisa de flexibilidade. Os gatilhos comuns incluem o número de clientes ou locatários, usuários e transações por usuário. Entenda como esses fatores mudam à medida que sua empresa cresce e como eles afetam sua arquitetura.
Design para expansão. A expansão tem limites, mas a expansão permite uma expansão maior. Nem tudo é escalável horizontalmente, portanto, considere o uso de selos de implantação para dimensionar sua solução como uma unidade para evitar as limitações de escalar verticalmente os recursos.

Compensação: Eficiência e confiabilidade de desempenho. Sistemas confiáveis geralmente exigem replicação de dados em amplas áreas geográficas. Dependendo do design de replicação, essa configuração pode levar a uma latência mais alta e a uma taxa de transferência mais baixa. Por exemplo, se você replicar dados importantes de forma síncrona entre duas regiões do Azure que estão a várias centenas de quilômetros de distância, poderá adicionar centenas de milissegundos aos seus tempos de resposta devido à replicação em tempo real.

Próxima etapa

Comece sua jornada de aprendizado otimizando o faturamento do cliente e sua estratégia de gerenciamento de custos.