微信号:infoqchina

介绍:有内容的技术社区媒体

StuQ小班课《微服务架构与实践》|尚度元科技CTO王磊主讲

2016-10-11 08:01 StuQ

微服务架构(Microservice Architecture)是近两年在软件架构领域里出现的一个新名词,虽然其诞生时间不长,但在社区的火爆程度已经让很多人意识到它对未来软件领域所带来的影响。

微服务架构提倡将单一应用程序划分成一组小的服务,每个服务运行在独立的进程中,服务间采用轻量级的通信机制互相协作(通常是基于HTTP协议的RESTful API),每个服务都围绕着具体业务进行构建,并且能被独立的开发、测试、构建、部署和交付。

Spring作为著名的JEE框架,也发起了Spring Boot、Spring Cloud等子项目,为微服务的实现和落地提供工具支撑。同时,Netflix OSS开源工具的出现,为完善微服务的生态系统提供了有力的支持。

客观来说,微服务架构涉及的知识广泛,学习曲线相对陡峭,程序员光靠自学摸索,通常需要耗费不少时间精力。


StuQ 特别邀请前 ThoughtWorks 首席咨询师,国内首本微服务中文书籍《微服务架构与实践》的作者王磊,共同推出《微服务架构与实践》精品小班教学,通过专门设计的练习与案例,快速掌握微服务相关的技能。

精品小班课区别于大众在线视频教学,课程设置具有如下特色:

  • 采用在线视频直播授课

  • 以实战为主

  • 在线解答疑问

  • 课后作业 review

精品小班课通过以上方式帮助同学深度、系统地学习微服务架构!

1
讲师简介

王磊

尚度元科技CTO,前ThoughtWorks首席咨询师,国内较早倡导和实践微服务的先行者,多次受邀在大型技术会议主题分享“微服务架构”相关主题,著有国内首本微服务架构相关书籍《微服务架构与实践》一书和 StuQ 微服务技能图谱出品人,在 InfoQ 以及《架构师》上发表多篇关于微服务架构相关文章。

超过10年以上的软件行业经验,从企业应用、互联网应用、服务化平台的架构设计、开发到自动化构建、持续集成、持续交付以及DevOps的转型实施等有较丰富的实践经验。开源软件的贡献者、GDCR西安组织者,敏捷西安的组织者,并译有《Ruby Gems开发实战》一书。


(StuQ 微服务技能图谱)

2
课程简介

本课程分为基础篇和高级篇两部分,旨在通过完整的案例,呈现微服务的开发、测试、构建、部署、运维等实践,帮助学员了解微服务的核心、以及实施过程中的挑战与应对方案。

基础篇将使用Spring Boot、Spring Cloud以及Docker,构建基于微服务架构的活动报名系统。同时,使用Netflix OSS构建服务的支持组件,包括集中化配置中心、服务注册与发现、API网关、容错处理等支撑性服务组件。

高级篇将关注微服务的测试,服务安全、异步任务系统、日志聚合、监控告警以及持续交付流水线等高级话题,为微服务规模化实施提供指导意见。

3
适用人群
  • 有1年以上的Java编程经验

  • 熟悉Spring框架

  • 了解Gradle构建工具

  • 了解持续集成实践

  • 对微服务架构实践感兴趣

4
教学目标

通过本课程,您不仅能了解微服务架构的本质,也将学习到如何使用Spring Boot、Spring Cloud 构建微服务系统(包括REST/HAL、服务注册、服务发现、容错处理、API网关、中心化配置以及服务的安全处理等);同时,也将学习如何建立完整的微服务生态体系,包括持续交付流水线、部署、运维、监控以及告警等机制。

基础篇目标

  • 学习掌握微服务架构的概念与本质

  • 使用Spring boot/Spring Cloud 构建活动报名系统

  • 使用Netflix OSS构建微服务支撑组件(服务注册发现、集中化配置中心、API网关、容错处理)

  • 使用Docker发布服务

  • 使用Docker-Compose在开发环境中运行多个服务

高级篇目标

  • 学习掌握微服务的测试策略与PACT测试

  • 学习掌握微服务的安全机制与OAuth2.0实现

  • 学习掌握微服务间的异步通信机制

  • 学习了解微服务的监控与告警

  • 学习掌握微服务架构的日志聚合

  • 构建微服务的持续交付流水线

5
课程内容

基础篇课程大纲

微服务架构从 0 到 1

  • 微服务架构介绍

  • 微服务架构的本质与优势

  • 微服务与SOA

  • 微服务的设计原则

基于微服务构建活动报名系统

  • 需求理解与分析

  • 技术选型(Java/Spring Boot/Spring loud/REST/HAL/MongoDB)

  • 服务定义与划分

  • 服务支撑组件介绍(服务注册,集中化配置,断路器,服务网关)

  • 思考/练习

Spring Boot 应用实践

  • Spring Boot 介绍

  • Spring Boot的核心功能

  • Spring Boot Demo

  • 练习

Spring Cloud 应用实践

  • Spring Cloud 介绍

  • Spring Cloud的核心功能

  • Spring Cloud Demo

  • 练习

REST/HAL 应用实践

  • REST 介绍

  • HAL 介绍

  • 为什么使用HAL

  • HAL Browser 实践

Docker 应用实践

  • Docker介绍

  • Docker的常用命令

  • 构建Dockerfile

  • 使用Docker-compose

构建第一个微服务

  • 使用Spring-Data-REST实现Event-Service服务

  • 使用HAL完成服务间同步通信

  • 使用HAL-Browser浏览服务接口

  • 使用MongoDB存储数据

  • 使用Docker-compose运行服务

  • 构建Dockerfile

  • 练习

微服务的集中化配置(centralized-config)

  • 为什么要集中化配置

  • 集中化配置的实现原理与方式

  • 使用Spring Cloud Config 实现集中化配置

  • 使用Spring Cloud Bus与RabbitMQ同步多服务配置

  • Spring Cloud Config Demo

  • 练习

微服务的注册与发现(service-discovery)

  • 为什么要服务注册与发现

  • 服务注册与服务发现的实现方式

  • 使用Netflix Eureka/Spring Cloud实现服务注册与发现

  • 使用Netflix Ribbon/Spring Cloud实现客户端负载均衡

  • 使用Netflix Feign/Spring Cloud实现申明式REST调用

  • 练习

微服务的容错处理(circurt-breaker)

  • 微服务下的可用性与故障蔓延(Failure Cascading)

  • 断路器模式的原理与实现

  • 使用Netflix Hystrix/Spring Cloud实现容错

  • 使用Netflix Turbie实现监控聚合

  • 练习

构建微服务网关

  • 为什么需要微服务网关

  • 微服务网关的实现方案

  • 使用Netflix Zuul实现微服务网关

  • 练习

微服务架构与实践总结

  • 微服务的发布与部署

  • 基于微服务的活动报名系统

  • 练习

高级篇课程大纲

微服务的测试

  • 测试金字塔

  • 测试策略与实现

  • 集成测试与契约测试

  • 基于消费者驱动的契约测试PACT

  • 使用JVM-PACT构建契约测试

  • 练习

微服务的安全

  • 微服务下安全的实现方式

  • 使用HTTPS加密传输内容

  • OAuth2.0综述

  • 使用Spring Cloud Security实现活动报名

  • 练习

微服务间的通信

  • 服务间的同步通信

  • 服务间的异步通信

  • 使用Jesque完成报名后的通知

  • 在活动报名系统中整合Jesque

  • 练习

微服务的监控与告警

  • 服务的监控与告警综述

  • 微服务监控与告警常用方案

  • 使用Prometheus实现服务监控

  • 在活动报名系统中整合Prometheus

  • 服务告警

  • 练习

微服务的日志聚合

  • 为什么要日志聚合

  • 日志聚合的常用技术方案

  • 使用ETL实现服务的日志聚合与管理

  • 使用Docker-compose运行ELK

  • 在活动报名系统中整合ELK

  • 练习

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

  • 持续集成

  • 持续交付

  • Jenkins2.0介绍

  • 构建持续交付流水线

  • 练习

微服务的依赖管理

  • 可视化服务依赖图

  • 练习

微服务架构与实践总结

  • 基于微服务的活动报名系统

  • 微服务架构总结

6
学习环境

学习地点:

专属学习 QQ 群 + 在线直播教室

学习工具:

StuQ 在线教室Zoom:

7
开班信息

开班时间:

报名人数满 25 人即开班,11月初 开班

(人员超过 25 名后确定开班,会在正式开课前安排预演)

上课时间:

暂定 每周三 晚 21:00-22:30

上课时长:

每周 1 小时 30 分,共计 12 周课程

课程学习方式:

40 分钟直播视频讲解

30 分钟交流答疑

20 分钟作业点评课

8
课程收费

仅学习基础篇:

价格 698 元,前30名优惠价格 598 元,11月初开班,报名网址:

http://www.stuq.org/course/detail/1089

仅学习高级篇:

价格 998 元, 12 月中旬开班,报名网址:

http://www.stuq.org/course/detail/1090

完整学习该课程

价格 1396 元 

(698 元+998 元= 1696 元,优惠 300 元)

9
课程报名

方式一:移动端点击“阅读原文”,PC端输入网址:http://www.stuq.org/course/detail/1088,进入课程详情页面,点击【立刻购买】直接缴费报名,报名成功后点击【开始学习】填写邮箱及QQ等信息,进而申请加入相应学员群,会有 StuQ 工作人员在学员群内发放上课方式。


方式2.报名咨询。报名课程的用户请加 QQ 群号 461162753,或者扫描微信二维码进入报名咨询微信群,详细了解报名信息,会有 StuQ 工作人员统一解答大家疑问,然后报名缴费。


(微信咨询群)

方式3. 咨询小助手。报名课程的用户也可以扫描小助手的微信二维码,私聊小助手详细了解报名信息,小助手会统一解答大家疑问,然后报名缴费。

感兴趣的同学,请戳阅读原文!

 
InfoQ 更多文章 微服务那么热,创业公司怎么选用实践? 从概念到底层技术,一篇文看懂重塑世界的区块链 微信小程序来了,产品和运营就不需要跪求程序员了? Q新闻丨JavaOne 2016:Java的近期及长远规划;携程开源数据库访问框架Ctrip DAL…… 理性撕逼!分布式事务:不过是在一致性、吞吐量和复杂度之间,做一个选择
猜您喜欢 匆匆六月,匆匆的大学 如何防止在网络上被“人肉”出来? 大话光存储(1)光存储基本原理 重磅推荐:谷歌深度学习教程 七种CSS方式让一个容器水平垂直居中