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),这对于喜欢技术的开发人员来说,就像是游乐场。

你可能感兴趣的:(架构分析)