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

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
云原生网关 MSE Higress,422元/月
注册配置 MSE Nacos/ZooKeeper,118元/月
简介: 在移动互联网的世界里,“云”的概念已经行之有年,大家的生活都受到巨大的改变,从没有它不能活的 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能为开发者解决什么问题时,他这样说:“容器解决的是未来的问题,移动互联产业一个很大的重点就是要做先驱,未来的机会是很大的。用容器技术做云端的后台很愉快,不会觉得每天都在重复解决类似的问题。而且我自己做起来觉得很舒服,因为我知道出问题时,我的团队有能力即时解决。最重要的是我们的架构够灵活,我们的系统可以比较快的回应客户的需求,有转身的空间,整套技术是很让人兴奋的。”

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

相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
相关文章
|
8天前
|
运维 持续交付 API
从零构建微服务架构:一次深度技术探索之旅####
【10月更文挑战第28天】 本文记录了作者在从零开始构建微服务架构过程中的深刻技术感悟,通过实战案例详细剖析了微服务设计、开发、部署及运维中的关键要点与挑战。文章首先概述了微服务架构的核心理念及其对企业IT架构转型的重要性,随后深入探讨了服务拆分策略、API网关选型、服务间通信协议选择、容器化部署(Docker+Kubernetes)、以及持续集成/持续部署(CI/CD)流程的设计与优化。最后,分享了在高并发场景下的性能调优经验与故障排查心得,旨在为读者提供一套可借鉴的微服务架构实施路径。 ####
43 3
|
6天前
|
Java 应用服务中间件 Linux
【Docker容器化技术】docker安装与部署、常用命令、容器数据卷、应用部署实战、Dockerfile、服务编排docker-compose、私有仓库
本文主要讲解了Docker的安装与部署、常用命令、容器数据卷、应用部署实战、Dockerfile、服务编排docker-compose、私有仓库以及Docker容器虚拟化与传统虚拟机比较。
141 6
【Docker容器化技术】docker安装与部署、常用命令、容器数据卷、应用部署实战、Dockerfile、服务编排docker-compose、私有仓库
|
1天前
|
存储 监控 Docker
探索微服务架构下的容器化部署
本文旨在深入探讨微服务架构下容器化部署的关键技术与实践,通过分析Docker容器技术如何促进微服务的灵活部署和高效管理,揭示其在现代软件开发中的重要性。文章将重点讨论容器化技术的优势、面临的挑战以及最佳实践策略,为读者提供一套完整的理论与实践相结合的指导方案。
|
1天前
|
Kubernetes Cloud Native Docker
云原生技术探索:容器化与微服务的实践之道
【10月更文挑战第36天】在云计算的浪潮中,云原生技术以其高效、灵活和可靠的特性成为企业数字化转型的重要推手。本文将深入探讨云原生的两大核心概念——容器化与微服务架构,并通过实际代码示例,揭示如何通过Docker和Kubernetes实现服务的快速部署和管理。我们将从基础概念入手,逐步引导读者理解并实践云原生技术,最终掌握如何构建和维护一个高效、可扩展的云原生应用。
|
2天前
|
Cloud Native 持续交付 Docker
Docker容器化技术:从入门到实践
Docker容器化技术:从入门到实践
|
3天前
|
存储 Kubernetes 调度
基于容器化技术的性能优化实践
基于容器化技术的性能优化实践
10 3
|
2天前
|
运维 持续交付 Docker
深入理解Docker容器化技术
深入理解Docker容器化技术
|
8天前
|
Kubernetes Cloud Native 微服务
云原生之旅:从容器到微服务
【10月更文挑战第29天】在这篇文章中,我们将一起探索云原生的奥秘。云原生不仅仅是一种技术,更是一种文化和方法论。我们将从容器技术开始,逐步深入到微服务架构,最后探讨如何在云平台上实现高效的服务部署和管理。无论你是初学者还是有经验的开发者,这篇文章都将为你提供有价值的见解和实用的技能。让我们一起踏上这段激动人心的云原生之旅吧!
|
9天前
|
运维 Kubernetes Cloud Native
云原生之旅:容器化与微服务的融合
【10月更文挑战第28天】 在数字化转型的浪潮中,云原生技术如星辰般璀璨,引领着企业IT架构的未来。本文将带你穿梭于云原生的世界,探索容器化技术和微服务架构如何携手共舞,打造灵活、高效的应用部署和运维模式。我们将通过实际代码示例,揭示这股力量背后的奥秘,并展现它们是如何为现代软件开发带来革新。准备好了吗?让我们启航,驶向云原生技术的深海。
|
8天前
|
JavaScript 持续交付 Docker
解锁新技能:Docker容器化部署在微服务架构中的应用
【10月更文挑战第29天】在数字化转型中,微服务架构因灵活性和可扩展性成为企业首选。Docker容器化技术为微服务的部署和管理带来革命性变化。本文探讨Docker在微服务架构中的应用,包括隔离性、可移植性、扩展性、版本控制等方面,并提供代码示例。
41 1
下一篇
无影云桌面