企业应用通用架构图-阿里云开发者社区

开发者社区> 杨俊明> 正文

企业应用通用架构图

简介: 晚上把公司应用的架构结合之前研究的东西梳理了下,整理了一张架构规划图,贴在这里备份 下面是个人理解的做架构的几个要点: 1、系统安全 这是首要考虑的,以这张图为例,网络划分为3个区: a) DMZ区可以直接公网访问,也可以 与App Core区互通,但不能直接与DB Core区互通 (通...
+关注继续查看

晚上把公司应用的架构结合之前研究的东西梳理了下,整理了一张架构规划图,贴在这里备份

下面是个人理解的做架构的几个要点:

1、系统安全

这是首要考虑的,以这张图为例,网络划分为3个区:

a) DMZ区可以直接公网访问,也可以 与App Core区互通,但不能直接与DB Core区互通 (通常这里放置 反向代理Web服务器)

b) App Core区能与DMZ区、DB Core区互通,但是无法直接从公网访问 (通常这里放置 应用服务器、中间件服务器之类)

c) DB Core区仅与App Core区互通 (通常这里放置 核心数据库)

2、尽量消除单点故障

上图中,除了“硬件负载均衡”节点外,其它节点都可以部署成集群(DB有点特殊,传统RDBMS要实现分布式/集群还是比较困难的,要看具体采用的数据库产品,并非所有数据库都能方便的做Sharding),Jboss本身可以通过Domain模式+mod_cluster实现集群、Redis通过Master/Slave以Sentinel方式可以实现HA、IBM MQ本身就支持集群、FTP Server配合底层储存阵列也可以做到HA、Nginx静态资源服务器自不必说

3、成本

尽量采用开源成熟产品,jboss、redis、nginx、apache、mysql、rabbit MQ都是很好的选择。硬件负载均衡通常成本不低,但是效果明显,如果实在没钱,域名解析采用DNS轮询策略,也能达到类似效果,只不过可靠性略差。

4、Database问题

常规企业应用中,传统关系型数据仍然是主流,但是no-sql经过这几年发展,技术也日渐成熟了,一些非关键数据可以适当采用no-sql数据库,比如:系统日志、报文历史记录这类相对比较独立,而且增长迅速的数据,可以考虑存储到no-sql db甚至HDFS、TFS等分布式开源文件系统中。

如果系统数据量级达到单机RDBMS的上限,尽早考虑Sharding方案,目前mysql在这方面比较成熟,其它数据库就不好说了。

5、性能

web server、app server这些一般都可以通过集群实现横向扩张,满足性能日常增长的需求。最大的障碍还是DB,如果规模真达到了DB的上限,还是考虑换分布式DB或者迁移到“云”上吧。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
ByteArrayOutputStream及其在IO中的应用
  一、基本概念 在创建ByteArrayOutputStream类实例时,内存中会创建一个byte数组类型的缓冲区,缓冲区会随着数据的不断写入而自动增长。 可使用toByteArray()和toString()获取数据。 关闭ByteArrayOutputStream无效,此类中的方法在关闭此流后仍可被调用,而不会产生任何IOException。   二、例子 /**
908 0
怎么设置阿里云服务器安全组?阿里云安全组规则详细解说
阿里云服务器安全组设置规则分享,阿里云服务器安全组如何放行端口设置教程
6893 0
使用OpenApi弹性释放和设置云服务器ECS释放
云服务器ECS的一个重要特性就是按需创建资源。您可以在业务高峰期按需弹性的自定义规则进行资源创建,在完成业务计算的时候释放资源。本篇将提供几个Tips帮助您更加容易和自动化的完成云服务器的释放和弹性设置。
7746 0
《Microsoft.NET企业级应用架构设计(第2版)》——2.2 软件项目的机制
如果你问:“什么导致项目失败?”,你得到的最常见的回答可能会把失败归咎到与业务有关的问题,比如说,缺少需求,项目管理不到位,成本估算不正确,缺少沟通,甚至各个团队的人员相互不配合。你很难看到坏代码可能导致问题这种情况。
1364 0
《Microsoft.NET企业级应用架构设计(第2版)》——第1章 今天的架构师和架构 1.1软件架构到底是什么
在计算机的最初年代,硬件成本远远大于软件成本。数十年之后,我们发现情况有了根本的变化。整个工业有了显著的进步,而硬件成本也急剧下降。另一方面,软件成本却大幅上升,这主要是因为开发自定义企业软件的复杂性提升了。
2531 0
《Microsoft.NET企业级应用架构设计(第2版)》——1.3 总结
我们通常会拿软件和土木工程比较,但是,当土木工程师要建一座桥时,这座桥将会建成。除此之外,这座桥总能正常使用,而且建筑成本和原先的预算相差无几。这对于很多软件项目来说并非如此。放到软件上,有时候很难确定利益相关者的承诺最终有哪些能够兑现。
1324 0
《Microsoft.NET企业级应用架构设计(第2版)》——1.4 笑到最后
本节书摘来自异步社区《Microsoft.NET企业级应用架构设计(第2版)》一书中的第1章,第1.4节,作者: 【意】Dino Esposito(埃斯波西托) , Andrea Saltarello(索尔塔雷罗)著,更多章节内容可以访问云栖社区“异步社区”公众号查看
1290 0
《Microsoft.NET企业级应用架构设计(第2版)》——第2章 为成功而设计 2.1“大泥球”
今天,成功设计的软件对于任何类型、任何规模的商业来说都是至关重要的,但更为关键的是避免质量低下的软件。烂的软件会使组织在很多地方遭受损失,比如说,响应很慢的页面会导致访问者离开你的网站,笨拙的用户界面会带来入口瓶颈,导致你提供的服务不得不面对处理队列,甚至未处理异常也会触发不可控的连锁反应,造成不可预测的后果。
1747 0
+关注
杨俊明
菩提树下的杨过 http://yjmyzz.cnblogs.com/
1097
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载