gydtep 发表于 2020-8-7 18:01:17
事实上,架构这个词根据上下文所确定的范围较为固定,建筑学上的架构指代房屋结构、整体设计、组合构成等,而这些 high-level 设计往往并不需要全面了解底层,gydtep 发表于 2020-8-8 13:54:03
说到这里大家可以回想下当你进入项目时,学习上下文的痛苦。当我们开始采用 docker 辅助开发时,时任架构师提出了一个要求,gydtep 发表于 2020-8-8 14:11:34
Linux是基于Unix的开源免费的操作系统,由于系统的稳定性和安全性几乎成为程序代码运行的最佳系统环境。Linux是由Linus Torvalds(林纳斯·托瓦兹)起初开发的,由于源代码的开放性,现在已经衍生出了千上百种不同的Linux系统。Linux系统的应用非常广泛,不仅可以长时间的运行我们编写的程序代码,还可以安装在各种计算机硬件设备中,比如手机、平板电脑、路由器等。gydtep 发表于 2020-8-8 18:50:31
维护成本:随着时间的推移,给软件增加新功能就会变的越来越难,越是运行长久的项目就会陷入重写还是重构的苦恼。gydtep 发表于 2020-8-8 19:06:34
往往风险在与,修改代码会增加破坏已有功能的风险,而且技术债也会越来越多难以偿还,即使是重写某些功能和模块,gydtep 发表于 2020-8-8 19:42:59
以及最重要的一点,演进能力:良好的架构设计应该能让系统处于易于演进的状态,能够实现给飞驰的汽车换轮胎的能力,gydtep 发表于 2020-8-9 15:17:28
系统无法扩容,或者成本极高;系统过于复杂无法在本地运行导致极低的效率……这些苦恼才是采用微服务的主要驱动力,回到我们对软件架构的讨论之中gydtep 发表于 2020-8-9 15:46:17
我们希望的是通过足够松耦合的独立服务,来降低组件之间变化的成本,gydtep 发表于 2020-8-10 07:59:43
比如我们可以通过 RDBMS 提供的数据库事务来支撑一致性,但是如果订单服务和价格服务分离,势必要进行分布式事务来保证一致性(往往是最终一致性),而分布式事务的成本和难度就不用赘述了。gydtep 发表于 2020-8-10 10:14:29
所以使用微服务,当你能够负担的起(only you can afford it),也表示你能负担的失败一样,技术世界不存在一蹴而就,all in 非常危险。