架构优化

从传统软件公司跑出来已经一年有余,10多年的基础平台研发和知识积累,让转型互联网架构和开发感觉没想象中的难,可能是逼格太低,亦或者公司的业务量还没到爆发的时间。但是不管怎么说,能有一次从头搭建互联网应用的机会是可遇不可求的。多少人挤破了头跳槽BAT,而偶却不羡慕。不管结果如何,先结合公司业务和互联网技术,把基础架构和发展方向确定了、夯实了。

网上有很多文章都在讲互联网技术发展的几个阶段和对应的架构: LAMP、服务化、数据库Sharding,只要是了解一点互联网技术知识的通知都清楚。我来公司后,看到的系统结构是这样的。看上去很厉害,有如此多的API站点和服务。但是细细了解却发现:

1.服务层的9个服务,全部是一个一个windows service,并且全部是一行行代码硬撸出来的,每个服务的代码都不一样,稳定性很差。不过还好,有个管理工具勉强进行状态管理。

2.API层基本是每个功能一个站点,但是仅部署在2台服务器上,只能说很超前的结构。所有的API站点也是一个一个硬硬写出来的。

3.API与后台服务是通过thrift通讯的。一开始采用的是短连接,各种不稳定和宕机,后来改成长连接,还是各种不稳定。后来改成了补偿机制基本解决了。但是还是建议大家不要使用windows版本的thrift,各种坑。

4.UI层除App外,是asp.net MVC结构。在互联网公司中,用asp.net MVC真的不多,但是考虑到技术人员的知识体系,我们义无反馈的扛起了这面大旗。

  

数据库层面的结构更直接,Base、业务,两个数据库,base库是基础数据,通过发布订阅同步到业务库中。业务量不大。

通过上面的情况,可以看到设计者的初衷是好的,本想通过一个松散的部署结构来支撑后续业务的水平扩展,但是缺乏统一的框架支持,存在太多太多的问题。先不说结构是否合理,如此多的部署节点,制作补丁、更新补丁就需要消耗巨大的工作量,一个功能的上线非常非常复杂,而且极其容易出现发布问题。

另外,整个集群有几十台机器,每天夜里睡着觉,突然会被电话吵醒:XXX充不上电了。尼玛,缺少最基本、最重要的监控。所有系统、集群、程序的运行全部是黑盒子,关键是出问题了你还不知道,要等到客户给你反馈。太崩溃了,经历过几个晚上,简直要疯掉的节奏。那段时间有太多的问候。。。

经过一段时间的了解和总结,最终确定系统的架构如下:

1.UI层继续延续现有的结构,后续逐渐向前后端分离发展,逐渐引入H5,替代asp.net MVC

2.API层提供统一开发平台Service Gateway。通过此平台统一对外提供服务,并规范服务的开发、管理。并进行安全控制和访问控制。

3.后台服务提供微服务、分布式服务平台,整合现有的后台服务。提供服务的统一管理和发布部署,后续实现服务治理。

4.提供监控预警平台,从UI、API、Service、基础设施多层对系统进行360度无死角监控和预警。与Service Gateway、服务框架对接,实现服务端的全链路监控和数据联查。

5.搭建配置中心,把所有系统监控配置进行集中管理,降低管理配置项带来的负载性。

6.搭建消息应用中心,提供定时任务、异步任务处理等功能。

7.另外,搭建一套补丁平台,对系统的补丁进行集中管理,并实现自动部署安装的功能。

大体的架子和规划有了,后续再详细介绍每一块的落地方案。

vl 2016-9-18

时间: 2024-10-25 23:01:52

架构优化的相关文章

Entity Framework 数据并发访问错误原因分析与系统架构优化

本文主要记录近两天针对项目发生的数据访问问题的分析研究过程与系统架构优化,我喜欢说通俗的白话,高手轻拍 1. 发现问题 系统新模块上线后,使用频率较高,故在实际使用和后期的问题重现测试中,产生了一下系列的数据访问错误 错误是比较常见的错误 2. 分析问题 系统的架构为前端.业务层与数据层三层架构,采用Entity Framework 3.5作为数据处理技术,采用shared context per request模式,参照的是codeplex上的一个示例.示例地址(此文通俗易懂,代码结构也很清晰

58沈剑:秒杀系统架构优化思路

有个兄弟分享秒杀系统的优化,其观点有些赞同,大部分观点却并不同意,结合自己的经验,谈谈自己的一些看法. 一.为什么难 秒杀系统难做的原因:库存只有一份,所有人会在集中的时间读和写这些数据. 例如小米手机每周二的秒杀,可能手机只有1万部,但瞬时进入的流量可能是几百几千万. 又例如12306抢票,亦与秒杀类似,瞬时流量更甚. 二.常见架构 流量到了亿级别,常见站点架构如上: 1)浏览器端,最上层,会执行到一些JS代码 2)站点层,这一层会访问后端数据,拼html页面返回给浏览器 3)服务层,向上游屏

天弘基金移动App客户端架构优化之路

天弘基金移动App客户端架构优化之路 随着移动互联网时代的到来,移动技术也随之飞速发展.如今,APP已成为绝大多数互联网企业用来获取用户的核心渠道.与此同时,伴随着业务量的增长,愈来愈多的APP也在不断地挑战着每一个移动端研发人员的知识深度,而移动端技术人员也在这个不断接受挑战的过程中,成就了今天的移动互联网时代. 天弘基金作为一家在基金,金融行业高速发展的公司,APP面临着多重挑战,如庞大的用户群体.高频的基金业务.交易安全可靠性等等.天弘基金移动端的开发小伙伴在技术和业务的多重压力下,不断推

【58沈剑架构系列】秒杀系统架构优化思路

一.秒杀业务为什么难做 1)im系统,例如qq或者微博,每个人都读自己的数据(好友列表.群列表.个人信息): 2)微博系统,每个人读你关注的人的数据,一个人读多个人的数据: 3)秒杀系统,库存只有一份,所有人会在集中的时间读和写这些数据,多个人读一个数据. 例如:小米手机每周二的秒杀,可能手机只有1万部,但瞬时进入的流量可能是几百几千万. 又例如:12306抢票,票是有限的,库存一份,瞬时流量非常多,都读相同的库存.读写冲突,锁非常严重,这是秒杀业务难的地方.那我们怎么优化秒杀业务的架构呢? 二

企业级Nginx服务基础到架构优化详解--25条

1.隐藏nginx header版本号 2.更改源码隐藏软件名称 3.更改nginx默认用户及用户组 4.配置nginx worker进程个数 5.根据CPU核数进行nginx进程优化 6.nginx事件处理模型优化 7.调整Nginx worker单个进程允许的客户端最大连接数 8.配置Nginx worker进程最大打开文件数 9.开启高效的文件传输模式 10.设置连接超时时间 11.上传文件大小设置(动态应用) 12.fastcgi调优(配合PHP引擎动态服务) 13.配置nginx gz

深入浅出Hive企业级架构优化、Hive Sql优化、压缩和分布式缓存(企业Hadoop应用核心产品)

一.本课程是怎么样的一门课程(全面介绍)    1.1.课程的背景       作为企业Hadoop应用的核心产品,Hive承载着FaceBook.淘宝等大佬 95%以上的离线统计,很多企业里的离线统计甚至全由Hive完成,如我所在的电商.       Hive在企业云计算平台发挥的作用和影响愈来愈大,如何优化提速已经显得至关重要.       Hive作业的规模决定着优化层级,一个Hive作业的优化和一万的Hive作业的优化截然不同.       拥有1万多个Hive作业的大电商如何进行Hiv

秒杀系统架构优化思路

[总结] 上文应该描述的非常清楚了,没什么总结了,对于秒杀系统,再次重复下我个人经验的两个架构优化思路: (1)尽量将请求拦截在系统上游(越上游越好): (2)读多写少的常用多使用缓存(缓存抗读压力): 浏览器和APP:做限速 站点层:按照uid做限速,做页面缓存 服务层:按照业务做写请求队列控制流量,做数据缓存 数据层:闲庭信步 并且:结合业务做优化 一.秒杀业务为什么难做 1)im系统,例如qq或者微博,每个人都读自己的数据(好友列表.群列表.个人信息): 2)微博系统,每个人读你关注的人的

企业级Nginx服务基础到架构优化详解

1.隐藏nginx header版本号 2.更改源码隐藏软件名称 3.更改nginx默认用户及用户组 4.配置nginx worker进程个数 5.根据CPU核数进行nginx进程优化 6.nginx事件处理模型优化 7.调整Nginx worker单个进程允许的客户端最大连接数 8.配置Nginx worker进程最大打开文件数 9.开启高效的文件传输模式 10.设置连接超时时间 11.上传文件大小设置(动态应用) 12.fastcgi调优(配合PHP引擎动态服务) 13.配置nginx gz

【转】秒杀业务架构优化之路

原文地址:http://www.infoq.com/cn/articles/flash-deal-architecture-optimization/ 一.秒杀业务为什么难做 IM系统,例如QQ或者微博,每个人都读自己的数据(好友列表.群列表.个人信息). 微博系统,每个人读你关注的人的数据,一个人读多个人的数据. 秒杀系统,库存只有一份,所有人会在集中的时间读和写这些数据,多个人读一个数据. 例如小米手机每周二的秒杀,可能手机只有1万部,但瞬时进入的流量可能是几百几千万.又例如12306抢票,

深入浅出Hive企业级架构优化视频教程

深入浅出Hive企业级架构优化.Hive Sql优化.压缩和分布式缓存(企业Hadoop应用核心产品)课程讲师:Cloudy课程分类:Hadoop适合人群:初级课时数量:10课时用到技术:Hive涉及项目:Hive企业级优化咨询qq:1840215592 一.课程环境:Cloudera Hadoop 4 (Hadoop 2.0)Hive-0.90二.所需技术基础:Hadoop基础.Hive基础.Linux基础,其他不限制(不分Java和.Net方向,皆适合).深入浅出Hive企业级架构优化视频教