Você quer dimensionamento eficiente de aplicativos? Então vá sem servidor!

Hoje estamos vendo outra mudança de máquinas virtuais para contêineres. Os contêineres são ambientes de tempo de execução virtuais em cima do kernel do sistema operacional que emula o próprio sistema operacional. É aí que entra o modelo sem servidor.

Na primeira década dos anos 2000, vimos uma mudança do uso de hardware físico para a virtualização. Essa mudança foi impulsionada pelo aumento das frequências do relógio e do número de núcleos nas CPUs modernas. Não era mais rentável executar um único aplicativo em um único servidor físico. Tanto as soluções de hipervisor de código aberto quanto comercial começaram a ganhar enorme popularidade no mercado de servidores.

 

Hoje estamos vendo outra mudança de máquinas virtuais para contêineres. Os contêineres são ambientes de tempo de execução virtuais em cima do kernel do sistema operacional que emula o próprio sistema operacional. A diferença entre máquinas virtuais e contêineres é que as máquinas virtuais emulam hardware e contêineres — rodando em cima de um VM — emulam apenas o sistema operacional.

 

A emulação do sistema operacional tem inúmeros benefícios. Os processos em execução em contêineres são isolados uns dos outros. Os contêineres podem ser iniciados e terminados rapidamente, pois sua pegada ou tamanho é tipicamente mínimo, tornando-os uma ótima escolha para o dimensionamento rápido.

 

Máquinas virtuais e contêineres permitem que o software utilize melhor o hardware adquirido. Vários aplicativos podem ser executados simultaneamente no mesmo hardware. Para os departamentos financeiros, alta utilização significa uso efetivo dos gastos de capital.

 

É aí que entra o modelo sem servidor. A computação sem servidor descreve uma arquitetura de aplicativos projetada como uma coleção de serviços gerenciados em nuvem. Serviços gerenciados como AWS Lambda, Aurora ou CloudFront fornecem alto valor agregado e permitem que você construa seus aplicativos rapidamente. Você gasta seu tempo focando no desenvolvimento da lógica do seu negócio e não mexendo com a infraestrutura, como garantir que seu banco de dados funcione como um cluster. O modelo de aplicativo sem servidor ajuda você a girar sua pilha de aplicativos e organizar e gerenciar facilmente o estado dos recursos em nuvem associados ao seu aplicativo.

 

A computação sem servidores foi possível graças a avanços tecnológicos significativos no espaço de contêineres. Provedores de nuvem que se esforçam para reduzir a sobrecarga e permitir o rápido provisionamento de recursos em suas plataformas rapidamente descobriram que era necessário desenvolver novos tipos de hipervisores acelerados de hardware.

 

A combinação de hipervisores acelerados por hardware, como o AWS Nitro e monitores de máquinas virtuais como o AWS Firecracker, permitiu a implantação rápida e a execução de ambientes de contêineres. Graças a esta nova geração de hipervisores acelerados de hardware, serviços de computação como o AWS Lambda agora oferecem desempenho muito maior de CPU, disco e I/O de rede.

 

Um ambiente de nuvem econômico é sobre alta utilização de recursos provisionados. A computação sem servidor promete que você está sempre executando seus aplicativos com 100% de aproveitamento. Ao executar seus aplicativos sem servidor, seu provisionamento é sempre perfeito porque você só paga pelo tempo de máquina que você realmente usou.

 

A computação sem servidor dimensiona bem com o tráfego de entrada em comparação com serviços clássicos de computação, como o EC2. O dimensionamento com o EC2 clássico normalmente envolve outro serviço chamado auto-dimensionamento. O dimensionamento automático em si é um recurso complicado que lida com o rastreamento de métricas selecionadas, como carga de CPU ou utilização de rede de suas máquinas virtuais. O dimensionamento automático usa essas métricas para disparar alarmes para dimensionar sua frota de instâncias EC2 para cima ou para baixo. Como você pode ver, o dimensionamento da frota EC2 envolve um monte de etapas, e é realmente fácil perder algo porque cada aplicação é bem diferente.

 

Com o servidor sem servidor, você pode esquecer toda essa complexidade. O dimensionamento de aplicativos sem servidor literalmente apenas copia o contêiner final para selecionar hipervisores, executa-o e encaminha todos os eventos recebidos para ele. Se o aplicativo sem servidor se encaixar no tamanho do contêiner e nos limites de memória de tempo de execução, você estará pronto para ir e seu aplicativo será dimensionado corretamente. Isso é habilitado por contêineres e hipervisores que se aproximam do hardware. O Serverless tem muito pouca ou nenhuma sobrecarga do sistema operacional porque está executando apenas o código do kernel e o aplicativo em seus contêineres.

 

O dimensionamento é algo em que o servidor se destaca, mas também tem alguns limites. Serverless é um modelo de computação perfeito para processamento baseado em eventos. A maioria das cargas de trabalho na web são baseadas em eventos ou podem ser convertidas para ela. Atualmente, o servidor não funciona bem com processos de longo prazo porque o AWS Lambda e outros serviços em nuvem têm limites de execução. A computação VM clássica ou outros tipos de computação baseada em contêineres ainda são mais adequadas para processos de longo prazo. Desde que sua carga de trabalho possa ser orientada a eventos e processar um evento seja relativamente rápido com baixos requisitos de recursos, o servidor deve funcionar bem para você. Nenhum dos limites atuais sem servidores parece ser permanente e as ofertas de serviços devem se desenvolver e melhorar com o tempo. Um limite que tem sido um problema ontem pode nem existir amanhã.

 

Finalmente, a coisa mais importante: custo. Quanto mais barato é desenvolver e executar aplicativos sem servidor? Eu diria que depende da aplicação. Quando seus aplicativos se dimensionam bem, eles fornecerão melhor valor para você e seus usuários. Você vai executá-los mais barato. O servidor ajuda eliminando o excesso de provisão e o pagamento excessivo de recursos computacionais que você não utiliza. Embora o servidor melhore o dimensionamento, outra utilização faturada ainda se aplica — você ainda deve pensar em quanta largura de banda, armazenamento e volume de banco de dados você usa. O Servidor não vai ajudá-lo a utilizar melhor esses recursos no momento, isso ainda depende de você e do seu aplicativo.

 

Você pode ter lido postagens na internet sobre o bloqueio sem servidor e do fornecedor. Eu diria que você ainda pode controlar esses aspectos na arquitetura de seus aplicativos. A computação sem servidor tem inúmeros benefícios — ótimo desempenho, fácil configuração e desenvolvimento e implantação rápidos. É por isso que o servidor se tornou uma ferramenta importante na minha caixa de ferramentas para construir aplicativos de alto desempenho que dimensionam bem, mantendo o baixo custo. Se você ainda não tentou servir sem servir, você deveria. Comece explorando o modelo de aplicativo sem servidor.

 

 

O Avance Network é uma comunidade fácil de usar que fornece segurança de primeira e não requer muito conhecimento técnico. Com uma conta, você pode proteger sua comunicação e seus dispositivos. O Avance Network não mantém registros de seus dados; portanto, você pode ter certeza de que tudo o que sai do seu dispositivo chega ao outro lado sem inspeção.


Strong

5178 Blog mga post

Mga komento