Para quem está acostumado a ler sobre tecnologia, os servidores são um assunto bastante recorrente nos textos. Isso porque eles são sistemas centralizados de computação dedicados a fornecer serviços a uma rede de computadores. São, portanto, peças-chave no mundo da informática.
Contudo, um conceito relacionado tem dado o que falar no universo da segurança da informação: a tecnologia Serverless, também conhecida como Função como Serviços (FaaS). Essa inovação tem se tornado cada vez mais importante para garantir vantagem competitiva no mercado.
Para explicar direitinho o conceito, suas aplicações e seus benefícios, preparamos um post especial. Afinal de contas, a tecnologia Serverless tem sido apontada por muitos especialistas, como os pesquisadores da prestigiada Universidade da Califórnia em Berkeley, como um paradigma da computação em nuvem para o futuro. Boa leitura!
O caminho para a virtualização
Para começarmos a falar sobre Serverless, é importante lembrar-se de como a TI tradicional trabalha. Quando um usuário acessa uma página ele é recebido por um servidor, e todas as solicitações precisam passam por ele.
Com todas as informações em mãos, ele consegue fazer uma estimativa de quantos servidores precisa atribuir em cada turno, se o website tem um fluxo relativamente consistente.
No entanto, quando esse fluxo não é previsível, rapidamente surgem problemas, em especial, quando há uma quantidade elevada de acessos, pois os servidores ficam sobrecarregados e podem começar a negar entrega de conteúdo. Por outro lado, quando há poucos utilizadores, os servidores ficam ociosos e continuam gerando custos.
Diante desse cenário, a “elasticidade” passou a ser um problema muito relevante nos dias de hoje, e o único caminho encontrado foi a virtualização, que permitiu que as empresas de TI pudessem ser mais flexíveis em suas demandas, passando a oferecer redução de custos, já que não é mais necessária a compra de hardware.
Além de simplicidade na operação, inclusive em casos de “disaster recover”, conjunto de políticas e procedimentos que permitem a recuperação da infraestrutura de tecnologia na sequência de um desastre natural ou provocado pelo homem— em que é preciso restaurar uma máquina virtual.
O próximo passo encontrado depois da nuvem foi a utilização dos conteiners, um software que “empacota” o código e todas as suas dependências para que o aplicativo seja executado de maneira rápida e confiável, não sendo necessário se preocupar com o ambiente em que será executado.
Entretanto, mesmo após todos esses processos de desacoplação e virtualização da TI, ainda existem riscos como o DoS (Denial Of Service) ou oDdOS (Distributed Denial of Service) — também conhecido como ataque de negação de serviço.
Tratam-se de tentativas de fazer com que aconteça uma sobrecarga em um servidor ou computador comum. Desse modo, caso bem-sucedidos, esses ataques fazem com que os recursos de sistema fiquem indisponíveis para seus utilizadores.
Com isso, o caminho encontrado agora é a solução Serverless, a nova realidade da TI, estrutura que vem para trazer melhorias para a vida dos desenvolvedores e empresários.
Serverless: o que é na prática
A solução Serverless consiste basicamente em uma estrutura de servidor web — uma camada FaaS (Função como Serviço) — que vem acompanhada de serviços de token de segurança, autenticação de usuário e banco de dados.
Ficou especialmente conhecida em 2012, quando Ken Fromm — um dos principais líderes quando fala em tendências de TI e Internet no mundo, começando nos primeiros dias doDot.com, Web 2.0, Cloud Computing, escreveu um artigo intitulado “Why The Future Of Software And Apps Is Serverless”.
Apesar da difusão inicial, o termo só foi realmente introduzido no mercado em 2015, e usado para definir um modelo de execução em que o provedor de nuvem é responsável por executar a função de uma aplicação, não sendo necessário se preocupar com recursos ou infraestrutura.
Quando se fala em datacenters e servidores, a arquitetura Serverless passou a ser uma das tendências, definição dada inicialmente para aplicações que rodam em serviços terceirizados na nuvem.
Entretanto, se expandiu nos últimos anos, se referindo a conteiners estáticos de computação modelados para soluções eventuais — a chamada Função como Serviço (FaaS), que permite que os desenvolvedores executem códigos que reajam a eventos sem a complexidade de construir e manter uma infraestrutura propriamente dita.
Como funciona
Apesar do nome em inglês ("Sem servidor"), a tecnologia realmente precisa de servidores para rodar os códigos escritos por programadores. Contudo, há uma explicação interessante para o termo.
Isso porque ele se refere, principalmente, ao fato de que uma empresa ou um desenvolvedor individual não precisam comprar ou provisionar máquinas virtuais ou servidores para conseguir rodar o código daquela aplicação.
Assim, apesar de o nome sugerir o contrário, o modelo conhecido como Serverless não exclui a utilização de servidores. Essa tecnologia é bastante similar à computação de ponta, já que fornece funcionalidades típicas de servidores para dispositivos locais.
Além disso, é uma extensão do conceito de computação em nuvem. Quando falamos de corte de gastos e redução de despesas, a tecnologia "Serverless" simplifica as operações e diminui os custos relacionados à manutenção de servidores.
Dessa forma, podemos mencionar que quem não gerencia a própria infraestrutura para executar um aplicativo, utiliza a tecnologia Serverless de acordo com o seu uso. Não há gastos com a inatividade, além de outros benefícios importantes, como níveis superiores de disponibilidade, escalabilidade e tolerância a falhas.
Ela é tipicamente executada em conteiners que podem disparar uma variedade de eventos, como buscas em SQL (Structured Query Language ou Linguagem de Consulta Estruturada), entrega de conteúdos, serviços de fila, alertas de monitoração, entre outros.
Funcionalidades principais da tecnologia Serverless
A principal função desse modelo de computação sem servidor é aliviar a carga dos desenvolvedores. Assim, eles liberam os profissionais da obrigação de ter que lidar com questões operacionais secundárias. Eles passam a se concentrar somente na inovação, gerando mais produtividade para as suas atividades.
Além disso, com o Serverless se torna mais fácil gerar mais produtividade não somente para os desenvolvedores, mas para todos os departamentos de uma empresa. Isso porque a tecnologia se adapta às necessidades de TI do negócio, oferecendo estruturas diferentes para processos pertencentes à mesma cadeia.
Um exemplo prático dessa otimização e aumento geral da produtividade pode ser representado pelo trabalho desempenho pelos desenvolvedores. As unidades de código são mais simples, o que facilita a tarefa de criar um software back-end, por exemplo.
Podemos resumir desse modo: a obrigação de um serviço bem direcionado de Serverless é oferecer disponibilidade para os desenvolvedores e usuários, independentemente do contexto das aplicações.
As vantagens do Serverless
Gerenciamento operacional simplificado
A plataforma Serverless fornece uma separação clara entre serviços de infraestrutura e aplicativos executados no topo da plataforma. A funcionalidade de dimensionamento automático não apenas reduz o custo de computação, mas também as despesas gerais de gerenciamento operacional.
Rápida inovação
Os engenheiros de produto podem inovar em ritmo acelerado ou à medida que a arquitetura sem servidor alivia os problemas de engenharia de sistemas na plataforma subjacente. Assim, oferece menos tempo para operações que traduz em uma aplicação suave de DevOps e metodologias ágeis.
Custo operacional reduzido
Semelhante a IaaS e PaaS, a redução de custos de infraestrutura e recursos humanos é a vantagem básica da arquitetura sem servidor, em que você paga por servidores gerenciados, bancos de dados e lógica de aplicativo.
Assim, temos um serviço como o AWS Lambda da Amazon, fornecedor de infraestrutura de nuvem pública com uma oferta de computação sem servidor, que cobra apenas pelo tempo em que a função é chamada.
Como resultado, o custo de executar as funções do Lambda podem ser 95% menores do que executar um servidor durante todo o mês com um contêiner nele.
Agora, os serviços que alugavam servidores na AWS, que custavam milhares de dólares, foram reduzidos a menos de US$ 10. Visto que já é uma tendência, os principais provedores de Cloud, como o Google Cloud Platform, a IBM e a Oracle, também fornecem serviços de FaaS.
Flexibilidade
Não é só na redução de custos que o modelo Serverless se diferencia. A própria natureza de ajuste dos servidores, sem a necessidade de atuação direta por parte dos usuários, proporciona um nível bem maior de agilidade do que a simples aplicação em nuvem.
Desse modo, se torna possível escalar um sistema e aplicações de acordo com um cenário de grande crescimento. Assim, um dos grandes diferenciais do Serverless é a possibilidade de passar o controle de ajuste de desempenho dos servidores puramente individuais para unidades gerais de consumo, como a memória ou o throughput.
Como esse tipo de trabalho não recai nas mãos da equipe interna de TI, os colaboradores podem se dedicar a outras tarefas, como colocar os planos de negócio em prática direta. Eles não terão que se preocupar com a adequação e alocação diretas de novos processos no sistema.
O processo de otimização também influi positivamente na redução de custos no modelo FaaS. As melhorias no desempenho que podem ser realizadas no código garantem o aumento da velocidade do aplicativo e, também, no corte de despesas operacionais.
Diminuição dos riscos de ameaças diretas à infraestrutura
Retirar o gerenciamento de dentro da organização é, ainda, uma forma de diminuir brechas de seguranças, às quais todo o sistema está exposto. Assim, bons provedores de Serverless computing contam com equipes especializadas no assunto e em proteção geral contra ataques.
Desse modo, sua empresa passa a ter um controle maior sobre as atualizações realizadas, acompanhamento especial dos possíveis riscas e planos de contingência realizados sob demanda, garantindo a disponibilidade contínua do sistema.
Tirar o gerenciamento de dentro da empresa é uma forma também de diminuir as brechas de segurança às quais um sistema está exposto no dia a dia.
Por melhor que seja a sua equipe interna, a verdade é que nem todos os colaboradores estarão disponíveis para monitorar todas as ameaças. Com a contratação de um bom provedor de Serverless, o seu negócio passa a contar com tecnologia de ponta e profissionais totalmente dedicados a tudo o que envolve a computação em nuvem.
Integração dos diferentes setores da empresa
Como as funcionalidades oferecidas pelo modelo Serverless conseguem se adaptar de acordo com a produção e operação de cada setor da sua empresa, se torna mais fácil integrar os profissionais de áreas diversas.
Além disso, o modelo também fornece integração otimizada entre processos em um sistema único, além de flexibilidade nas ferramentas. Desse modo, cada tarefa será realizada da melhor forma possível, sempre respeitando as características do seu negócio.
Vantagem competitiva significativa
A transformação digital tem transformado todo o modo pelo qual as empresas se relacionam com a tecnologia. É preciso estar sempre acompanhando as tendências para garantir que o seu negócio não se torne obsoleto e possa gerar oportunidades de forma contínua.
Investir na Serverless computing é um modo interessante de ganhar mais competitividade. Isso porque você estará apostando na otimização de processos e agilidade na entrega de resultados.
Podemos dizer que o modelo Serverless é a evolução de uma tecnologia já consolidada no mercado, a computação em nuvem. Ele busca as melhores práticas e métodos para facilitar ainda mais a vida do profissional de TI.
Ele permite, portanto, que a equipe interna não precise se ocupar tanto com o gerenciamento e manutenção continuada dos sistemas. Ao serem liberados dessas atividades, os profissionais conseguem se dedicar exclusivamente à inovação e ao core business da organização.
As desvantagens do modelo Serverless
Mas nem só de vantagens vive a TI. Assim como outras inovações, a operação sem servidores também tem suas desvantagens. Por exemplo, o controle de fornecedores e preocupações com segurança são alguns dos problemas causados pelo uso de APIs (Interface de Programação de Aplicativos) de terceiros.
Outro ponto sensível é a dependência causada aos desenvolvedores em relação às ferramentas de depuração de sistemas que necessitam de acesso a uma quantidade significativa de métricas relevantes para identificar a causa raiz.
Os sistemas IaaS (Infraestrutura como Serviço) e PaaS (Plataforma como serviço) têm exposto as técnicas de modelagem de tráfego e balanceamento de carga, via serviços de GeoDNS ou Zuul.
Na arquitetura sem servidor, perdemos essa flexibilidade, pois as solicitações dos usuários são tratadas por balanceadores de carga opacos, como o AWS API Gateway, serviço gerenciado que proporciona aos desenvolvedores criar, publicar e proteger APIs em diferentes contextos.
Nesses casos, a plataforma escolhe uma função Lambda implantada na mesma região em que a solicitação chega. Por fim, o modelo de operação Serverless cria certa morosidade na construção da arquitetura de computação distribuída, já que é algo altamente complexo.
Por que usar Serverless
Diante de tantos prós e contras, afinal, por que optar pelo Serverless? Conforme dito anteriormente, ao usar um server você deixa de ter os problemas do cenário antigo da TI, onde não existe mais a compra, configurações e, claro, o ataque.
Portanto, para você, desenvolvedor, que passará a se preocupar apenas com o seu código, as vantagens são diversas, enquanto para o empresário, um único destaque é de bastante relevância: a redução de custos, em especial com a folha de pagamento, já que não precisará mais de uma equipe de TI tão volumosa.
Mas, acredito que a parte mais importante dessa resposta sejam os diferenciais, já sentidos na fase de desenvolvimento, em que é preciso apenas definir qual a linguagem e começar a programar.
Como é possível notar, com o fim dos servidores os serviços também ficam mais escaláveis, além de elásticos. Por isso, não se faz mais necessário um Database Administrator (DBA), aquele profissional que se dedicava a gerenciar, configurar e acompanhar um banco ou um sistema de bancos de dados.
Portanto, trata-se de um novo cenário recheado de facilidades para os desenvolvedores, da geração de novas funcionalidades, até a resolução de problemas da empresa de forma mais rápida e eficiente. Tudo isso garante uma elevação no nível de segurança da informação dentro da TI.
E aí, gostou do artigo e quer ler outros conteúdos como este? Então, assine a nossa newsletter e visualize as novidades em primeira mão!