原文链接:
http://click.aliyun.com/m/25751/
摘要: 从个人对容器的发展来看。大会上几位问到一些隔离的问题,分享嘉宾都说这个比较复杂,要么说这块他们没有解决,确实经常出问题,要么说私下来讨论;其实我们在接入和调度容器的时候,也发现了目前的容器技术在隔离上还欠缺很多,如果要能更好的提高物理机的资源利用率,降低成本,单机隔离和单机弹性将是一大关键技术和核心竞争力。
概要
参加了上一次CNUTCON 大会,有来自coreos的李响,分享了很多关于etcd的事情,以及关于k8s包括自己和coreos公司的一些观点;还有来自mesos的tim chen, 他分享了很多mesos的思路以及一些接入容器过程中踩过的一些坑;swarm kit的负责人陈东洛也分享了swarm的思路,这方面由于刚出来没多久以及分享的同学也只有他,所以东西并不多;总的来说,感触很深。
关于容器和编排,想到开源和创业
从会议分享者来看。相比去年,容器技术有了更大的发展;docker很热,每一个主题都在涉及docker。且基本上大家都认同docker的镜像。对于容器,虽然也有其他的一些选择,比如rkt,lxc等,但对于runtime以及接口,大家基本趋于一致,短期也不会期望有大的变化,大家开始从更高层次思考容器的应用,比如直接提供给用户编排的工具,服务或系统,而不是一个容器。swarmkit的发布就有这个意思,大家开始把重心转移到编排和调度。
从个人对容器的发展来看。大会上几位问到一些隔离的问题,分享嘉宾都说这个比较复杂,要么说这块他们没有解决,确实经常出问题,要么说私下来讨论;其实我们在接入和调度容器的时候,也发现了目前的容器技术在隔离上还欠缺很多,如果要能更好的提高物理机的资源利用率,降低成本,单机隔离和单机弹性将是一大关键技术和核心竞争力。
我们采用了跟mesos一样的架构和思路,因此我重点听了mesos相关的topic,希望是能够吸取到好的经验,能实际实施到我们的系统中,然后听了更多的k8s的topic。整体个人感觉,在开源解决方案中,k8s目前要热过mesos,k8s在web service这方面确实占据了很大的市场,吸引了很多开发者,但在有状态服务的应用特别是大数据上面目前并没有很好的解决方案,社区也一直在讨论和抽象当中。相反mesos在大数据服务场景下能够很好的解决,并在集群规模上也有很好的优势,但拿到mesos是不能直接解决用户的需求,需要用户写一个scheduler。swarm的思路则是另外一种哲学,或是另一个极端,跟docker的思路是同承一脉的,把更多的东西集成进系统里,提供给用户简单统一的接口,装好docker就可以编排调度了,这方面后续发展如何,很难说,暂且不论。总的来说,这一开源领域目前仍是K8s、Swarm、Mesos三足鼎立,近期也看不到谁会完全胜出。它们的功能比较如下图所示。
orchestrators
无论mesos这种2次调度,扩展性强的哲学,还是swarm kit这种集装箱式的哲学,其次是k8s先取其中,优先发展自己优势的思路。国外这种开源以及项目创业的一些共性值得我们思考和学习,这里举一个例子, coreos公司他们把他们的目标和使命定义为"secure the internet", 在zookeeper的发展满足不了他们需求的时候,他们能做出这么大的决定重新build一个如此大的项目,并且成功了,成为容器界基本都依赖的一个项目,这个勇气和思路值得学习。
我们的项目前身是hippo,跟google borg相似,采用自建的方式,借鉴了很多mesos的思路,但确没有使用mesos开源版本进行改进,与社区缺乏交流,不能共享mesos社区新的feature,也不能对开源进行影响;另外我们系统暂时也不能对国内技术全产生很大的影响,吸收群体的智慧有限,这是一大遗憾。都说开源是有利益目的的,你认同吗?
从mesos接入docker,想到hippo接入docker
为什么想到这个,实际上我们在接入的过程当中踩到了相同的坑,有的mesos解决的好,有的还没有解,可以作为后续改进的一个参考。
mesos和hippo容器化之路 (Containerizer)
容器接入的接口设计
我们团队关注docker很早,在hippo启动前就开始就关注docker。
14年我们直接用cgroup和namespace等标准的os feature完成了引擎进容器的demo,证明了隔离的可行性。
一直想完善我们的隔离,docker开始崭露头角,但docker在2.6.32内核上要跑到生产还不行,而t4在阿里在生产已经跑了一段时间,因此我们14年为了让混布,提高资源利用率,节省成本,选择了t4进行落地。
跟mesos一样,在容器技术没有完全统一的情况下,我们当时在设计的时候也考虑了支持不同的容器以及不同的隔离策略,以实现用户的定制需求和可插入性,或者可配置性。
mesos在最开始的时候,为了支持External Containerizer,定义了一套回调的脚本接口,用户可以在脚本里完成各个阶段的工作。但docker非常火,连k8s也在学习docker的接口设计理念,而且External Containerizer变得很难用,最终这种方式被废弃掉。
hippo是自建方案,有一个好处我们不需要考虑太多其他人的兼容性,这样我们在设计实现的时候,相对的在接口设计方面做得直接些,没有过度设计,从t4到docker基本上,对主体结构代码没有太多的侵入性。createInstance,destoryInstance,checkInstance几个简单的接口不论是什么容器,都适用。
现在的mesos,对docker是native integration。没有额外的setup。只需要docker daemon和docker client。可以说在这方面和hippo是殊途同归了。
容器接入踩了很多坑,还有很多未解决的
真的就是3个接口那么简单吗?mesos在接入docker的时候,在处理日志,recovery, tag containers, cgroup资源更新等等踩了很多坑。以docker update为例,docker在1.2以前是一直不支持的,且后续版本也支持的不够。
更能说明这个问题的是如果mesos自己跑在容器里,如何去更新其他容器的资源,因为这个时候已经chroot。mesos采用了一个跑在宿主机的docker exectute的代理(如图2)。这个方案我觉得比我们做的好,我们的pouch(阿里自研容器产品)把很多的逻辑直接做在了docker daemon,这样侵入性太高,跟踪最新的docker版本成本很高,无法及时享受修复的bug以及新的feature。
原文链接:
http://click.aliyun.com/m/25751/
分享到:
相关推荐
在深入探讨“手淘Native容器化框架发展和思考”这一主题之前,我们需要明确几个关键概念和背景知识。首先,容器化技术通常指的是将应用程序及其运行环境封装在一起,以隔离应用程序的运行依赖,提高部署的灵活性和...
阿里巴巴集团业务中台的实践和思考是一个非常丰富的话题,涵盖了阿里巴巴集团在数字化转型过程中的技术演进、架构设计、业务模式转变以及技术平台的建设等多个方面。以下是对给定文件中标题、描述和部分内容中提及的...
本文将介绍Atlas的设计思路和手淘对容器化、组件化和动态化上的思考,主要内容来自阿里巴巴资深技术专家倪生华(玄黎)在云栖大会上的分享。2013年,手淘航母战略的制定,带来了业务和开发人员的翻倍膨胀。从不到100...
本篇内容将详细解析阿里巴巴在这一领域的实践与思考,以期为其他企业和个人提供宝贵的借鉴。 一、运维自动化的重要性 1. 提升效率:大规模服务器集群的运维工作繁重,自动化可以减少人工干预,提高运维速度。 2. ...
"中台战略企业数字化转型的思考"这个主题,旨在探讨如何利用中台战略推动企业的数字化转型,实现更高效、灵活和创新的业务运营。 中台战略起源于阿里巴巴集团,它的核心理念是构建一个共享的服务中心,将企业的核心...
通过以上对阿里巴巴中台技术架构的实践与思考的深入解析,我们可以看到,中台架构旨在打造一个共享、开放、敏捷的技术生态系统,以适应快速变化的市场环境和业务需求。然而,中台架构的实施并非一蹴而就,需要全面...
阿里巴巴 Kubernetes 应用管理实践中的经验与教训 阿里巴巴超大规模神龙裸金属 Kubernetes 集群运维实践 阿里巴巴核心应用落地 Service Mesh 的挑战与机遇 阿里巴巴云原生开源探索与实践司徒放(姬风) 阿里云文件...
首先,我们可以期待在上册中了解到阿里巴巴的技术战略和发展方向。2017年,阿里巴巴已经在全球范围内建立了强大的云计算业务,因此,上册可能会包含关于云计算、大数据、人工智能等前沿技术的深入讨论。这可能包括...
1. **云计算**:阿里巴巴的阿里云平台可能详细介绍了他们在云服务、容器化、微服务架构等方面的技术突破和最佳实践。 2. **大数据**:阿里巴巴在处理海量数据方面有着丰富的经验,可能会分享大数据处理框架、实时...
1. 架构:书中可能详细介绍了阿里巴巴在2017年的系统架构设计,包括微服务化、分布式架构、容器技术(如Docker)的应用,以及如何应对高并发、大数据量的挑战。 2. 数据库:可能涵盖了数据库选型、优化策略、分布式...
- **企业数字化转型**:阿里云2.0通过简化云计算技术的使用门槛,能够更好地支持企业的数字化转型,尤其在数据化、智能化、移动化和物联网(IoT)等方面。 #### 阿里云2.0时代的挑战与机遇 - **技术与应用的深度...
本章节讲述了天猫 Club 如何通过构建“中台系统”,将线上线下资源整合起来,为用户提供更加个性化和高品质的服务体验。 #### 所有的中台都是业务中台 本章节提出了一种观点:无论被称为“技术中台”、“数据中台...
1. **容器化普及**:容器技术的采纳率接近70%,它不仅简化了应用在不同环境下的部署,还增强了异构环境中的基础设施管理。通过容器,应用可以在不考虑底层硬件差异的情况下运行,这推动了“云原生操作系统”的概念,...
书中涵盖了云计算、大数据、人工智能、存储、中间件、业务架构、交互技术等各个技术领域,反映了当时阿里巴巴在这些领域的最新进展和技术实力。 1.云计算方面,阿里巴巴提出了混合云弹性架构的理念。这个架构充分...
- 企业架构设计:蒋江伟分享了构建高效、稳定的企业级互联网架构的方法和策略,可能包括微服务、容器化、DevOps等最佳实践。 - 架构转型:讨论了传统企业向云原生架构的转变,以及如何应对由此带来的挑战和机遇。 ...
同时,通过垂直品类策略和社会化营销手段,提升业务在市场调控和分层经营中的效果。 最后,技术质量主题强调了降本增效的重要性。在快速变化的业务需求和复杂业态面前,闲鱼构建了以测试技术为核心的数据驱动流程...
最后,在提升效率和资源利用率上,公司着重于CICD的标准化和自动化,通过GitFlow固化流程,集成云平台、监控中心、质量平台和自动化测试。同时,对GPU调度进行了优化,结合gpushare-device-plugin和gpushare-...