日常生活中,我们无论是看视频网站、玩网络游戏还是使用社交网站,都离不开“服务器”。服务器,通俗而言,就是一台高性能的电脑,存储着游戏中的信息、视频电影或社交网站上的图文。但服务器有个缺点,就是容易出故障,动不动来场罢工,这样,你就无法登陆游戏或观看视频了。为克服服务器的这些毛病,IT工程师想出了很多办法来进行优化,其中最主流的方式就是“虚拟化”,感兴趣的小伙伴可以看我们之前发布的文章《画饼也能充饥——浅谈FusionCompute虚拟化》。2016年之后,一个更新的解决办法出现了,就是我们本次介绍的容器技术。
服务器
容器是一个封闭的小环境,类似一个集装箱,存有CPU和内存资源,游戏的服务器也可以在其中运行。相比服务器而言,容器的优势在哪儿呢?
容器优势:集成与兼容
首先,容器能快速修复故障。服务器的重启速度慢,因为它是一个笨重的机器,除了要启动操作系统,还有系统自检和无数的开机启动项;而容器里往往只有一个进程,一个服务,所以能够在秒级别实现新容器的自动启动。在用户体验中,就是“游戏卡了一下”或者“看视频卡了一下”。
除此之外,实际场景中游戏的服务器可以由数百个容器同时提供服务的分布式系统,只要这一百个容器不是同时都出现故障,玩家就不会受到影响,配上容器秒级别恢复的特性,基本不会影响用户的体验。
容器的另一大特色就是解决了兼容的难题。安卓的APP无法运行在IOS上,Windows的软件无法运行在linux上,这给所有的软件开发者带来了很多问题:软件需要根据所有的服务器硬件或软件来做适配。而容器这个集装箱就没有这些问题了,集装箱可以放在船上,也可以堆在码头,应用可以在不同的操作系统上进行相同运行。这样的功能自然让软件开发者喜出望外,因此在当今较为成熟的敏捷开发和云原生应用的开发使用中,往往都会出现容器的身影。
Kubernetes 让容器应用更简单高效
面向未来的云架构,有一种通用的解决方案就是Kubernetes+Docker,我们已经介绍完了容器(Docker是其中的一种),那么Kubernetes有什么用途呢?
前面讲到,每一个容器都包含一点点资源,因此一个完整的应用常常包含很多容器。例如有A,B,C三类容器,每类容器各有一百个(而这一百个是完全一模一样的),那就意味着有三百个容器需要一个个去管理,那么你可能要做以下这些事情:
1、当业务访问繁忙、资源不足时,你需要额外手动创建几十个容器。
2、当资源使用不平衡时,你需要关闭一批容器,再在别的节点上启动这些容器。
3、时时刻刻盯着这三百个容器,谁出了故障就立即启动新的容器。
这还仅仅是一个应用,当有几十个应用需要运行的时候,你会发现,即使自己有三头六臂也管不过来了。这时候,Kubernetes出场了,作为一个容器编排引擎,它能够批量管理容器,实现批量发放、弹性伸缩、故障自动恢复等强大功能,也让容器技术真正走进各家公司正式商用。
容器+容器编排构成了一个完整的IT基础架构的核心,它有别于传统云IaaS架构,面向应用,面向开发,处于更高层级的PaaS层。在目前IaaS技术栈接近饱和的情况下,越来越多的企业开始寻求往PaaS进行转型,因此掌握容器技术成为了IT人必备的技能。
华为认证云计算容器高级工程师
华为推出了华为认证云计算容器高级工程师,培养容器工程师,协助企业完成面向未来的ICT技术转型。
HCIP-Cloud Computing-Container认证定位于培养具备开源Docker & Kubernetes系统性技能,能够在Docker & Kubernetes环境上进行操作维护和故障排查的专业人才。通过HCIP-Cloud Computing-Container认证,证明学员已经理解并掌握了开源Docker & Kubernetes理论知识和操作维护技能,具备胜任Docker工程师、Kubernetes运维工程师、容器云平台管理员等岗位所必备的知识和技能。
领取专属 10元无门槛券
私享最新 技术干货