从部落到帝国 - 后端技术栈的演进及开源实践 v 0.51
关于本书
第一篇:起源,故事从这里开始
第一章:准备启程
1.1 关于技术栈和架构
1.1.1 软件架构的生命周期
1.1.2 架构选型的原则
1.1.3 架构选型的误区
1.1.4 为什么要谈技术栈的演进
1.2 关于开源
1.2.1 为什么选择开源产品
1.2.2 开源软件的选型原则
1.2.3 开源协议的选择
1.2.5 开源案例:阿里巴巴去IOE过程
1.2.6 常见的开源站点
第二章:新生命的诞生
2.1 创业初期
2.1.1 创业初期的组织架构
2.1.2 初期的架构和技术栈
2.1.3 巨头们的婴儿期
2.2 快速打造产品
2.2.1 快速打造产品的方式
2.2.2 快速搭建开源产品
2.3 提高服务构建效率的方法
2.3.1 快速搭建基础环境
2.3.2 善用自动代码生成工具
2.3.3 初期线上部署的几种方式
2.3.4 使用第三方的开放基础服务
第二篇:疯狂原始人
第三章:萌芽初现
3.1 原始阶段的组织架构
3.2 原始阶段的系统架构
3.3 协同工具
3.3.1 Git 代码管理
3.3.1.1 Git Server 搭建
3.3.1.2 Gitlab
3.3.2 文档管理
小结
第四章:险中求生
4.1 性能之分离
4.1.1 数据库的分离
4.1.1.1 MySQL 主从读写分离
4.1.1.2 MySQL Proxy 实现读写分离
4.1.2 文件服务器分离与CDN
4.2 性能之本地缓存
4.2.1 应用层本地缓存
4.2.1.1 HashMap 缓存
4.2.1.2 EhCache
4.2.1.3 Guava Cache
4.2.2 服务端本地缓存
4.2.2.1 Nginx 本地缓存
4.2.2.2 PageSpeed
4.2.2.3 Varnish
4.2.3 客户端缓存
4.3 性能之并发与异步化
4.3.1 多线程与并发
4.3.2 异步消息队列
4.3.2.1 Redis 队列
4.4 安全与运维
4.4.1 服务器端的安全
4.4.2 简单的数据备份方式
4.4.2.1 利用代码托管空间备份数据
4.4.2.2 利用网盘进行数据备份
4.4.3 日志切分与清理
4.4.4 日志分析
4.4.4.1 命令行工具
4.4.4.2 可视化工具
4.4.5 服务器状态监测
4.4.5.1 命令行工具
4.4.5.2 可视化工具
第三篇:部落
第五章:麻雀虽小五脏俱全
5.1 成长期的企业组织架构
5.2 成长期的系统架构
5.3 跨专业协同
5.3.1 Remine 项目管理工具
5.3.2 bug 追踪工具
5.3.3 看板与Scrum
第六章:奔跑吧兄弟
6.1 负载均衡
6.1.1 DNS 方式
6.1.2 LVS + Keepalived
6.1.3 Nginx 负载均衡
6.1.4 HAProxy
6.2 可扩展的数据库架构
6.2.1 高可用 MySQL 的几种方案
6.2.1.1 MySQL Fabric
6.2.1.2 DRDB 模式
6.2.1.3 HAProxy 方案
6.2.1.4 MySQL Cluster 方案
6.2.3 数据分割
6.2.3.1 sharding-jdbc
6.2.3.2 主键的生成
6.2.3.2 vitness
6.3 分布式缓存
6.3.1 一致性哈希
6.3.2 Memcached 集群 与 Twemproxy
6.3.3 Redis 集群
6.3.3.1 Tewmproxy 架构
6.3.3.2 Redis Cluster
6.3.3.3 Codis 方案
6.4 安全与加密
6.4.1 Web 安全防范
6.4.1.1 XSS 跨站攻击
6.4.1.2 CSRF
6.4.1.3 SQL 注入
6.4.1.4 上传文件过滤
6.4.2 漏洞扫描工具
6.4.2.1 DVWA
6.4.2.2 W3af
6.4.2.3 openvas
6.4.3 数据加密
6.4.2.1 常见对称加密算法
6.4.2.2 常见哈希算法 & HMAC
6.4.2.3 HTTPS 链路加密
6.4.2.4 常用非对称加密算法
6.4.2.5 加密场景:用户密码保存
6.4.4 服务器端安全
6.4.3.1 硬件防火墙
6.4.3.2 Iptable 防火墙
6.4.3.3 入侵检测
6.5 持续集成
6.5.1 Jenkins
6.5.2 RPM 部署方式
6.6 埋点统计系统
6.6.1 免费埋点统计服务
6.6.2 Piwk
6.6.3 服务端埋点
第四篇:文明降临
第七章:三百六十行
7.1 成熟期的组织架构
7.2 成熟期的系统架构
7.3 建立办公网
7.3.1 LDAP
7.4 网络隔离
7.5 代码质量管理
7.5.1 代码规范
7.5.2 代码 review 机制
7.5.3 SnoarQube
7.5.4 PMD
7.6 敏捷开发
第八章:走向现代化
8.1 分布式一致
8.1.1 分布式事务
8.1.2 分布式锁
8.1.3 幂等性
8.1.4 MVCC 多版本控制
8.1.5 CAP 理论
8.2 分布式RPC与服务治理
8.2.1 Thrift 架构
8.2.2 Dubbo
8.2.3 Restful 架构
8.3 性能追踪
8.3.1 pinpoint
8.3.2 ziplin 分布式追踪系统
8.3.3 开源 APM 解决方案
8.4 搜索引擎
8.4.1 Elasticsearch
8.4.2 sphinx
8.4.2 Solr
8.5 分布式调度
8.5.1 分布式调度 Quartz
8.5.2 Elastic-job-lite
8.5.3 horae
第五篇:帝国时代
第九章:版图扩张
9.1 帝国时期的组织架构
9.2 帝国时期的系统架构
9.3 技术氛围建设
9.3.1 工程师文化
9.3.2 影响力建设
第十章:精益求精
10.1 大数据
10.1.1 Hadoop
10.1.1.1 HDFS
10.1.1.2 Yarn 与 MapReduce
10.1.2 HIVE
10.1.3 数据同步
10.1.4 Spark
10.1.5 Hbase
10.2 日志收集
10.2.1 ELK 技术栈
10.2.2 Flume
10.2.3 Gaylog
10.3 弹性计算
10.3.1 Docker
10.4 微服务架构
10.5 容灾与降级
10.5.1 Hystrix 框架
10.5.2 异地容灾
10.5.3 raid
10.6 压力测试
10.6.1 开源压测工具
10.6.1.1 AD 等单机压测工具
10.6.1.2 线上引流工具
10.6.1.3 分布式压测工具 nGrinder
10.6.2 全链路压测
10.7 私有云
10.7.1 openstack
10.8 灰度发布
10.9 实时计算
10.9.2 Flink
10.9.1 Storm
10.10 人工智能
占位
10.10.1 TensorFlow
第六篇:番外篇
第十一章:各大互联网公司架构演进案例
11.1 淘宝技术演进
第十二章:架构师的素质
Powered by
GitBook
6.2.1 高可用 MySQL 的几种方案
results matching "
"
No results matching "
"