Conforme Maurício Fernandes salientou de maneira tão clara na edição anterior da revista Atmosfera Dedalus*, a adoção da nuvem no Brasil começa a mostrar sinais de maturidade e as organizações já têm implantado novas práticas e explorado novos modelos de negócio proporcionados pela nova tecnologia.
Entretanto, boa parte de nossas aplicações de negócios continuam rodando como se estivessem em um data center privado, sem considerar as novas possibilidades proporcionadas pela computação em nuvem. Afinal, é possível repensar as aplicações para melhor explorar essas possibilidades? Quais são os pontos a serem considerados quando se pensa em otimizar aplicações para rodar na nuvem?
A Dimensão Custo
O primeiro aspecto a ser levado em conta é o modelo de cobrança baseado em uso. Muitas aplicações foram transferidas para a nuvem sem qualquer alteração e a avaliação do modelo de execução, do perfil de utilização e de situações de pico podem revelar excelentes oportunidades de redução de custos. Por exemplo, por que alocar um servidor 24 horas por dia rodando a aplicação se ela é utilizada apenas no horário comercial? A migração da aplicação para um modelo de Plataforma como Serviço (PaaS), por exemplo, AWS Beanstalk ou Azure App Service, também pode ser uma oportunidade de economia.
Outros pontos interessantes de análise no que diz respeito ao custo de execução e do uso de recursos de uma aplicação são:
- A avaliação de desempenho e de pontos de gargalo pode revelar ineficiências a serem eliminadas;
- A utilização de servidores de bancos de dados como serviços, como o AWS RDS, reduz sensivelmente o custo de gerenciamento da aplicação;
- A contratação de serviços de armazenamento de dados (AWS S3 ou Azure Blob) pode representar grande barateamento dos custos de armazenagem de informações;
- Reavaliação do custo de licenciamento de componentes de infraestrutura, que podem ser substituídos por serviços disponíveis na nuvem.
Novas Possibilidades
Outro aspecto essencial a ser considerado para aplicações rodando na nuvem ou construídas especialmente para rodar na nuvem é o conjunto de novas possibilidades oferecidas. É importante pensar nos projetos a partir dos novos recursos disponíveis, que permitem a criação de aplicações inovadoras. Veja alguns desses recursos:
Elasticidade dinâmica
A possibilidade de alocar e liberar servidores sob demanda pode reduzir muito a necessidade de processamentos batch a serem realizados após o horário comercial.
Produtos “Como Serviço”
Mobile Backend as a Service (MBaaS), mecanismos de autenticação, mecanismos de cache e até recursos de análise de log podem acelerar muito a construção de aplicações e reduzir investimentos e prazos de entrega.
Recursos sofisticados
Novos conceitos tecnológicos altamente sofisticados como Machine Learning, serviços cognitivos e também serviços de processamento de eventos em larga escala atingiram preços competitivos, possibilitando a expansão da construção de aplicações inovadoras.
Serverless Computing
Esse conceito é implementado por serviços como AWS Lambda ou o Azure Functions. Pequenos trechos de código são executados a partir do disparo de eventos, por exemplo, a alteração de um banco de dados ou o recebimento de um e-mail. Isso agiliza a execução de fluxos de trabalho e integra melhor as equipes de negócios, aumentando sua eficiência.
A grande inovação trazida pela Computação em Nuvem não se resume aos modelos de IaaS, PaaS e SaaS. É importante avaliar todo o espectro do Cloud Continuum e selecionar as ferramentas e os serviços adequados para cada uma das novas soluções a serem construídas.
Podemos afirmar sem hesitar que, em todo processo de transformação digital, a nuvem certamente é um dos aliados mais importantes.
*Este artigo foi originalmente publicado na revista Atmosfera Dedalus, ano 1, nº 4, julho 2017.