跟我做一个 Java 微服务实战项目(8周直播) 进行中
¥1699

课程介绍

  • 开课时间:2017 年 02 月 15 日

  • 持续时间:8 周

  • 上课时间:每周四晚 21:00~22:00

  • 学习形式:直播视频讲解 + 交流答疑 + 作业点评

  • 学习环境:专属学习 QQ 群 + 在线直播教室 ZOOM

  • 免费观看课程预演直播回放视频

  • 满25人开班


课程背景

  • 微服务是一种软件架构风格,它是以专注于单一责任与功能的小型功能区块为基础,利用模组化的方式组合出复杂的大型应用程序,各功能区块使用与语言无关的 API 集相互通讯;微服务架构设计风格代表了下一代的架构设计思想,配合现在的容器工具(如 Docker),可以在软件开发流程、部署、服务维护等各方面产生新的生产效率提升;通过微服务可以更好地体现业务逻辑、更快地交付软件,并且借助 IAAS 平台,能够快速地扩展服务支撑更大的访问流量压力。

  • StuQ 特邀请迅雷技术总监刘俊强老师开设《跟我做一个 Java 微服务实战项目》直播课程,结合实际工程应用案例帮助学员快速掌握 Java 微服务架构实践的核心技能和应用思想。


课程简介

  • 整个课程将以 eMall 示例项目为贯穿(专门为该课程编写的示例 —— 在线商城项目),并且在每一节后面都添加了课后习题部分。

  • 课程以架构设计历史简述为始,结合常用技术框架及工具帮助学员快速上手实现第一个微服务,再通过微服务实践过程中需要注意的数据模型、服务间通信等来进行多个微服务的设计实践,最后从测试、部署的角度来叙述在微服务最后上线及维护的相关事宜。

  • 课程将从“初始微服务”来简述服务架构设计风格的发展历程和微服务的由来; 通过“Java 与微服务”来介绍常用的快速上手 Java 微服务技术框架;通过“微服务间关系”、“数据模型设计与处理”、“微服务安全加固”课程来详细阐述微服务在实战过程中的原则和技巧;

  • 通过“微服务测试”、“微服务部署”、“微服务与虚拟化、容器化”课程来帮助学员掌握微服务测试到最后上线及服务的实践。


注:满25人确定开班

大咖导师


迅雷技术总监,极客邦 EGO 会员。 9 年以上互联网 / 移动互联网开发经验,6 年以上技术管理经验,擅长移动 App 和 Web 网站研发管理、项目管理,负责过千万级用户社交产品的技术架构体系建设;经历过 Web 2.0 及移动互联网创业浪潮,曾任创业公司技术负责人,从零构建技术团队完善技术架构并成功支撑亿级请求,现任迅雷技术总监; 早期全栈工程师,带过移动客户端、服务端、大数据分析、运维、智能硬件团队,对于开源项目了解、对于新技术和技术趋势有着良好的理解;对于如何在创业公司及成熟公司内带领研发团队进行敏捷开发和研发流程优化有着自己的方法,对于如何进行研发团队建设有着良好的经验,对于如何进行架构优化来适应快速增长的流量有着丰富的实战经验。

课程大纲

第一节:初识微服务

  • 服务架构设计发展概述

  • 微服务简介

  • 服务的独立性与自主性

  • 服务的弹性与容错性

  • 自动化环境

  • 示例项目 eMall 介绍

第二节:Java 与微服务

  • Java 微服务常用框架:Spring Boot

  • Java 微服务常用框架:Dropwizard

  • Java 微服务常用框架:J2EE (Java Platform,Enterprise Edition)

  • 版本依赖关系工具:Apache Maven

  • 版本依赖关系工具:Gradle

  • 版本依赖关系工具:其它工具

  • 如何设计服务:领域驱动设计原则

  • 如何设计服务:将领域元素转换为微服务

  • 如何设计服务:应用与服务架构

  • 如何设计服务:创建 RESTful API

  • 【课后操作练习题】Git、Maven 工具安装

  • 【课后操作练习题】使用 Dropwizard、Spring Boot 创建 eMall 项目微服务

第三节:微服务间关系

  • 服务注册与发现

  • 服务调用

  • 服务间通信

  • 【课后操作练习题】使用 Zookeeper 作为服务发现

  • 【课后操作练习题】使用 Consol 作为服务发现

第四节:数据模型设计与处理

  • 微服务数据定义:从领域设计到实体

  • 微服务数据定义: 数据的持久性

  • 微服务数据定义: 跨服务数据共享

  • 微服务数据定义:CQRS

  • 消息系统与协议:消息系统

  • 消息系统与协议:常用协议

  • 【课后操作练习题】使用 Kafka 作为消息系统

  • 【课后思考题】有哪些常用开源消息系统,适用场景有哪些?

第五节:微服务安全加固

  • 网络分隔

  • 数据私密性保证

  • 身份识别与信任

  • 【课后操作练习题】HMAC、API 密钥识别方式的实现

  • 【课后思考题】深度防御该如何做?

第六节:微服务测试

  • 测试分类

  • 不同环境下的测试:单服务测试

  • 不同环境下的测试: 预生产环境测试

  • 不同环境下的测试: 生产环境测试

  • 【课后操作练习题】使用 Mock 工具进行测试

  • 【课后思考题】测试与研发过程的衔接时机问题

第七节:微服务部署

  • 自动化工具

  • 应用打包:JAR、WAR、EAR?

  • 应用打包:容器化

  • 应用打包:应用打包的最佳实践

  • 应用配置

  • 提升运维友好度

  • 度量指标与健康检测

  • 日志管理

  • 【课后操作练习题】将应用配置与应用程序分隔开的 WAR 包

  • 【课后思考题】微服务依赖部署关系该如何解决?

  • 【课后思考题】灰度发布该如何来做?

第八节 Part I:微服务与虚拟化、容器化

  • Linux 虚拟化简介

  • 常见虚拟化方案介绍

  • 虚拟化与 Java 微服务实践

  • Linux 容器简介

  • Docker 介绍

  • Docker 与 Java 微服务实践

  • 【课后操作练习题】构建 eMall 项目的 Docker 部署镜像

第八节 Part II:微服务应对高并发实践

  • 拥抱故障

  • 容量规划

  • 功能降级

  • 高扩展性

  • 自动伸缩

  • 课后习题

  • 【思考题】什么样的状况下不应该使用微服务?

课后收获

  • Java 微服务实践经验
  • 微服务架构设计风格的适用场景及实践技巧
  • 虚拟化、容器化与微服务间关系
  • 以开发、测试、运维等多方位角色来进行微服务实践
  • 更为全面的视角看待微服务架构对于开发流程、风格带来的改变

适用人群

  • 对于系统的设计、开发、部署、测试和运维感兴趣的工程师

  • 2 年以上 Java Web 应用开发经验者

  • 想掌握微服务架构设计风格的工程师或架构师