O Google apresentou uma versão estável da plataforma Knative 1.0, projetada para criar uma infraestrutura de computação sem servidor implantada em um sistema de isolamento de contêineres baseado na plataforma Kubernetes. Além do Google, empresas como IBM, Red Hat, SAP e VMware também estão envolvidas no desenvolvimento do Knative. O lançamento do Knative 1.0 marcou a estabilização da API de desenvolvimento de aplicativos, que doravante permanecerá inalterada e compatível com versões anteriores. O código do projeto é escrito em Go e distribuído sob a licença Apache 2.0.
O modelo de desenvolvimento de aplicações serverless oferecido pela Knative fornece um nível adicional de abstração para sistemas em nuvem, permitindo que funções sejam executadas como serviços (FaaS, Functions as a service). A essência do modelo serverless é que o desenvolvedor implemente a lógica no nível das funções individuais, sem se preocupar em criar e gerenciar a infraestrutura para execução de aplicativos e sem estar vinculado a aplicativos de servidor específicos e aos ambientes de nuvem necessários ao seu funcionamento.
O desenvolvimento é realizado sem a criação de aplicações monolíticas ao nível da preparação de um conjunto de pequenas funções individuais, cada uma das quais garante o processamento de um evento específico e é projetada para funcionar separadamente sem referência ao ambiente (sem estado, o resultado não depende de o estado anterior e o conteúdo do sistema de arquivos). As funções são iniciadas apenas quando surge a necessidade e após o processamento do evento podem concluir imediatamente o seu trabalho, ou seja, diferentemente dos microsserviços, não é necessária a presença constante de ambientes em execução que consomem recursos ociosos.
A própria plataforma Knative lança containers conforme a necessidade, coloca neles funções preparadas, organiza o gerenciamento e garante o dimensionamento dos ambientes necessários para o desempenho dessas funções. A plataforma pode ser implantada sozinha, sem estar vinculada a serviços de nuvem externos. Apenas o Kubernetes é necessário para funcionar. Ferramentas são fornecidas para suportar uma variedade de estruturas comuns, incluindo Django, Ruby on Rails e Spring. A interface de linha de comando pode ser usada para controlar a operação da plataforma.
A plataforma fornece dois componentes principais:
- Servindo para executar contêineres sem servidor em Kubernetes com configuração automática de comunicação de rede, roteamento, rastreamento de alterações (criação de instantâneos de código hospedado e configurações) e manutenção do nível de escalonamento necessário (até redução do número de pods a zero na ausência de atividade) . O desenvolvedor foca apenas na lógica; tudo relacionado à execução é feito pela plataforma. Para organizar a interação da rede e as solicitações de roteamento, podem ser utilizados os subsistemas de rede Ambassador, Contour, Kourier, Gloo e Istio. Há suporte para HTTP/2, gRPC e WebSockets.
- Eventing é um sistema universal para assinatura (anexação de manipuladores), entrega e gerenciamento de eventos. Permite criar aplicativos de execução assíncrona, anexando recursos de computação a fluxos de dados usando um modelo de objeto e um mecanismo de processamento de eventos.
Fonte: opennet.ru
