Com o crescimento de novas formas de otimização das tecnologias no mercado de TI e da computação em nuvem, o Serverless vem conquistando seu espaço, sendo sua utilização semeada pelos maiores provedores de nuvem.
Também considerado como um modelo FaaS (Function as a Service), Serverless, como o próprio nome já diz, possibilita uma arquitetura de computação em nuvem sem gestão de servidores.
Arquitetura Serverless: o que é?
Essa nova plataforma de serviço em nuvem orientada a eventos, foi criada primeiramente para reduzir o trabalho e o tempo gasto com provisionamento, capacidade de processamento e o gerenciamento como um todo da infraestrutura dos servidores – que passa a ficar nas mãos dos provedores de nuvem.
Serverless foca no desenvolvimento de aplicações e serviços, deixando os desenvolvedores “livres” das preocupações com a infraestrutura de servidores para o seu produto. Além disso, o time de DevOps pode também focar na melhora dos procedimentos e processos que envolvem o desenvolvimento do produto, uma vez que o trabalho de alocação e manutenção da infraestrutura fica a cargo dos provedores de nuvem.
A Amazon foi o primeiro provedor de nuvem a oferecer uma plataforma Serverless através do AWS Lambda. Seguida pela Microsoft (Azure Functions) e Google (Cloud Functions).
AWS Lambda
Como parte da plataforma AWS, utilizando Lambda o desenvolvedor só necessita fazer o upload do seu código e configuração da função, e a arquitetura Serverless gerencia a sua execução e o seu escalonamento – o AWS Lambda não fornece informações detalhadas sobre instâncias ou sobre a infraestrutura em si, somente informações gerais de uso.
Merece destaque que as funções criadas podem ser integradas a outros serviços AWS através da geração de eventos para a função ou a partir de aplicativos móveis.
Outro ponto positivo é a manutenção do “estado de função”, já que a AWS mantém logs das execuções Serverless para posterior utilização pelos serviços da plataforma.
Entretanto o Lambda possui algumas limitações. A que afeta o maior número de usuários é o tempo de execução, que não pode exceder 5 minutos para cada função e o limite de 1000 execuções em paralelo. Outras limitações podem ser vistas aqui.
Sua cobrança é feita pela combinação de solicitações e tempo de computação, com diferentes níveis gratuitos e escalas de preços para cada vez que o serviço é utilizado. Lembrando que, assim como o EC2 e outros serviços, o pagamento segue o modelo pay-as-you-go, de modo que só haverá cobranças se estiver com alguma aplicação em execução.
Azure Functions
O Azure Functions foi criado somente em Março de 2016, e mantém o padrão do diferencial oferecido pelos serviços Serverless.
A plataforma Serverless da Microsoft oferece importantes integrações e funcionalidades. Uma das principais é a capacidade das funções serem escritas e carregadas em suas linguagens nativas (C# e F#), bem como suporte a JavaScript e Python.
Assim como o Lambda, o Azure Functions também permite o acionamento das funções por eventos através de outros serviços integrados a plataforma.
A política de preços é bastante parecida com o AWS Lambda, com a combinação de solicitações e tempo de computação com diferentes níveis de gratuidade e escalas de preços.
Cloud Functions (Google Cloud)
O Google foi o último grande player a disponibilizar uma plataforma Serverless. Atualmente, seu suporte ainda é limitado, permitindo que as funções sejam escritas apenas em JavaScript.
O Cloud Functions tem o funcionamento de Serverless conforme as diretrizes da arquitetura. Sua utilização permite integrar diversos serviços que fazem parte da plataforma Google Cloud, criando condições orientadas a eventos para serem executadas.
Sendo considerado mais transparente, o Cloud Functions permite a visualização detalhada da infraestrutura utilizada para a sua aplicação a partir do Serverless.
Também utilizando o modelo de cobrança pay-as-you-go, o Cloud Functions tem o seu cálculo feito por chamadas, tempo de computação e saída de dados – que segue diferentes políticas de preços baseados na utilização do serviço.
Podemos resumir as principais funcionalidades de cada um com a seguinte tabela:
Para maiores informações sobre o seu ambiente Serverless e como otimizá-lo, entre em contato com o time da CleanCloud!