专栏首页后端技术探索简述架构设计原则

简述架构设计原则

架构坚持组件化,持续重构,小而美。架构设计十大原则:

1.全面解耦原则:对业务进行抽象建模,业务数据与业务逻辑解耦,软硬件解耦,平台和产品解耦,系统各部件解耦。模块、组件高内聚,低耦合。

2.服务化/组件化原则:以服务、数据为中心,构建服务化、组件化架构,具备灵活,按需组合的能力。

3.接口隔离及服务自治原则:通过接口隐藏服务/组件实现细节,服务/组件只能通过接口进行交互,接口契约化,标准化,跨版本兼容;服务/组件可独立发展、独立发布、独立升级,服务自治,可视、可管、可控、可测、可维,故障自愈。

4.弹性伸缩原则:构建全分布云化架构,或借鉴云化架构思想,每个服务具备横向扩展能力,支持按需使用,自动弹性伸缩,可动态替换、灵活部署,支撑高性能、高吞吐量、高并发、高可用业务场景。

5.安全可靠环保原则:构建最小权限,纵深防御、最小公共化、权限分离、不轻信、开放设计、完全仲裁、失效安全、保护薄弱环节、安全机制、经济性、用户接受度以及加强隐私保护的安全体系,确保系统、网络和数据的机密性、完整性、可用性、可追溯性;以业务系统零故障为导向;按需构筑分层分级的可靠性,通过故障的预流、预防、快速故障恢复、避免故障发生;系统资源使用有效最大化,实现节能、节地、节材、环保。

6.用户体验和自动化运维原则:面向业务获取和使用场景,构建实时、按需、在线、自助、社区化、方便易用的用户体验;支持远程、自动、智能、安全、高效地完成网规/网设、安装、部署、调测、验收、扩缩容、软件升级、打补丁、日常维护、问题处理。

7.开放生态原则:面向生态场景,按需开放平台设施、中间件、数据、业务逻辑、UI等能力;构建开放生态、支持分层、远程、自动、自助、简单高效地完成定制、集成、第三方应用开发。

8.高效开发原则:创建支持迭代、增量、持续交付的架构,支持部件独立开发、自动化编译构建、测试、集成验证、并易于高效修改和持续优化;支持开发组织小型化,扁平化,支持小团队独立高效并行开发。

9.柔性供应制造原则:模块化设计,模块/物料归一化、标准化,支持自动化、数字化、智能化、随需应变的柔性制造。

10.持续演进原则:架构并非一蹴而就,需要有效地管理架构需求;持续构建和发展架构,适应业务需求变化,适时引入业界最佳实践,及时重构,确保架构生命力和竞争力。

本文分享自微信公众号 - nginx(nginx-study),作者:艾尔温

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-06-27

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • vim 乱码问题解决及原理全面分析

    Vim有四个跟字符编码方式有关的选项,encoding、fileencoding、fileencodings、termencoding(这些选项设置请...

    后端技术探索
  • 重磅|微信发布2015微信生活白皮书

    今天在腾讯全球合作伙伴大会微信分论坛上,微信团队对外做了“微信·生活”的分享。现在,就让我们一起,从微信视角来看看中国人的喜怒哀乐、衣食住行。以下是报告的全文,...

    后端技术探索
  • 安全:nginx禁止ip访问, 只能通过域名访问

    我的一个地方站(www.cxzaixian.com)曾经遇到过被无故断网的事情,阿里云给的原因是绑定了未备案的域名。

    后端技术探索
  • 科研解读 | 再分析资料在气候变化研究中的发展与应用

    气候变化研究与长时间序列气象数据的关系十分密切,多变量、高质量、更精准的气象数据对理解气候气候变化至关重要。1979 年日内瓦第一次世界气候大会建立了世界气候研...

    气象学家
  • 如何在Ubuntu 16.04上使用Logrotate管理日志文件

    Logrotate是一个系统实用程序,用于管理日志文件的自动轮换和压缩。如果未对日志文件进行轮换,压缩和定期修剪,则最终可能会占用系统上的所有可用磁盘空间。

    穿鞋跑得快
  • 编译boost

    VS2015编译boost1.62 Boost库是一个可移植、提供源代码的C++库,作为标准库的后备,是C++标准化进程的开发引擎之一。 Boost库由C++标...

    _gongluck
  • Redis系列(五)-Opserver的监控

    蘑菇先生
  • 破解某交(y)友(p)app的VIP&&半自动im机器人

    这是时候我们就要祭出脱壳神奇Youpk Youpk的操作文档具体可以看Youpk的github,再次感谢Youpk。我们在吧修复好的dex放在jadx中分析。修...

    吾爱小白
  • Objective-C官方文档

    @property(getter = isFinished) BOOL finished;

    nimomeng
  • 如何做一个高效的前端开发工程师

    不知大家有没类似这样的经历:一天忙到晚,一会被PM叫去确认需求,一会被设计拉去确认UI是否能实现,一会又被测试叫去确认bug,然后貌似做了很多事,但好像工作进度...

    用户4962466

扫码关注云+社区

领取腾讯云代金券