课程咨询

【课程编号】: NX20894
【课程名称】: 软件架构及性能调优相关技术培训
【课件下载】: 点击下载课程纲要Word版
【所属分类】: 职业技能培训
如有需求,我们可以提供软件架构及性能调优相关技术培训相关内训
【课程关键字】: 软件架构培训,性能调优培训

课程详情


课程特色

互联网时代的到来,使得互联网上的产品具有创新成本低、需求变化快、用户群体大等特点,促使业务不断扩大,软件功能持续增加,导致单体架构的维护成本、人员学习成本、缺陷修复成本、增加新功能的成本以及系统扩展成本等都在急剧增加,单块架构无法适应互联网时代的快速变化,面临着越来越多的挑战,一方面,代码的可维护性、扩展性、灵活性在降低;而另一方面,系统的测试成本、构建成本以及维护成本在显著增加。因此,随着项目或者产品规模的不断扩大,单块架构应用的改造与重构势在必行。

微服务架构随着RESTful、容器技术、云计算、DevOps、持续交付、敏捷项目管理等IT技术的深入应用,有效的解决了互联网时代遇到的众多挑战,因此微服务架构深受企业的欢迎,并在企业内部所采用。

培训目标

1、学习掌握微服务架构的基础知识;

2、学习掌握常见的集中微服务框架介绍及选型对比(dubbo、springCloud、motan、servicemesh);

3、使学员理解微服务技术架构的服务治理(熔断、降级、限流、自愈、过载保护);

4、使学员理解微服务技术架构本质以及设计的原则;

5、使学员理解分布式架构中高并发场景设计及实战分析(秒杀、抢购);

6、使学员理解分布式架构中间件场景应用(zookeeper kafka、rocketmq);

7、使学员理解如何保证分布式架构的高可用;

8、使学员理解多线程设计实现及案例分析;

9、使学员理解性能优化的方法论;

10、使学员理解代码优化及规范设计;

11、使学员理解JVM调优实战;

12、使学员理解Tomcat/Nginx/RocketMq调优;

13、使学员理解Sql调优;

14、学习掌握微服务间的异步通信机制;

15、学习了解微服务的监控与告警;

16、构建微服务的持续交付流水线;

17、使学员深入理解分布式的技术原理以及应用场景;

18、使学员学会设计微服务架构;

19、解决企业敏捷项目管理持续升级的运维管理问题;

20、使学员能学会监控、服务治理等工作;

21、提供解决问题的方法及思路,避免讲解编码怎么实现,编码实现可以通过补充材料的方式提供,供研发人员线下学习。

22、适当增加一些研发人员自我管理及自我提升方面的思路,如时间管理、自我管理等,不需要大篇幅讲解。

培训对象

1、本课程适合于企业IT架构师、技术经理等角色;

2、本课程适合于软件高级开发工程师;

3、本课程适合于业务需求人员;

4、本课程适合于企业高层管理人员;

5、本课程适合于IT运维人员;

培训方式

1、以课堂讲解、演示、案例分析为主,辅以互动研讨、现场答疑、学以致用。

2、讲师授课方式活跃,能够带动研发人员参与积极性。

3、培训内容理论与实践相结合,通过问答形式了解现在研发人员关注的问题,有针对性的进行讲解。

课程内容:

第一天

第1个主题:互联网时代的架构演变(30分钟)

1、互联网时代特征“快”

2、互联网时代对人性化软件的迫切要求

3、互联网时代产品特点

4、技术的多样性

5、精益创业

6、敏捷项目管理

7、DevOps

8、Docker

9、云计算

10、云原生应用

第2个主题:单体架构剖析(简单剖析单体架构的特点与不足)(30分钟)

1、单体架构产生的背景

2、单体架构的特征

3、单体架构模式

4、单体架构团队划分

5、单体架构出现的问题

6、单体架构模式的不足

7、单体架构的挑战

8、单体架构问题解决思路

9、传统应用架构的问题

第3个主题:微服务架构的基础知识(学习掌握微服务架构的基础知识)(30分钟)

1、为什么需要微服务架构?

2、微服务诞生的背景

3、研发团队:目标、成就感、奖惩、待遇、凝聚力

4、人才培育与成长(人员流动的优势与弊端)

5、微服务解决的问题

6、微服务架构解决方案

7、微服务架构适用的场景

8、微服务架构适用的企业

9、什么是微服务(MicroService)架构?

10、微服务架构是什么?

11、微服务架构思路

12、微服务的本质

13、微服务架构有哪些特征?

14、微服务架构视图

15、微服务架构构件

16、微服务架构的数据库

17、微服务的服务目录

18、SOA与微服务区别

19、SOA架构特点

20、微服务架构特点

21、微服务架构的优势

22、微服务架构的劣势

23、微服务的设计原则

第4个主题:集中微服务框架介绍及选型对比(深入剖析集中微服务框架介绍及选型对比)(90分钟)

1、Dubbo介绍

2、Dubbo优势与不足剖析

3、Dubbo的企业应用案例

4、Dubbo适用场景剖析

5、SpringCloud介绍

6、SpringCloud优势与不足剖析

7、SpringCloud的企业应用案例

8、SpringCloud适用场景剖析

9、Motan介绍

10、Motan优势与不足剖析

11、Motan的企业应用案例

12、Motan适用场景剖析

13、Servicemesh介绍

14、Servicemesh优势与不足剖析

15、Servicemesh的企业应用案例

16、Servicemesh适用场景剖析

17、Dubbo、SpringCloud、Motan、Servicemesh选型建议

第5个主题:微服务架构设计(30分钟)

1、业务需求分析

2、微服务软件架构体系

3、微服务硬件架构体系

4、微服务部署架构

5、业务模块划分

6、高内聚松偶合

7、模块灵活组装

8、松耦合,独立部署

9、SSO单点登录

10、凭证与鉴权

11、分布式事务一致性思考

12、微服务架构构建

13、REST

14、微服务快速弹性

15、高并发

16、微服务数据特征

17、案例:剖析如何对大型复杂系统进行微服务化

18、案例:剖析OpenStack的微服务化

19、微服务最佳实践

20、微服务最佳实践

21、微服务的划分

22、微服务模板

23、微服务向导

第6个主题:微服务架构的服务治理(微服务架构的服务治理)(60分钟)

1、微服务框架

2、服务注册发现

3、集中化配置中心

4、熔断

5、降级

6、限流

7、自愈

8、过载保护

9、API网关

10、容错处理

第7个主题:分布式架构概述(介绍分布式架构)(60分钟)

1、为什么使用分布式架构

2、分布式架构特征

3、CAP理论、BASE思想、RNW理论

4、分布式架构高并发场景设计

5、分布式架构中间件场景应用

a)Zookeeper

b)Kafka

c)消息中间件

d)RocketMQ

6、如何保证分布式架构的高可用

a)复本机制、主从机制、集群

b)异地多中

7、分布式架构高并发场景实战分析

a)秒杀分布式场景实战分析

b)抢购分布式场景实战分析

8、多线程设计实现及案例分析

9、微服务架构的分布式实现

第8个主题:微服务的实施(学习掌握实施微服务的架构)(30分钟)

1、微服务测试面临的挑战

2、黑盒测试、白盒测试

3、自动化单元测试

4、日构建

5、测试驱动开发

6、功能与界面分离设计

7、自动化测试报告

8、微服务的测试策略

9、通过/失败测试模式(Pass/Fail Patterns)

10、数据驱动测试模式(Data Driven Test Patterns)

11、数据处理事务测试模式(Data Transaction Patterns)

12、集合管理测试模式(Collection Management Patterns)

13、性能测试模式(Performance Patterns)

14、流程处理测试模式(Process Patterns)

15、仿真测试模式(Simulation Patterns)

16、多线程测试模式(Multithreading Patterns)

17、压力测试模式(Stress-Test Patterns)

18、展现层测试模式(Presentation Layer Patterns)

19、微服务测试等级

a)单元测试

b)组件接口测试

c)API测试

d)端到端测试

e)UI/UE测试

20、FIRST 原则

a)Fast 快速的

b)Isolated 隔离

c)Repeatable 可重复

d)Self-Validating 自验证

e)Timely 及时的

21、Right-BICEP测试原则

22、CORRECT检查原则

23、测试相关框架与库

24、测试用例的组织Given-When-Then

25、测试的过程

26、微服务测试策略

27、微服务测试实践

28、微服务的PACT测试

29、Pact是什么

30、Pact可以用来做什么

31、Pact的工作原理

32、Pact相关术语

33、Pact适用场景

34、Pact不适用的场景

35、Pact使用实例

36、Pact匹配原则

37、契约测试框架-Pact实践

第9个主题:微服务的安全机制与OAuth2.0实现(学习掌握微服务的安全机制与OAuth2.0实现)(30分钟)

1、微服务的安全介绍

2、微服务的安全机制

3、SSO单点登录

4、凭证与鉴权

5、OAuth2.0是什么

6、OAuth2.0协议

7、OAuth2.0认证授权过程

8、OAuth2.0实现

9、微服务实现OAuth2.0认证

第10个主题:微服务间的异步通信机制(学习掌握微服务间的异步通信机制)(30分钟)

1、轻量级的通信机制

2、实践:轻量级通信机制

3、进程独立

4、分布式架构概念

5、消息队列

6、RPC

7、分布式协调器

8、微服务架构分布式事务解决方案与实战

9、CAP理论

10、BASE思想

11、分布式事务一致性实现原理

12、事务特征

13、补偿型(TCC)

14、异步确保型(可靠消息最终一致)

15、最大努力通知型

16、案例:剖析微服务分布式架构

第11个主题:微服务的运维(学习掌握微服务运维)(30分钟)

1、微服务运维介绍

2、微服务集群监控

3、微服务服务治理

4、持续交付的7个最佳实践

5、链路追踪

6、持续改进

7、线性扩容

8、容量规划

9、案例:剖析如何运维微服务软件系统

10、案例:剖析超大型电子商务平台微服务架构

第二天

第12个主题:微服务的监控与告警(学习了解微服务的监控与告警)(30分钟)

1、监控——Ganglia、Nagios

第13个主题:微服务架构的日志聚合(学习掌握微服务架构的日志聚合)(30分钟)

1、日志聚合——Flume、DistributedLog、Graylog

第14个主题:构建微服务的持续交付流水线(构建微服务的持续交付流水线)(30分钟)

1、什么是持续交付

2、持续交付的发展

3、持续交付的周期模型

4、持续交付的配置管理

5、版本控制

6、依赖管理

7、软件配置管理

8、环境管理

9、持续交付的前提

10、构建与部署脚本构件

11、建部署脚本化的原则与实践

12、自动化验收测试

13、微服务持续交付

14、实践案例:动手实现持续交付

15、持续集成环境

16、基础设施

17、实践:基础设施自管理

18、蓝绿部署

19、灰度发布

第15个主题:微服务架构的实施(微服务的实施与构建)(30分钟)

1、微服务架构的实施

2、单体架构(CRM)

3、传统单体架构的弊端

4、面临的挑战

5、运维效率低

6、改造策略

7、改造后

8、改造后的系统

9、解决对策

10、服务化

11、服务化架构的演进历史

12、基于微服务架构改造单体架构的实践总结

第16个主题:性能调优(软件架构性能调优)(30分钟)

1、性能优化的方法论

2、代码优化及规范设计

3、JVM调优实战

4、Tomcat/Nginx/RocketMq调优

5、SQL调优

第17个主题:性能优化的方法论(软件架构性能优化的方法论)(60分钟)

1、性能优化的方法论

2、软件性能瓶颈跟踪与分析

3、系统性能两个核心概念:吞吐量、延迟

4、吞吐量与延迟之间的关系

5、计算密集型:主要消耗大量CPU资源、不停进行计算。由于依靠CPU性能,一直占用CPU进行计算。

6、IO密集型:磁盘读取、网络IO、web服务等任务,主要需要IO的读取,利用CPU的效率较低,大量时间花费在IO上。

7、缓存化(Redis、Memcache)

8、本地缓存、分布式缓存

9、时空交换思想

10、空间换时间

11、预计算

12、异步调用

13、超时控制

14、合并写

15、随机读写转化为顺序写

16、消息队列

17、从代码层面调优

18、从算法层面调优

19、从数据库层面调优

20、从硬件层面调优

21、从网络层面调优

22、从架构层面调优

23、从语言平台层面调优

24、从业务逻辑上进行调优

25、采用分布式架构

第18个主题:代码优化及规范设计(软件代码优化及规范设计)(30分钟)

1、从代码层面优化性能

2、将磁盘IO转化为网络IO

3、将网络IO转化为内存读写

4、代码实现批量处理

5、从算法层面优化性能

6、实现多线程、多进程并发处理

7、随机读写转化为顺序读写

8、采用列式数据库

9、采用内存数据库NoSQL

10、代码编写规范设计

11、代码编写规范制定

12、代码走查

13、代码规范的完善与更新

第19个主题:JVM调优实战(JVM调优实战)(60分钟)

1、JVM调优概述

2、JVM数据类型调优

3、堆(heap)与栈(stack)调优

4、Java对象的大小

5、基本的回收策略

6、垃圾回收流程

7、选择垃圾回收算法

8、垃圾回收调优

9、垃圾回收的瓶颈

10、引用计数

11、标记清除

12、复制

13、标记整理

14、增量收集

15、分代收集

16、串行收集

17、并行收集

18、并发收集

19、年轻代

20、年老代

21、持久代

22、堆大小设置

23、回收器选择

24、常见配置参数

25、线程监测

26、内存泄漏检查

27、垃圾回收的悖论

第20个主题:Tomcat/Nginx/RocketMq调优(中间件Tomcat/Nginx/RocketMq调优)(60分钟)

1、Tomcat调优概述

2、Tomcat的运行模式

3、Tomcat执行器优化

4、Tomcat配置参数优化

5、Tomcat内存优化

6、Tomcat线程池

7、Tomcat组件优化

8、Tomcat Executor参数优化

9、Tomcat Connector参数优化

10、Tomcat的JVM参数优化

11、Tomcat系统属性优化

12、Tomcat性能测试工具

13、Nginx调优概述

14、Nginx配置文件调优

15、Nginx进程数调优

16、Nginx使用epoll的I/O模型

17、Nginx内核参数调优

18、Nginx缓存调优

19、Nginx gzip压缩优化

20、Nginx expires缓存优化

21、Nginx网络IO事件模型优化

22、Nginx隐藏软件名称和版本号

23、Nginx防盗链优化

24、Nginx禁止恶意域名解析

25、Nginx禁止通过IP地址访问网站

26、Nginx HTTP请求方法优化

27、Nginx防DOS攻击单IP并发连接的控制,与连接速率控制

28、Nginx严格设置web站点目录的权限

29、Nginx将nginx进程以及站点运行于监牢模式

30、Nginx通过robot协议以及HTTP_USER_AGENT防爬虫优化

31、Nginx配置错误页面根据错误码指定网页反馈给用户

32、Nginx日志相关优化访问日志切割轮询,不记录指定元素日志、最小化日志目录权限

33、Nginx限制上传到资源目录的程序被访问,防止木马入侵系统破坏文件

34、Nginx FastCGI参数buffer和cache配置文件的优化

35、Nginx php.ini和php-fpm.conf配置文件的优化

36、有关web服务的Linux内核方面深度优化(网络连接、IO、内存等)

37、Nginx加密传输优化(SSL)

38、Nginx web服务器磁盘挂载及网络文件系统的优化

39、使用nginx cache

40、RocketMq调优概述

41、RocketMq网络参数

42、RocketMq硬资源限制

43、RocketMq硬盘的模式

44、RocketMq调度机制优化

45、RocketMq mqbroker和mqnamesrv的内存调整

第21个主题:SQL调优(SQL调优)(60分钟)

1、表结构设计优化

2、库设计优化

3、预处理SQL

4、批量提交

5、异构索引

6、产品规则

7、简化SQL

8、加索引

9、删除索引

10、异步写

11、读写分离

第22个主题:软件架构及性能调优相关技术培训总结(对两天的课程内容进行总结)(30分钟)

1、微服务架构总结

2、分布式架构总结

3、软件调优总结

尹立庆

多年从事人工智能、深度学习、大数据、区块链、云计算、物联网研发工作经验,资深软件架构师,数学博士,北航移动云计算硕士,Cloudera大数据认证(图1),项目管理师(PMP)认证(图2),移动云计算专家,主要研究方向包括人工智能、深度学习、机器学习、数据挖掘、数据分析、大数据、云计算、移动开发、互联网营销、电子商务、项目管理等;曾就职于阿里等互联网企业,IBM、华为等知名大型企业,现任某大型知名互联网企业首席架构,负责人工智能、深度学习、机器学习、数据挖掘、数据分析、大数据、区块链、云计算、PaaS平台研发工作。

IT从业近二十年,秉承理论与实践相结合,在学习中实践,在实践中学习,积累了丰富的理论与实践经验,并且乐于将自己的经验分享。尹老师具有敏锐的目光与头脑,发现并集成整合社会资源,为企业节省资源并创造价值,达到为合作伙伴创收的目的。曾为多家国内知名企业提供培训与咨询,包含阿里集团、华为、中国移动、中国电信、中国联通、当当网、中石油、中石化、中国电网、中国银行、中国工商银行、浦发银行、阿尔卡特朗讯、中航国际等。拥有人工智能、深度学习、机器学习、数据挖掘、数据分析、大数据、区块链、物联网、大流量、高并发、分布式的大型网站架构和设计经验。曾主导过多个人工智能、深度学习、机器学习、数据挖掘、数据分析、区块链、物联网、私有云、公有云建设项目,早些年也主导过ERP、CMS等软件项目,积累了丰富的实践经验,这些项目中包含多个数百万、上千万的大型项目。项目经历:呼叫中心人工智能客服研发项目、贵州省政府云呼叫中心建设项目、广东发展银行电营、运维大数据分析项目、中石油工程设计西南分公司云计算项目评审委员、中石油大数据挖掘项目,电商库存预测大数据分析项目、大型ERP、电子商务、CRM、电子政务等多个项目。

尹老师在工作中研究新技术、新框架、及时更新知识体系,并长期坚持编写架构核心代码。在技术平台方面,善于TensorFlow、Keras、Hadoop、Spark、Docker、Kubernetes、OpenStack、Storm等技术平台的应用与运维。深入理解TensorFlow、Keras、Hadoop、HDFS、HBase、MapReduce、Zookeeper、Hive、Sqoop、BigTable 等人工智能、大数据技术和开源框架理论。对于云计算体系有深刻认识,及独到的见解,如OpenStack的技术架构、安装部署、运维等。在移动云计算方面,善于设计与建设云计算体系;也善于移动云计算相关的咨询与培训。在项目管理方面,善于使用敏捷项目管理方法,把客户的需求变更作为常态,作为软件架构设计的一部分,减少需求变更带来的返工;善于捕捉、挖掘、分析客户需求,为用户提供满意的产品。

讲师经验

1、阿里巴巴集团云计算、大数据、区块链、物联网咨询师

2、百度云计算、大数据、区块链、物联网咨询师及讲师

3、中国移动多省人工智能、大数据、区块链、物联网、云计算特聘讲师

4、中国移动多省Docker特聘讲师

5、中国移动研究院微特聘讲师

6、中国联通总部人工智能、大数据、区块链、物联网、云计算特聘讲师

7、中国电信人工智能、大数据、区块链、物联网、云计算、虚拟化特约讲师

8、中国人民银行人工智能、大数据、区块链、物联网特聘讲师

9、中国工商银行人工智能、大数据、区块链、物联网讲师

10、花旗银行人工智能、大数据、区块链、物联网讲师

11、招商银行人工智能、大数据调优、区块链、物联网讲师

12、中信银行人工智能、分布式数据库、区块链、物联网讲师

13、中国航天三院人工智能、大数据、区块链、物联网咨询师

14、中国石油人工智能、大数据、区块链、物联网、云计算特聘讲师

15、中国石化人工智能、大数据、云计算特聘讲师

16、中国电力科学研究院流计算特聘讲师

17、西安电信十所人工智能、大数据架构设计、区块链、物联网讲师

18、RedHat(中国)大数据咨询师

19、中电28所人工智能、大数据、区块链、物联网特聘讲师

20、北京中电普华人工智能、大数据、区块链、物联网特聘讲师

21、中国石油东方地球物理公司大数据咨询师

22、当当网人工智能、云计算、大数据咨询师

23、北航人工智能、云计算、大数据、区块链、物联网特聘企业讲师

24、阿尔卡特-朗讯(Alcatel-Lucent)虚拟化与OpenStack培训特约讲师

25、中石油工程设计西南分公司云计算数据中心建设项目

26、广东发展信用卡精准营销项目

27、广东发展银行电营、运维大数据分析项目

28、电商库存预测大数据分析项目

29、中航国际大综贸易云计算规划项目咨询、培训讲师

30、北京民生软件SaaS平台研发咨询师

31、北京立达资本项目管理信息系统解决方案咨询师

32、曾任大型ERP、电子商务、CRM、电子政务等项目经理

项目经验

1、云呼叫中心人工智能客服项目研发

2、云呼叫中心PaaS平台首席架构师

3、贵州省政府云呼叫中心建设项目

4、广东发展信用卡智能精准营销项目

5、广东发展银行电营、运维大数据分析、区块链、物联网项目

6、中石油工程设计西南分公司云计算项目评审委员、培训讲师

7、中石油人工智能、大数据挖掘、区块链、物联网项目,项目经理

8、电商库存预测大数据分析项目

9、智能物流、智能供应链管理项目

10、中航国际大综贸易云计算规划项目咨询、培训讲师

11、北京民生软件SaaS平台研发咨询师

12、北京立达资本项目管理信息系统解决方案咨询师

13、曾任大型ERP、电子商务、CRM、电子政务等多个项目的项目经理

其他课程推荐


培训课程 主讲
物流行业客服人员服务素质与沟通技巧培训 郑文茵
商务礼仪与职业形象塑造建立 郑文茵
商务礼仪与职场形象塑造 郑文茵
情商管理及情绪压力舒缓 郑文茵
班组长高效团队管理及班组日常管理 郑文茵
服务人员服务素质与沟通技巧 郑文茵
TTT-企业内训师初级育成 郑文茵
TTT-电信企业内训师初级育成 郑文茵