不可不知云服务成功的关键技术——容器和微服务

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
简介: 在移动互联网的世界里,“云”的概念已经行之有年,大家的生活都受到巨大的改变,从没有它不能活的 IM 即时通讯软件和社交平台、信息流、各种丰富生活的游戏和音乐软件,到像“滴滴打车”这样增进生活便利的工具应用,组成了现代人生活的样貌。

在移动互联网的世界里,“云”的概念已经行之有年,大家的生活都受到巨大的改变,从没有它不能活的 IM 即时通讯软件和社交平台、信息流、各种丰富生活的游戏和音乐软件,到像“滴滴打车”这样增进生活便利的工具应用,组成了现代人生活的样貌。一般大众大概不知道这样的生活进步背后是由不断演进的云技术所成就的,然而身为开发者,想要在这样令人如痴如醉却又极度竞争的环境下立足、成功,不能不了解其中的功夫。

所谓的“云”简单来说就是有一台不停机的电脑,在进行我们所需要做的事情,我们又称它为服 务器(Server)。由于Server并不需要漂亮的介面,而Windows和Mac这样的Operating System对Server来说太过肥大,因此有很多针对Server所设计的OS,最后由Linux胜出,Linux也被称为 Server 的核心。从Server的角度来看,每个在上面跑的服务称为Process,当电脑硬体性能越来越强大,能同时 进行的Process越来越多,此时若任何一个Process当掉,都很有可能会影响其他服务,因此Process独立性开始成为许多人关注研究的技术。

最近处理Process独立性的技术被称为“容器,Container”,这个概念早在二十年前就萌生了,然而在容器技术还未成熟时,工程师们先想出了一个解决办法,就是“虚拟机器(Virtual Machine, VM)”,VM的概念是在一台电脑上装上很多核心,也就是一台电脑上有很多台小电脑在跑,每一台小电脑就是一个VM,因此若其中一个当掉了,并不会直接影响到其他VM。想当初像银行业这样需要高安全性的Server服务的产业,花了很多钱买Server,即使他们未必真正需要用到很多CPU资源,不过这样的硬需求可是让像Dell这种提供Server服务的公司分了好大一杯羹。当VM技术出来之后,卖Server的业务就消失了,真的可说是光景不再。其中最具代表性的是VMware这间公司,VM技术也算是主宰了快要一个世代,直到最近二、三年,容器技术才被Docker这间公司发扬光大,给VM技术很大的压力。Tony对于容器这样的演变认为:“在科技业,历史一直在重演,硬件一直在进步,带动软件的进步,这是一个一直在演变的自然现象。有了容器之后,是用Process来看电脑的世界,过去写程式是考虑要在哪个硬件上做事情,现在等于是把硬体虚拟掉了,让软件开发起来变得更灵活。”

当技术在演进,需求也在变化,然而在真实的世界中并不是只有一台Server在运作那么单纯,实际上,是有很多的Server,上面有更多的容器,容器虽是隔离独立,但之间又常常会需要彼此。事情开始复杂化,相应而生的就是管理自动化的需求——Google过去十年都在用Process开发服务,容器的暴红,让Google决定把内部的经验用开源项目分享出来,这个开源项目叫做“Kubernetes”(简称K8s)。K8s的核心功能是“排程(Scheduling)”,他将容器管理自动化,提升了管理效率。当问到:“容器世界正在快速的发展当中,在生产环境使用这样的技术会不会有什么需要特别考量的部分”时,Tony则是给了一个让人会心一笑的答案:“还是需要技术能力较好的团队来执行,不然很容易遇到很多的坑,会影响生产上执行的速度。K8s已经算是可以面对各式各样的硬体组合,但在初期还是让高技术含金量的团队来操刀比较好,其中复杂的技术就不一言概述了。”

当问到为什么DroiBaaS团队选择K8s,Tony表示:“我们看上的是容器这样新的技术。VM固然稳定,但是他能做的也就是稳定的某些事,旧的不代表未来可以带来更好的效率跟solution。当然,对于一些需求来说,也许VM就足以满足,不过容器除了有隔离的优点,他更适合移动互联产业的变动性和灵活性,容器在Scaling上的表现是VM所不能及的,容器可以在最短时间内承载千军万马。容器让资料的复制、移植、放大缩小都变得简单许多,能够让整个开发流程、效率、稳定性都更上一层楼。”当然,面对这样新的技术,一定有些trade-off,像是:Devops Engineers 是否能够接受新的技术,以及大家是否愿意去学、能学到什么程度。新技术一定会有变动,这是一定会发生,而他相信DroiBaaS的团队,有足够强大的能力去接受这些 Trade-off 的考验。此外,Tony表示,他也看重这些技术的最初开发者是“谁”、他们是怎么样的“人”、他们怎么写出code的。“我们选择 CoreOS,为何不是Ubuntu,因为我们对 CoreOS的创始人做过的事情、他们写出的code品质等等都很有信心。另一个例子,最初开发 K8s 的三位在 Google 的工程师也是,他们对云技术的见解和写出的程式码水准都是世界一流。更重要的是,CoreOS和K8s都选用Golang语言来开发专案,眼光长远(请参考:罗勃•派克——云端历史的源头)。”Tony 的回答让科技又多了人本的温度,事情不仅是表面呈现的而已,还有更深一层的涵义。

在资本密集的移动互联网产业里,那些用户跟营收都用亿来做单位的往往都是些大号,市场早被鲸吞蚕食。如今看得见的开发者或是创业团队,大多因为进入得早,抢得先机。现在的环境对于个人开发者和创业团队来说极度险峻,产品做得好且带有新的商业逻辑,才有机会获得创业导师的青睐、进行融资。然而“把产品做好”这件事,对于缺乏资源的创业者来说,还来不及让市场去验证自己的商业逻辑,就先被前期要投入的资本打趴。开发一套软件首先要租借API和推送等服务器,然后架设数据库、后端工程师撰写云代码、前端工程师、UI设计师,开发完之后运维也很重要。当流量进来后,服务器是否能灵活承载也是问题,当一次机,使用者可能还怀疑是自己的网路不顺,当第二次机,使用者就跟这个应用说掰掰了。

如今,这些难题有了解决之道。DroiBaaS给的就是一个Total Solution的概念,不仅把上述的需求全部打包一次给予,更多了如统计分析、渠道发布等等取得用户、分析用户和变现的办法。

最后问到 Tony 身为一个资深工程师,对于自己团队开发出来的产品有怎么样的信心、DroiBaaS能为开发者解决什么问题时,他这样说:“容器解决的是未来的问题,移动互联产业一个很大的重点就是要做先驱,未来的机会是很大的。用容器技术做云端的后台很愉快,不会觉得每天都在重复解决类似的问题。而且我自己做起来觉得很舒服,因为我知道出问题时,我的团队有能力即时解决。最重要的是我们的架构够灵活,我们的系统可以比较快的回应客户的需求,有转身的空间,整套技术是很让人兴奋的。”

本文转自开源中国-不可不知云服务成功的关键技术——容器和微服务

相关实践学习
容器服务Serverless版ACK Serverless 快速入门:在线魔方应用部署和监控
通过本实验,您将了解到容器服务Serverless版ACK Serverless 的基本产品能力,即可以实现快速部署一个在线魔方应用,并借助阿里云容器服务成熟的产品生态,实现在线应用的企业级监控,提升应用稳定性。
云原生实践公开课
课程大纲 开篇:如何学习并实践云原生技术 基础篇: 5 步上手 Kubernetes 进阶篇:生产环境下的 K8s 实践 相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
1月前
|
Kubernetes 开发者 Docker
基于容器技术的微服务架构
基于容器技术的微服务架构
33 0
|
1月前
|
监控 负载均衡 安全
构建高效微服务架构的五大核心技术实践
【2月更文挑战第14天】 在当今软件开发领域,微服务架构已成为构建复杂系统的首选模式。它通过将大型单体应用拆分成一系列小型、自治的服务来提高可维护性和扩展性。本文深入探讨了构建高效微服务架构的五大核心技术实践,包括服务拆分策略、API网关设计、服务发现与注册、熔断机制以及分布式追踪与监控。文章不仅分享了实践中的经验教训,还提供了实施这些技术时的具体建议和最佳实践。
27 1
|
17天前
|
消息中间件 监控 Java
微服务技术发展
微服务技术发展
|
27天前
|
Java fastjson 数据安全/隐私保护
【Dubbo3技术专题】「云原生微服务开发实战」 一同探索和分析研究RPC服务的底层原理和实现
【Dubbo3技术专题】「云原生微服务开发实战」 一同探索和分析研究RPC服务的底层原理和实现
39 0
|
27天前
|
Cloud Native Dubbo 应用服务中间件
【Dubbo3技术专题】拥有新时代的通信协议,引领云原生迈向更高的舞台 | 解密Dubbo3是如何从微服务升华到云原生领域
【Dubbo3技术专题】拥有新时代的通信协议,引领云原生迈向更高的舞台 | 解密Dubbo3是如何从微服务升华到云原生领域
37 1
|
1月前
|
Kubernetes SDN 微服务
微服务与 Kubernetes 容器云的边界
【2月更文挑战第30天】该文探讨了微服务与Kubernetes集群的关系,主要关注是否应跨多集群部署。理想的状况是每个微服务对应一个Kubernetes集群,配置和注册中心在同一集群内,以减少网络延迟。
|
1月前
|
运维 应用服务中间件 调度
微服务容器化的运维
【2月更文挑战第27天】
|
1月前
|
XML JSON Go
Golang微服务基础技术
Golang微服务基础技术
33 2
|
1月前
|
运维 API Docker
深入浅出:微服务架构与容器化技术的完美融合
【2月更文挑战第13天】 在现代软件开发领域,微服务架构和容器化技术已成为推动企业快速发展的两大核心力量。本文将从微服务的基本概念出发,深入探讨其与容器化技术结合的必然性与优势,进而分析如何在实践中有效地实现二者的完美融合。通过对微服务架构的细致解析及容器化技术的应用展示,旨在为读者提供一种全新的视角,理解并掌握这一前沿技术趋势,以指导实际工作中的技术选择与架构设计。
|
2月前
|
运维 Java Docker
微服务容器化实践
【2月更文挑战第6天】