容器技术标准化大统一,OCI V1.0 正式发布!|航海日志 Vol.21

汇总一周容器圈热点资讯,让开发者了解最 in 的容器技术,让企业熟知最实时的国内外容器行业动态。

 容器技术标准化大统一,OCI V1.0 正式发布!

0724

在过去几年中,容器技术被大家关注,使用率也在不断升高。几乎所有的主要技术供应商和云提供商都宣布了以容器技术为基础的解决方案,并且在这一领域也成立了许多的新兴企业。容器作为应用程序可移植性的来源的保证也需要建立一定程度的标准,确保中立性。

所以就诞生了OCI(Open Container Initiative),其目标是围绕容器技术制定共同的、最低限度的开放标准和规范。 我很自豪地说,在经历了无数艰辛之后,我们已经达到了我们第一个关键的里程碑:7 月 19 日 OCI v1.0 正式发布!

该版本将一组通用的、最小的、开放的标准和规范带到了一个现实的容器技术中, 包含了图像格式规范 (容器图像格式的规范)和运行时规范 (管理容器运行周期的规范)。规范的开放性在整个行业中形成了一套真正的共享标准, 从而减少了互操作性问题和不必要的资源浪费。

 如何说服你的老板或经理使用 Docker ?

how-to-convince-your-boss-or-manager-to-use-docker-3b5a0ca3dbc338113a34cc30e8684c904e8cc770136b0f22efdec7d13e4782ef

我是一个 learning by example 的忠实拥护者,而不是需要“你需要将营销方案从开发人员的满意度转化为可量化的业务指标”这样的提示的爱好者,我只是列出了一些常见的 DEV/OPS 问题, 然后列出 Docker 如何解决这两个人群的问题。

这样,您可以使用一组可用于一系列不同 Docker 的问题,您可以根据您的老板或经理的技术以及适用于您的方式选择使用哪些解决方案。 随意做自己的调整!

此外,值得一提的是,这些可以重新设计用于几十个用例的更改,这就是为什么我没有列出每个可能的问题/解决方案。

1. 如何在开发过程中管理多个项目

技术问题:

在我的开发机器上管理多个项目真的很痛苦,因为像 rvm,virtualenv,nvm 和 phpbrew 这样的工具令人困惑,使用起来很麻烦,特别是当我需要升级不同项目中的语言版本和依赖项时。

这可以重新定位为“建立开发环境弊端”问题。

技术方案:

使用 Docker,您可以将这些工具丢弃。 Docker 将您的应用程序打包成一个独立的“ Docker 映像”。您可以为每个应用程序创建一个图像,如果每个应用程序使用不同的语言版本,这些都不重要。升级或更改版本是1行更改。

2. 让新加入开发人员加快速度

技术问题:

试图在项目上开发新的开发人员花费的时间不合理,涉及到多个人每次都要排除多个问题。不仅如此,我们正在努力使文档保持最新。没有人想去看一个极其复杂的操作手册。

这可以被重新设计为“它适用于我!”的问题。

技术方案:

一旦你“得到” Docker,你会看到如何使用一个简单的工具来运行和管理整个项目。新开发者只需要运行一个命令并放松,因为该命令将自己构建并启动最复杂的应用程序。初始设置时间也是最小的。

3. QA / Production 中出现意外问题

技术问题:

当涉及部署代码时,会出现各种平台特定的问题和应用程序级错误。由于开发和生产之间的建立过程有很大的不同,所以有一百万种方法出错。系统包和进程之间的微妙版本差异是根本原因。

这可以被重新设计为“部署困难”的问题。

技术方案:

由于 Docker 可以轻松构建和分发应用程序,您可以跨环境移动完整的工作包。这意味着在开发中运行的代码与生产中运行的代码相同。

无论是在 MacOS,Windows 还是 Linux 下开发都没关系。它将在任何操作系统上运行(即使是在您的服务器上不同的 Linux 发行版)。

2

 

 演讲推荐:Kubernetes 最佳实践

WX20170724-165107

 

Kubernetes 是一款强大的工具,他可以真正简化您的操作。但是,存在着许多非常常见的陷阱,可能能会破坏你的体验。推荐给你一个有关“Kubernetes 最佳实践”的演讲,其中会分享一些关于构建和部署容器的最佳实践,让您更稳定,高效,安全地进行运行。

PPT 地址:https://speakerdeck.com/thesandlord/kubernetes-best-practices

 如何监视 Mac / Windows 的 Docker

监控功能现在可以在 Docker for Mac / Windows 中使用。  我们不再需要猜测我们的开发或测试环境的性能。

有些人可能会问一个问题,我们为什么要监控我们的本地 Docker 环境。 对于初学者来说,监视所有事情是直观的。 第二,为了真正了解你的环境,我们需要剖析运行中的内容以及运行方式。 最后,了解环境以及是否影响工作负载的性能是一个很好的做法。

监控 Mac / Windows 后台程序的 Docker

我们开始配置您的安装。 以下屏幕截图来自 Mac,但步骤应该适用于 Windows 。 我们现在将在我们的 Docker for Mac / Windows 上启用 Daemon 指标,格式为 Prometheus

1. 打开Docker for Mac / Windows Preferences菜单

docker-preferences

 

2. 导航到 Daemon 程序菜单,然后单击高级

docker-daemon

 

3. 在代码框内,我们将添加一条额外的行来启用指标。 在调试语句下面添加以下代码行:“metrics-addr“:”0.0.0.0:9323“

4.点击Àpply&Restart,等待Docker重启。测试出来 打开一个带有以下URL的浏览器选项卡:http://127.0.0.1:9323/metrics

– 使用 Prometheus 监视

– 配置 Grafana

➤ Docker 群模式群集中的消费服务

Consuming_Services_in_a_Docker_Swarm_Mode_Cluster

 

本教程是 Docker Swarm 容器编排系列中的第三个。第一个教程介绍了如何引导 Docker Swarm Mode 群集,第二个教程介绍了如何在 Swarm 群集中调度工作负载。本教程将探讨 Swarm 群集内部和外部的服务消耗问题。

当我们将微服务部署在诸如 Docker Swarm 群集之类的计算集群上的容器时,至关重要的是我们有一个服务发现方法来调用。对我们有效消费服务的能力至关重要。

正如我们在本系列的前一篇文章中所学到的,我们委托平台的调度功能在整个集群的节点上分发我们的服务。如果一个服务需要消耗在集群中运行的另一个服务,它如何知道在哪里找到它?服务可以缩放,消费者服务如何知道组成提供服务的哪个容器来解决以消费服务?如果我们缩小了服务范围,那么我们如何确保服务请求在整个服务的容器中得到最佳的平衡?集装箱是短暂的,来来去去。消费者服务如何跟踪哪里可以解决其服务请求?

关于内部服务提供和消费的所有这些问题同样适用于在群集上运行的服务的外部消费者。

这些问题与服务发现技术有关,并被解决。 Docker Swarm 和 Kubernetes 等容器协调平台为基于容器的服务抽象提供内置服务发现。

1

 

这一期的『航海日志』就到这里,下期再浪~

参考链接

作者介绍

夏岩:DaoCloud 技术顾问,伪の全栈工程师 && 语言爱好者。

Leave a Reply

Your email address will not be published. Required fields are marked *