近期打算利用空闲时间准备准备架构师的软考,相当于又给自己立下来一个难度不小的flag,进入目前的项目组以来,提升了对云的认识,尤其对于分布式服务的架构体系有了更清晰的认识,分布式、去中心化是未来一个基本趋势,从架构体系上如此,从社会组织的发展上可能也遵循该规律,学习既要窥树木更要见森林,先从这些高屋建瓴的书籍上开始吧。
1、大型网站技术架构:核心原理与案例分析
本书通过梳理大型网站技术发展历程,剖析大型网站技术架构模式,深入讲述大型互联网架构设计的核心原理,并通过一组典型网站技术架构设计案例,为读者呈现一幅包括技术选型、架构设计、性能优化、Web安全、系统发布、运维监控等在内的大型网站开发全景视图。
本书作者李智慧,曾在阿里巴巴担任技术专家,参与阿里巴巴基础技术平台开发和架构设计。
2、分布式服务框架原理与实践
微服务是当前非常热的技术关键词之一,那么微服务如何落地呢?首先要实现服务化,微服务架构是一种服务化架构风格。首先分析了作为一个分布式服务框架所需具备的能力,包括服务注册中心、服务调用、服务路由、服务发布/灰度发布等;接着分析了服务底层如何有效地进行通信,包括通信框架、序列化/反序列化及协议栈等;然后分析了服务如何做到高可靠性及高安全性等重要特性;最后也阐述了从服务化如何向微服务演进。干货满满!
作者李林锋多年来在华为一直从事核心代码的架构设计和开发,属于实战型架构师,买来看了一段时间很多篇章是属于总结性的思路概述,技术细节并不详细,适合有经验的或者有具体场景的人阅读。
3、互联网创业核心技术:构建可伸缩的web应用
可伸缩架构技术是所有互联网技术中最重要,也是最引人入胜的技术。《互联网创业核心技术:构建可伸缩的web应用》针对互联网创业需求快速迭代,业务快速发展,短时间内用户、数据、访问量激增的特点,提纲挈领地描述了伸缩性架构的基本原理与设计原则,详细阐述了Web应用前端层、服务层、数据层的可伸缩架构,并花大量篇幅讲述了缓存技术和异步处理技术的可伸缩设计及其在Web系统中的具体应用。
《互联网创业核心技术:构建可伸缩的web应用》面向互联网创业公司工程师,也适用于所有互联网行业的工程师,对非互联网行业的软件工程师也有借鉴作用。事实上,《互联网创业核心技术:构建可伸缩的web应用》适合所有对可伸缩架构有兴趣的软件技术人员阅读。
4、高扩展性网站的50条原则
《高扩展性网站的50条原则》给出了设计高扩展网站的50条原则,如不要过度设计、设计时就考虑扩展性、把方案简化3倍以上、减少DNS查找、尽可能减少对象等,每个原则都与不同的主题绑定在一起。大部分原则是面向技术的,只有少量原则解决的是与关键习惯和方法有关的问题,当然,每个原则都对构建可扩展的产品至关重要。
5、架构即未来:现代企业可扩展的Web架构、流程和组织(原书第2版)
任何一个持续成长的公司最终都需要解决系统、组织和流程的扩展性问题。本书汇聚了作者从eBay、VISA、Salesforce.com到Apple超过30年的丰富经验,全面阐释了经过验证的信息技术扩展方法,对所需要掌握的产品和服务的平滑扩展做了详尽的论述,并在第1版的基础上更新了扩展的策略、技术和案例。
针对技术和非技术的决策者,马丁•阿伯特和迈克尔•费舍尔详尽地介绍了影响扩展性的各个方面,包括架构、过程、组织和技术。通过阅读本书,你可以学习到以最大化敏捷性和扩展性来优化组织机构的新策略,以及对云计算(IaaS/PaaS)、NoSQL、DevOps和业务指标等的新见解。而且利用其中的工具和建议,你可以系统化地清除扩展性道路上的障碍,在技术和业务上取得前所未有的成功。
6、系统架构:复杂系统的产品设计与开发
本书由系统架构领域3位领军人物亲笔撰写,该领域资深专家Norman R.Augustine作序推荐,Amazon全五星评价。
本书首先讲解了什么是系统,什么是系统架构,并从形式和功能两个方面讲解了如何分析系统。之后开始讲解如何创建良好的系统架构。在将概念演化为架构的过程中,架构师需要对系统进行分解,以看清这些组件的结构以及它们之间的交互情况,因此需要根据一些衡量指标来构建权衡空间,以便使用优化算法找出优势较大的架构。
7、Java性能优化权威指南
Java性能优化圣经!Java之父重磅推荐!
本书由曾任职于Oracle/Sun的性能优化专家编写,系统而详细地讲解了性能优化的各个方面,帮助你学习Java虚拟机的基本原理、掌握一些监控Java程序性能的工具,从而快速找到程序中的性能瓶颈,并有效改善程序的运行性能。
Java性能优化的任何问题,都可以从本书中找到答案!
8、大规模分布式存储系统:原理解析与架构实战
阿里巴巴高级技术专家(OceanBase核心开发人员)撰写,阳振坤、章文嵩、杨卫华、汪源、余锋(褚霸)、赖春波等来自阿里、新浪、网易和百度的资深技术专家联袂推荐。
系统讲解构建大规模存储系统的核心技术和原理,详细分析Google、Microsoft和阿里巴巴的大规模分布式存储系统的原理。
实战性强,通过对阿里巴巴的分布式数据库OceanBase的实现细节进行深入分析,完整讲解了大规模分布式存储系统的架构方法与应用实践。
9、大规模分布式系统架构与设计实战
本书从作者的实战经验出发,深入浅出地讲解了如何建立一个Hadoop那样的分布式系统,实现对多台计算机CPU、内存、硬盘的统一利用,从而获取强大计算能力去解决复杂问题。一般互联网企业的分布式存储计算系统都是个大平台,系统复杂、代码庞大,而且只适合公司的业务,工程师很难下载安装到自己的电脑里学习和吃透。
本书对分布式核心技术进行了大量归纳和总结,并从中抽取出一套简化的框架和编程API进行讲解,方便工程师了解分布式系统的主要技术实现。这不是一本空谈概念、四处摘抄的书,这本书包含了大量精炼示例,手把手教你掌握分布式核心技术。
10、企业IT架构转型之道:阿里巴巴中台战略思想与架构实战
在当今整个中国社会都处于互联网转型的浪潮中,不管是政府职能单位、业务规模庞大的央企,还是面临最激烈竞争的零售行业都处于一个重要的转折点,这个转折对企业业务模式带来了冲击,当然也给企业的信息中心部门带来了挑战:如何构建IT系统架构更好地满足互联网时代下企业业务发展的需要。阿里巴巴的共享服务理念以及企业级互联网架构建设的思路,给这些企业带来了不少新的思路,这也是我最终决定写这本书的最主要原因。
本书从阿里巴巴启动中台战略说起,详细阐述了共享服务理念给企业业务发展带来的业务价值。接着会分享阿里巴巴在建设共享服务体系时如何进行技术框架的选择,哪些重要的技术平台支撑起了共享服务体系,这也是迄今为止对阿里巴巴集团中间件体系对外最全面系统的介绍。除了技术层面之外,本书还分享了阿里巴巴内部的一些经验和实践,如组织的架构和体制如何更好地支持共享服务体系的持续发展。
11、尽在双11:阿里巴巴技术演进与超越
从 2009 年淘宝商城起,双 11 已历经八年。每年的双 11 既是当年的结束,又是走向未来的起点。技术的突破创新,商业模式的更替交互,推动着双 11 迈步向前。
《尽在双11——阿里巴巴技术演进与超越》是迄今唯一由阿里巴巴集团官方出品、全面阐述双11八年以来在技术和商业上演进和创新历程的书籍。内容涵盖在双11背景下阿里技术架构八年来的演进,如何确保稳定性这条双 11 生命线的安全和可靠,技术和商业交织发展的历程,无线和互动的持续创新与突破,以及对商家的赋能和生态的促进与繁荣。
12、大型网站系统与Java中间件实践
本书围绕大型网站和支撑大型网站架构的Java中间件的实践展开介绍。从分布式系统的知识切入,让读者对分布式系统有基本的了解;然后介绍大型网站随着数据量、访问量增长而发生的架构变迁;接着讲述构建Java中间件的相关知识;之后的几章都是根据笔者的经验来介绍支撑大型网站架构的Java中间件系统的设计和实践。
希望读者通过本书可以了解大型网站架构变迁过程中的较为通用的问题和解法,并了解构建支撑大型网站的Java中间件的实践经验。对于有一定网站开发、设计经验,并想了解大型网站架构和支撑这种架构的系统的开发、测试等的相关工程人员,本书有很大的参考意义;对于没有网站开发设计经验的人员,通过本书也能宏观了解大型网站的架构及相关问题的解决思路和方案。
13、架构探险—从零开始写Java Web框架
本书首先从一个简单的Web应用开始,让读者学会如何使用IDEA、Maven、Git等开发工具搭建Java Web应用;接着通过一个简单的应用场景,为该 Web 应用添加若干业务功能,从需求分析与系统设计开始,带领读者动手完成该Web应用,完善相关细节,并对已有代码进行优化;然后基于传统Servlet框架搭建一款轻量级Java Web框架,一切都是从零开始,逐个实现类加载器、Bean 容器、IoC框架、MVC框架,所涉及的代码也是整个框架的核心基础。为了使框架具备AOP特性,从代理技术讲到AOP技术,从ThreadLocal技术讲到事务控制技术。最后对框架进行优化与扩展,通过对现有框架的优化,使其可以提供更加完备的功能,并以扩展 Web 服务插件与安全控制插件为例,教会读者如何设计一款可扩展的Web应用框架。
14、架构探险:从零开始写分布式服务框架
随着微服务的流行,支撑微服务的分布式服务框架成为大家优先发展的重点。服务化的基本原理掌握起来相对比较容易,但是要从零构建一个分布式服务框架却比较困难,涉及通信、线程并发、服务调度等。本书详细讲解了构建服务框架所需的各种技术及框架选型,手把手教初学者搭建一套完整的分布式服务框架,如果你想掌握分布式服务框架底层的技术细节,自己开发一套适合本公司和领域的服务框架,本书是一个非常不错的选择!
15、软件架构师的12项修炼
本书将3大方面的软技能分为12项:
- 关系技能包含文雅的举止(在任何环境下都能与人文雅相处的能力)
- 沟通(与人有效交互的能力)
- 协商(将事情办成的能力)
- 领导力(通过施加影响力将事情办成的能力)
- 政治(“政治场合”与人交互的能力)
- 个人技能包含透明化(使自我、团队关系和项目透明化的能力)
- 激情(激发和保护激情的能力)
- 语境切换(将注意力迅速切换到新语境并保持专注的能力)
- 商务技能包括商务知识(读懂商务语言的能力和了解产品与顾客的能力)
- 创新(如何通过学习和思考来创新的能力)
- 实用主义(抓住关键问题的能力)
- 认知(认知目标、战略及合作伙伴的能力)
本书不仅帮助软件开发人员系统地学习如何修炼这12项软技能,而且还能让他们进一步理解软件架构师的角色和本质,使他们最终突破技术的“天花板”,成为一名合格的软件架构师。
参考:进阶Java架构师必看的15本书