Desenvolvimento Web / Ferramentas

Overview de arquitetura SaaS e estudo de 3 aplicativos com suas possíveis estruturas

Além de conhecer mais sobre o funcionamento do SaaS, veja um estudo rápido de como pode ser a estrutura de 3 grandes aplicativos do mercado que utilizam essa metodologia em seus negócios.

Por Gustavo Web

Publicado por Gustavo Web
em 05/03/2018 às 09h15

Lista VIP UpInside

Entre para nossa lista VIP e receba vídeo aulas, artigos e tutoriais exclusivos e com prioridade

  QUERO ENTRAR

Aula exclusiva UpInside Play

Acessar aula no Play

Compartilhe:

Que tal aprender mais sobre a Arquitetura SaaS, Vantagens, Desvantagens, Modelos de Cobrança e ainda fazer um Overview de 3 aplicativos gigantes do mercado?

Salve salve moqueridos, Gustavo Web aqui atendendo a mais um pedido e o assunto agora é SaaS.

Muito se confunde SaaS (Software as a Service) com SASS (Syntactically Awesome Style Sheets), mas veja que são coisas completamente distintas e que não possuem vínculo nenhum umas com as outras!

Como há uma complexidade maior no desenvolvimento desse tipo de recurso, infelizmente não conseguimos criar uma aplicação para ilustrar :(

Em questões de programação, nada muda! As sintaxes continuam sendo as mesmas e com o PHP você consegue criar praticamente tudo... O que muda, e deixa o trabalho mais árduo é de fato a arquitetura! Modelar, organizar, disponibilizar e consumir as informações que estão em 2, 3, 5, ou mil bancos de dados diferentes exige bastante integridade.

Arquitetura

Não há uma quantidade exata de quantas arquiteturas existem, tendo em vista que podem ser mescladas umas com as outras, mas há pontos que podem ser destacados quando observado esse modelo de negócio.

Se você estiver iniciando agora sua aplicação, estude de maneira muito aprofundada os 2 itens abaixo de destaque:

CODEBASE

É o código fonte da sua aplicação, que deve ficar num local seguro e nem mesmo o seu cliente deve ter acesso a esse caminho. Somente pessoas da sua equipe e de confiança.

É aqui que mora o coração da sua aplicação, e embora o banco de dados seja essencial e reflita bastante nos códigos que estarão aqui dentro, o maior trabalho e a maior dedicação devem ser investidos aqui. Você perceberá que por mais que você queira adicionar recursos formidáveis ou atropelar a plataforma do concorrente, seu trabalho mais pesado será a criação da comunicação de toda a sua estrutura...

Como tudo depende da aplicação, você deve projetá-la para que seja mutável, editável, transportável e executável com a maior gama de possibilidades possíveis tendo o mínimo de impacto.

Uma dica que eu posso deixar para você é criar endpoints dentro da sua aplicação, para que ela possa ser consumida por qualquer linguagem. Você abre um leque maior de possibilidades, como por exemplo para adicionar um aplicativo mobile no repertório, ficaria muito mais tranquilo se a sua aplicação já fosse trabalhada com endpoints simplesmente para que seja feito o consumo em outra linguagem de programação :)

BANCO DE DADOS

Uma vez definido como será o comportamento da sua aplicação, é hora de modelar o seu banco de dados! Aqui você deve se preocupar com o volume que as informações podem ter/ocupar.

Se o seu SaaS for basicamente o comércio de um login de acesso (como por exemplo serviços de streaming) você poderá armazenar as informações em um único banco de dados, sendo necessário particionar o banco somente devido ao volume ou geoposição.

Já se o SaaS for o caso de ter mais de uma regra de negócio (como serviço de controle financeiro entre pessoal e corporativo) você poderá dividir as informações em bancos de dados onde cada um tem os dados de acordo com a sua modelagem. E aqui você entrará no conceito de multi tenant (vários inquilinos) abrigados dentro do mesmo banco.

Ou ainda se o SaaS requer um nível maior de customização ou ainda diversos ajustes no comportamento (como em plataformas de e-commerce) você deve planejar para que seu banco seja respectivo a um único cliente. Com isso você montará uma farm (fazenda) com possibilidade de abrigar milhares de bancos.

OVERVIEW

Pra ficar mais fácil de compreender como funciona, eu categorizei 3 aplicativos (só quem assistir a aula vai saber!) de como pode ser a arquitetura de cada um deles. Assim fica mais claro o exemplo de utilizar um ou mais CODEBASE ou BANCO DE DADOS.

FEEDBACK

Como sempre, me diga aqui abaixo o que você achou dessa aula e se ainda ficou algum tipo de dúvida... Eu pessoalmente vou responder os comentários :)

Compartilhe:

Em Desenvolvimento Web:

Deixe seu comentário: