A computação serverless tem dominado as manchetes, feiras de tecnologia e conferências do setor. Embora o conceito de "serverless" exista desde 2006, trata-se de um conceito relativamente novo. Muitas pessoas acreditam que o serverless é a evolução natural do modelo de computação. Neste artigo, exploraremos os principais conceitos da computação serverless e apresentaremos uma solução da Alibaba Cloud chamada Function Compute, um serviço de computação orientado a eventos e totalmente gerenciado.
Evolução nos modelos de computação
Nas últimas décadas, a TI empresarial evoluiu rapidamente, passando de servidores físicos para máquinas virtuais e, posteriormente, para a tecnologia de containerização.
A primeira geração de computação foi baseada na arquitetura Von Neumann e empregava programas fixos. Esses programas geralmente eram fortemente acoplados ao hardware em que eram executados. Com a transição para o armazenamento em disco, o sistema operacional tornou-se menos dependente do hardware subjacente. No entanto, as aplicações de software passaram a se assemelhar a um "monólito", em que a interface do usuário e o código de acesso aos dados eram combinados em um único programa executado em uma única plataforma. Esses monólitos eram autossuficientes, e qualquer alteração na funcionalidade exigia um enorme esforço. Embora os sistemas operacionais tenham se tornado menos dependentes do hardware, as próprias aplicações tornaram-se mais dependentes do sistema operacional específico. No início dos anos 2000, para lançar uma nova aplicação, provavelmente era necessário planejar primeiro a compra de um novo servidor. Em resumo, o servidor físico era o bloco de construção fundamental de uma aplicação.
Então, em 2001, a tecnologia de virtualização começou a ganhar força à medida que o hardware se commoditizava (especialmente a arquitetura baseada em x86), tornando as máquinas virtuais muito populares. O software de
hypervisor, popularizado por empresas como VMware, facilitou a criação de
máquinas virtuais. Ao executar várias máquinas virtuais em um único dispositivo físico, a necessidade de comprar servidores físicos diminuiu, e o bloco de construção arquitetônico passou do servidor físico para a máquina virtual.
Embora a
virtualização tenha facilitado a operação de máquinas, as imagens de disco virtual eram bastante grandes e desajeitadas, além de não serem fáceis de escalar conforme exigido pelas cargas de trabalho voláteis de computação. A tecnologia de contêineres permitiu a virtualização no nível do sistema operacional e se mostrou uma alternativa muito mais leve. Ao longo do caminho, vimos vários outros desenvolvimentos importantes. Vamos mencionar alguns dos principais.
- Em 2009: Heroku popularizou a Plataforma como Serviço (PaaS), viabilizando aplicações containerizadas seguindo o modelo 12-factor por meio de buildpacks
- Em 2010: OpenStack reuniu um grupo extraordinariamente diversificado de fornecedores para criar uma Infraestrutura como Serviço (IaaS) de código aberto
- Em 2011: Cloud Foundry, uma PaaS de código aberto, juntamente com ferramentas similares, ajudou a acelerar o movimento DevOps ao oferecer suporte à entrega contínua durante todo o ciclo de desenvolvimento de aplicações. A arquitetura baseada em contêineres do Cloud Foundry executava aplicações em qualquer linguagem de programação em diversos provedores de serviços em nuvem
- E em 2013: Docker (combinando LXC, Union File System e cgroups) criou um padrão de containerização que se tornou um sucesso instantâneo na comunidade de desenvolvedores
.

Em resumo, a tecnologia de
containerização facilitou a criação e implantação de arquiteturas baseadas em microsserviços, permitindo maior desacoplamento e escalabilidade muito superior.
A computação serverless é a evolução natural do modelo de computação, à medida que exploramos esses conceitos em mais detalhes.
Principais desafios do serverless
Muitos desafios ainda permanecem, mesmo com o uso de
tecnologia de contêineres. Alguns deles incluem:.
- O planejamento de capacidade não é trivial. Os engenheiros de infraestrutura ainda precisam planejar antecipadamente a utilização de recursos de computação, como quantos servidores, qual tamanho ou tipos de máquina precisarão ser configurados (requisitos de CPU, memória e rede ou largura de banda de E/S). A superestimação pode levar a custos mais altos, e a subestimação pode prejudicar os negócios.
- A escalabilidade automática no nível de máquina é trabalhosa. Em alguns casos, pode levar vários minutos para escalar horizontalmente. O gerenciamento de escalabilidade automática em tempo real e balanceamento de carga exige muito esforço de planejamento.
- E desafios semelhantes existem em torno de tolerância a falhas, operações e manutenção.
Alguns desses desafios podem ser resolvidos por diversas soluções de código aberto e proprietárias; no entanto, elas ainda exigem comprometimento de recursos e não são triviais de executar, especialmente por pequenas e médias empresas.
Vamos explorar como a computação serverless pode amenizar alguns desses desafios.
Computação serverless
A arquitetura serverless, também conhecida como FaaS (Functions as a Service) ou Backend as a Service, permite a execução de aplicações por meio de contêineres efêmeros e sem estado. Os contêineres são criados no exato momento em que um evento ocorre e dispara a necessidade de uma ação. Portanto, é orientada a eventos. As aplicações, agrupadas como uma ou mais funções, são enviadas a uma plataforma e então executadas, escaladas e faturadas de acordo com a demanda exata naquele momento. Serverless não significa "sem servidor". Na verdade, os detalhes de orquestração de infraestrutura ficam ocultos para o usuário e são gerenciados pelo provedor da plataforma serverless.
Alguns dos principais recursos da tecnologia serverless incluem:.
- A computação serverless simplifica o DevOps Uma das principais vantagens da tecnologia serverless é permitir a criação e execução de aplicações e serviços sem a preocupação com servidores. Com a computação serverless, o provisionamento, a escalabilidade e o gerenciamento de detalhes dos servidores deixam de ser necessários. Os desenvolvedores podem esquecer o gerenciamento da infraestrutura sobre a qual o serviço é executado e se concentrar na criação de funcionalidades de negócio. O serverless pode ser aplicado a praticamente qualquer tipo de aplicação ou serviço de backend.
- A segunda vantagem do serverless é que ele é perfeitamente adequado para arquiteturas baseadas em microsserviços. Também proporciona um alto nível de desacoplamento entre os diferentes serviços, favorecendo o desenvolvimento de arquiteturas baseadas em microsserviços. Isso facilita enormemente o desenvolvimento de arquiteturas com implantações contínuas, além de simplificar os rollbacks quando necessário.
- Terceiro, a tecnologia serverless permite a cobrança por uso, pagando-se apenas pelos recursos efetivamente consumidos. Aplicando isso ao custo de computação, com a computação serverless, paga-se apenas pelos recursos de computação realmente utilizados. Isso geralmente resulta em custos muito menores do que os métodos tradicionais de computação.
- A alta disponibilidade torna-se automatizada e integrada
A comunidade serverless está crescendo muito rapidamente, e vemos muitos backends de processamento web, mobile e de dados sendo construídos com componentes serverless. Os casos de uso comuns que aproveitam fundamentalmente abordagens serverless incluem chatbots, computação de Big Data,
aprendizado de máquina e
internet das coisas (IoT).
Conheça o Function Compute da Alibaba Cloud
A Alibaba oferece todas as ferramentas necessárias para que os desenvolvedores iniciem sua jornada serverless. O Function Compute, principal produto de computação serverless da Alibaba Cloud, pode aumentar significativamente a agilidade e reduzir os custos operacionais de empresas de todos os portes, permitindo que concentrem melhor seus investimentos em entregas e resultados críticos para os negócios. Além do Function Compute, muitos outros produtos em nuvem, incluindo armazenamento, análise e mensagens, são serverless. Por exemplo, o Object Storage Service (OSS), primeiro serviço em nuvem lançado pela Alibaba Cloud, é um serviço de armazenamento serverless. Os usuários não precisam se preocupar com a forma como os dados são armazenados no servidor subjacente, pagando apenas pelos recursos de armazenamento consumidos.

O Function Compute da Alibaba Cloud é um serviço de computação orientado a eventos e totalmente gerenciado. Com o Function Compute, você pode criar rapidamente qualquer tipo de aplicação ou serviço sem se preocupar com a sobrecarga de gerenciamento. O
Function Compute prepara recursos de computação para você e executa seus códigos de forma elástica e confiável.
O Function Compute oferece consulta de logs, monitoramento de desempenho, alertas e vários outros recursos. Você paga apenas pelos recursos efetivamente consumidos durante a execução dos códigos. Nenhuma taxa é cobrada por códigos de aplicação que não forem executados.
Para obter mais detalhes sobre o produto
Function Compute oferecido pela Alibaba Cloud, bem como cenários comuns que utilizam computação serverless, acesse o link.