从0开始学架构 / 资深技术专家的实战架构心法
李运华
资深技术专家
 
  • 课程目录
  • 课程介绍
  • 开篇词 | 照着做,你也能成为架构师!

    每个程序员心中都有一个成为架构师的梦想,梦想是美好的,但道路是曲折的。

  • 01 | 架构到底是指什么?

    对于技术人员来说,“架构”是一个再常见不过的词了,但“架构”到底是指什么?

  • 02 | 架构设计的历史背景

    理解了架构的有关概念和定义之后,今天,我会给你讲讲架构设计的历史背景。

  • 03 | 架构设计的目的

    如果深入探讨一下,为何要做架构设计?或者架构设计目的是什么?大部分人可能从来没有思考过。

  • 04 | 复杂度来源:高性能

    我将为你深入分析复杂度的6个来源,先来聊聊复杂度的来源之一高性能。

  • 05 | 复杂度来源:高可用

    今天,我们聊聊复杂度的第二个来源高可用。

  • 06 | 复杂度来源:可扩展性

    复杂度来源前面已经讲了高性能和高可用,今天来聊聊可扩展性。

  • 07 | 复杂度来源:低成本、安全、规模

    今天我来聊聊复杂度另外三个来源低成本、安全和规模。

  • 08 | 架构设计三原则

    从今天开始,我会分两期讲讲架构设计的3个原则,以及架构设计原则的案例。

  • 09 | 架构设计原则案例

    今天我以大家耳熟能详的淘宝和手机QQ作为案例,来简单分析一下架构设计原则。

  • 架构专栏特别放送 | “华仔,放学别走!”第1期

    以周为单位,今天我会让华仔选出01-07期的优质精选留言,送给入选的同学价值68元的专栏阅码作为鼓励。

  • 10 | 架构设计流程:识别复杂度

    从今天开始,我将分4期,结合复杂度来源和架构设计原则,通过一个模拟的设计场景“前浪微博”,和你一起看看在实践中究竟如何进行架构设计。

  • 11 | 架构设计流程:设计备选方案

    今天我来讲讲架构设计流程第2步:设计备选方案,同样还会结合上期“前浪微博”的场景,谈谈消息队列设计备选方案的实战。

  • 12 | 架构设计流程:评估和选择备选方案

    上一期我讲了设计备选方案,在完成备选方案设计后,如何挑选出最终的方案也是一个很大的挑战。

  • 13 | 架构设计流程:详细方案设计

    完成备选方案的设计和选择后,我们终于可以长出一口气,因为整个架构设计最难的一步已经完成了,但整体方案尚未完成,架构师还需继续努力。

  • 14 | 高性能数据库集群:读写分离

    从今天开始,我会分几期来介绍高性能数据库集群。高性能数据库集群的第一种方式是“读写分离”,其本质是将访问压力分散到集群中的多个节点,但是没有分散存储压力。

  • 15 | 高性能数据库集群:分库分表

    今天我来介绍常见的分散存储的方法“分库分表”,其中包括“分库”和“分表”两大类。

  • 架构专栏特别放送 | “华仔,放学别走!” 第2期

    各位同学,晚上好,我是架构专栏的编辑Shawn。今天又到周五啦,没错,我又出来送福利了。

  • 16 | 高性能NoSQL

    我们不能盲目地迷信NoSQL是银弹,而应该将NoSQL作为SQL的一个有力补充,NoSQL != No SQL,而是NoSQL = Not Only SQL。

  • 17 | 高性能缓存架构

    缓存虽然能够大大减轻存储系统的压力,但同时也给架构引入了更多复杂性。架构设计时如果没有针对缓存的复杂性进行处理,某些场景下甚至会导致整个系统崩溃。

  • 18 | 单服务器高性能模式:PPC与TPC

    高性能是每个程序员的追求,无论我们是做一个系统还是写一行代码,都希望能够达到高性能的效果,而高性能又是最复杂的一环。

  • 19 | 单服务器高性能模式:Reactor与Proactor

    今天我将介绍可以应对高并发场景的单服务器高性能架构模式:Reactor和Proactor。

  • 20 | 高性能负载均衡:分类及架构

    单服务器无论如何优化,无论采用多好的硬件,总会有一个性能天花板,当单服务器的性能无法满足业务需求时,就需要设计高性能集群来提升系统整体的处理性能。

  • 21 | 高性能负载均衡:算法

    负载均衡算法数量较多,而且可以根据一些业务特性进行定制开发。

  • 22 | 想成为架构师,你必须知道CAP理论

    对于设计分布式系统的架构师来说,CAP是必须掌握的理论。

  • 23 | 想成为架构师,你必须掌握的CAP细节

    如果我们没有意识到这些关键的细节点,那么在实践中应用CAP理论时,就可能发现方案很难落地。

  • 24 | FMEA方法,排除架构可用性隐患的利器

    我今天介绍的FMEA方法,就是保证我们做到全面分析的一个非常简单但是非常有效的方法。

  • 25 | 高可用存储架构:双机架构

    常见的高可用存储架构有主备、主从、主主、集群、分区,每一种又可以根据业务的需求进行一些特殊的定制化功能,由此衍生出更多的变种。

  • 26 | 高可用存储架构:集群和分区

    今天我们一起来看看另外两种常见的高可用存储架构:数据集群和数据分区。

  • 27 | 如何设计计算高可用架构?

    计算高可用的本质是通过冗余来规避部分故障的风险,所以计算高可用的设计思想很简单:通过增加更多服务器来达到计算高可用。

  • 如何高效地学习开源项目 | “华仔,放学别走!” 第3期

    今天这期“特别放送”,我想和你聊聊如何高效地学习开源项目,一方面澄清开源项目学习过程中的几个误区,另一方面谈谈我自己具体实践时的一套方法论。

  • 28 | 业务高可用的保障:异地多活架构

    如果业务期望达到即使在此类灾难性故障的情况下,业务也不受影响,或者在几分钟内就能够很快恢复,那么就需要设计异地多活架构。

  • 29 | 异地多活设计4大技巧

    跨城异地多活是架构设计复杂度最高的一种,接下来我将介绍跨城异地多活架构设计的一些技巧和步骤。

  • 30 | 异地多活设计4步走

    今天,在掌握4大技巧的基础上,我来讲讲跨城异地多活架构设计的4个步骤。

  • 31 | 如何应对接口级的故障?

    在实际业务运行过程中,有一种故障影响可能没有系统级那么大,但发生的概率较高,这就是今天我要与你聊的如何应对接口级的故障。

  • 32 | 可扩展架构的基本思想和模式

    今天我们进入架构可扩展模式的学习,这部分内容包括分层架构、SOA架构、微服务和微内核等,先来聊聊架构的可扩展模式。

  • 33 | 传统的可扩展架构模式:分层架构和SOA

    为了帮助你在实践中更好的进行可扩展架构设计,我将分别介绍几种可扩展架构模式,指出每种架构模式的关键点和优缺点。

  • 34 | 深入理解微服务架构:银弹 or 焦油坑?

    由于微服务的理念中也包含了“服务”的概念,而SOA中也有“服务”的概念,我们自然而然地会提出疑问:微服务与SOA有什么关系?

  • 35 | 微服务架构最佳实践 - 方法篇

    今天我们看看微服务最佳实践应该如何去做。我会分两期介绍这部分内容,今天是微服务架构最佳实践的方法篇,下一期是基础设施篇。

  • 36 | 微服务架构最佳实践 - 基础设施篇

    每项微服务基础设施都是一个平台、一个系统、一个解决方案,实现起来都需要经过需求分析、架构设计、开发、测试、部署上线等步骤。

  • 37 | 微内核架构详解

    微内核架构,也被称为插件化架构,是一种面向功能进行拆分的可扩展性架构,通常用于实现基于产品的应用。

  • 38 | 架构师应该如何判断技术演进的方向?

    对于架构师来说,技术的快速发展当然是一件大好事,却也多了“甜蜜的烦恼”:面对层出不穷的新技术,我们应该采取什么样的策略?

  • 39 | 互联网技术演进的模式

    互联网业务千差万别,但由于它们具有“规模决定一切”的相同点,其发展路径也基本上是一致的。

  • 40 | 互联网架构模板:“存储层”技术

    从本期开始,我将逐层介绍每个技术点的产生背景、应用场景、关键技术,今天先来聊聊“存储层”技术。

  • 41 | 互联网架构模板:“开发层”和“服务层”技术

    今天我们来聊聊互联网架构模板的“开发层”和“服务层”技术,希望让你可以对其中的技术背景和应用有一个整体认知。

  • 42 | 互联网架构模板:“网络层”技术

    当我们站在一个公司的的角度来思考架构的时候,单个系统的高可用和高性能并不等于整体业务的高可用和高性能,需要从更高的角度去设计,这个高点就是“网络”。

  • 43 | 互联网架构模板:“用户层”和“业务层”技术

    今天,我将从“用户层”和“业务层”的角度谈谈常见的应用场景和关键技术。

  • 44 | 互联网架构模板:“平台”技术

    随着业务规模越来越大,系统复杂度越来越高,子系统数量越来越多,因此我们自然而然就会想到将这些支撑功能做成平台。

  • 45 | 架构重构内功心法第一式:有的放矢

    从今天开始,我将分3期传授我的架构重构内功心法,今天先来看第一式:有的放矢。

  • 46 | 架构重构内功心法第二式:合纵连横

    今天我来传授架构重构内功心法的第二式:合纵连横。

  • 47 | 架构重构内功心法第三式:运筹帷幄

    架构师在识别系统关键的复杂度问题后,还需要识别为了解决这个问题,需要做哪些准备事项,或者还要先解决哪些问题。

  • 48 | 再谈开源项目:如何选择、使用以及二次开发?

    开源项目的主要目的是共享,其实就是为了让大家不要重复造轮子。

  • 49 | 谈谈App架构的演进

    专栏所讲述的整套架构设计理念,虽然是来源于我的后端设计经验,但一旦形成完善的技术理论后,同样适应于App和前端。

  • 50 | 架构实战:架构设计文档模板

    我认为提供一个架构设计文档模板还是很有必要的,可以方便你在实际进行架构设计的时候更好地编写相关文档。

  • 架构师成长之路 | “华仔,放学别走!” 第4期

    从程序员到架构师的成长之路,总的指导原则是:积累经验,拓宽视野,深度思考,那么从程序员到架构师的成长过程中,具体该如何实践呢?

  • 结束语 | 坚持,成就你的技术梦想

    对于绝大部分人来说,也许理论、方法、技巧都知道,但最难的就是“坚持”。

  • 架构师必读书单 | “华仔,放学别走!” 第5期

    架构师本身就是一个比较综合的职位,对综合技能要求很高,需要你从各方面提升自己。而读书和技术提升是类似的,都是一个长期积累的过程,积累越多、收获越大。

  • 新书首发 | 《从零开始学架构》

    今天又有一件意义重大的事想与你分享,那就是我的新书《从零开始学架构》出版了,并且已经上架极客商城。

  • 在线阅读:致「从0开始学架构」专栏订阅用户

    在我的专栏结束后,今天又有一个好消息想分享给你,而且这件事情离不开每位订阅专栏同学的支持。

特别放送

专栏简介

程序员的成长绕不开架构设计,有时架构设计就像鸿沟一样挡在程序员晋升之路上,只要跨过去就可以海阔天空。

但不少技术能力很强的程序员依然不能完全掌握架构设计,这与架构设计的思维方式和训练机制与写代码有很大差异有关,加之人们对架构设计存在很多误区,缺乏一套行之有效的架构设计方法论,就可能导致在实践过程中把握不住重点、分不清主次;或者,没有彻底掌握架构设计的原则,在设计上举棋不定。

也许你还是个架构新手,缺乏一个可以参考指导的架构设计流程;或者,虽然有一定经验,但还不能对已有模式进行技术创新。这些问题都可以在极客时间专栏《从0开始学架构》中找到答案。

李运华,资深技术专家。目前带领多个研发团队,承担架构设计、架构重构、技术团队管理、技术培训等职责,曾就职于华为和UCWeb,写过《面向对象葵花宝典》一书。

华仔从2006年开始接触架构设计,花费8年时间掌握架构设计的精髓,走过了从程序员到架构师的蜕变之路,也踩过了这条路上的很多坑。后来他带了团队,特别是做了职业等级晋升评委后,看到了一大批优秀程序员的晋升卡在架构设计上,也越来越能体会架构设计特性所导致的学习和实战方面的问题。

在本专栏中,华仔会从架构基础、三大架构模式和实战的角度分享他一整套的架构设计方法论,希望你学习后不仅能够快速理解陌生的架构设计,自己也能对架构设计游刃有余,并且可以给身边正在迷惘的同学指点迷津,实践所学,分享所学。

华仔曾在专栏发布之初立下flag,“技术既改变自己,也惠泽他人”,他将在专栏结束后,按照订阅人数每人捐出一份免费午餐。现在本专栏已更新完毕,华仔也兑现了承诺,感谢你和华仔一起点亮希望!

专栏模块

专栏共50期,主要分为5部分。

  • 架构基础:将介绍架构设计的历史背景,阐述架构相关的概念以及架构设计的本质;提炼三个核心架构设计原则;详细描述架构设计的标准流程和步骤。

  • 高性能架构模式:将介绍高性能数据库集群读写分离、分库分表两种方案,NoSQL方案的典型特征和应用场景,缓存的架构设计三大要点;介绍PPC、TPC、Reactor、Proactor模型提升性能,以及负载均衡的分类与架构、算法与优缺点。

  • 高可用架构模式:将介绍CAP原理的理解和应用、FMEA分析方法;从主备、主从、主主、集群、分区详解常见的高可用存储架构;给出如何设计高可用计算架构;使用异地多活方案保障业务高可用的技巧和步骤。

  • 可扩展架构模式:将概述可扩展模式及其基本思想,详解分层架构、SOA架构、微服务及微内核架构。

  • 架构实战:将理论与案例结合,在实战中落地专栏传递的架构原则、架构流程和架构模式。

专栏详细目录

适宜人群

想从0开始学习架构设计的程序员;想拓展架构视野提升技术能力的架构师;职业晋升遇到瓶颈的程序员;希望培养架构思维的所有技术人。

你觉得怎么样?期待您评价: