给飞驰的法拉利换引擎 - 谈边做业务边做架构重构(1)架构师(JiaGouX)我们都是架构师!这个事情就是“架构重构”,比“架构重构”还要痛苦的就是“边做业务边架构重构”!X系统的问题看起来和M系统比较类似,都是可扩展性存在问题,但其实根本原因不一样:M系统是因为耦合了不同业务的数据导致系统可扩展性不足,而X系统是因为将业务相关的所有功能都放在同一个系统中,导致系统可扩展性不足;
如何做系统重构。2. 在重构过程中或者重构后,我们能用数据来验证重构的效果,能不断的对系统进行优化。我在这里想要表达的意思在于重构并不是一个一蹴而就的事情,既然如此,那么我们就需要考虑将一次重构拆分为多次“迭代”行为,让每一个重构步骤能快速部署上线并得到反馈,以便评估重构的效果,及时作出调整。反过来说,通过沟通,才能获得业务团队对技术团队做重构的支持和理解,重构过程中才不会碰到非技术层面上的障碍。
最近应聘系统架构师,面试回答一些问题,加上之前做的一些功课,搜索到一些文章,感觉有必要总结一下,到底如何做一个成功的系统架构师呢?JAVA系统架构师应该看的几本书。其实,作为一个真正的系统架构师,不应该局限于企业应用的系统,这种系统往往有数据库的局限性,有时候,应该考虑是否可以横向跨越,直接对其它系统做一些架构考虑,在没有丰富的实战经验的前提下,而只是看了其它人的系统和代码,就能够给出有效的设计指导。
魅族架构师胡成元 剖析魅族应用商店架构。平台早期,分发接口采用DB+本地缓存的方式提供数据,这种模式DB压力大、接口吞吐量小、本地缓存更新不及时。业务接口数据全部被缓存到Redis集群,缓存数据由定时任务主动刷新,零穿透,缓存即存储、存储即缓存。平台客户端在下载应用前后根据应用分发时携带的应用信息校验应用文件(APK)的合法性,如果文件校验成功,直接下载并安装应用,否则更换为HTTPS通道继续下载应用。
荔枝FM架构师刘耀华:异地多活IDC机房架构架构师(JiaGouX)我们都是架构师!荔枝 FM 要求业务离用户最近,南方的用户连南方的机房,北方的用户连北方的机房,国外的用户连国外的机房。跨机房的作用是为了备份,一个机房的数据放在另一个机房是异地多活。荔枝 FM 有两大IDC机房,一是绿色的机房专线,这是高速通道,二是红色的公网,类似于国道,比较便宜,这里有两个机房,为了离用户更近,因此选择用智能DNS看用户的机房。
来自Uber的12条架构重构经验。架构重构的原因是什么,是为了满足业务的需要还是只是觉得架构不好看?渐进式重构。这同样可以用在架构的重构上,重构过程的难度不亚于构建一个新产品,所以在设计重构的时候,要引入持续交付的流程,每一个重构步骤或者模块都要快速部署并得到反馈,以便评估重构的效果,及时作出策略调整。架构重构的最终目的是改进业务,所以对于业务的了解将有助于架构师和技术人确定重构目标的优先级和关键路径。
UML与XP(UML and XP)就XP中一系列相互依赖的实践来说:你不能仅仅使用那部分以平滑曲线为前提的XP利用实践(exploiting practices)而放弃那些建造平滑曲线这个前提的XP启动实践(enabling practices) [译注1]。我相信,不论外界对XP存有什么样的印象,XP不仅仅是测试、编码和重构。[译注1]:所谓XP利用实践(exploiting practices)是建立于软件变更曲线平滑的情况下的,而XP启动实践(enabling practices)则是XP建立这个基础的方式。
代码重构的实战经验和那些坑。代码重写之旅。我们重写代码的原因是错误的,尽管一部分代码不怎么样,如果我们花些时间阅读理解源代码,就可以通过重构修复问题。我们以为:由于没能花上数日讨论合适的设计模型与实例,代码就会很难阅读与维护,结果事实上我在较大公司所见过的最专业代码,比我们的代码还要糟糕两倍。此外软件开发人员喜欢编写代码,创造新东西——阅读别人写的代码,尝试理解他们的代码与“思维抽象”会很无聊。
nice服务端架构重构与演进。ClientAdapter:客户端适配器,用来处理所有客户端差异导致的逻辑问题。CKCR:CheckAndCorrect,数据的检查和修正,用来控制输入输出协议,解决客户端/服务端 RD 协作的技术层面问题。上述问题 3,客户端/服务端 RD 的协作问题,这个问题分两部分。客户端/服务端协作问题,技术层面 nice 通过这个组件解决。CKCR:通过 CKCR 及协作流程,解决掉客户端/服务端 RD 协作的问题。nice 的 Redis 也是单集群。
与林仕鼎聊云计算:技术将重构整个社会。林仕鼎,现任百度大数据首席架构师,负责公司数据相关工作,并统一指导基础架构部、系统部以及运维部的技术和战略方向,同时对影响公司未来战略的关键技术进行前瞻研究和探索。他于2007年10月加入百度,任网页搜索部高级研究员、主任架构师,主持开发了百度新一代网页存储与处理平台——百灵,带领百度搜索引擎实现了网页与索引的跨量级增长。
微服务架构是什么,微服务架构是什么,-羊皮卷网。架构师是可以说是软件的设计者,运用我们学会就会忘记的23种设计模式、企业架构模式、面向对象编程,来设计系统基础架构。传统的web系统一般是采用三层架构来开发系统的,三层架构既视图层、业务层、数据层的架构。对于一般的管理系统,不建议采用微服务模式,但是可以将容易出问题或者需要与其他系统交互的模块,进行拆分,做成微服务,这样可以进一步提升系统的稳定性。
架构师入门必看系列,分布式文件系统HDFS解读。在Hadoop系统中,通常将“小文件”定义为远小于HDFS的block size(默认64MB)的文件,由于每个文件都会产生各自的MetaData元数据,Hadoop通过Namenode来存储这些信息,若小文件过多,容易导致占用大量NameNode内存,也会使寻道时间超过读取时间,为系统带来性能瓶颈。HDFS适用于存储半结构化和非结构化数据,若有数据严格的结构化特性,强行采用HDFS是不合适的。HDFS和Hadoop的历史。
专访华为DBA李强:数据库架构设计与选型。李强数据库架构设计与选型经验谈 演讲现场。对于数据库整体架构设计,他认为,可以通过模式设计提高系统整体质量,在选型层面把握不同的数据库集群模式的差异性; 在系统架构上挖掘中间层应用数据访问模式的能力; 在数据库部署上探索大数据量下存储设计模式; 在开发流程和后期维护上考虑数据库重构。最后,李强展望了数据库行业的前景,认为数据库技术不会停滞不前,还会以更快的速度发展。
互联网项目架构之基于服务的分布式架构。随着互联网电商项目的发展,越来越多的购物平台等都使用SOA分布式来作为系统主要架构。5、优化一个电商项目是开发中必不可少的工作,这时经过分析,将采用非关系型数据库redis作为主角搭建了redis集群,将商城首页的广告位数据、页脚数据和将每天访问最多的定时广告数据都存储在redis集群中,用空间换时间来提升网站数据的展示速度;
基于MongoDB的高并发高可用政府云平台架构实践。物理架构和逻辑架构不同,逻辑架构可以分10层、100层都可以,但不是分层越多越好。另外,缓存在UI层就有了,API这层也可以有缓存,不是所有的东西放到Redis里面才叫缓存,Redis属于分布式缓存,有些数据可以放到数据持久层,比如关系型数据库,MongDB也有,服务器只要配置够高,数据直接进数据持久层缓存或者数据访问层缓存也可以。省级单位政府云平台DB数据库架构。
本文从系统访问链路为切入点,围绕访问链路的方方面面,包括基础设施、分层架构、分割架构、系统保障、技术平台生态圈等几个方面进行展开,力求展现出一套相对比较完整的系统架构体系,同时结合自身经验,介绍具体落地的方案和技术,希望能够给读者带来一些收获。负载均衡分为软负载和硬负载。Session集群以及文件图片服务器集群主要是为上层业务应用提供统一的session存储和图片文件存储的,避免系统的session失效和单点故障。
凯叔解密京东千亿商品系统核心架构。erp商品管理系统、POP商品系统、BIP甚至也开发了一个商品管理系统,都在写同一个库的同一套表,数据一致性无法得到保障。接管所有商品写操作,提供商品相关的基本读写服务,建立商品主数据中心,服务于自营商品管理、POP平台、图书音像商品管理等系统。研发工程师最终设计为统一到商品-skuSKU模型,自营商品与SkuSKU一对一,而POP商品与SkuSKU是一对多。
《亿级流量网站架构核心技术》目录一览。2015年开始笔者在个人公众号“开涛的博客”写《聊聊高并发系统》系列文章,陆续发表了聊聊高并发系统之限流特技、聊聊高并发系统之降级特技、聊聊高并发系统之队列术、构建需求响应式亿级商品详情页等文章。堆缓存。Nginx HTTP缓存设置。Nginx代理层缓存。Nginx代理层缓存配置。维度化缓存与增量缓存。分布式缓存与应用负载均衡。热点数据与更新缓存。OpenResty+Redis集群+Mysql集群架构。
如何改变Redis用不好的误区。在这个案例的另一问题:一个非法日志服务的存在,表面上是管理问题,实质上还是技术问题,因为Redis的使用无法像关系型数据库那样有DBA的监管,它的运维者无法管理和提前知道里面放的是什么数据,开发者也无需任何申明就可以向Redis中写入数据并使用,所以这里我们发现Redis的使用没这些场景的管理后在长期的使用中比较容易失控,我们需要一个对Redis使用可治理和管控的透明层。
在做架构调整时,考虑到我们架构重构的初衷,提高数据的实时性,尽量让计算任务实时化,但重构过程中要考虑现有业务的过渡,所以架构必须支持实时与离线的需求,结合这些需求,在数据实时清洗平台(ETL)后加了一层数据缓存重用层(Kafka),也就是经过数据实时清洗平台后的数据还是写入Kafka集群,由于Kafka支持重复消费,所以同一份数据可以既满足实时计算也满足离线计算,从上面的整体技术架构也可以看出,如下图:
经典大数据架构案例:酷狗音乐的大数据平台重构(长文) | 36大数据。从这张图中,可以了解到大数据处理过程可以分为数据源、数据接入、数据清洗、数据缓存、存储计算、数据服务、数据消费等环节,每个环节都有具有高可用性、可扩展性等特性,都为下一个节点更好的服务打下基础。数据汇总层(DSL):存储对明细数据,按业务主题,与公共数据层数据进行管理后的用户行为主题数据、用户行为宽表数据、轻量汇总数据等。
【知识星球资源】Java菜鸟到架构师培训教程(中)J2SE的Socket网络编程应用 J2SE的反射机制高级应用 J2SE高深讲解 JAVA编程思想 初级教程[MP4] JAVA编程思想 高级教程[MP4] JAVA编程思想 中级教程[MP4] 基于J2SE的QQ聊天工具开发 基于J2SE的在线聊天系统 我来说说面向对象 2进阶篇。13.第十三阶段、企业级keepalived高可用实战与Nginx负载均衡视频教程。
一年一度的双十一大促帷幕即将拉开,作为国内第三方推送服务的领导者,极光(JIGUANG)会采取哪些措施来应对高并发推送服务?为此,我们采访了负责极光开发者服务后台推送系统,大规模高并发分布式云计算体系架构总体设计研发的极光首席架构师王丰,他伴随着极光一路成长,见证了极光推送用户数量从0到数十亿的飞跃,经历了极光推送在架构上的重构、由 VM 全面转向容器化、微服务化等过程,在推送上有自己的见解。
比如说到三层架构或者多层架构,我们是否考虑到与“Client/Server”二层架构的关系?架构工作可能是隐式的架构工作,不管有没有架构师被指派,其实都是会做的,只是有些时候,架构工作被做了,但没有人意识到。应用架构。2、架构与设计所有的架构都是设计,但不是所有的设计都是架构。我们无法得到普适的架构,但可以得到确定领域的通用架构,可以在特定领域通过演化使应用架构逐步优化,逐步与业务架构相适应,提高匹配度。
陈科:河狸家运维系统监控系统的实现方案河狸家运维发展的历程。MonitorServer 主要用于监控系统级软件,通过 MonitorServer 定期去交互,取一些数据丢到队列里面。第二个是采集模块,采集 java 的内容,目前比较粗放,通过 java agent ,嵌入一些采集数据的功能,把 java 业务相关的数据,代码执行站通过这种方式采过来之后,丢往后端。他负责河狸家后端系统的架构工作,在架构和系统运维方面有着丰富的经验。
专访当当网张亮:深度解读分布式作业调度框架elastic.日前,笔者采访了当当网架构师、当当技术委员会成员张亮,在本次采访中他主要分享了对架构师的理解,以及重点解读了分布式作业调度框架Elastic-job是什么、架构设计思路、具体模块的底层及如何实现等。CSDN:当当在今年9月份开源了分布式作业调度框架elastic-job,能够简单介绍下它是什么、来历、架构设计思路等?CSDN:elastic-job是分布式作业调度框架,何为分布式作业?
架构设计中的6种常见安全误区。下文将从兼容性设计误区,降低成本设计误区,数据和代码不分离的设计误区,封闭设计的误区,黑名单设计的误区,没有将安全列为设计目标之一的误区,总共6个方面来探讨设计安全误区的问题。兼容性越好的架构越能适应未来变化的需要,所以架构设计者会非常关注架构的兼容性设计,但是有些兼容性设计会带来严重的安全漏洞,这些安全漏洞甚至无法以简单的漏洞补丁方式修复。
”首席技术官“程立! 没有他 就没有今天的的支付宝。作为支付宝首席架构师,支付宝第一代架构设计者,支付宝史上最危机关头——停机发布17小时的救火大队长,如果说没有他,就没有支付宝,这话一点也不过分。程立封“神”,是在2008年停机发布上力挽狂澜。支付宝刚开始时,还不存在“支付宝账户”概念,用户通常都是通过银行、邮局转账的方式,将钱打到支付宝开设在各银行的账户里,然后由支付宝作为中间人协调交易额度。