10个优秀实践技巧,实现有效的微服务架构

我的公众号「码农之屋」(id: Spider1818) ,分享的内容包括但不限于 Linux、网络、云计算虚拟化、容器Docker、OpenStack、Kubernetes、SDN、OVS、DPDK、Go、Python、C/C++编程技术等内容,欢迎大家关注。


微服务架构是什么?

这是笔者自己整理的定义:

微服务架构是将软件系统分解为自主模块,这些自主模块可独立部署,并通过轻量级,与语言无关的方式进行通信,共同实现业务目标。

软件系统很复杂。由于人脑只能接受一定程度的复杂性,因此大型软件系统的高度复杂性会带来许多问题。大规模、复杂的软件系统难以开发、增强、维护,难以实现现代化以及扩大规模。

多年来,人们做了许多尝试,以解决软件系统的复杂性问题。20世纪70年代,David Parnas和Edsger W引入了模块化软件开发。Dijkstra解决了软件系统复杂性这一问题。在90年代,引入了分层软件架构,解决业务应用程序的复杂性。自21世纪初以来,面向服务的架构(SOA)脱颖而出,以开发复杂的业务应用程序。微服务架构是处理现代软件应用程序复杂性的新方法。

此时可能会出现一个问题:为什么突然需要一种新的软件开发方法?

简单来说,软件开发所处的整个生态系统在过去十年里发生了巨大变化。如今,软件会通过Agile方法开发,利用CI / CD法在Container + Cloud上进行部署,然后保留在NoSQL数据库上,最后呈现在浏览器或智能手机上,而且这些设备在高速网络下会连接在一起。基于这些因素,微服务架构于2012年应运而生。

 

微服务或Monolith

对于微服务与Monolith,主要有两类人群持相反的观点。

对一类人群而言,微服务架构就是一种货物崇拜(Cargo-Cult)或一种趋势驱动开发(Hype Driven Development),这对于喜欢技术的开发人员来说,就像是游乐场。

而另一类人群表示,微服务架构是“统治一切的架构”,会消除任何软件系统的复杂性。笔者看来,微服务和Monolith架构互为补充。对于长期精简的应用程序,Monolith 架构更为合适。另一方面,对于大型且

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值