云栖学习小组 关注
手机版
  1. 云栖社区>
  2. 云栖学习小组>
  3. 博客>
  4. 正文

阿里云双11访谈之容器服务

场景研读 2017-10-31 18:38:31 浏览2041 评论0 发表于: 云栖学习小组

架构 docker 阿里云 公有云 模块 镜像 微服务 容器

摘要: 在阿里云双11访谈容器服务专场中,阿里云容器服务高级专家戒空为大家介绍了阿里云容器服务以及容器镜像服务的基本情况和各自的优势所在,并且针对“双11”这样大流量的场景分享了容器技术和容器镜像技术的最佳实践。

摘要:在阿里云双11访谈容器服务专场中,阿里云容器服务高级专家戒空为大家介绍了阿里云容器服务以及容器镜像服务的基本情况和各自的优势所在,并且针对“双11”这样大流量的场景分享了容器技术和容器镜像技术的最佳实践。


双11第一波,红包领不停,点击看详情:https://promotion.aliyun.com/ntms/act/pre20171111.html




以下内容根据访谈视频整理而成。

阿里云容器服务简介
阿里云容器服务就是阿里云在2015年推出的容器应用管理服务,其主要支持Docker应用的全生命周期的管理,阿里云容器服务在公有云上面整合了阿里云的虚拟化、存储以及网络等方面的能力,简化了用户在容器应用运维上的复杂性。阿里云容器服务自从2015年正式上线到现在经过了两年的时间,已经有了一千多家的企业客户。在今年5月份的时候,阿里云容器服务还增加了对于Kubernetes编排能力的支持,也就是说现在同时支持了Swarm和Kubernetes。阿里云容器服务除了对于公有云提供服务之外,还提供了相应的专有云版本,用户可以通过专有云的方式在自己的数据中里面构建一个完整的容器运维能力。

阿里云容器镜像服务简介
容器镜像服务也是阿里云在2015年的时候推出的一套系统,基本上大家可以认为容器镜像服务是为用户提供了安全稳定的镜像托管能力,但是实际上并不至于此。除了镜像托管以及镜像的上传下载之外,容器镜像服务还包含了从镜像构建到应用部署等一整套的DevOps能力。目前已经在阿里云的12个Region上进行了部署,大概会有10万个镜像仓库,目前也达到了2亿多次镜像下载量。

容器技术的优势所在
其实容器服务还有一个别称就是操作系统级虚拟化,它与传统虚拟化技术相比而言的主要差异在于:传统的虚拟化需要一个虚拟机然后在其中启动完整的系统,还会涉及到一些类似于指令翻译的行为,所以其系统占用以及资源开销都是比较大的,会造成比较大的系统损耗。而对于容器服务而言,多个容器直接共享宿主机的内核,这部分是几乎没有资源开销的。此外进程也是直接运行在宿主机里面的,所以这部分其实也没有性能损失。总之,容器服务相比传统的虚拟化技术而言,在资源利用以及性能上面更具有优势。通过容器这种方式,使得我们可以在一台物理机上面启动多个应用,进而提高系统的资源利用率。

此外,容器技术目前事实上的规范是Docker,而Docker存在一个镜像规范。通过Docker镜像这种方式可以很方便地将应用和其依赖打包在一起,这样在运行的时候就可以不必考虑宿主机上面是否安装了依赖,一般而言只要安装的系统是正确的就可以正确运行。Docker除了镜像规范之外,还存在一套规范化的管理接口。大家可以看到Docker之后也出现了很多的容器管理平台,通过这些管理平台可以实现批量化地对于应用进行管理,比如可以非常方便地一键创建出测试环境,也可以对于线上的环境进行自动化运维。

“双11”场景下,容器技术所能够带来的便利
其实“双11”的业务流量往往会比较大,而且在“双11”之前需要对于流量进行预估。但是实际上真正的流量却是难以评估的,往往按照预先估算的数据准备资源和应用容量,然而到了“双11”当天发现准备量还是不够,仍然需要进行紧急扩容,这也是一个比较常见的情况。而容器技术就非常适合这样的场景,因为现在很多企业往往都有自己的机房,并且会在自己的机房中部署应用,而在“双11”的时候业务所需要的资源量是非常大的,用户本身的机房的资源可能不够,这样就会需要使用云上的资源,需要把一部分业务放到云上运行,希望借助云上的大资源池来支持“双11”的流量,这就是比较典型的混合云场景。

容器技术的一个非常大的特点就是方便迁移,所以通过容器技术也可以非常容易地实现跨云迁移,可以很方便地利用容器技术把原来部署在自己机房中的应用部署到云上去。此外,对于需要进行紧急扩容的场景,原来可能需要完成准备物理机器、安装操作系统、安装依赖等一系列的事情,而通过容器技术以上的这些繁琐的操作都不需要做了,只需要把镜像拉下来然后运行就可以了,所以扩容的速度也会非常快。

容器技术所带来的敏捷变革
在容器服务中其实会有这样几个功能能够帮助大家更加便捷地使用。第一点就是自动弹性伸缩的能力,也就是用户可以设定党某个应用达到的CPU、内存等资源使用阈值的时候就要进行自动的扩容。除了对容器本身进行扩容之外,阿里云容器服务目前还支持在顶层资源不够或者虚拟机已经跑满的情况下,调用ECS的API来自动地创建一些新的机器,通过这样的两层调度来实现容量管理。第二点是支持混合云的能力,用户可以在公有云容器的控制台里面管理IDC里面的容器的集群应用,可以使用控制台同时管理资源和部署应用,进而实现无缝的全局资源管理。

目前,阿里云容器服务在IDC中也提供了与云上完全一致的编排能力,应用可以非常方便地在云上与云下之间进行迁移。在阿里云的每个公有云Region里面,都提供了容器镜像服务,用户可以通过内网下载容器的镜像,这样的下载速度也是非常快的。在规模特别大的场景中,比如存在几千台机器需要同时部署应用时,这样的下载量是非常大的,可能很多系统无法实现这样的量级,而在阿里云容器镜像服务里面是通过P2P的镜像分发机制实现的,这样的一套方案现在已经在阿里内部得到了充分的验证。

容器技术最佳实践
对于容器镜像而言,之前也提到的主要的问题在于扩容速度需要非常快,所以一般而言需要将镜像做的更加精简,这样才能够使得镜像的下载速度更快。具体实现上有以下几个关键点:
  1. 在选择基础镜像的时候尽可能选择比较经典的版本。
  2. 在构建镜像的时候推荐用户把不可变的部分和变化的部分进行拆分。比如在写dockerfile的时候可以将不可变的部分写在前面,可变的部分写在后面,尽可能地使得层次更加清晰。这样在进行构建的时候一方面可以尽可能地利用缓存,所以镜像构建会非常快,基本上只有变化的内容会需要重新构建;另一方面因为不变的东西在机器上面已经有了,那么在下载的时候只需要把新的镜像层下载下来即可。
  3. 不要在镜像构建里面构建代码。一些同学喜欢在镜像构建里面构建代码,比如在Java镜像里面直接使用Maven构建好,但是这种方式却并不好。一方面会导致镜像非常臃肿,另一方面因为代码都放在镜像里面,就会增加安全风险。所以推荐的做法是先进行构建,之后把构建的JAR包或者WAR等结果放在最终的镜像里面。

对于容器服务而言,现在比较流行的就是微服务架构。微服务架构中的每个服务都比较小,这样在进行扩容的时候就可以按照单个服务进行扩容,扩容的速度就会比较快。因为一般在实际场景中,整个系统可能会有很多个模块,而真正存在性能问题的模块只有几个,所以只需要针对于存在问题的几个模块进行扩容即可,这样非常适合微服务的架构。如果不使用微服务架构,而是采用传统架构将所有的应用放在一起,这样一方面应用的扩容、下载以及启动速度都会比较慢,另一方面因为所有模块都在一起,在进行扩容的时候全部都会进行扩容,即使某些模块没有问题也会进行扩容,这就会造成资源的浪费。

阿里云容器服务的“双11”特惠

目前,阿里云容器服务和容器镜像服务两个产品都是免费的,这其实是非常大的优惠了!希望大家能够持续关注阿里云容器技术服务和容器镜像服务。


双11第一波,红包领不停,点击看详情:https://promotion.aliyun.com/ntms/act/pre20171111.html

本文为云栖社区原创内容,未经允许不得转载,如需转载请发送邮件至yqeditor@list.alibaba-inc.com;如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至:yqgroup@service.aliyun.com 进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。

用云栖社区APP,舒服~

【云栖快讯】中办国办印发《推进互联网协议第六版(IPv6)规模部署行动计划》加快推进基于 IPv6 的下一代互联网规模部署,计划指出2025年末中国 IPv6 规模要达到世界第一,阿里云也第一时间宣布了将全面提供IPv6服务,那么在全面部署 IPV6 前,你需要了解都在这儿  详情请点击

网友评论

关注
场景研读
技术学习永无止境
341篇文章|574关注
提供了高性能可伸缩的容器应用管理服务,支持在一组云服务器上通过Docker容器来进行应用生命周期管理。

一站式提供企业即时通讯、销售管理、协同办公。

充分利用阿里云现有资源管理和服务体系,引入中间件成熟的整套分布式计算框架,以应用为中心,帮助企业级客户轻松构建并...

为您提供简单高效、处理能力可弹性伸缩的计算服务,帮助您快速构建更稳定、安全的应用,提升运维效率,降低 IT 成本...