开源应用 Docker App 加入 CNAB 规范,实现云原生应用的统一管理

简介: Docker App 是我们在2018 DockerCon 美国大会上简要介绍的一款新工具。我们一直致力于“Docker APP”的开发,使容器应用程序更易于在不同团队和不同环境之间共享和管理......

screenshot

出品丨Docker公司(ID:docker-cn)
编译丨小东
每周一、三、五,与您不见不散!


Docker App 是我们在2018 DockerCon 美国大会上简要介绍的一款新工具。我们一直致力于“Docker APP”的开发,使容器应用程序更易于在不同团队和不同环境之间共享和管理,我们还将其进行开源处理,这样您就可以从 GitHub 下载 Docker APP 了,浏览 https://github.com/docker/app 下载 Docker APP 源码。


当我们与其他人谈论分享与合作这个问题时,我们开始意识到,这是一个其他人也在为之努力的普遍问题。这就是为什么我们很高兴与微软在全新的 Cloud Native Application Bundle(CNAB)规范上进行合作的原因。

screenshot

如今的云原生应用程序通常会使用不同的技术,每个技术都有自己的工具链。也许您正在使用 ARM 模板和 Helm 图表,或在使用 CloudFormation 和 Compose,亦或是 Terraform 和 Ansible。但是,市场上没有单一的解决方案来定义和打包这些多服务、多格式的分布式应用程序。


CNAB 是一个开源的、与云无关的规范,用于打包和运行分布式应用程序,旨在解决其中的存在的问题。CNAB 将跨不同工具链的多服务分布式应用程序的管理统一为一种单一的、一体化的打包格式。

screenshot

CNAB 规范的更多详情可以在 cnab.io 上找到,我们正在积极寻找有兴趣参与规范的人们,以及有兴趣围绕规范构建工具的人们。Docker App 的最新版本就是一个实现当前 CNAB 规范的工具。这意味着它既可以为 Compose 构建 CNAB 包(可以与任何其他 CNAB 客户端一起使用),也可以安装、升级和卸载任何其他 CNAB 包。


在 Docker Hub 上共享 CNAB 包

单独的 Compose 文件的局限在于它们无法在 Docker Hub 或 Docker Trusted Registry 上进行共享。Docker App 很好的解决了这个问题。这是一个简单的 Docker 应用程序,它启动了一个非常简单的 Prometheus 应用栈:

version: 0.1.0
name: monitoring
description: A basic prometheus stack
maintainers:
 - name: Gareth Rushgrove
   email: garethr@docker.com
---
version: '3.7'
 
services:
 prometheus:
   image: prom/prometheus:${versions.prometheus}
   ports:
     - ${ports.prometheus}:9090
 
 alertmanager:
   image: prom/alertmanager:${versions.alertmanager}
   ports:
     - ${ports.alertmanager}:9093
---
 
ports:
   prometheus: 9090
   alertmanager: 9093
versions:
   prometheus: latest
   alertmanager: latest

保存为“monitoring.dockerapp”后,我们就可以构建一个 CNAB 包并在 Docker Hub 上共享它。

$ docker-app push --namespace

现在在另一台机器上,我们仍然可以与共享应用程序进行交互。 例如,让我们使用“inspect”命令来获取有关我们应用程序的信息:

$ docker-app inspect/monitoring:0.1.0
monitoring 0.1.0
 
Maintained by: Gareth Rushgrove
 
A basic prometheus stack
 
Services (2) Replicas Ports Image
------------ -------- ----- -----
prometheus  1    9090 prom/prometheus:latest
alertmanager 1       9093 prom/alertmanager:latest
 
Parameters (4)       Value
--------------       -----
ports.alertmanager   9093
ports.prometheus     9090
versions.alertmanager latest
versions.prometheus  latest

Compose 文件中的所有信息都存储在 Docker Hub 上的 CNAB 包中。您可能注意到了,它也是参数化的,因此可以在运行时替换它的值来满足部署要求。我们也可以直接从 Docker Hub 安装应用程序。

docker-app install/monitoring:0.1.0 --set ports.alertmanager=9095

使用 Docker App 安装 Helm 图表

到目前为止,存在一个问题,那就是“docker-app”和现在的 CNAB 包如何与 Helm 图表相关联呢?好消息是他们可以很好地进行关联!下面是一个使用“docker-app”和 CNAB 包来安装 Helm 图表的示例。(注:以下示例使用的是 CNAB 示例包中的“hellohelm”示例。)

$ docker-app install -c local bundle.json
Do install for hellohelm
helm install --namespace hellohelm -n hellohelm /cnab/app/charts/alpine
NAME:  hellohelm
LAST DEPLOYED: Wed Nov 28 13:58:22 2018
NAMESPACE: hellohelm
STATUS: DEPLOYED
 
RESOURCES:
==> v1/Pod
NAME             AGE
hellohelm-alpine 0s

下一步!

如果您想开始使用 Docker App 构建应用程序,那么您可以从 github.com/docker/app 下载最新版本,并查看资源库中提供的一些示例。

相关文章
|
14天前
|
Cloud Native 安全 开发者
云原生技术的未来演进与应用展望
【4月更文挑战第9天】 随着企业数字化转型的不断深入,云原生技术以其独特的弹性、敏捷性和可扩展性成为推动创新的重要力量。本文将探讨云原生技术的发展趋势,分析其在各行各业中的应用前景,并针对未来的挑战提出相应的对策和建议。我们还将讨论如何利用云原生技术优化资源配置,提高业务连续性,并最终实现企业的技术升级和价值增长。
|
3天前
|
Kubernetes Cloud Native Go
《Go 简易速速上手小册》第10章:微服务与云原生应用(2024 最新版)(下)
《Go 简易速速上手小册》第10章:微服务与云原生应用(2024 最新版)
37 0
|
3天前
|
Cloud Native 算法 Go
《Go 简易速速上手小册》第10章:微服务与云原生应用(2024 最新版)(上)
《Go 简易速速上手小册》第10章:微服务与云原生应用(2024 最新版)
21 0
|
9天前
|
Kubernetes 监控 Cloud Native
构建高效云原生应用:基于Kubernetes的微服务治理实践
【4月更文挑战第13天】 在当今数字化转型的浪潮中,企业纷纷将目光投向了云原生技术以支持其业务敏捷性和可扩展性。本文深入探讨了利用Kubernetes作为容器编排平台,实现微服务架构的有效治理,旨在为开发者和运维团队提供一套优化策略,以确保云原生应用的高性能和稳定性。通过分析微服务设计原则、Kubernetes的核心组件以及实际案例,本文揭示了在多变的业务需求下,如何确保系统的高可用性、弹性和安全性。
13 4
|
13天前
|
运维 Cloud Native 持续交付
构建未来:云原生架构在现代企业中的应用与挑战
【4月更文挑战第10天】 随着数字化转型的不断深入,企业对信息技术基础设施的要求日益提高。云原生架构作为一种新兴的设计理念和技术集合,以其灵活性、可扩展性和容错性,正在成为推动企业技术革新的关键力量。本文将探讨云原生技术的核心组件、实施策略以及面临的主要挑战,并分析如何通过采纳云原生架构来优化业务流程和提升服务效率。
|
21天前
|
人工智能 Cloud Native 物联网
探索云原生技术的发展趋势与应用前景
在当今数字化时代,云原生技术已经成为企业数字化转型的核心驱动力之一。本文将深入探讨云原生技术的发展趋势和应用前景,分析其在大数据、人工智能、物联网等领域的应用,并探讨未来可能的发展方向。
11 1
|
22天前
|
运维 Cloud Native 云计算
云原生技术:构建灵活高效的应用生态
随着云计算技术的不断发展,云原生技术作为一种全新的应用开发和部署模式,正逐渐成为业界关注的焦点。本文将介绍云原生技术的基本概念、优势以及在构建灵活高效的应用生态方面的应用实践,以期为读者提供全面了解云原生技术的视角。
|
24天前
|
运维 Cloud Native 云计算
云原生技术在企业信息化中的应用与挑战
随着云计算技术的快速发展,云原生技术作为一种新兴的应用方式,正逐渐成为企业信息化转型中的热门话题。本文将探讨云原生技术在企业信息化中的应用现状、优势以及面临的挑战,并结合具体案例分析其实际效益和发展趋势。
15 3
|
28天前
|
消息中间件 Cloud Native 网络安全
云原生最佳实践系列 3:基于 SpringCloud 应用玩转 MSE
该文档介绍了基于云原生应用的产品构建的微服务架构实践。
|
29天前
|
运维 Cloud Native 云计算
云原生技术的发展与应用前景
随着云计算技术的快速发展,云原生技术作为一种新兴的技术范式,正在逐渐引起人们的关注。本文将从云原生技术的概念、特点及其在实际应用中的优势等方面进行阐述,并探讨云原生技术在未来的发展前景。

热门文章

最新文章