今年打算以「系列文章」的方式,来写架构干货文,用通俗易懂的话,把那些晦涩的核心知识给梳理出来,你看着也会很舒服,说不定还能有点儿小兴奋。其实,输出才能倒逼更好的输入,2021 与你共勉,我们一起努力吧!
「画外音:关注一下,以后咱一起多交流哈^_^」
架构设计,越深入研究越觉得好玩儿
基础架构是系统的根基,从这里开始,你才能想清楚我们做架构设计的本质、原则、出发点到底是啥,学会根据不同场景去判断问题,最重要的就是背后的需求和复杂度来源。
基础架构图
技术团队中的灵魂人物,其实就是架构师了,而一个好的架构师,平时都在干嘛呀?不多,6 件事情等着他去安排呢,简单写写哈。
做架构,其实简单些理解,就好比把系统的顶层结构搭建出来,然后再把里头的东西实现了。你再想想,就好比你小时候玩乐高积木,一堆散的东西,你想去快速拼一些东西,其实是很难的,也会是乱七八糟的,但如果此时有一张作品图纸让你按着他规划的步骤、整体框架来搞的话,就会舒服很多。这张图纸,其他它解决的是系统的复杂度,帮你捋清楚了很多问题,让你有条不紊地去实现,这也是架构设计的最终目的。
如果做好、做正确了架构设计方案,还能让你有的放矢,因为系统的复杂度在你心中已有了一定的认知,那么涉及到最终交付的时间、人员配比、技术选择等都不是事儿了。
还有,一直听说的高性能、高可用、高可靠,说真的,我们实际上都在关注啥?
先说高性能,有点儿像配中药,到底枸杞、红枣补血呢?还是桂圆补血?又或者是红枣、枸杞、桂圆放一起泡水喝更补?就好比你搭建一个系统,需要有多种技术共同实现,但到底哪些技术更合适,你需要在他们之间进行判断和组合,以追求最好的性能,既要好,又要爽。
用生命保证,我绝对不是卖药的
很多同学熬夜太凶,肯定偷么么的去补过肾,医生也肯定告诉过你,绝不是简单的一瓶六味地黄丸就能搞定事儿,得怎么滴?得集群呀!集群才能提升性能!很多复杂业务,也是需要多台机器配合之后,才能达到最终高性能的目的。
不同的任务分配到不同的机器上,每台机器完成自己的业务。这当中,又会涉及到任务如何合理分配的问题,任务分配器随着性能的不断提升,也将会扩展为多台的,复杂度也就越来越大了,像 DNS 轮询、智能 DNS、CDN、GSLB 设备等镇宅神器都有可能被拿出用了。
那如果业务越来越复杂,怎么办呢?不是机器越多,性能越好的喔,10台机器可能带来的性能提升只有 5 倍,而不是 10 倍呢,那就得学会「拆」了,就跟那些土豪一样,都是「拆」出来的,多拆几栋楼就好了。道理很简单,复杂的业务服务器,拆了之后,就会简单很多,简单的系统更容易做到高性能,独立的子系统有性能瓶颈也更加容易被发现,风险也会小很多。
但!不是拆得越细,性能就会越好,因为不经意间那些拆得太细的系统,为了完成某个业务,系统间的调用次数会非常恐怖,比如拆了 1000 个子系统,系统间可能有 999 次请求。所以,这里就非常考验架构师了,架构设计背后的合理的「度」很重要,如何拆?如何把握这个「度」?是每个架构师需要去思考的问题。
高性能就先捋到这儿,下次捋高可用、高可靠的干货。