微服务和普通应用有啥不同
总体来说,微服务适合体量较大、迭代需求较多的业务。
与微服务应用相对应的是单体应用,应用服务+数据库服务是最原始的单体架构模型。在应用功能简单、用户数量有限的情况下,从用户端并不能感受到微服务和单体应用的差别。但对于服务端开发来说,可能微服务应用开发运维工作量更复杂,毕竟微服务架构本质上是分布式架构,需要一层基础设施,搞定服务注册与发现、分布式配置管理、负载均衡、服务网关、断路器之类的问题。
图片来自《云原生应用架构实践》随着企业的发展,在业务规模较大、上线需求复杂的情况下,单体架构下迭代速度慢、业务可用性低、资源利用率低等短板就凸显了。用户端的感受,则是新功能/新业务迟迟不上线、服务器总宕机等。而如果采用微服务架构,开发团队就可以获得升级代价小、扩展性好、稳定性好、开发效率高、人员变更影响小等收益。
当然,微服务并不是银弹,它会引入更多技术挑战,比如性能延迟、分布式事务、集成测试、故障诊断等方面的复杂性。
所以,业务起步阶段,为了快速上线验证商业模式,建议采用最简单的单体架构轻装上阵;当业务走上正轨之后,系统对可扩展性、可用性要求逐渐增加,就要有意识地考虑前后端分离,采用微服务架构,以避免业务爆发期的系统瓶颈。
对于要实现数字化转型的传统企业来说,通过微服务化改造提升研发运维效率、提升资源利用率,是很多企业的选择。
利益相关:网易云提供轻舟微服务平台,致力于打造完整的微服务解决方案,满足微服务应用全生命周期的各种需求。
■网友
你好我是胡忠想(微博 @古月中心相心)微博技术专家。也是极客时间「从0开始学微服务」的专栏作者,这篇文章便出自这个专栏的第一篇。
从谷歌的搜索指数来看,微服务的热度在进入2017年后突然爆发,国内各大会议和论坛的相关讨论也如雨后春笋般层出不穷,各大一线互联网公司也纷纷将这一技术引入并在实际业务中落地。 
然而据我所知,国内不少中小规模的技术团队对微服务的概念都不甚了解,对该不该引入微服务也不置可否。还有一些技术团队,没有考虑实际业务场景,只是为了追求技术热点,盲目引入微服务,但又缺乏相应的技术掌控能力,最后影响了业务的稳定性。
对于该不该引入微服务,以及微服务体系需要哪些技术,目前并没有适合中小团队的架构实践落地的指引。因此我结合自己在微博多年的业务实践,总结出了一套微服务落地经验,从基础理论到架构实践,再结合业界最新趋势分析,希望能帮助中小规模团队了解微服务的本质以及对业务的价值,从而做出正确的判断。
我们先来看看维基百科是如何定义微服务的。微服务的概念最早是在2014年由Martin Fowler和James Lewis共同提出,他们定义了微服务是由单一应用程序构成的小服务,拥有自己的进程与轻量化处理,服务依业务功能设计,以全自动的方式部署,与其他服务使用HTTP API通讯。同时,服务会使用最小规模的集中管理 (例如Docker)技术,服务可以用不同的编程语言与数据库等。
这个理论的定义看着有点晕?没关系,接下来我来帮你理解到底什么是微服务?
单体应用在开聊微服务之前,我先要你和介绍下单体应用。如果你不知道单体应用的痛,那也不会深刻理解微服务的价值。
早些年,各大互联网公司的应用技术栈大致可分为LAMP(Linux+Apache+MySQL+PHP)和MVC(Spring+iBatis/Hibernate+Tomcat)两大流派。无论是LAMP还是MVC,都是为单体应用架构设计的,其优点是学习成本低,开发上手快,测试、部署、运维也比较方便,甚至一个人就可以完成一个网站的开发与部署。
推荐阅读
- 大连暂停小诊所和村卫生室等相关医疗服务
- “他是我第一个会说普通话的老师”:一对师生折射青海山村蝶变
- 江苏高考■江苏省发布《2021年普通高校招生考试安排和录取工作实施方案》
- 长春评选“网络奋斗者”:互联网成更多普通人创业工具
- 八旬老人义务剪发50余载带领“银发服务队”温暖一座城
- 互联网怎样解决“家政服务上门速度慢”的问题
- 服务区|南通交警走进高速服务区开展主题宣传活动
- 大丰|盐城大丰开通智慧养老服务平台 已完成17万次上门服务
- 普通车|德系商务风对阵美式运动范 迈腾 VS 迈锐宝XL
- 汽车|看了中消协4S店服务测评调查结果,终于知道法系车为啥卖不好了
