架构 0 期 -week4- 命题作业

用户头像
陈俊
关注
发布于: 2020 年 07 月 01 日

一个典型的大型互联网应用系统使用了哪些技术方案和手段,主要解决什么问题?请列举描述。



主要从以下两方面来聊如今的互联网大型应用系统面临的问题。

从服务的研发来讲,主要是面临协同合作、编程复杂性、技术稳定性等问题。

从服务的运维来讲,主要面临高性能、高可用、可扩展三方面问题。



以下是我考虑到的架构方法。

1.微服务

微服务是我直观上最快想到的解决方案。



从传统单体服务架构模式发展至,我个人感受软件研发最大的不同是需求变化快、规模发展快。一个字,快。



怎么应对这样的快呢?



我想微服务是当前最好的解决方案。



但当前微服务解决方案需要非常强大的配套方案。服务边界设计、持续集成持续发布、服务编排、服务治理等等。



虽然一部分能力云厂商提供了共用解决方案,但是依然需要不小的成本。



所以,在云厂商没有提供更完善的基础设施之前,请先评估你的团队,是否有能力实施微服务。



微服务方案在研发过程中,加大了协作成本,提高了编程复杂性(研发核心问题-分布式服务),在运维方面,降低了服务性能,但是提高了可用性与扩展性。



2.DDD,领域驱动设计

这里提议的 DDD,主要是想表达一种服务设计方法论。



不合理的服务设计,在你服务足够简单的时候不会有太大的影响,这个影响是随着你服务的复杂度提高而显著提现的。



大型互联网应用一个显著的特点是子系统多。子系统越多,系统之间产生的连接就越多。越往后,一个新系统加入,可能引发问题的概率往往是几何倍数的增加。



所以一个好的服务设计指导方法,在越大的互联网应用中带来的收益越明显。



3.CI/CD、服务编排与治理

CI/CD 不用多说。



服务编排目前云厂商也提供了生产级的能力。



但是服务治理目前云厂商还没有提供完善的基础能力,一般只有大型公司才较为完善。



以上是我在架构上会考虑的一些技术和方法。



用户头像

陈俊

关注

还未添加个人签名 2017.09.10 加入

还未添加个人简介

评论

发布
暂无评论
架构 0 期 -week4- 命题作业