Ontem, enquanto eu lia o capítulo "A Internet", no livro Os Inovadores, de Walter Isaacson (que também escreveu a biografia mais lida de Steve Jobs), eu pensava: esses caras não faziam ideia da importância do que estavam criando.Lá nos anos 70, quando toda a infraestrutura e protocolos de Internet (como a famosa dupla TCP/IP) foram criados, a intenção era melhorar a comunicação entre diferentes partes dos Estados Unidos, munindo grandes universidades com a capacidade de trocar dados instantaneamente entre si. A ideia de rede distribuída cresceu rapidamente, e nos anos 80, a World Wide Web estava viva.
Mas, como já tratei nesse artigo aqui, os primórdios da Internet pessoal não se pareciam em nada com o que temos hoje em dia. Na verdade, é mais que isso. Quando a Internet foi criada, uma das principais intenções era ter poder de comunicação distribuído, de forma que um ataque nuclear não incapacitaria os EUA (lembrando que era época de Guerra Fria).Portanto, naquele momento seria impossível prever o que a Internet se tornaria, e a revolução que existiria a partir dos anos 2000. Até mesmo a bolha da Internet dos anos 2000 foi uma abordagem extremamente afobada da Economia mundial.Já nos anos 70 e 80, o mundo viveu a revolução do software, com o surgimento de empresas como a Microsoft. Bill Gates foi um dos homens responsáveis por transferir a importância que o mercado dava para hardware (em particular os mainframes e início dos computadores pessoais) para uma lógica de software.Questão importante: Bill Gates percebeu que o software teria um alto custo de implementação, principalmente se se ele quisesse desenvolver uma aplicação complexa e adequada a vários tipos de hardware. Porém, uma vez implementado e funcional, sua distribuição, manutenção e até possíveis atualizações seriam muito mais fáceis que hardware.Mas o melhor ainda estaria por vir!Começando nos anos 90, surgiram os primeiros provedores de serviços, usando o antigo conceito de mainframes, que eram grandes máquinas com processamento centralizado, e cada computador que acessava (os clientes) funcionava como um terminal de acesso.Em um certo momento dos anos 90, a Internet já era madura o suficiente, assim como a exposição de diversos tipos de serviço através dela. Mas mesmo assim, a maioria ainda exigia a instalação de software específico para acessar tais serviços.
Esse cenário começou a mudar quando os navegadores ganharam mais potência. Por exemplo, houve uma disputa saudável entre Internet Explorer (que já vinha instalado no Windows, o Sistema Operacional de maior importância nos anos 90) e o Netscape. Alguns anos depois, usando a mesma base do Netscape, o Google criou o Chrome, hoje o browser mais popular. Também surgiram alguns outros navegadores como Firefox, Opera, Safari...Essa disputa pelo mercado do acesso à Internet tinha algumas boas justificativas. A principal delas, talvez como uma previsão do SaaS moderno: a maior parte do tempo dos usuários de computador será gasta com um browser aberto, navegando em sites que oferecem serviços variados.Hoje em dia, os SaaS funcionam basicamente pela Web. De certa maneira, até mesmo Web APIs funcionam com a estrutura de serviços, da forma como expliquei aqui nesse artigo (o funcionamento de uma Web API), no relacionamento cliente-servidor.E o mais interessante: se você pensar em como funcionam os dispositivos mobile, temos uma tendência contrária: cada serviço da Internet procura ter sua própria aplicação. Isto é, o navegador é secundário em um smartphone.Isso cria um fenômeno interessante para a computação pessoal. Mas chega de história e especulação. Agora que entendemos um pouquinho do que está por trás da origem e motivação do Software as a Service, vamos falar de escalabilidade e como ela pode afetar sua empresa.
Os chamados Softwares como Serviço estão se tornando mais e mais populares a cada dia. O que pode ser visto como uma maneira leve e simples de distribuir um serviço funcional, também deve ser encarado como um negócio.As empresas que trabalham com esse modelo de distribuição podem ter o serviço fornecido tanto de maneira digital (cloud computing) quanto física (instalado nos computadores da empresa, conhecido como on premise).Nesse sentido, a visão de Bill Gates ainda é a predominante: as soluções tendem a ser altamente escaláveis, isto é, quem contrata os serviços SaaS pode fazer upgrades ou downgrades em seu pacote de serviços conforme suas demandas de momento. Isso torna esse veículo de distribuição extremamente rentável.Mesmo sendo (muito) mais fácil fazer isso com software, ainda é preciso uma gestão de TI eficaz na hora de atender a esse crescimento. E quem vai contratar uma empresa SaaS deve prestar atenção no volume (e tipos) das necessidades, bem como traçar um bom planejamento.Veja a seguir dicas sobre como fazer isso!
O crescimento de uma empresa depende da capacidade de suprir, de forma eficaz, suas demandas em ampliação. Hoje, para obter sucesso no mercado, deve-se saber lidar com os aumentos de demandas repentinas, sem deixar de lado a qualidade de seu serviço.Se a sua empresa oferece um SaaS, ela deve estar preparada para crescer internamente. E pensar na escalabilidade significa preparar-se para atender bem todos os seus clientes, é claro. Assim, pensar previamente na elasticidade de seu sistema de computação em nuvem permite que a empresa tenha alta performance quando for exigida, sem que você deixe de pegar novos trabalhos por não ser capaz de absorver as novas demandas de seus clientes.Pense em um serviço self-service, como o Trello, por exemplo. Qualquer pessoa pode entrar no site deles e criar uma conta, começar a usar o aplicativo e gerenciar seus dados através do app mobile. Para tal, a empresa Trello deve estar pronta para que sejam criadas novas instâncias, e para que seu banco de dados cresça de forma orgânica e natural, sem que novos usuários prejudiquem a experiência dos antigos.Isso levanta a próxima questão: Planejamento
Imagine se você primeiramente conhecesse o Trello, tivesse interesse em criar uma conta, e no momento da criação, surgisse a mensagem: "Desculpe, chegamos ao limite de usuários." Pior ainda: e se você conseguisse usar, mas um usuário antigo visse essa mensagem quando fosse logar, perdendo suas informações.Qualquer tipo de serviço desses depende de uma boa infraestrutura, persistência dos dados, segurança e assim por diante. Os usuários que estão criando conta depositam confiança em você. Se você não tem noção de como essa confiança é importante, sugiro que converse com sua equipe de vendas, marketing ou suporte.Por conta disso, é fundamental traçar um programa de ações para evitar surpresas e desgastes com seus clientes. Em primeiro lugar, tenha uma equipe muito bem preparada, já que ela, além de ter que se inteirar do sistema, também deverá lidar com eventuais problemas que possam ocorrer.É preciso, ainda, elaborar um bom plano para saber a hora certa de contratar novos recursos e suprir a demanda solicitada. Nesse sentido, deve-se pensar tanto na escalabilidade horizontal (que dá novas capacidades ao sistema por meio de uma nova máquina cluster) quanto na vertical (quando é feito o upgrade dos servidores).
Como vimos na nossa Introdução, o mundo assistiu um crescimento imenso da Internet nos anos 90. Esse conceito amadureceu para a ideia de nuvem, algo que parece um pouco etéreo, tanto em seu nome quanto em suas aplicações. Afinal, se um serviço está na nuvem, o que é preciso para fazê-lo funcionar?Não é minha intenção entrar em detalhes (quem sabe em um post futuro), mas existem diversos tipos especializados de SaaS, como os que oferecem serviços de infraestrutura através da Internet. Da mesma forma queo software ganhou mais importância que o hardware, a nuvem nada mais é que uma abstração de servidores invisíveis: você não os vê, mas eles estão em algum lugar, gerenciando dados e oferecendo serviços.A Amazon, por exemplo, oferece o IaaS (Infrastructure as a Service) em sua suite de serviços AWS. Não deixa de ser um serviço, mas é a contratação de um serviço de infraestrutura, o que faz todo o sentido nos tempos de nuvem que vivemos.
Graças a facilidade e baixo custo, essa é a forma mais segura de manter um backup de seu sistema. É claro que a grande maioria de empresas SaaS já utilizam a computação em nuvem.
APIs podem ser grandes aliadas dos SaaS na busca pela escalabilidade. Uma boa API é capaz de integrar diversas funções que existem dentro do seu sistema, de sistemas terceiros e simplificar o trabalho na área de TI da empresa.Inclusive, há SaaS que oferecem seu serviço exclusivamente através de APIs, como o Twillio, com diversas opções para comunicação (mensagem, SMS, autenticação).Nesse caso, há empresas que passam a oferecer seus serviços como uma plataforma completa de integração e geração de valor para outras empresas. Esses são PaaS (Platform as a Service).
Escalabilidade é um conceito bastante sofisticado, que envolve praticamente todas as áreas de uma empresa. Quando falamos em produto, ou mais particularmente software, sua estratégia deve conter algumas características essenciais, que usem e abusem de tecnologias como Nuvem e APIs.Espero que a leitura tenha sido útil e informativa. Mas não se vá sem antes clicar na imagem abaixo e baixar o nosso Ebook gratuito: 5 estratégias para SaaS. Abraço!