公司转型微服务,真的有必要吗?

戳蓝字“CSDN云计算”关注我们哦!


640?wx_fmt=jpeg


作者:谦镒

转自:架构师技术联盟

 

现在,在互联网圈子里,不知道何时微服务这个概念已经深入到了我们圈内的各个角落,似乎如果不赶上这个潮流,公司的产品就将被淘汰了。


这个专场开场时,老师给我们说了个他的一段经历。


一天他邻居问他:“你的微服务课程我可以去听么?”
老师很是惊讶,说:“你做微商的怎么这么好学呀,你知道啥是微服务么?”
邻居说:“微服务不是为微商服务的么?”


当然这略带有点喜剧性了,不过对于微服务,真的是和我们理解的那样么?我在听这场分享之前我一直认为,微服务不就是把业务按照功能模块切割,让他独立出来么?


听完这场分享,对微服务的定义,有了全新的认识。


1、微服务不是简单的模块切割


目前业内对微服务存在的误解有很多,这里ThoughtWorks的架构师和坚老师给我们列出来几点:


  • 构建HTTP服务,实用Docker容器运行它,并且用Kubernets做集群管理,就是微服务

  • 使用API Gateway和服务发现以及服务registry,这就是微服务

  • 使用Spring Boot框架构建http服务,并使用Netflix OSS,这就是微服务

  • 使用Azure Service Fabric 构建并且运行应用程序,这就是微服务

  • 构建轻量级的RESTful API,这就是微服务

  • 有很多框架声称是微服务框架。使用这些框架的任意一种来构建应用程序,这就是微服务


看完这些,我就有点蒙圈了,那到底怎样的才算微服务呢?下面是老师对微服务的一个概括:


微服务架构是一种架构模式,它提倡将单一应用程序划分成一组小的服务,每个服务运行在其独立的进程中,服务间采用轻量级的通信机制互相沟通(通常是基于HTTP协议的RESTful API)。每个服务都围绕着具体业务进行构建,并且能够被独立的部署到生产环境、类生产环境等。


同时和坚老师给我们分享了微服务具有以下几点特点:


  • 通过服务进行组件化

  • 围绕业务能力组织

  • 做产品而不是做项目

  • 只能端点与傻瓜管道

  • 去中心化地治理技术

  • 去中心化地管理数据

  • 基础设施自动化

  • 容错设计

  • 演进式设计


我这里的理解是微服务其实是围绕业务能力组织进行划分的一整套服务集群,但是该怎么划分呢?他的粒度是什么呢?


2、别一不小心把微服务切成了小的单体


假设有一天你的系统已经进行了“微服务”改造,由于你的业务发展,新的需求如潮水般涌来,渐渐的发现某些“微服务”开始慢慢的膨胀起来。


发现膨胀的“微服务”有一部分业务又需要拆分了,而且这个服务内部还高度耦合,这不就又变成了,拆分之前的服务了么?


你拆分成的不是微服务,而是一个小的单体。


关于怎么拆分微服务,和坚老师给我推荐了一个叫DDD服务设计的思想:


要求我们从业务视角去分离复杂度,最终目标都是为最求高响应力。

让业务架构和系统架构形成绑定关系,从而当我们去响应业务变化调整业务架构时,系统架构的改变是随之而发的。


虽然短短的两句话,但是要理解做好,真不是那么容易,还待深入学习。


目前微服务只存在一个概念性的阶段,要想将我们现有的服务切分成微服务,按照什么标准进行切分,不同的行业,不同的业务场景,将是不同的,这是一个难题?

当我们辛辛苦苦的把业务切成了一个一个小的服务在跑时,如果哪天业务发展,发现这两个服务还是和在一起跑比较好,这时,你将面临的不是单单的把两个代码合在一起这么简单。


代码上的冲突,修改上下游的依赖,部署架构都将是一个挑战。微服务的合并,比拆分更难。


3、一个完整的微服务离不开完善的自动化运维


当我们的项目被拆分成了微服务在线上跑了,我们的开发看到的将不再是一整个业务的代码,而是一个一个小的模块服务。


我们的开发将面临:我们得把整体的所有服务了解个遍,或者相关的服务模块了解完。


如果不能了解完,将会出现:在版本迭代时,我们修改的代码,能保证这个服务上没问题,不能保证上线后对其他的业务不会有影响。


对于这个问题,微软的MVP陈锋逸老师提出了一个建议,借助一些代码即架构的工具来弥补这块。


微服务落地,我们还将面临,我们的服务散落在各个地方,运维的同事将怎么进行监控,怎么知道此时此刻哪个服务挂了,哪个服务超载了,超载时我们怎么进行扩容,这都是我们要解决的问题。


还有,如果我们辛辛苦苦做成了微服务,在版本发布时,怎么保证线上所有容器的版本一直性,也是要解决的问题。


这一系列的问题就涉及到可持续性交付这块了,从开发提交代码,到测试,到构建,再到测试用例的覆盖,最后到生产这一连贯的工作,怎么让他们自动化?如果做不到自动化,那投入的成本将可能是传统的架构的N倍。


4、结束语


我不是一个架构师,只是一个小小的开发者,所有行文都是按照一个开发者的角度结合今天老师讲的所写,所以可能有诸多不恰当的措词,欢迎指正。


640?wx_fmt=png


福利

扫描添加小编微信,备注“姓名+公司职位”,加入【云计算学习交流群】,和志同道合的朋友们共同打卡学习!


640?wx_fmt=jpeg


推荐阅读:

  • 都道业务提升坑大事儿多,但英特尔云方案却说“简单”

  • 云有约 | 蚂蚁金服bPaaS究竟是什么?

  • 再不编程就老了!05 后比特币专家准备赚个 134,000,000 元!

  • Pig变飞机?AI为什么这么蠢 | Adversarial Attack

  • 互联网没有春天

  • 麦克阿瑟奖得主Dawn Song:区块链能保密和保护隐私?图样图森破!

  • 2019年最值得关注的五大微服务发展趋势


640?wx_fmt=png喜欢就点击“好看”吧

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/524442.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

IOS OpenGL ES 图像扩展边缘彩色模糊 GPUImageRGBDilationFilter

目录 一.简介二.效果演示三.源码下载四.猜你喜欢 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES 基础 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES 转场 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目…

[SonarQube]Scanners内存溢出

一、 问题现象: 执行扫描时出现内存不足: SonarQube java.lang.OutOfMemoryError: GC overhead limit exceeded java.lang.OutOfMemoryError: Java heap space 二、解决方案: 1、停止sonarqube2、调整ONAR_SCANNER的内存大小 vim /etc/profile export SONAR_R…

IOS OpenGL ES GPUImage 黑白色调模糊 GPUImageOpeningFilter

目录 一.简介二.效果演示三.源码下载四.猜你喜欢 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES 基础 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES 转场 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目…

雾计算精华问答 | 雾计算是如何构成的?

物联网对于数据的处理能力要求很高,怎么能够从庞大的数据海中挖掘一些有价值的信息对于物联网的发展至关重要,因此云计算,雾计算,边缘计算等等都将发挥其左右。今天先让我们来了解一下雾计算吧。1Q:什么是雾计算A&…

Centos7 Docker 安装与启动_入门试炼01

文章目录一、常用命令二、基础操作2.1. 安装环境说明2.2. 命令查看本地IP2.3. 安装Docker2.4. 安装后查看Docker版本2.5. 启动Docker2.6. 停止docker2.7. 重启Docker2.8. 查看docker状态2.9. 开机启动一、常用命令 说明命令查看Docker版本docker -v使用yum命令在线安装yum ins…

IOS OpenGL ES GPUImage 图像黑白色调模糊/暗色提亮 GPUImageClosingFilter

目录 一.简介二.效果演示三.源码下载四.猜你喜欢 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES 基础 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES 转场 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目…

VMware提示此主机支持Intel VT-x,但Intel VT-x处于禁用状态怎么解决

ThinkPad笔记本 1、开机按F1或FnF1进入BIOS,切换到Security,选择Virtualization,回车; 2、选中Intel Virtualization Technology回车,改成Enabled,最后按F10保存重启。

没有新芯片,没有“大核弹”,黄教主这次给大家带来了个PRADA

即使是非潮流人士,想必应该对PRADA品牌有所耳闻。这个1913年由玛丽奥普拉达在意大利米兰创建的知名奢侈品品牌多年来一直引领着时尚的潮流。在各种时尚大会上,自然是经常看到“PRADA”这个单词的身影,然而,今天,“PRAD…

IOS OpenGL ES GPUImage 图像彩色调模糊/暗色提亮 GPUImageRGBClosingFilter

目录 一.简介二.效果演示三.源码下载四.猜你喜欢 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES 基础 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES 转场 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目…

SpringBoot精选项目

项目案例 一、 awesome-spring-boot 首先给大家介绍的就是Spring Boot 中文索引,这是一个专门收集 Spring Boot 相关资料的开源项目,也有对应的导航页面。 产品主页 http://springboot.fun 项目主页 https://github.com/ityouknow/awesome-spring-…

要闻君说:Synergy Research Group首发云基础设施数据,腾讯云v5一把;京东物流发力5G;厉害!阿里挖走贾扬清...

关注并标星星CSDN云计算每周三次,打卡即read更快、更全了解泛云圈精彩newsgo go go 大家好!偶是要闻君。最近有消息,美国市场研究机构Synergy Research Group公布了2018年第四季度及全年的全球云基础设施服务市场数据,其中亚马逊、…

IOS OpenGL ES GPUImage 图像Lanczos重取样模糊效果 GPUImageLanczosResamplingFilter

目录 一.简介二.效果演示三.源码下载四.猜你喜欢 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES 基础 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES 转场 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目…

数据中台精华问答 | 数据中台和传统数仓的区别是什么?

中台系统把业务层同性的算法能力,服务能力,业务能力高度集成,有效组织 ,动态规划。更好的帮助上层业务。 今天就让我们看看关于数据中台的问答吧。1Q : 什么是数据中台?A : 数据中台是指通过数据技术,对海量…

Docker实战(精简版本)

一、Docker 简介: Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会…

IOS OpenGL ES GPUImage 图像显示亮度最高的像素,其他为黑 GPUImageNonMaximumSuppressionFilte

目录 一.简介二.效果演示三.源码下载四.猜你喜欢 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES 基础 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES 转场 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目…

没有新芯片,没有大核弹,黄教主这次给大家带来了个PRADA

戳蓝字“CSDN云计算”关注我们哦!作者:孙浩峰即使是非潮流人士,想必也应该对PRADA品牌有所耳闻。这个1913年由玛丽奥普拉达在意大利米兰创建的知名奢侈品品牌多年来一直引领着时尚的潮流。在各种时尚大会上,自然是经常看到“PRADA…

IOS OpenGL ES GPUImage 图像显示亮度最高的像素,其他为黑 GPUImageThresholdedNonMaximumSuppressionFilter

目录 一.简介二.效果演示三.源码下载四.猜你喜欢 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES 基础 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES 转场 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目…

云有约 | 首攻RSA,天空卫士“秀肌肉”怎么样了?

戳蓝字“CSDN云计算”关注我们哦!作者:刘晶晶3月初的旧金山体感微寒,但作为全球网络安全行业一年一度抓眼球的盛会之一,在已经过去的27年中吸引了超过42000名参与者汇聚至此,今年更是破天荒地带来了超过700家深挖各领域…

Maven出现.lastUpdated结尾的文件问题及解决

打开cmd窗口,进入repository本地仓库 执行命令: 第一步:进入本地仓库: cd %userprofile%\.m2\repository第二步:执行以下命令: for /r %i in (*.lastUpdated) do del %i

IOS OpenGL ES GPUImage 图像Sobel边缘检测,类似漫画反色 GPUImageSobelEdgeDetectionFilter

目录 一.简介二.效果演示三.源码下载四.猜你喜欢 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES 基础 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES 转场 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目…