为更好服务社区,Docker 推出全新活动平台|航海日志 Vol.34

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

1.为更好服务社区,Docker 推出全新事件平台2.CNCF 新增安全、服务网格和服务跟踪项目:Docker Notary、Lyft Envoy 和 Uber Jaeger

3.微软 Azure 容器服务 ACS 改名 AKS,主打 Kubernetes 容器调度服务


为更好服务社区,Docker 推出全新事件平台

WX20171106-175847

随着 Docker 的不断发展与演进,Docker 一直在思考如何更好地服务于 Docker 社区,如何针对各种不同的活动、事件和组织活动的负责人,来增加他们的曝光度?近期,Docker 与 Docker 社区的 Leader(正式名称为 Meetup Organizers)展开合作,推出了一个全新的活动平台,以更好地突出当地的 Docker 社区以及全世界各地所发生的新兴事件,你可以按地区检索并报名参与最新的活动。

平台地址:https://events.docker.com/

➤  CNCF 新增安全、服务网格和服务跟踪项目:Docker Notary、Lyft Envoy 和Uber Jaeger

Cloud Native Computing Foundation(CNCF)发布了新的托管项目:Docker Notary 通过使用强壮的加密签名为容器镜像等数字内容提供了安全信任机制;纽约大学Tandon工程学院的 The Update Framework(TUF)是一个开源的安全信任规范,而 Notary 是 TUF 的一个实现;Lyft Envoy 服务网格是一种用在微服务通信方面的数据面板代理;Uber 的 Jaeger 跟踪系统可以用于在分布式系统(如基于微服务架构的应用)中跟踪请求和数据的流向。

Docker 公司于 2015 年创立了 Notary 项目,它通过使用强壮的数字签名为数字内容提供了高级的安全信任机制。例如,可以用它为容器镜像和相关的元数据进行数字签名。除了可以确保软件的安全性,它还能保证软件在没有得到授权的情况下不会被修改。带有 Docker Content Trust(使用了Notary)的企业版 Docker 就可以为数字内容建立清晰的安全策略。

TUF 是一组开源的规范,由 Justin Cappos 教授于 2009 年制订,后由 Cappos 教授领导的纽约大学Tandon工程学院安全系统实验室继续后续的开发工作。他们与 Notary 合作将该项目提交给了CNCF,因为 Notary 是众多实现了 TUF 规范的项目中最为成熟的一个。Notary/TUF 提供了一个客户端和一对服务器应用程序,可以用来托管签名过的元数据,并执行有限的在线签名。

1031-1509880426958

 

Notary/TUF 的签名和验证流程图

目前 Notary 的使用案例:Docker 使用 Notary 来实现 Docker Content Trust 和所有的子命令安全信任机制;CoreOS 的 Quay(一种容器注册表SaaS)使用 Notary 来验证容器镜像和元数据;LinuxKit 使用 Notary 来发行它的内核和系统包。Notary不仅被用在容器发行上,还被用在生产环境当中,比如 Cloudflare 将它集成到他们的PAL 工具中,而 Kolide 用它来加固 osquery 工具的更新管理器。

上月,Envoy 成为 CNCF 的第11个托管项目。Envoy 最初由 Lyft 开发,用于拆解他们的单体系统,是一个高性能的开源服务代理,旨在让网络通信对应用程序透明。软件工程师 Matt Klein 领导了这支开发团队,通过巧妙的设计为应用程序开发人员隐藏掉了复杂的网络通信细节。出于性能方面的考虑,他们选择使用 C++ 来开发 Envoy。它的进程外(out-of-process)架构让它可以被用在基于任何一门语言开发或使用任意一种运行时运行的应用程序。它支持 HTTP/2 或 gRPC、MongoDB 过滤和速率限定,等等。

 

592-1509880426526

Envoy 目前在 Lyft 的使用情况

Klein在最近的一篇博文上写道,Lyft的业务几乎都是以开源技术为支撑的。

如果没有这些开源技术,我们所钟爱的共乘服务可能就不会存在到今天。我们在Envoy上投入了大量的开发工作,我们也意识到很多组织在从单体迁移到微服务架构过程中也面临着同样的问题,我们希望能够为促进Lyft发展的广大社区回馈我们的力量。因此,我们决定将Envoy开源,并努力为其建立一个社区。

目前,Envoy 项目有 78 个贡献者,他们至少来自 10 个不同的公司,与一些来自 Lyft 和谷歌的主要开发者共同维护着这个项目。Klein 相信,“从技术方面来看,Envoy 完全有机会成为现代微服务架构的一个主要组件”。这种信念很快就成为了现实,Verizon 已经将其用在他们的 Nelson 自动化容器部署平台上,而 Istio 服务网格控制面板项目也很快在业界引起了人们的注意,初创公司 Datawire 正在基于 Envoy 开发开源工具 Ambassador。Envoy 弥补了 CNCF 服务网格项目 Linkerd(由 Buoyant 公司创立)的不足。

最近发布的托管项目还有 Jaeger 分布式跟踪器,最初由 Uber 创立,是 CNCF 的第 12 个托管项目。Jaeger 使用了与 OpenTracing 兼容的数据模型,提供了多种语言的增强包,如 Go 语言、Java、Node 和 Python。OpenTracing 是一个现有的 CNCF 托管项目,定义了一个与厂商无关的分布式跟踪开放标准。

543-1509880426698

 

Jaeger 的架构和 Jaeger 在 Uber 的使用情况

Uber 从 2015 年开始在公司内部部署 Jaeger,现在它已经被集成到数千个微服务当中,每秒钟可以记录数千个跟踪事件。Base CRM、Stagemonitor 和 Symantec 等公司也使用了跟踪系统。另外,Red Hat 等公司也是该项目的活跃贡献者。CNCF 技术委员会代表及项目赞助者 Bryan Cantrill 在最近的一篇博文中说,分布式跟踪系统为微服务系统提供了可观测性:

微服务架构的槽点之一是微服务有可能变成分布式单体:复杂而相互依赖的系统,一些不可预见的交互就会导致它们失效。为了解决这个问题,我们必须具备在服务间跟踪代码的能力。

关于 Jaeger 更多的信息可以在 Uber 的“解决分布式跟踪”这篇博文中看到,博文由 Yuri Shkuro 撰写,解释了 Jaeger 背后的历史和架构发展的来龙去脉。

CNCF 网站上提供了章程细节、当前的成员关系和托管项目的清单。CNCF 网站上的公告区也包含了在这篇新闻里提到的托管项目的细节。

 微软 Azure 容器服务 ACS 改名 AKS,主打 Kubernetes 容器调度服务

Cloud-Azure

 

容器调度工具 Kubernetes 现在看来是一项标配的功能,除 Docker 在日前宣布,开始原生支持 Kubernetes外,微软近日也宣布,旗下的云端容器服务Azure Container Service(ACS)也将以 Kubernetes 服务为主,并将缩写改为 AKS。

微软的云端容器服务(ACS)于 2016 年 4 月正式上市,向使用者提供可于云端环境或本地部署、构建应用程序。并且于今年 2 月正式整合 Kubernetes 容器调度工具,又于4月买下 Kubernetes 容器调度管理工具开发商 Deis,加强 Azure 环境上 Kubernetes 的易用性。

而 AKS 服务就是主打开源 Kubernetes 服务,向使用者提供 Azure 云端的 Kubernetes 服务,降低了用户的操作复杂性和运营成本。除了 Kubernetes 功能之外,AKS 服务也包含了 Azure 托管控制层、自动升级、自我修复、简易扩充等功能。

另外,值得注意的是,AKS 的简化了丛集节点数量的扩充,以及 Kubernetes 的版本升级,从 1.7.7 版升级至 1.8.1 版。

使用者可以免费使用 AKS 服务,也就是微软免费帮用户托管 Kubernetes 丛集,且用户仅需支付使用 VM 的费用。另外,除了 Docker 和 Azure Container 都採用 Kubernetes 作为容器调度工具之外,资料中心作业系统厂商 Mesosphere 也采用 Kubernetes。另外,微软也计划将继续支持容器调度工具 Swarm 和 Mesosphere DC/OS,让用户自行选择习惯的工具。

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

参考链接

1.https://events.docker.com/

2.http://www.infoq.com/cn/news/2017/11/cncf-notary-envoy-jaeger

3.https://azure.microsoft.com/en-us/blog/introducing-azure-container-service-aks-managed-kubernetes-and-azure-container-registry-geo-replication/

Leave a Reply

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