zoukankan      html  css  js  c++  java
  • 架构优化

         从传统软件公司跑出来已经一年有余,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
  • 相关阅读:
    4.12作业
    4.9上机作业
    第十周上级作业
    第九周上机作业
    第八周作业
    第八周上机作业
    第七周作业
    第七周上机练习
    第六周作业
    4.9上机练习
  • 原文地址:https://www.cnblogs.com/vveiliang/p/5881359.html
Copyright © 2011-2022 走看看