目标:
1.学习软件架构设计基础知识,掌握架构分析的一般方法;
1.1 理解架构设计的组成和基本概念
1.2 掌握使用软件架构设计的一般方法进行领域分析、技术和数据架构设计;
1.3 了解软件架构设计在整个软件过程中地位和作用
2.了解云计算、大数据、区块链、物联网、AI的基本概念和应用,理解这些成熟度比较高的新技术对于现实系统架构的意义。
2.1 云计算:云计算简史、分类、关键技术、安全体系、云计算的规划与部署、行业和企业应用
2.2 大数据与人工智能:大数据概念、组成和常用算法、系统体系架构、分布式协调、分布式通信、、大数据存储、处理和展示技术
2.3 物联网简介
3.着重理解微服务架构的整体构成、掌握微服务架构设计,了解微服务架构相关技术,熟悉SpringCloud体系,学会使用微服务来对系统进行分析和重构。
3.1 了解微服务架构的基本概念和组成、核心要素,以及微服务架构对软件研发组织的变革和相适应;
3.2 掌握微服务架构的技术组成,以及其基本原理和关注点;
3.3 熟练掌握Spring Cloud的微服务架构体系,并以此理解微服务的整体技术组成
3.4 理解如何对已经存在的系统的微服务化的流程和注意事项。
第一部分 软件技术架构
一:软件架构介绍
1.软件架构设计的特点、层次、分类
2.软件架构的主要理论、方向和趋势
3.软件生命周期进程模型介绍
二:软件架构和需求
1.概念和分析视点、物理视图、逻辑视图
2.需求分析、表达和质量控制
三:技术架构视图─面向对象程序设计原则与模式及方法论
1.衡量软件系统质量的标准
2.面向对象设计的基本原则
3.用GRASP模式指导架构设计:
4.软件架构设计的关键因素
四:用UML辅助系统分析与设计
1.面向对象和UML基础知识
2.需求分析和UML
3.架构设计和UML
4.UML中的常见疑难问题辨析
5.借鉴RUP的设计过程
五:架构的选择和考虑因素
1.选择的困难
2.架构师的职责和隐喻
3.架构的十六大典型组成因素和选择思路
4.架构的总体质量评估
第二部分 逐步进入成熟期的新技术体系:云计算、大数据、物联网和AI
一:云计算
1 云计算概述:简史、基本特征和分类、技术体系
2 云计算技术:基础架构、关键技术、管理、安全体系
3 企业实践:规划和部署、行业和企业因公
4 不只是技术:云计算与战略、商业创新平台
二:大数据
1.大数据基础理论:ACID、CAP、BASE;常见算法和数据结构
2.大数据系统体系架构:资源管理调度、分布式协调、分布式通信
3.大数据存储:文件系统、键值存储、扩展模型
4.大数据处理、展示的常见模型
5.一种特殊的数据架构:区块链简介和应用场景
三:AI简介
1. 人工智能的基本概念和应用方向;
2. 人工智能与大数据
3. 机器学习:泛型和架构,自己分布式算法
4. 基于数据分析的人工智能算法和应用特点
四:物联网简介
1.物联网的概念、组成
2.物联网标识技术、传感器技术
3.物联网的运行环境和应用层技术
4.应用领域和展望
第三部分:微服务架构
一:应运而生的微服务和微服务架构的核心要素
1. 软件研发组织的模式变迁:软件研发组织和项目成功要素、传统软件模式下的软件研发组织、CS、web模式下的软件研发组织、大规模集成软件模式的软件研发组织、云计算和服务化模式下的软件研发组织
2. 当前的技术和常见的项目组织管理模式:云计算以及云计算对开发的意义、软件服务化的浪潮、当前技术模式下软件研发组织的范围、团队管理和康威定律、云原生软件研发组织的:微服务、持续交付、DevOps、敏捷基础设施以及12要素;
3. 项目经理/产品经理的核心职责和方法:项目经理工作内容、经典的项目经理职责与能力、执行项目基本流程和方法、云计算和微服务条件下项目经理承当职责、团队、集中治理和领导
4. 技术架构师的核心职责和最佳实践:什么是软件架构、价格师的职责和比喻、架构师的原则方法12要素、架构要求的标准、代码的治理、与现实的妥协:技术债务
二:微服务技术架构
1. 微服务架构技术介绍:软件系统的发展趋势:微服务,持续交付、微服务架构的概念和解决的痛点、微服务架构的构成、常见微服务架构的比较
2. 微服务架构的软件设计要点
2.1 微服务的设计原则:领域驱动和业务建模、自动化的文化、内部实现的隐藏、去中心化、可独立部署、隔离失败、高度可观察
2.2 分解单块系统
2.3 部署和持续集成
2.4 测试的模式
2.5 监控
2.6 安全
2.7 CAP原理
2.8 规模化的微服务:断路器、隔离、幂等操作、缓存、自动伸缩等、动态服务注册、文档服务
2.9 Docker技术
3. SpringCloug微服务架构介绍
3.1 SpringBoot简介
3.2 SpringCloud Eureka
3.3 SpringCloud Ribbon
3.4 SpringCloud Ribbon
3.5 SpringCloud Hystrix
3.6 SpringCloud Feign
3.7 SpringCloud Zuul
3.8 SpringCloud Config
3.9 SpringCloud Bus
3.10 SpringCloud Stream
3.11 SpringCloud Sleuth
3.13 不断发展的SpringCloud
三:旧系统的微服务化
1. 软件系统的体系架构变迁:中心式、分布式;软件分层;SOA、云计算和微服务;旧系统改造的可能性
2. 软件系统的功能特征对架构的选择: 单应用、CS模式用用、层架构的应用、复杂度的因素、安全的因素
3. 常见老旧系统架构的改造技术以及服务化的迁移设计:主要流程、理想的集成技术、领域驱动的服务划分、共享数据库、同步与异步、编排和系统、版本管理、绞杀者模式