课程简介
在现代软件开发中,架构设计是至关重要的,它决定了软件的质量、可维护性、可扩展性和性能。因此,在开发过程中充分重视架构设计,制定合理的架构设计方案,可以帮助团队在短时间内完成高质量的产品,也有利于项目的后续维护和升级工作。
本课程详细、系统的讲解了软件架构设计的原则、方法和最佳实践,并深入讲解架构的高可用、高性能、高扩展怎么做。课程通过理论加实践,把架构知识归并串联起来,使学员更易掌握架构的主线脉络,掌握软件架构设计的核心知识和技能,提高学员软件设计和开发能力,为未来的软件开发工作打下坚实的基础。
课程收益
1.了解架构的演进与历史,从单体架构到垂直架构到微服务,到云原生架构的产生原因及不同架构的设计思想。
2.掌握架构设计的6步方法,从需求分析、应用架构设计、技术架构设计、物理架构设计、数据架构设计、接口设计完成架构的完整生命周期。
3.掌握应用架构的设计方法,高可用的6脉神剑方法
4.了解秒杀的流量拦截方案:机房外部、统一接入层设计、网关设计、缓存设计
5.掌握提升单机性能的核心方法:cpu、io
6.掌握单机优化的技术架构优化方法:接口优化、参数优化、业务优化、服务拆分、服务依赖优化
7.掌握单机优化的数据架构优化方法:读写分离、分库分表、数据迁移、NOSQL的使用
受众人群
技术经理、架构师、高级开发工程师
课程周期
3天(18H)
课程大纲
标题 | 授课内容 |
模块一:大型互联网架构 | 1.了解大型互联网架构的特点 (1) 高并发 (2) 大流量 (3) 迭代快 (4) 业务高连续 (5) 大数据 2.明白大型互联网架构的难点 (1) 要高可用 (2) 高扩展 (3) 要高性能 (4) 好的体验 (5) 高响应 (6) 支持海量存储 |
模块二:架构演进历程 | 1.了解熟悉单一应用架构、垂直应用架构分布式服务架构、微服务架构、服务网格ServiceMesh等架构特点及关键技术 2.掌握容器化和容器编排技术 3.掌握不同阶段时间选择合适的架构体系能力 4.明白单体架构、微服务架构,中台架构的优缺点 5.掌握基本的架构设计原则 |
模块三:企业架构设计方法 | 1. 架构实践全景图 2. 业务架构设计 3. 应用架构设计 4. 技术架构设计 |
模块四:架构设计6脉神剑 | 1.明白需求驱动产品迭代生命周期全流程,掌握架构设计的6脉神剑 (1) 产品设计 (2) 应用架构设计 (3) 技术架构设计 (4) 数据领域架构设计 (5) 物理拓扑设计 (6) 接口设计 2.掌握从0到1设计架构能力 3.掌握挖掘需求,技术选型,具备实现能力 |
模块五:如何成为优秀的架构师 | 1.掌握架构师所需技能,完善属于自己的技能图谱 2.敢于挑战不同阶段的能力,反求诸己找差距 |
模块六:堵-IAAS层高可用 | 1.总结工作中遇到的严重的故障问题 2.双机房高可用 3.数据库主从 4.中间件高可用 |
模块七:堵-微服务高可用 | 1.上游不可信:限流及常见的限流算法 2.下游不可信:熔断降级 3.下游超时: 超时控制 4.内部不可信:服务隔离、线程隔离、DB隔离等 5.兄弟不可信:负载均衡 6.外部不可信:重试 |
模块八:高可用实践 | 1.控制高可用风险期望的措施 2.完善研发规范 3.高可用解决方案:系统加固、中间件治理 、问题排查等 4.搭建监控告警平台 5.混沌工程 |
模块九:服务治理与管控工具 | 1.常见的服务治理平台 2.服务治理平台核心技术分析 (1) 服务分组 (2) 权重调整 (3) 流量路由 (4) 服务熔断配置 3. APM应用实践 pinpoint、skywalking 4. 监控平台选型 物理监控、Jvm监控、日志工具 5. jvm问题定位工具 6. Arthas、Jprofiler、火焰图 |
模块十:外部流量优化 | 1.秒杀场景的解决方案 2.堵住机房外流量 3.优化统一接入层,网关层 4.缓存的设计与治理 (1)缓存的使用 (2)缓存的高可用架构 (3)缓存的刷新 (4)缓存的穿透、击穿、雪崩 |
模块十一:单机性能优化 | 1.影响单机性能的2大要素:qps,rt 2.服务自身性能优化(代码,业务,参数优化)能 3.服务纵向优化:Redis缓存设计、异构ES、分库分表、列式存储、IO/内存、缓冲优化 4. 横向优化:降低依赖链路、引入超时机制,快速失败、引入熔断限流、rpc调用升级,http-》dubbo -》 GRPC、同步转异步消息、流式计算flink 5. 架构优化:同步 VS 异步、核心 VS 边缘、前台 VS 后台、升级版本、新存储(tidb vs mysql)等 |
模块十二:横向副本优化 | 1.多域名优化 2.集群机房架构设计 3.冷热资源 4.初识单元化 |
模块十三:扩展性的落地实现 | 1.扩展性场景方案 2.好的扩展性设计原则 3.支付平台扩展性设计 4.扩展性设计解决方案:编码扩展、存储扩展、架构扩展 5.JavaAgent、SPI使用能力 6.服务编排,扩展性架构设计 |
模块十四:云原生架构的建设 | 1.运维侧选型 2.研发侧CICD建设 3.容器化迁移过程 4.容器化带来的好处 (1) 弹性扩容 (2) 金丝雀发布 (3) 流量治理 (4) 流量染色 (5) 冷热部署 |
模块十五:架构的哲学 | 1.明白架构是有性格的,考量非技术因素 2.明白技术从来都不是天外飞仙,靠的都是点滴的积累 |
Haley Ying
百林哲咨询(北京)有限公司专家团队成员
Haley Ying
百林哲咨询(北京)有限公司专家团队成员
Haley Ying
百林哲咨询(北京)有限公司专家团队成员
Haley Ying
百林哲咨询(北京)有限公司专家团队成员
Haley Ying
百林哲咨询(北京)有限公司专家团队成员
Haley Ying
百林哲咨询(北京)有限公司专家团队成员
Haley Ying
百林哲咨询(北京)有限公司专家团队成员