背景
前一段时间把极客时间的《Spring Boot & Kubernetes 云原生微服务实践》这一课程学完了,感觉有不少收获,至少能够确认之前的不少做法是正确的当然也有不少野路子。总想抽点时间做一下回顾,记录一下。
课程介绍
课程内容一共由94讲,内容还是比较丰富的,本文只能起到稍微丰富的导读作用。
讲师介绍
杨波,资深架构师,微服务技术专家。曾在拍拍贷担任基础架构研发总监,主导了拍拍贷的微服务升级改造,同时投入了很大资源进行容器云平台的研发,推动云原生技术在拍拍贷的试点和落地。
2012~2015 年,在携程担任框架研发总监,主导微服务核心中间件的研发和 SOA 体系建设,推动了携程微服务架构的升级改造。
更早之前,曾在 eBay 中国研发中心作为核心开发人员参与 eBay 开放 API 平台的研发工作。 杨波老师具有丰富的一线实战经验,多次在 InfoQ 发表技术文章,并在大型技术会议上进行分享,受到广泛好评。
课程目标和内容
-
掌握微服务架构和前后分离架构设计
-
掌握基于 Spring Boot 搭建微服务基础框架
-
进一步提升 Java/Spring 微服务开发技能
-
掌握 Spring Boot 微服务测试和相关实践
-
理解 SaaS 多租户应用的架构和设计
-
理解可运维架构理念和相关实践
-
掌握服务容器化和容器云部署相关实践
-
理解云时代的软件工程流程和实践
教学系统架构
课程的前置条件
- 掌握基本的Java后端开发基础知识(java基本语法,IDE使用,maven的使用)
- 拥有至少1个上点规模的项目的开发经验
- 听过docker,Kubernetes,微服务等概念
- 敢于挑战和富有技术热情
精彩推荐
主流微服务技术栈的对比和分析
本部分分析了Dubbo,SpringCloud和Kubernetes这三种微服务技术体系的优劣,在不同团队和场景下的适用程度。最后给出了SpringBoot+Kubernetes的技术栈建议。
JWT在小型微服务系统中的应用方式
微服务开发中常见问题实现方式
- 微服务的代码组织形式
- 统一异常处理实现方式
- 检查注解的实现
- 返回值的统一封装
- 采用域名隔离具体IP限制
- 采用profile隔离各种场景配置
各种实用工具
- swtich hosts
- Kubernetes如何配置
- docker compose如何使用
- .env的使用
- Sentry
- swagger
- skywalking
各种环境的部署实操演示
主要收获
- 真正了解Docker compose,并将公司的项目也写成了docker compose实现一键式安装和启动,将环境准备时间降低到30分钟
- 了解了如何进行参数配置以及不同profile的常见配置方式
- 了解到了Apollo和skywalking,考虑尝试后替换SpringConfig和Zipkin
- 了解到一线大厂微服务开发的常见实现方式
- 了解到了JWT在微服务下的应用方式,准备应用在项目中。
- 看到了在阿里云上部署Kubernetes集群的全过程,大大降低了上云的难度
参考资料
- https://time.geekbang.org/course/intro/204
- https://github.com/spring2go/staffjoy-ppt
- https://github.com/spring2go/staffjoy