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 BYO 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: