Spring Boot 与 Kubernetes 云原生微服务实践
杨波
前携程 / 拍拍贷技术总监,微服务技术专家
28227 人已学习
新⼈⾸单¥98
课程目录
已完结/共 94 讲
第一章:课程介绍和案例需求 (5讲)
第十章:项⽬复盘、应用和扩展环节 (2讲)
第十一章:附录 Staffjoy 项目源代码解析 (8讲)
时长 14:53
时长 10:29
时长 10:52
时长 05:09
时长 15:06
时长 16:17
Spring Boot 与 Kubernetes 云原生微服务实践
登录|注册
留言
11
收藏
沉浸
阅读
分享
手机端
回顶部
当前播放: 20 | 为什么框架层就要考虑分环境配置?
00:00 / 00:00
高清
  • 高清
1.0x
  • 2.0x
  • 1.5x
  • 1.25x
  • 1.0x
  • 0.75x
  • 0.5x
网页全屏
全屏
00:00
付费课程,可试看
01 | 课程介绍
02 | 背景说明
03 | 课程目标和主要内容
04 | 课程案例需求
05 | 课程补充说明
06 | 为何采用微服务架构?
07 | 架构设计和技术栈选型
08 | 数据和接口模型设计:账户服务
09 | 数据和接口模型设计:业务服务
10 | Dubbo、Spring Cloud和Kubernetes该如何选型(上)
11 | Dubbo、Spring Cloud和Kubernetes该如何选型(中)
12 | Dubbo、Spring Cloud和Kubernetes该如何选型(下)
13 | 技术中台到底讲什么?
14 | Staffjoy项目结构组织
15 | 谷歌为何采用单体仓库(Mono-Repo)?
16 | 微服务接口参数校验为何重要?
17 | 如何实现统一异常处理?
18 | DTO和DMO为什么要互转?
19 | 如何实现基于Feign的强类型接口?
20 | 为什么框架层就要考虑分环境配置?
21 | 异步处理为何要复制线程上下文信息?
22 | 为你的接口添加Swagger文档
23 | 主流微服务框架概览
24 | 网关和BFF是如何演化出来的(上)
25 | 网关和BFF是如何演化出来的(下)
26 | 网关和反向代理是什么关系?
27 | 网关需要分集群部署吗?
28 | 如何设计一个最简网关?
29 | Faraday网关代码解析(上)
30 | Faraday网关代码解析(下)
31 | 生产级网关需要考虑哪些环节?
32 | 主流开源网关概览
33 | 安全认证架构演进:单块阶段(上)
34 | 安全认证架构演进:单块阶段(下)
35 | 安全认证架构演进:微服务阶段
36 | 基于JWT令牌的安全认证架构
37 | JWT的原理是什么?
38 | JWT有哪两种主要流程?
39 | Staffjoy安全认证架构和SSO
40 | 用户认证代码剖析
41 | 服务调用鉴权代码剖析
42 | 如何设计用户角色鉴权?
43 | Spring Boot微服务测试该如何分类?
44 | 什么是契约驱动测试?
45 | 什么是测试金字塔?
46 | 单元测试案例分析
47 | 集成测试案例分析
48 | 组件测试案例分析
49 | Mock vs Spy
50 | 何谓生产就绪(Production Ready)?
51 | Spring Boot如何实现分环境配置
52 | Apollo vs SpringCloudConfig vs K8s ConfigMap
53 | CAT vs Zipkin vs Skywalking(上)
54 | CAT vs Zipkin vs Skywalking(下)
55 | 结构化日志和业务审计日志
56 | 集中异常监控和Sentry
57 | EFK & Prometheus & Skywalking + Kubernetes 集成架构
58 | 本地开发部署架构和软件需求
59 | 手工服务部署和测试(上)
60 | 手工服务部署和测试(中)
61 | 手工服务部署和测试(下)
62 | SkyWalking调用链监控实验
63 | Docker和Docker Compose简介
64 | 容器镜像构建Dockerfile解析
65 | Docker Compose服务部署文件剖析
66 | 将Staffjoy部署到本地Docker Compose环境(上)
67 | 将Staffjoy部署到本地Docker Compose环境(下)
68 | 到底什么是云原生架构?
69 | Kubernetes背景和架构
70 | Kubernetes有哪些基本概念(上)
71 | Kubernetes有哪些基本概念(下)
72 | 理解Kubernetes节点网络和Pod网络
73 | 深入理解Service和ServiceDiscovery
74 | NodePort vs LoadBalancer vs Ingress
75 | 本地测试Kubernetes部署文件剖析
76 | 本地测试Kubernetes环境搭建
77 | 将Staffjoy部署到本地Kubernetes环境(上)
78 | 将Staffjoy部署到本地Kubernetes环境(下)
79 | 生产环境Kubernetes部署文件剖析
80 | 阿里云Kubernetes环境创建
81 | 将Staffjoy部署到阿里云Kubernetes环境
82 | Kubernetes应用动态配置实验
83 | Kubernetes应用金丝雀发布实验
84 | 阿里云资源释放
85 | 课程复盘
86 | 项目扩展和应用
87 | Account服务
88 | Company服务
89 | Mail、SMS和Bot服务
90 | Faraday服务
91 | WhoAmI服务
92 | WWW服务
93 | 前端应用
94 | 结课测试&结束语
登录 后留言

全部留言(11)

  • 最新
  • 精选
大维
波波老师,你这个EnvConfig的多配置设置,和采用springboot的application.yaml(dev/test/uat/prod)的多配置有什么不同呢?

作者回复: EnvConfig里头配置是每个环境已经明确下来的配置(一般不变),比如根域名信息,是否启用https等。application.yaml一般放各个环境的可变配置,比方说jwt secret,DB链接字符串,这些可能会变。当然这个只是一种做法,实际EnvConfig里头的配置也可以都放在application.yaml里头,可以灵活,不必拘泥于形式。

2019-07-22
7
superFan
bobo老师: 我阅读你在github上的代码上有几个疑问: 1.service层的数据库操作基本上都使用了try-catch,实际业务开发也是这样的么,会不会有性能开销; 2.service层 业务处理完后再记录auditLog,会不会存在业务处理完了,但auditLog没有记录的情况,如果有,应该怎么处理; 3.老师提供的代码在生产环境中可以使用么,还只是教学用的代码; 4.现在想做一个springboot的脚手架工程,用于在项目开发中使用,有没有推荐的开源项目list

作者回复: 1. service层的操作用try-catch包起来,很正常,生产级代码通常有很多做错误处理的代码,错误处理的原则是尽早捕获和处理,实际运行时,不出错的话,这些try-catch没有多少额外开销,出错抛异常有一定开销,但这个是必须的。当然,你也可以不捕获直接往外抛,但是有悖于尽早捕获和处理原则。 2. 会出现auditLog没有记录情况,所以一般业务操作完成就要记审计日志,另外如果因为提前抛了异常而漏掉审计日志的话,事后可以通过错误日志进行追溯,另外一般还有DB操作日志可以追溯。 3. 代码是教学参考用,可以作为样板,具体生产使用你仍然需要严格测试+扩展。 4. 除了staffjoy项目可以参考,另外最近看的这个litemall(https://github.com/linlinjava/litemall)也不错,SpringBoot开发的前后分离商城项目,后面我考虑将其改造成类似Staffjoy的微服务云原生项目,欢迎也同时关注。

2019-07-21
5
而立斋
我要赶紧把代码拉下来好好读读

作者回复: 有能力可以直接阅读课程案例项目源码,然后带着问题再看课程,这样效果更好。

2019-07-17
4
mo
额 感觉内容和标题所说的有点差异,看到现在都没有说到saas的架构思想。都是些好浅的知识点 希望多说说有关saas的思想以及落地 谢谢

作者回复: 你好,课程设计重点是微服务和云原生架构,也包括SpringBoot微服务开发和K8s容器云部署,课程案例本身是一个支持多租户的SaaS应用,所以课程稍带也讲解一些多租户和SaaS架构相关内容。anyway,谢谢你的反馈,请看完完整课程后再次给出反馈,谢谢!

2019-07-16
4
John
前面20講鋪墊的都很好啊 這個節奏也剛剛好 到此為止 外圍的事都說的差不多了 期待著波波後面投大乾貨

作者回复: 嗯,波波一直在努力输出干货,不能保证每一课都满足你的需要,但是全部听完课程,相信一定会让你有所收获。

2019-07-18
1
IKKI
这种配置为啥不集中到配置中心?

作者回复: 不同环境的配置可以集中到配置中心去,但是本地还是需要一些配置文件(或者环境变量),来标识当前这个应用的环境信息,这样这个应用才能到配置中心去获取当前环境的配置。 本课程的项目的有些环境信息是编码在代码中的,这个只是课程设计的一种简单做法,实际可以将配置信息尽可能变成配置文件(本地+远程),这样在实际生产中会更灵活。

2021-02-23
IF-Processing
求教,如果使用类似于配置中心的方式进行配置,是不是会比硬编码到代码中更理想些呢,代码是不是与环境无关更好些

作者回复: 硬编码是最差的,其次是本地文件配置,配置中心统一管理最好。

2020-08-13
环境隔离确实重要,免得互相影响,不过这种硬编码的隔离方式在什么时候方便调整控制?

作者回复: 课程案例是有些硬编码的,也可以做到不硬编码,通过配置适配不同环境,具体看业务需要。

2020-03-16
波波老师好,这样直接在项目中写生产的各种配置,会不会导致敏感信息泄露呢

作者回复: 课程项目只是演示,实际生产项目中,需要配合一些配置治理流程,防止敏感配置信息意外泄露。比方说,k8s config/secret需由专门的管理员统一管理和发布,配置的版本控制需要严格权限管理。

2020-01-10
水浒山鬼
如果在开发时使用逻辑控制不同生产部署环境下的处理分支。这些代码会不会遗留在项目代码中?会不会对代码维护产生影响?

作者回复: 要一分为二看,如果是开源的通用框架,当然不能和环境耦合,但是对于企业的具体应用来说,因为企业的环境一般是固定的,所以对框架进行定制,并且引入一些环境判断逻辑,让应用能更灵活适配环境,有时是难免的。通用性和企业定制(引入一定耦合性)一般很难两全,需要折衷权衡。至于对代码可维护性的影响肯定会有一点,但是抽象通用的成本可能更高。

2019-11-21
收起评论