微服务化的不同阶段kuberneter的不同玩法

作为容器集群管理技术竞争的大赢家,Kubernetes已经和微服务紧密联系,采用Kubernetes的企业往往都开始了微服务架构的探索。然而不同企业不同阶段的微服务实践面临的问题千差万别,注定要在技术路线上产生分叉。如何选择适合自己的技术,是每一个践行微服务的团队面临的第一个问题。网易云是Kubernetes的第一批重度用户,在不同业务场景下解决了很多挑战,在本文中,网易云首席解决方案架构师刘超梳理了基于Kubernetes构建微服务体系的进阶之路。

微服务化的必要性

一个产品的发展,通常可分为冷启动阶段、高速增长阶段和成熟阶段。产品冷启动阶段,需求是以最简单的架构验证业务。以网易考拉海购(以下简称“考拉”)为例,最初的架构设计目标就是快速启动,验证产品方向,该架构包括在线、缓存、线下和管理服务四个方面,即一般电商平台加上跨境电商必备的进销存系统,采用了Oracle数据库、OpenStack管理的虚拟机(VM),并没有诸如高并发之类的考虑。

产品高速增长阶段,业务规模逐渐扩大,产品复杂度也随着增加,企业需要解决快速迭代、高可靠和高可用等问题,一个自然的选择是服务化的拆分,把一个单体架构拆分成一些较小的模块,并遵循康威定律,用5-9个小团队来适应架构的变化。仍以考拉为例,考拉在高速增长阶段也慢慢演化出各种新的模块,比如单独的支付模块、货仓模块、第三方商家模块、推送模块等,并基于Dubbo框架打造服务发现功能来支持各模块之间的相互调用。

服务化主要解决了变更的问题。在整个架构演进的过程中,各个模块都面临爆炸性的增长,比如海淘、自营、第三方商家的供应链,Web、APP、H5的呈现,限时购、秒杀、预售的活动页,以及仓库与物流系统、支付系统的对接等,紧耦合则牵一发而动全身,工程臃肿,影响迭代速度,分别独立上线更有利于适应业务发展的需求。考拉在高速增长阶段首先按照主页、活动页、优惠券、支付等维度纵向拆分,之后又不断演进成为100多个相互关联的模块,变更频率由每天2次增长到每天1000多次,产品质量提升52%。

容器化的优势与挑战

拆分成大量小模块之后,虚拟机与服务化架构的配合就出现了很多新的挑战,于是有了容器化的需求。

刘超解释说,拆分之前首先要解决“合”的问题,即需要保证功能还是原来的功能,代码质量还是原来的代码质量,不会引入新的bug。他认为,微服务化需要从一

原文地址:http://blog.51cto.com/13573413/2096295

时间: 2024-11-14 11:23:28

微服务化的不同阶段kuberneter的不同玩法的相关文章

朱晔的互联网架构实践心得S2E4:小议微服务的各种玩法(古典、SOA、传统、K8S、ServiceMesh)

十几年前就有一些公司开始践行服务拆分以及SOA,六年前有了微服务的概念,于是大家开始思考SOA和微服务的关系和区别.最近三年Spring Cloud的大火把微服务的实践推到了高潮,而近两年K8S在容器编排的地位确定之后大家又开始实践起以K8S为核心的云原生思想和微服务的结合如何去落地,2018年又多出一个ServiceMesh服务网格的概念,大家又在思考如何引入落地ServiceMesh,ServiceMesh和K8S以及Spring Cloud的关系如何等等. 确实有点乱了,这一波又一波的热潮

上云、微服务化和DevOps,少走弯路的办法

此文已由作者张亮授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 如果说一个项目的发展历程就像一段未知的旅程,那<云原生应用架构实践>就像一张地图,基于前人的探索标明了在这段旅途中将会碰到的障碍,并注明了越过这些障碍的方法. 最近,利用碎片化的时间把团队写的<云原生应用架构实践>通读了一遍. 作为一个解决方案架构师,我感觉收获很多,主要是对云原生架构有了一个系统的认识,并了解了一个从无到有.从小到大的项目,在整个成长过程中可能碰到的问题,以及解决这些问题的思

微服务化的感想

随着系统的代码越来越庞大,模块的增多,系统很难跟随业务的发展.想着做一些系统上的重构,但重构过程,既需要保证业务的开发,也需要保证重构工作的顺利进行,为此引进了微服务的框架架构. 近期的cps系统在进行一系列的重构工作中,我有幸也参与进来了.首先进行的是用户模块的微服务化,分多期进行,难度从简到难,一步一步将用户相关的代码抽离出来,进行独立部署.项目中如果涉及到用户相关的调用,第一期,使用jar包方式使用maven依赖的方式来进行调用,二期,将服务化,将服务相关的方面,使用独立部署,调用方式,使

业务初期野蛮生长阶段,微服务化比较麻烦

谈谈后端业务系统的微服务化改造 本文所提倡的微服务,是结合作者所在team自身业务特点来说的,适合自身的场景,是建立在团队人员素质到了,有成熟的基础设施和框架.中间件辅助,流程也规范,包括CI.敏捷等,团队都做好了准确去做这个转变,有足够的能力来实施,微服务化也就是水到渠成的事了. 相反,小团队在前期或者野蛮生长时期,不宜选择微服务,不但影响效率还带来额外的复杂度.成长型或者大公司,有成熟的流程.规范.基础设施.平台等,要想在整条交付链路上加速,就需要投入更多的资源保障微服务化,一切自动化了,能

如何实现前端微服务化?

译者按: 微服务在后端开发中大行其道,其实对于越来越复杂的前端应用来说,微服务也是一种不错的选择. 原文: Micro frontends-a microservice approach to front-end web development 译者: Fundebug 为了保证可读性,本文采用意译而非直译.另外,本文版权归原作者所有,翻译仅用于学习. 对于网页应用,现代的开发方法使得前端部分变得越来越大,与之对应的后端反而变小.我们的网站Weld的代码中90%都是前端相关.我可以想象大多数现代

网易容器云平台的微服务化实践(一)

作者:冯常健来自: 网易云-共创云上精彩世界 摘要:网易云容器平台期望能给实施了微服务架构的团队提供完整的解决方案和闭环的用户体验,为此从 2016 年开始,我们容器服务团队内部率先开始进行 dogfooding 实践,看看容器云平台能不能支撑得起容器服务本身的微服务架构,这是一次很有趣的尝试. 一旦决定做微服务架构,有很多现实问题摆在面前,比如技术选型.业务拆分问题.高可用.服务通信.服务发现和治理.集群容错.配置管理.数据一致性问题.康威定律.分布式调用跟踪.CI/CD.微服务测试,以及调度

微服务化之服务拆分与服务发现

本文章为<互联网高并发微服务化架构实践>系列课程的第六篇 前五篇为: 微服务化的基石--持续集成 微服务的接入层设计与动静资源隔离 微服务化的数据库设计与读写分离 微服务化之无状态化与容器化 微服务化之缓存的设计 一.服务拆分的前提 说到微服务,服务拆分是绕不过去的话题,但是微服务不是说拆就能拆的,有很多的前提条件,需要完成前面几节所论述的部分. 首先要有一个持续集成的平台,使得服务在拆分的过程中,功能的一致性,这种一致性不能通过人的经验来,而需要经过大量的回归测试集,并且持续的拆分,持续的演

前端单页应用微服务化解决方案2 - Single-SPA

技术选型 经过各种技术调研我们最终选择的方案是基于 Single-SPA 来实现我们的前端微服务化. Single-SPA 一个用于前端微服务化的JavaScript前端解决方案 使用Single-SPA之后,你可以这样做: (兼容各种技术栈)在同一个页面中使用多种技术框架(React, Vue, AngularJS, Angular, Ember等任意技术框架),并且不需要刷新页面. (无需重构现有代码)使用新的技术框架编写代码,现有项目中的代码无需重构. (更优的性能)每个独立模块的代码可做

FreeWheel业务系统微服务化过程经验分享

2016 年下半年开始,FreeWheel 开始将其业务系统从 Rails 单体应用逐步迁移到微服务,同时技术栈从 Rails 改为 Golang,两年之后,整个迁移接近尾声,FreeWheel 业务系统技术团队对外分享了它们在微服务化过程中的经验. 原有架构的问题 FreeWheel 是一家为客户提供数字视频广告管理技术和服务的公司.其业务端产品需要对接客户,提供视频广告投放优化界面,类似于 Web ERP,该业务系统采用 Rails 技术栈开发,其架构是一个典型的三层架构. 这个系统经过近十