Staffjoy 是 Spring Boot & Kubernetes 云原生微服务实践,是一个贴近生产的微服务+云原生教学案例,本文依波波老师的课程。新开了一个坑,希望能搞懂微服务框架,感兴趣的同学也欢迎讨论~
目录
1 Staffjoy 项目目标
2 Staffjoy 案例需求
2.1 公司背景
2.2 应用需求
① 功能需求
② 非功能需求
2.3 产品页面
3 项目先决条件
3.1 面向人群
3.2 主要开发工具
3.3 额外说明
1 Staffjoy 项目目标
通过该项目希望掌握以下几点:
- 掌握微服务架构和前后分离架构设计
- 掌握基于 Spring Boot 搭建微服务基础框架
- 进一步提升 Java/Spring 微服务开发技能
- 掌握 Spring Boot 微服务测试和相关实践
- 理解 SaaS 多租户应用的架构和设计
- 理解可运维架构理念和相关实践
- 掌握服务容器化和容器云部署相关实践
- 理解云时代的软件工程流程和实践
如果对于微服务框架有所了解或者接触过该框架的同学应该不难理解,而且如果绕开 Spring Boot 直接学习微服务框架恐怕是有点难度,建议大家先把 Spring Boot 搞懂,然后再来学习微服务~
2 Staffjoy 案例需求
2.1 公司背景
顾名思义,Staffjoy 项目正是 Staffjoy 公司(2015-2017)开发并在 Github 上开源的,该项目属于工时排班(Scheduling)SaaS 服务,原版是基于 golang 语言开发的。
Staffjoy 原版(golang)链接:https://github.com/staffjoy/v2
本项目是基于该项目改编的 Java/Spring 版本,因此基于 Java 和 Spring boot 框架,大家可放心使用~
2.2 应用需求
① 功能需求
功能其实也比较简单,毕竟是教学案例:
- 管理员 Admin 管理公司和排班
- 雇员 Worker 管理个人信息
② 非功能需求
主要有以下三点:
- SaaS + 接受定制部署
- 一键部署到 Kubernetes 容器云
- 营销和客服友好(Marketing & Customer Friendly)
2.3 产品页面
首页产品介绍和注册:
产品订阅计划和报价:
登录页:
MyAccount 雇员账户管理页:
管理员排班界面:
3 项目先决条件
3.1 面向人群
主要是针对熟悉 Java/Spring、Web/HTML/JavaScript 和 MySQL 的 java 开发工程师~
3.2 主要开发工具
开发的同学应该都挺熟悉:
- JDK 8 + Maven
- Intellij IDEA or Eclipse STS
- MySQL + Workbench
- Node.js + npm
- Docker
3.3 额外说明
Staffjoy 项目(教学版)链接:spring2go/staffjoy
教学版基于 Staffjoy 原版改造,语言换成了 Java,去掉了 gRPC API Gateway,默认采用邮件通知~
总结
大家如果有疑问都可以评论提出,有不足之处请大家批评指正,希望能多结识这方面的朋友,共同学习、共同进步。