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

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

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

相关实践学习
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。     相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
5月前
|
人工智能 安全 Nacos
Nacos 3.0:微服务与AI融合的技术新纪元
Nacos 3.0:微服务与AI融合的技术新纪元
330 83
|
6月前
|
存储 容器
46.[HarmonyOS NEXT RelativeContainer案例三] 打造自适应容器:内容驱动的智能尺寸调整技术
在HarmonyOS NEXT的UI开发中,创建能够根据内容自动调整尺寸的容器是实现灵活布局的关键。RelativeContainer结合自适应尺寸设置,可以实现内容驱动的智能尺寸调整,使UI更加灵活且易于维护。本教程将详细讲解如何创建自适应尺寸的RelativeContainer,帮助你掌握这一实用技术。
226 5
|
3月前
|
监控 安全 Java
Spring Cloud 微服务治理技术详解与实践指南
本文档全面介绍 Spring Cloud 微服务治理框架的核心组件、架构设计和实践应用。作为 Spring 生态系统中构建分布式系统的标准工具箱,Spring Cloud 提供了一套完整的微服务解决方案,涵盖服务发现、配置管理、负载均衡、熔断器等关键功能。本文将深入探讨其核心组件的工作原理、集成方式以及在实际项目中的最佳实践,帮助开发者构建高可用、可扩展的分布式系统。
237 1
|
3月前
|
Kubernetes Java 微服务
Spring Cloud 微服务架构技术解析与实践指南
本文档全面介绍 Spring Cloud 微服务架构的核心组件、设计理念和实现方案。作为构建分布式系统的综合工具箱,Spring Cloud 为微服务架构提供了服务发现、配置管理、负载均衡、熔断器等关键功能的标准化实现。本文将深入探讨其核心组件的工作原理、集成方式以及在实际项目中的最佳实践,帮助开发者构建高可用、可扩展的分布式系统。
461 0
|
5月前
|
缓存 负载均衡 NoSQL
基于微服务架构的唯品会商品详情接口技术解析
本文介绍了唯品会电商平台商品详情接口的微服务化实现方案,涵盖架构设计、代码示例与性能优化策略。采用FastAPI构建服务,结合Redis缓存、异步处理、Nginx负载均衡等技术,实现高并发、低延迟的接口性能。
|
4月前
|
Kubernetes Cloud Native 持续交付
Docker:轻量级容器化技术解析
Docker:轻量级容器化技术解析
|
4月前
|
运维 测试技术 Docker
Docker:轻量级容器化技术革命
Docker:轻量级容器化技术革命
|
5月前
|
缓存 Cloud Native Java
Java 面试微服务架构与云原生技术实操内容及核心考点梳理 Java 面试
本内容涵盖Java面试核心技术实操,包括微服务架构(Spring Cloud Alibaba)、响应式编程(WebFlux)、容器化(Docker+K8s)、函数式编程、多级缓存、分库分表、链路追踪(Skywalking)等大厂高频考点,助你系统提升面试能力。
294 0
|
8月前
|
存储 数据安全/隐私保护 开发者
领取永久免费的ClawCloud云服务容器部署Alist网盘
领取永久免费的ClawCloud云服务容器部署Alist网盘,这是一款类似于 Vercel 和 Netlify 的在线开发平台,专为开发者和个人用户设计。如 Alist、Dify、frp 等,无需复杂的配置或高昂的成本。目前,平台提供永久免费的 5 刀/月额度,只需绑定一个注册超过 180 天的 GitHub 账号即可享受。
2681 10

热门文章

最新文章