2016美国QCon观察:容器与调度这么热,未来会是怎样的一个趋势?

本文涉及的产品
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
容器镜像服务 ACR,镜像仓库100个 不限时长
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
简介: 容器(Container)是近些年迅速火热的一门技术和话题,容器技术本身和在容器之上衍生的资源编排和调度技术也在飞速发展和演进之中,容器的代表有Cgroup,Docker,VM等,编排调度的代表有Google开源的Kubernetes以及Apache社区的Mesos,在此之上也衍生出了微服务。

编者按:今年QCon容器/Docker和微服务几乎占据了会场的半壁江山,大家也都趋之若鹜场场爆满,而且作为一名云计算工程师,对容器/Docker也是格外关注,容器/Docker已经不仅仅是个技术,而是作为一个生态在深刻影响着每一个细分行业,对于每个行业既是机会也是挑战,稍有不慎可能就会被时代抛弃。作为与会者现场聆听大家对容器/Docker的思考和应用,并逐步廓清现状和未来,与大家共同学习。

    容器(Container)是近些年迅速火热的一门技术和话题,容器技术本身和在容器之上衍生的资源编排和调度技术也在飞速发展和演进之中,容器的代表有Cgroup,Docker,VM等,编排调度的代表有Google开源的Kubernetes以及Apache社区的Mesos,有了容器这个基础之后微服务(MicroService)也从一个萌芽和概念逐步变成一个现实,并在生产环境中不断得到应用和验证。

    本次2016 San Francisco大会上Container容器、Scheduler调度器、Resources Orchestration资源编排、MicroService微服务等系列技术成为了整个会场最热门的话题,来分享的既有Amazon、Apple等大公司,也有Mesosphere、Netflix和其它一些行业翘楚。

    提到容器就不得不说Docker,Docker目前几乎成为了容器的代名词,有关Docker的文章汗牛充栋,不再赘述。Kubernetes也是Docker生态中的一员,Kubernetes为应用提供资源调度、部署运行、负载均衡、服务发现、弹性扩缩容等功能,Kubernetes是Docker出现之后Google基于Borg的理念开发的产品,可以理解为Kubernetes = Borg + Docker(实际还是有些差别的),当然Borg是无法开源的,Borg如果开源估计半个Google的技术栈都要开源了,后续讲到的Mesos也是与Borg对标的一个技术产品。

    来自Apprenda公司的Mattew Miller分享了利用Kubernetes实现业务微服务化的实践经验,主讲人分享了Kubernetes的架构和目前在开源社区的活跃程度,当然是极火了,Kubernetes中有Controller、Pod、Services几种概念,Pod是一组提供相同服务的容器的统称,Services是以逻辑或者ip地址对外提供服务的内部服务供应者,Controller是Pod的复制抽象,用于Pod的扩缩容,对于搭建平台的用户来说Kubernetes不但提供可靠的cluster&workload管理、还有丰富的经过实战检验的几种pattern抽象,如:

Rolling Deployents:滚动部署新版本并不中断服务,在新版本部署完成后老版本退出

Sidecars:比如收集已有服务的日志

Ambassador:比如提供访问sharding数据的统一入口

Adatapter:比如将服务日志格式转换成日志系统可以识别的格式

Leader Elector:保证提供单例服务访问

Work Queue:将Service从1:1的关系扩展到1:N,为被访问的Service前置一层代理Agent,用来转发请求

AutoScale:根据收集的业务metric来决定是否需要自动扩缩容

    接下来来自Mesosphere(Mesos的发起者)公司的Zhe Yu分享了Mesos的发展历程和最近的一些改进, Mesos提供资源管理和调度框架抽象的功能,第三方应用需要实现Mesos框架提供的API才能接入Mesos所管理的资源,具体的原理和架构可以自己去google。Mesos近些年发展比较稳健,已经在若干大公司的Production环境使用,目前Mesos最大的部署规模是30000个节点超过25W个容器,Apple的Siri就是基于Mesos来实现,Amazon内部据说也用到了Mesos,主讲人也提到了Mesos的一个优势就是提供flexible的可插拔的scheduler,当然Mesos本来就是为此而抽象的,还有flexible的服务发现机制,包括但不限于DNS/ZK/Chubby等,在此还吐槽了一下基于DNS服务发现的机制,虽然没说具体原因,但是应该和DNS的生效时间不可控有关,而且DNS还会受到本地local绑定、JVM虚拟机缓存DNS解析结果等细节问题的干扰,所以不是一个好的选择。由于Docker实在太火,Mesos也加入到了支持Docker的阵营中,从Mesos 028版本开始支持,Mesos支持的Container种类繁多,甚至tar包也可以被当做一种Container,而且也支持Nested Container,还提供了类似于Docker CNM的CNI(Container Network Interface)方案来更清晰剥离Container和网络。

    听完Mesos的分享感觉Mesos还是感受到了来自Kubernetes的压力,也有人现场提问Mesos和Kubernetes的区别,虽然Mesos和Kubernetes根本不属于一个层面的东西,但是Kubernetes更易用更贴近用户业务,Mesos属于我们所谓的一层调度,主要解决资源管理调度问题并提供抽象的框架API,目前熟知的主要应用领域也是Spark,Marathan,Cassandra等大数据相关的应用,每个应用接入时都要完整实现Mesos的API,也就是我们所谓的二层调度,所以还是有不少开发工作在的,门槛较高;Kubernetes主要用来容器调度和服务发现,没有什么额外的开发工作,而且对于一个需要快速Bootstrap的创业公司来讲,明显Kubernetes是一个更接地气的存在。其实Kubernetes和Mesos是可以共存的,Mesos甚至可以作为Kubernetes的资源提供者,两者解决的本来就不是同一层面的问题,应该说Kubernetes解决了Mesos无法解决的问题,而这些问题是更为普适的痛点。稍后来自Apple的人分享了Mesos的最佳实践,尤其是对Stateful和Stateless的服务的区别管理可圈可点。

    Amazon的人也分享了ECS(EC2 Container Service)的一些基本原理和实现机制,能够让用户方便地管理大规模的容器集群,并通过API的方式来自己编程随心所欲管理Docker和其它各种资源如ELB,当然其它云厂商也有对应的服务,如阿里云的容器服务(Container Service),Azure的ACS等。

    今天还听了一些其他场次,会在其它文章中分析汇总,本文主要聚焦容器和调度问题。

相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
相关文章
|
12月前
|
Kubernetes 固态存储 调度
Kubernetes(k8s)容器编排Pod调度策略
Kubernetes(k8s)容器编排Pod调度策略
155 0
|
2月前
|
弹性计算 运维 Kubernetes
实践篇:灵活调度,高效编排,容器化管理云上应用
【7月更文第8天】阿里云容器服务Kubernetes版(ACK)作为业界领先的容器管理和编排服务,凭借其强大的技术实力和丰富的云服务生态,为企业级用户提供了一系列卓越的优势,助力现代化应用的快速构建、部署与运维。
72 1
|
21天前
|
运维 Kubernetes 负载均衡
震惊!容器化运维竟藏如此大招,容器调度与服务编排让你的软件部署 “逆天改命”
【8月更文挑战第31天】在数字化时代,容器化技术革新了软件开发与运维方式,其高效、灵活及可移植的特点为企业应用部署提供了全新方案。容器调度与服务编排作为核心环节,通过优化资源分配、提升系统可靠性和可扩展性,实现了自动化管理。Kubernetes 等工具不仅简化了容器调度,还通过 Deployment、Service、Ingress 等资源对象实现了复杂应用架构的自动化运维,大幅提高了资源利用率和系统稳定性,减少了人工干预,加速了企业数字化转型。
29 2
|
1月前
|
运维 Kubernetes 监控
|
4月前
|
Kubernetes 网络安全 调度
容器服务ACK常见问题之容器服务ACK的eci调度卡住如何解决
容器服务ACK(阿里云容器服务 Kubernetes 版)是阿里云提供的一种托管式Kubernetes服务,帮助用户轻松使用Kubernetes进行应用部署、管理和扩展。本汇总收集了容器服务ACK使用中的常见问题及答案,包括集群管理、应用部署、服务访问、网络配置、存储使用、安全保障等方面,旨在帮助用户快速解决使用过程中遇到的难题,提升容器管理和运维效率。
|
4月前
|
运维 应用服务中间件 调度
|
4月前
|
Java 调度 Docker
Spring Boot 3 整合 xxl-job 实现分布式定时任务调度,结合 Docker 容器化部署(图文指南)
Spring Boot 3 整合 xxl-job 实现分布式定时任务调度,结合 Docker 容器化部署(图文指南)
Spring Boot 3 整合 xxl-job 实现分布式定时任务调度,结合 Docker 容器化部署(图文指南)
|
Kubernetes 负载均衡 网络协议
如何在生产环境中使用 Docker Swarm 调度容器?
随着我们的业务规模越来越大,我们的容器规模也逐渐增大时,数量庞大的容器管理将给我们带来许多挑战。Docker 官方为了解决多容器管理的问题推出了 Docker Swarm ,我们可以用它来管理规模更大的容器集群。
279 0
|
存储 负载均衡 应用服务中间件
Docker之Docker Swarm调度容器
Docker之Docker Swarm调度容器
215 0
|
Kubernetes Cloud Native 调度
带你读《企业级云原生白皮书项目实战》——3.2.8 Scheduler 调度
带你读《企业级云原生白皮书项目实战》——3.2.8 Scheduler 调度