← Todas as publicações

SaaS Factory (A serie) · Parte 2 de 4

SaaS Factory (A série) — Entendendo a arquitetura do SaaS Factory (Parte 2/4)

O objetivo deste post é fornecer uma introdução às terminologias, estratégias e padrões básicos que são aplicados ao criar produtos SaaS…

4 min de leitura939 palavrasSeções: 8Imagens: 620 abr 2022

Palavras-chave

Compartilhar
Comentar
SaaS Factory (A série) — Entendendo a arquitetura do SaaS Factory (Parte 2/4)

O objetivo deste post é fornecer uma introdução às terminologias, estratégias e padrões básicos que são aplicados ao criar produtos SaaS na AWS. Este material apresenta um modelo mental que pode ser usado ​para mergulhar mais profundamente no conteúdo técnico de SaaS.

No post anterior, falamos sobre: A estrutura geral de Software como Serviço, O modelo mental do Multi Tenancy e o que vemos na prática em Multi Tenancy. No post de hoje, falaremos sobre Os benefícios e adversidades de cada modelo e Software como Serviço entregue com Agilidade.

Os benefícios e adversidades de cada modelo

Os aplicativos SaaS podem ser construídos com uma variedade de modelos arquiteturais diferentes. Considerações regulatórias, competitivas, estratégicas, de eficiência de custos e de mercado têm alguma influência no formato de sua arquitetura SaaS. Ao mesmo tempo, existem estratégias e padrões que são aplicados ao definir a pegada de um aplicativo SaaS. Esses padrões se enquadram em uma das três categorias — Silo, Bridge e Pool.

Silo Model

Prós

  • Alinhamento de compliance;
  • Ambientes particionados;
  • Ausência de impactos entre locatários;
  • Melhorias em locatários específicos;
  • Disponibilidade em nível de locatário.

Contras

  • Custos;
  • Agilidade comprometida;
  • Complexidade de gestão;
  • Desafios de implantação;
  • Agregação de análises e métricas.

Pool Model

Prós

  • Agilidade;
  • Otimização de custos;
  • Gestão centralizada;
  • Implantação simplificada;
  • Agregação de análises e métricas.

Contras

  • Impactos entre locatários;
  • Desafios de compliance;
  • “Tudo ou nada” em disponibilidade.

Software como Serviço entregue com Agilidade

Um dos principais — senão o principal — objetivo buscado por uma abordagem de Software como Serviço, é a agilidade. Dado o fato de que os componentes habitualmente necessários para a execução de uma carga de trabalho de software — infraestrutura, início das operações, evolução tecnológica, entre outros — são abstraídos pelo modelo, a agilidade é algo que SaaS deve sempre buscar.

SaaS demanda que a agilidade seja sempre verificada, especialmente no que tange:

  • Adesão sem fricções;
  • Lançamentos frequentes de novas funcionalidades;
  • Rápida resposta ao mercado;
  • Feedback constante dos clientes.

Agilidade = Métricas

Conforme definiu o engenheiro e estatístico americano William Edwards Deming, “Não se gerencia o que não se mede, não se mede o que não se define, não se define o que não se entende, e não há sucesso no que não se gerencia.”

Em SaaS, dado o inerente contexto multilocatário, é fundamental que haja uma gestão adequada de métricas e indicadores. Alguns dos principais pontos analisados são:

  • Utilização;
  • Consumo;
  • Saúde do sistema ou do locatário;
  • Satisfação do cliente;
  • Engajamento do cliente.

Tais métricas são habilitadores de análises que beneficiam o gerenciamento integrado do contexto de SaaS, com informações como:

  • KPIs e métricas de Sucesso;
  • Avisos antecipados;
  • Notificação aos clientes;
  • Análise de causa raiz.

Aumentando a barra do DevOps

DevOps (contração de development e operations), é uma cultura na engenharia de software que aproxima os desenvolvedores de software (Dev) e os operadores do software / administradores do sistema (Ops).

Observa-se que no contexto de SaaS, DevOps cobre os aspectos de desenvolvimento e operações, entretanto, há também o desafio de como integrar essas disciplinas a visão de negócios, e, principalmente, garantir que os processos e ferramentas de DevOps habilitem as premissas estabelecidas em SaaS.

SaaS e Microsserviços

Como apresentado anteriormente, em SaaS a agilidade é o principal objetivo buscado. O lançamento constante de novas funcionalidades precisa ser garantido, principalmente considerando as premissas de não impactar outros recursos do software, ou mesmo, o impacto entre locatários.

Para isso, um grande habilitador é a adoção de arquiteturas de software orientadas a microsserviços. Microsserviços é uma maneira particular de desenvolver aplicações de maneira que cada módulo do software é um serviço standalone cujo deploy e escala acontecem de maneira independentes da “aplicação principal”.

Uma etapa importante na definição de uma arquitetura de microsserviço é descobrir o tamanho de um microsserviço individual. Não há consenso ou teste decisivo para isso, pois a resposta certa depende do contexto. Por exemplo, a Amazon é famosa por usar uma arquitetura orientada a serviços, onde um serviço geralmente mapeia 1:1 com uma equipe de 3 a 10 engenheiros.

Dentre os benefícios de adotar uma arquitetura baseada em microsserviços, temos:

  • Modularidade: Isso torna o aplicativo mais fácil de entender, desenvolver e testar;
  • Escalabilidade: como os microsserviços são implementados e implantados independentemente uns dos outros, ou seja, são executados em processos independentes, eles podem ser monitorados e escalados independentemente;
  • Integração de sistemas heterogêneos e legados: os microsserviços são considerados um meio viável para modernizar o aplicativo de software monolítico existente;
  • Desenvolvimento distribuído: paraleliza o desenvolvimento ao permitir que pequenas equipes autônomas desenvolvam, implantem e escalem seus respectivos serviços de forma independente.

Integrando Tecnologia e Negócios

Como diz o velho ditado, “Você nunca tem uma segunda chance de causar uma primeira impressão”. A confiança do cliente é conquistada com dificuldade e facilmente perdida. A arquitetura adequada de um produto escalonável e seguro baseado em SaaS é tão importante quanto o desenvolvimento de recursos e as vendas. Para isso, a integração entre Tecnologia e Negócios é fundamental.

O modelo de SaaS entrega diferentes benefícios no que se refere a tecnologia e operações, tais como: automação, escalabilidade, disponibilidade e otimização. Tal qual, SaaS também habilita benefícios direto à camada de negócios, como: flexibilidade, precificação baseada em níveis, sucesso dos clientes, resposta do mercado.

No próximo post, falaremos sobre Operações de Software como Serviço.

SaaS Factory (A série) — Como construir soluções de Software como Serviço na AWS

Até lá! =)

Comentários

Todo comentário passa por moderação antes de aparecer aqui. Nada é publicado automaticamente.

Carregando…