初中高级工程师、企业架构师、软件设计师、数据库/存储技术人员、技术决策/解决方案人员等。
| 课程编号 | 开课日期 | 地点 | 培训天数 | 选择报名 |
初中高级工程师、企业架构师、软件设计师、数据库/存储技术人员、技术决策/解决方案人员等。
课程简介:
本课程从高并发、大数据、高可靠3个方面入手,讲解了大型互联网应用系统是如何从容应对数以亿计的用户并发访问、海量业务数据的性能压力,如何高效而稳定地进行架构设计的。课程由浅入深首先介绍了与高并发、大数据、高可靠相关的概念、指标与解决思路。然后,通过典型案例介绍了解决这类问题所需的关键步骤——对系统性能的分析与推算过程,从而使后面的架构设计有的放矢、恰如其分。
接着,层层推进、从各个层面逐步介绍了在架构设计各个环节可能遇到的性能问题、可以采用的技术,这些技术的基本原理与解决思路,以及相关互联网应用的具体案例。通过这些案例的讲解,可以为学员日后的架构设计开阔思路、加深认识。
课程最后,运用一个具体的案例讲解了,在完成了相关的架构设计以后,如何通过实验验证架构设计,这个过程中的场景设计、数据准备以及结果分析。
培训目标:
理解互联网应用的架构特点及架构设计的总体思路 •高并发
•大数据
•高可靠性
针对高并发问题的架构设计 •为高并发问题制订解决的目标
•梳理和分析系统存在的瓶颈点
•验证高并发问题的架构设计
针对大数据问题的架构设计 •云计算
•大数据
解决高可靠性的架构设计
•避错:持续运行不出错
•容错:快速而自动地故障恢复
•改错:可查错、可恢复并数据不丢失
授课方式: 小班授课 + 案例讲解 + 小组讨论,60%案例讲解,40%实践演练
培训对象:初中高级工程师、企业架构师、软件设计师、数据库/存储技术人员、技术决策/解决方案人员等。
学员基础:具有一定架构设计和实践经验
培训内容: 3天
互联网应用的架构特点及架构设计的总体思路
高并发
1. 高并发的概念及其评价指标
a.用户数 / 用户并发数 / 最大用户并发数
b.吞吐量 / 每秒事务数 / 事务响应时间
2.高并发问题的解决思路
a.目标→问题→方案
b.横向扩展与纵向扩展
c.分布式计算与冗余设计
大数据
1.大数据的概念及其评价指标
a.数据量与数据增长量
b.数据分布与使用的规律
2.大数据问题的解决思路
a.三种不同的操作类型:业务处理 / 随机查询 / 分析统计
b.并行操作与异步处理
c.集中式处理 vs. 分布式处理
可靠性
1. 高可靠性在三个层面的概念
a.持续运行不出错
b.快速而自动地故障恢复
c.可恢复并数据不丢失
2. 高可靠性的设计思路
a. 冗余设计
b.备份与恢复策略
针对高并发问题的架构设计 为高并发问题制订解决的目标 1.制订总体的质量目标
2.采集并分析现有数据
3.建立模型预测日后的性能指标
案例:某大型网络开票系统的性能分析过程
梳理和分析系统存在的瓶颈点
1. 网络问题
a.地域分布与智能DNS
b.动态网页静态化与CDN
c.集中式 vs. 分布式
案例:某大型网络邮件系统的分布式改造过程2.业务处理过程
1) 读写分离设计与实现 a.MySQL主从机的读写分离实现
b.基于同步工具的读写分离实现
2) 数据库拆分的设计与实现 a.按业务横向拆分
案例:金税三期的架构设计
案例:淘宝网横向拆分的架构设计 b.按地域纵向拆分
案例:淘宝网的库存管理架构设计 c.数据库表分区技术
3) 数据库集群的分类及其性能分析 a.Shared Disk vs. Shared Nothing
b.Shared Disk典型代表Exadata的集群设计
c.Shared Nothing典型代码Netezza的集群设计
d.Hadoop的集群设计
4) 数据缓存技术 a.单机缓存与分布式缓存
b.MemCached分布式缓存
案例:MemCached与Spring结合的架构设计
案例:MemCached与Hibernate结合的架构设计 5) 内存数据库 案例:12306的内存数据库设计 a. Redis的运行原理与架构特点
案例:Redis与传统数据库在存储数据时的差异 b.运用Redis进行设计开发
c.内存数据库的局限
验证高并发问题的架构设计
1. 设计测试用例与场景
2. 录制测试脚本执行测试
3. 测试结果的评价与调优
4. 编写性能测试报告
案例:某大型网络开票系统的架构验证过程
学员案例实践
练习:通过自己熟悉的项目,或即将开展的项目,练习使用大并发的相关技术进行架构设计
针对大数据问题的架构设计 云计算 1. 云计算的概念与发展历程
2.云计算的三个层次
a.基础设施即服务(IaaS)
b.平台即服务(PaaS)
案例:国家金税三期的云平台设计 c. 软件即服务(SaaS)
3.云计算的相关技术
a.OpenStack
b.CloudStack
c.Docker
4.国内厂商的应用
案例:阿里云的云平台架构
案例:12306在阿里云中的弹性设计
案例:比格达塔的数据云概念 5.传统架构的云技术转型
a.数据集中化管理
b.进行业务整合
c.提供云端服务
d.开发模式的变化
练习
通过自己熟悉的项目,练习对其进行云技术的转型
大数据
1. 数据统计与BI分析
a.数据仓库与OLAP技术
b.分级数据存储
案例:淘宝网分级数据存储的设计 2.Hadoop大数据分析与处理技术
a.HDFS的工作原理及其特性
b.MapReduce的工作原理及其特性
c. Hadoop集群的优势与劣势
3.Hadoop的生态环境
a.Hive简介及其应用
b.HBase工作原理及其架构
c.Sqoop介绍及其项目应用
案例:基于Hadoop技术的数据分析平台建设
案例:基于HBase构建的海量数据存储与随机历史数据查询方案4.基于Mahout的数据分析与挖掘
a.Mahout数据挖掘工具介绍
b.数据挖掘与分析过程
案例:实际工作中的数据挖掘应用举例 c.Mahout数据挖掘实现
5.NoSQL数据库
a.分布式架构CAP理论
b.BASE原则与弱一致性
c.NoSQL数据库的崛起与发展
d.MongoDB数据库
e.CouchDB数据库
练习
通过自己熟悉的项目,或即将开展的项目,练习使用大数据的相关技术进行架构设计
解决高可靠性的架构设计
避错:持续运行不出错
1. 规范化程序设计
2.平台化软件开发
容错:快速而自动地故障恢复
1. 冗余设计
a.应用集群与数据库集群的冗余设计
b.分布式缓存的冗余设计
c.数据库master/slaves结构的设计
d.hadoop中MapReduce与HDFS的可靠性设计
e.ZooKeeper高可靠软件框架
改错:可查错、可恢复并数据不丢失
1. 数据库的备份与恢复
2. 两地三中心的数据灾备策略
案例:某大型网络开票系统的高可靠设计