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 confiam na sua solução, e os problemas podem chegar a eles. Se a sua organização está madura e tem uma base de clientes estabelecida, a fiabilidade e a segurança são provavelmente as 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 de inicialização, talvez seja necessário fazer compensações agressivas para avançar para a próxima fase de crescimento. Talvez você não tenha equipes dedicadas para governança, segurança ou automação de implantação, mas lembre-se de planejar o crescimento futuro. Se tiver de 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 suportar um crescimento rápido, você deve projetar uma arquitetura de carga de trabalho SaaS com flexibilidade e adaptabilidade. Este artigo apresenta os princípios subjacentes tendo em conta essa evolução do crescimento. Considere todos os cinco pilares da estrutura bem arquitetada juntos, incluindo as compensações. Há um padrão mínimo em todos os pilares, então considere cada um deles. Se você não aplicar esses princípios, poderá introduzir perdas financeiras e reduzir a confiança do cliente.
Fiabilidade
Princípio de design | Considerações |
---|---|
Priorize a disponibilidade. | A sua solução é o seu negócio. Mantenha a alta disponibilidade tanto quanto prático. Se a sua solução sofrer uma interrupção, o impacto pode afetar não só os seus clientes, mas também os seus clientes. |
Seja explícito sobre os contratos de nível de serviço (SLAs) que você oferece aos seus clientes. | Ao criar SLAs com suporte financeiro para seus clientes, certifique-se de que você possa atendê-los e que os componentes dos quais você depende sejam compatíveis com eles. Analise os SLAs compostos para serviços subjacentes do Azure como parte do seu 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 ou regiões de disponibilidade. Alguns serviços do Azure oferecem replicação geográfica interna ou replicação entre zonas, mas esses recursos geralmente têm custos altos.
Tome decisões informadas sobre o nível de resiliência que o 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 regularmente de dados em outro local físico e usar infraestrutura como código (IaC) para reimplantar rapidamente recursos durante os processos de recuperação.
Segurança
Princípio de design | Considerações |
---|---|
Estabelecer a governança como a base para a segurança. | Estabelecer boas práticas de governação desde o início, em vez de resolver os problemas mais tarde. 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 dos seus clientes. Incorpore trilhas de auditoria no início do seu projeto. |
Isole seus clientes e 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 de sem acesso. Introduzir acesso mínimo apenas quando necessário. Use essa estratégia para gerenciamento de identidades e tráfego de rede. Rever regularmente os fluxos através do sistema e tomar medidas em caso de anomalias. |
Evite credenciais sempre que possível. Se tiver de utilizar credenciais, proteja-as. | Trate as credenciais como um passivo. Use provedores de identidade respeitáveis e técnicas que minimizam o armazenamento de credenciais. Quando inevitável, proteja as credenciais com abordagens seguras nativas da nuvem. Lide com as credenciais e segredos do cliente com o máximo cuidado. |
Adote a segurança como um processo contínuo. | Reavalie continuamente a 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. |
Tradeoff: Segurança e otimização de custos. Projetar e operar soluções seguras são caros. Mas você pode alcançar passos significativos 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 nenhum custo. Determine o equilíbrio entre a eficiência de custos e a sua postura de segurança ideal.
Otimização de custos
Princípio de design | Considerações |
---|---|
Pague apenas pelo que precisa. | Aproveite os recursos do Microsoft Cost Management para entender seus gastos gerais. Priorize as categorias de recursos mais caras para revisão posterior. Identifique as áreas em que você pode gastar mais. |
Use o que você paga. | Maximize o valor dos recursos pelos quais você paga, mas que você pode subutilizar. |
Modele os 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 para 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 das receitas. Por exemplo, os custos podem aumentar se você adicionar um novo recurso que ofereça armazenamento gratuito ilimitado. Da mesma forma, se você cobrar 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 muitas vezes 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 fornecedor de serviços de nuvem, dos seus clientes e da sua organização. Certifique-se de que todos sabem 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 carimbos de implantação. Aumente a consistência em toda a configuração e arquitetura do carimbo. Automatize ou padronize processos. |
Formalizar 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ódigo personalizados para clientes diferentes. |
Implemente as alterações com segurança. | Implemente um processo de implantação seguro que você pode 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 de solução que você implanta a qualquer momento. |
Tradeoff: Excelência operacional e o custo da complexidade. As operações de gerenciamento automatizado 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 |
---|---|
Implementar escala global para permitir o desempenho global. | Forneça uma boa experiência para clientes globais por meio de implantações em várias regiões ou roteamento de tráfego acelerado. |
Quantifique a escala esperada. | Modele os melhores, médios e piores cenários de crescimento. Analise tendências e consulte sua equipe de vendas para projeções realistas. Planeje estratégias flexíveis de escalonamento 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. |
Projete para expansão. | A expansão tem limites, mas a expansão permite uma maior expansão. Nem tudo é dimensionável, portanto, considere usar carimbos de implantação para dimensionar sua solução como uma unidade para evitar as limitações de expansão de 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 projeto de replicação, essa configuração pode levar a uma latência maior e a uma taxa de transferência mais baixa. Por exemplo, se replicar de forma síncrona dados importantes entre duas regiões do Azure que estão separadas por várias centenas de quilómetros, pode adicionar centenas de milissegundos aos seus tempos de resposta devido à replicação em tempo real.
Próximo passo
Comece sua jornada de aprendizado otimizando o faturamento do seu cliente e sua estratégia de gerenciamento de custos.