Como simplificar a implantação de aplicativos em nuvem - introduziu uma nova especificação aberta

A Microsoft e o Docker desenvolveram a especificação aberta CNAB (Cloud Native Application Bundle). Ele descreve uma maneira versátil de empacotar aplicativos em contêiner para uso em ambientes híbridos. A seguir, explicaremos por que o CNAB foi necessário e o que é.


/ foto tsuna72 CC BY

O que é o CNAB?


Cloud Native Application Bundle é uma especificação que descreve como empacotar os componentes (APIs, máquinas virtuais, contêineres) necessários para executar aplicativos em nuvem em ambientes distribuídos. À primeira vista, essa tarefa deve ser resolvida pelo Docker. No entanto, sabe-se que, no caso de infraestruturas híbridas de larga escala, suas funções padrão não são suficientes.

Assim, o CNAB é uma tentativa de unificar o processo de empacotamento, implantação e gerenciamento do ciclo de vida de aplicativos distribuídos com base em Kubernetes, Helm, Swarm, etc., usando um formato de pacote único. Esses pacotes são baseados em JSON e OpenPGP.

Usando o Cloud Native Application Bundle, o desenvolvedor tem a oportunidade de implantar seu aplicativo na estação de trabalho local e na nuvem pública. Cada um dos gigantes de TI introduziu sua própria ferramenta, que demonstra os recursos da especificação. Na Microsoft, essa solução era o cliente Duffle ; no Docker, o aplicativo Docker .

Exemplos


Como dissemos acima, a especificação define um método para empacotar aplicativos distribuídos de vários formatos. O CNAB inclui uma definição de pacote (bundle.json) para descrever o aplicativo, bem como uma imagem especial ( imagem de chamada ) para instalá-lo. A definição do pacote se parece com isso (uma descrição de exemplo está no repositório oficial no GitHub ):

{ "schemaVersion": "v1.0.0-WD", "name": "helloworld", "version": "0.1.2", "description": "An example 'thin' helloworld Cloud-Native Application Bundle", "maintainers": [ { "name": "Matt Butcher", "email": "technosophos@gmail.com", "url": "https://example.com" } ], "invocationImages": [ { "imageType": "docker", "image": "technosophos/helloworld:0.1.0", "digest": "sha256:aaaaaaa..." } ], "images": [ { "image": "technosophos/microservice:1.2.3", "description": "my microservice", "digest": "sha256:aaaaaaaaaaaa...", "uri": "urn:image1uri", "refs": [ { "path": "image1path", "field": "image.1.field" } ] } ], "parameters": { "backend_port" : { "type" : "int", "defaultValue": 80, "minValue": 10, "maxValue": 10240, "metadata": { "description": "The port that the back-end will listen on" } } }, "credentials": { "kubeconfig": { "path": "/home/.kube/config", }, "image_token": { "env": "AZ_IMAGE_TOKEN", }, "hostkey": { "path": "/etc/hostkey.txt", "env": "HOST_KEY" } } } 

Este bloco descreve os parâmetros do pacote com o aplicativo e fornece informações sobre onde “procurar” por imagens instaladas (o formato deve ser docker ou oci). Além disso, a definição indica o tamanho da imagem em bytes, a plataforma na qual ela funcionará, bem como a arquitetura e o sistema operacional.

E aqui a própria imagem é descrita diretamente:

 "invocationImages": [ { "imageType": "docker", "image": "technosophos/helloworld:0.1.0", "digest": "sha256:aca460afa270d4c527981ef9ca4989346c56cf9b20217dcea37df1ece8120685" } ] 

Sua tarefa é instalar os componentes necessários para o trabalho. Esses componentes podem ser contêineres, funções, máquinas virtuais e estruturas de serviço.

Os desenvolvedores da Microsoft prepararam um vídeo separado, no qual disseram como trabalhar com o padrão e deram vários exemplos em código real.

O que a comunidade de TI pensa


O CNAB não é a única solução de gerenciamento de ciclo de vida de aplicativos em nuvem. Por exemplo, para o mesmo Kubernetes, há um gerenciador de plano cruzado e um gerenciador de pacotes Helm. No entanto, o CNAB é a primeira solução que abrange várias ferramentas populares ao mesmo tempo e é independente da plataforma. A propósito, o CNAB também pode trabalhar com o Helm: existe até um exemplo correspondente no GitHub.

Devido a essa versatilidade, a comunidade de TI está entusiasmada com a nova especificação. Um dos fundadores da Kubernetes - Brendan Burns - observou que a instalação de aplicativos distribuídos usando o CNAB se assemelha à instalação de um aplicativo a partir de uma unidade flash comum. Segundo ele, é tão fácil.

Mas nem todo mundo tem certeza do sucesso da nova solução. Alguns usuários estão preocupados com o fato de o CNAB estar aguardando o destino de outros gerenciadores de pacotes que, devido à falta de operadores (como no Kubernetes), foram esquecidos. Para dissipar dúvidas e discutir todas as funções possíveis, um dos criadores da solução juntou-se ao segmento temático do Hacker News . Ele respondeu a todas as perguntas dos moradores do site e ouviu propostas de desenvolvimento.

Até agora, o CNAB está em um estágio ativo de desenvolvimento . A Microsoft e o Docker estão convidando todos os desenvolvedores a se juntarem a eles para finalizar a especificação e lançá-la em produção. Dois gigantes de TI pretendem tornar a nova ferramenta um padrão do setor. Ao mesmo tempo, os representantes de ambas as empresas esperam que, com o tempo, o Cloud Native Application Bundle se desenvolva independentemente, independentemente de seus criadores.



Publicações do nosso blog corporativo:


Posts do nosso canal Telegram:

Source: https://habr.com/ru/post/pt436536/


All Articles