架构狮

简介: 来自 http://blog.qiniu.com/archives/7551 如果要看,最好请看上面的图文,很有意思的故事之路,看完了也就知道《架构师成长之路》了把感兴趣的记录下来:架构狮是个是什么狮子 系统架构师是一个既需要掌控整体又需要洞悉局部瓶颈并依据具体的业务场景给出解决方案的团队领导型人物。 跨越技术,工程和管理的职位 需求-》(时间人力钱) 架构

来自
http://blog.qiniu.com/archives/7551
如果要看,最好请看上面的图文,很有意思的故事之路,看完了也就知道《架构师成长之路》了

把感兴趣的记录下来:

架构狮是个是什么狮子
系统架构师是一个既需要掌控整体又需要洞悉局部瓶颈并依据具体的业务场景给出解决方案的团队领导型人物。
跨越技术,工程和管理的职位
需求-》(时间人力钱)
架构师的世界里,人力,钱,时间总是至少有一个不够用,通常是三个都不够用。
在这些条件下解决问题就是我们每天所做的。
若都够用的时候,往往意味着更复杂的需求就要来了,很快就会变成全不够了。这才是挑战
业务,产品,运营,技术团队和管理层,架构师都要打交道。
熟悉公司业务需求和战略,提前做好技术上的准备,才能设计出适合团队能力和资源的架构,只考虑技术是做不好的

想做好一个架构师,对技术不精通是不行的。技术,行业和业务一直在发展变化,不跟上这些变化,就只能用一些成熟的套路去解决问题

套路用得多了,最后没准就变成给自己下套了

很多时候需要盖的摩天大楼,不可能依靠自己去生产所有材料和部件。。。。
这个时候就需要决定哪部分自己开发,那些部分寻找云服务,哪些部分使用开源和库

如何组合这些资源,如何挑选 云服务,开源和库,如何平衡风险和成本,这些都是架构师要做的工作

如果不熟悉代码,不持续而深入了解技术,这些事情都做不好。

服务比较标准,但开发投入又比较大的,这时候可以用云服务,或者开源和库,可以节省大量的时间和开发成本
更大的精力是做好自己的特色

做架构设计刚开始先不要想太多,先满足一段时间内的需求,然后在这段时间内研究下一代技术或者完善架构
项目往往会永远面临各种条件上的限制。架构师必须正视各种资源短缺,需求和项目周期的问题
不是所有项目都需要考虑那么长远的性能问题。取舍是做设计时最重要的能力。知道哪些问题重要,必须解决,哪些可以放弃
提前考虑好未来各个关键点如何演进。(现在预见到的许多“未来问题”以后可能会变化,可能变得用不着解决),但如果试图在一开始就解决所有“未来问题”,对资源和技术都是浪费,也会导致你很难作出设计上的决策

架构设计
产品架构的选型,负载扩展

性能很重要,但架构设计要尽量使用业界流行的通用标准,为了通用和易于维护,有时性能上甚至可以做点妥协
选择具体方案的时候,要多看社区评价和讨论,选择质量较高又维护活跃的方案
稳定性是相当重要的指标,如果被比较大的项目使用过,肯定是加分的,单也要看具体的使用情况。有数据可以参考最好了,如果没有就只能看大项目参与者的使用体验分享了。
同样,性能很重要,但不应该仅应该因为性能好就决定,要充分权衡这几个原则

如果项目目标是做到可以水平扩展。系统设计就要尽量解除耦合,降低共享资源的使用,最好做到完全没有共享资源,这样扩展最好

在项目早期会简单一些,只要做到分片短期内都够用了。单以后还得需要考虑热点数据什么的问题
现在多想想,为了就能少点麻烦

作为一个架构师,你得能沟通,能收集过滤关键信息,找出时间,资源和需求间平衡点,才有可能作出一个有实现性的架构方案
然后你还得能谈判,能把你的设计或者战术能讲明白,让别人愿意执行你的方案
在许多时候,你都得跳出“我是来解决架构问题”的框框,站在其他部分角色的立场上考虑问题

很难说一次架构选型是对是错。架构选型本来就是一个权衡过程。
如果使用了成熟的系统架构,优势是它更成熟,但代价是我们需要多维护一种语言写的系统,要修改很难有足够人手
选择的不成熟的系统可能不够完善,但该系统的开发语言我们更熟悉,可控性很强,修补通常也很容易,也不会过于复杂。

如何做选择取决于你的具体目标与条件,并没有标准答案

云服务不是万能解药,但在各种方案间做权衡正式我们架构师最重要的工作之一。
选择的关键就是想清楚对你而言,当前什么是最重要的,会付出什么的代价,同时有什么潜在风险,多大成本能解决

目录
相关文章
|
6月前
|
存储 监控 Go
万字心路历程:从十年老架构决定重构开始
不论是从产品演进,还是从开发体验,原有iLogtail架构已经严重制约了其快速发展。因此,对iLogtail的架构进行升级已经迫在眉睫。
1149 9
|
5月前
|
监控 Java API
Java日志框架的纷争演进与传奇故事
Java日志框架的纷争演进与传奇故事
|
存储 分布式计算 架构师
阿里架构师十年开发总结的《分布式系统开发学习笔记》太强了
分布式系统 分布式系统是将多台小型微型机互连组成的一种新型计算机系统。它冲破了传统的集中式单机局面,从分散处理的概念出发来组织计算机系统,具有较高的性能价格比,灵活的系统可扩充性, 良好的实时性、可靠性与容错性等潜在优点,是近几年来计算机科学技术领域中极受重视的新型计算机系统,现已成为迅速发展的一个新方向。
|
数据可视化 项目管理 图形学
无坚不摧,哪个才是硬件攻城狮的屠龙刀?
无坚不摧,哪个才是硬件攻城狮的屠龙刀?
|
域名解析 负载均衡 网络协议
一套互联网公司理想架构,快快收藏。。(1)
一套互联网公司理想架构,快快收藏。。(1)
270 0
一套互联网公司理想架构,快快收藏。。(1)
|
缓存 负载均衡 监控
一套互联网公司理想架构,快快收藏。。(2)
一套互联网公司理想架构,快快收藏。。(2)
166 0
一套互联网公司理想架构,快快收藏。。(2)
|
存储 缓存 网络协议
一套互联网公司理想架构,快快收藏。。(3)
一套互联网公司理想架构,快快收藏。。(3)
151 0
一套互联网公司理想架构,快快收藏。。(3)
|
JavaScript 前端开发 API
这种微前端设计思维听说过吗?
前言:最近有种感觉,好像微前端成为当下前端工程师的标配,从single-spa到qiankun,各种微前端架构解决方案层出不穷。那一夜,我在翻阅github时,留意到一个新的微前端框架,来自京东零售开源的MicroApp,号称无需像上面提到那两个框架一样需要对子应用的渲染逻辑调整,甚至还不用修改webpack配置。还有一个成功引起我注意的是:它把web-components的概念给用上了!让我们一探究竟!
205 0
这种微前端设计思维听说过吗?
|
设计模式 程序员 开发者
干货!攻城狮的交流分享!聊一聊开发人员快速提升自己的方式
本文分享了作为开发人员,快速提升自己的几种方式。主要包括建立一个实质性的项目,向开源项目作出自己个人的奉献,阅读高级的代码,在阅读高级的代码过程中,要考虑到应该阅读什么样的代码以及如何阅读高级代码。最后,也是很重要的是,要主要了解更多的编程设计模式和编程原理。
173 0
干货!攻城狮的交流分享!聊一聊开发人员快速提升自己的方式