从持续集成到持续交付——Docker Cloud概览

简介: 本文讲的是从持续集成到持续交付——Docker Cloud概览【编者的话】本文介绍了Docker Cloud的概况,以及如何使用Docker Cloud改进我们的持续集成和持续发布的流程。也指出了目前Docker Cloud还存在的功能方面的问题。
本文讲的是从持续集成到持续交付——Docker Cloud概览【编者的话】本文介绍了Docker Cloud的概况,以及如何使用Docker Cloud改进我们的持续集成和持续发布的流程。也指出了目前Docker Cloud还存在的功能方面的问题。

容器化(Docker容器),持续集成(CI),持续部署或持续交付(CD)是简化DevOps工作的终极方案。这展示了一个未来的场景:当代码被提交到代码库之后,所有的后续工作包括编译、配置、交付和部署,甚至是高可用性都是完全标准化和自动化的。从这个角度我们可以看到一个美好的未来,将开发人员和运维人员从繁复的工作中解放出来,节省出来的人力资源可以更专注在更加创造性的开发工作。

官方的Docker镜像仓库和CI服务

从Docker的第一版本发布以来,这个公司持续行进在一个正确的方向上前进,虽然前进的有点慢。尽管如此,在Docker收购Tutum一年之后,Docker最终发布了正式的云服务Docker Cloud(cloud.docker.com)。现在围绕Docker的生态系统已经接近完备了。

在深入到Docker Cloud的技术细节之前,让我们看一下Docker的镜像仓库和自动构建服务——Docker Hub(hub.docker.com)。作为我使用了将近一年的CI工具,我觉得它还是非常好用的。它的工作方式也是很简单的,你只需要写好一个Dockefile并把它放在GitHub或者Bitbucket上,Docker Hub就会在每次代码提交之后自动构建Docker镜像并将其放置到Docker Hub镜像仓库上提供下载。
01.png

例如, https://hub.docker.com/r/tomasen/frontd/builds/  就是这样一个在Docker Hub上自动构建的Docker镜像。我可以指定镜像的分支并分配不同的标签。这个流程有助于区分版本,使其更适用于开发或者生产环境。
02.png

当然,这个构建过程会在每次代码提交时被执行。

Docker Cloud!

2016年3月,Docker发布了Docker Cloud的第一个版本。现在,在Docker Cloud上,我们可以添加我们数据中心或者AWS中的服务器添加到Docker Cloud中让Docker Cloud来控制它。因此无论是AWS或者Google或者Linode的虚机,甚至是裸机都可以通过一个简单的shell脚本命令将其添加到Docker Cloud中,这个shell脚本会在服务器中安装一个代理程序并将服务器转给Docker Cloud。
03.png

Docker Cloud跟传统的云服务提供商的主要区别是Docker Cloud本身不提供任何的服务器或者虚机,只是提供某种服务器/服务的管理系统。因此Docker公司可以通过提供持续部署的方案来产生利润。

将服务器添加到Docker Cloud的命令是非常简单的,如下所示:
curl -Ls https://get.cloud.docker.com/ | sudo -H sh -s <token>

这个脚本安装和配置Docker守护进程并设置这个节点到Docker Cloud的通信隧道,因此Docker Cloud就可以管理这个节点上的服务了。

当这些节点配置完成后,我们就可以添加服务了,这意味着我们可以利用策略来部署Docker镜像到节点上运行。

如果Docker镜像是来自我们前面提到的Docker Hub,整个设置过程就会非常容易了。
04.png

从用户界面上,我们可以设置部署策略是到所有节点,到最空闲的节点或者高可用。 

除了最基本的端口发布、网络和存储配置功能外,Docker Cloud提供了高级的概念例如Stack和服务关联,这使得平台越来越成熟和完备。

未完待续

Docker Cloud依然还有一些问题可以被修复,以使得其持续交付服务能变得完美:
  • 缺少服务监控,或者测试驱动部署策略。
  • 缺少对持久存储的管理。
  • 在每个Docker Cloud节点上都需要安装高权限的代理程序,在企业环境中将会造成严重的安全问题。

未来

每次我都在思考彻底摆脱命令行终端和ssh,只需要简单的将代码提交到某个分支,然后服务就会被部署到合适的服务器上去。在任何时候都会有一个进程去去监控并在合适的时候重新部署或者弹性扩展。这样将会极大的提高迭代的速度和效率,还有一个好处是我们将无需再担心运维人员可能会犯的错误。想到这里,我是非常兴奋的。

原文链接:From CI to CD, Docker Cloud Tour (翻译:李光成)

原文发布时间为:2016-09-13

本文作者:李光成

本文来自云栖社区合作伙伴Dockerone.io,了解相关信息可以关注Dockerone.io。

原文标题:从持续集成到持续交付——Docker Cloud概览

相关文章
|
3月前
|
PyTorch 算法框架/工具 异构计算
75_TPU集成:Google Cloud加速
在大型语言模型(LLM)训练和推理的竞赛中,计算硬件的选择直接决定了研发效率和成本。Google的Tensor Processing Unit(TPU)作为专为AI计算设计的专用芯片,正逐渐成为大规模LLM开发的首选平台之一。随着2025年第七代TPU架构Ironwood的发布,Google在AI计算领域再次确立了技术领先地位。
|
7月前
|
存储 Kubernetes 监控
Docker与Kubernetes集成挑战及方案
面对这些挑战,并不存在一键解决方案。如同搭建灌溉系统需要考虑多种因素,集成Docker与Kubernetes也需要深思熟虑的规划、相当的技术知识和不断的调试。只有这样,才能建立起一个稳定、健康、高效的Docker-Kubernetes生态,让你的应用像花园中的植物一样繁荣生长。
355 63
|
11月前
|
人工智能 Kubernetes jenkins
容器化AI模型的持续集成与持续交付(CI/CD):自动化模型更新与部署
在前几篇文章中,我们探讨了容器化AI模型的部署、监控、弹性伸缩及安全防护。为加速模型迭代以适应新数据和业务需求,需实现容器化AI模型的持续集成与持续交付(CI/CD)。CI/CD通过自动化构建、测试和部署流程,提高模型更新速度和质量,降低部署风险,增强团队协作。使用Jenkins和Kubernetes可构建高效CI/CD流水线,自动化模型开发和部署,确保环境一致性并提升整体效率。
|
缓存 供应链 物联网
如何将 Salesforce IoT Cloud 与其他系统集成
Salesforce IoT Cloud 可通过其开放的 API 和集成云平台轻松与外部系统集成,实现数据交换和流程自动化,支持多种协议和标准,帮助企业构建智能物联网应用。
|
jenkins 持续交付 开发者
自动化部署:使用Jenkins和Docker实现持续集成与交付
【8月更文挑战第31天】本文旨在为读者揭示如何通过Jenkins和Docker实现自动化部署,从而加速软件开发流程。我们将从基础概念讲起,逐步深入到实际操作,确保即使是初学者也能跟上步伐。文章将提供详细的步骤说明和代码示例,帮助读者理解并应用这些工具来优化他们的工作流程。
|
Kubernetes Devops 持续交付
DevOps实践:使用Docker和Kubernetes实现持续集成和部署网络安全的守护盾:加密技术与安全意识的重要性
【8月更文挑战第27天】本文将引导读者理解并应用DevOps的核心理念,通过Docker和Kubernetes的实战案例,深入探讨如何在现代软件开发中实现自动化的持续集成和部署。文章不仅提供理论知识,还结合真实示例,旨在帮助开发者提升效率,优化工作流程。
|
10月前
|
安全 持续交付 云计算
课时5:阿里云容器服务:最原生的集成Docker和云服务
阿里云容器服务以服务化形式构建容器基础设施,大幅提升开发效率,简化应用部署流程。通过Docker容器和DevOps工具(如Jenkins),实现自动化部署与迭代,优化企业内部复杂部署问题。该服务支持GPU调度、混合云架构无缝迁移,并与阿里云产品体系无缝集成,提供安全防护、网络负载均衡等多重功能支持。凭借微服务架构,帮助企业突破业务瓶颈,提高资源利用率,轻松应对海量流量。
374 0
课时5:阿里云容器服务:最原生的集成Docker和云服务
|
IDE API 开发工具
沉浸式集成阿里云 OpenAPI|Alibaba Cloud API Toolkit for VS Code
Alibaba Cloud API Toolkit for VSCode 是集成了 OpenAPI 开发者门户多项功能的 VSCode 插件,开发者可以通过这个插件方便地查找API文档、进行API调试、插入SDK代码,并配置基础环境设置。我们的目标是缩短开发者在门户和IDE之间的频繁切换,实现API信息和开发流程的无缝结合,让开发者的工作变得更加高效和紧密。
沉浸式集成阿里云 OpenAPI|Alibaba Cloud API Toolkit for VS Code
|
监控 数据管理 pouch
Docker容器技术概览
关于Docker容器技术的概览,包括Docker的优势、劣势、核心技术、容器所依赖的技术,以及Docker容器的管理和编排工具。
349 7
Docker容器技术概览
|
运维 Devops jenkins
DevOps实践之持续集成与持续交付
【10月更文挑战第32天】在软件开发的快节奏世界中,DevOps已经成为提升效率和质量的关键策略。通过将开发(Development)和运维(Operations)紧密结合,DevOps促进了更快速的软件发布和更高的可靠性。本文将深入探讨DevOps的核心组成部分——持续集成(CI)和持续交付(CD),并展示如何通过实际代码示例实现它们,以帮助团队构建更加高效和稳定的软件发布流程。