[如需转载,请联系本人]
过去的几个月,我作为独立咨询师,为多个传统企业提供了微服务架构的培训、咨询以及交付工作。实际上,传统企业在过去多年的业务积累中,由于组织架构、业务发展和市场竞争等综合因素,技术体系相对封闭,缺乏快速交付的理念。因此,微服务的出现,加之社区的热捧,导致很多传统的团队过于追热而并没有完全理解微服务。
经过2015年的快速普及,微服务的优势被越来越多的传统组织和企业所认可,但由于架构相关的知识本身比较抽象,虽然各大会议上有很多互联网公司的案例分享,但开发者似乎依然很难全面了解微服务架构。
所以,希望通过本系列的文章以及视频,以一个模拟的案例为背景,以持续交付和DevOps为主线,帮助初学者理解微服务架构,并能通过动手实验,了解相关的实践以及方法论。
精彩课程已经出炉,请移步这里
为什么搞这么个系列
1.微服务涉及内容广泛,学习成本高
微服务架构提倡将单一应用程序
划分成一组小的服务
,每个服务运行在独立的进程中
,服务间采用轻量级的通信机制
互相协作(通常是基于 HTTP 协议的 RESTful API ),每个服务都围绕着具体业务进行构建,并且能被独立的开发、测试、构建、部署和交付
。
客观来说,微服务架构所涉及的内容,已经不仅仅是架构本身
,还包括了持续集成
、持续交付
、自动化测试
、部署/运维、监控
以及DevOps
等多个方面,这些方面互相配合、相辅相成,才能在微服务实施的过程中展现威力。
一个完整的微服务系统,在实施的过程中,可能还要考虑服务的公共支撑部分
,包括但不限于:
日志聚合
(将不同服务实例上的日志聚合起来,便于分析、统计和定位问题)监控
和告警
(监控每个服务的状态,必要时产生告警)- 服务的
注册和发现
机制 - 服务的
认证
和鉴权
服务构建
和打包机制
- 服务间的
接口测试
持续集成
/持续交付流水线
服务依赖
关系管理- ……
对于这么多的内容,如果能基于模拟场景的理解与练习,再借鉴各大会议上诸多公司的微服务实施案例,能够快速理解并开始尝试。
2.《微服务与实践》一书,该更新了
2015年4月,我开始撰写《微服务架构与实践》一书,当时国内微服务架构的概念还谈的比较少,所以《微服务架构与实践》侧重讲了微服务的理论基础和诞生背景,并分享了我在ThoughtWorks就职期间,实现微服务的工作方式(我们以持续交付和DevOps为核心,构建服务开发模板,并基于AWS实现快速发布,快速监控,快速反馈)。同时,也探讨了我们如何将遗留系统改造成微服务架构的策略和步骤,但由于精力有限,很多细节无法一一展开讨论。
另外,书中的大部分例子都是以Ruby和AWS
为主,很多读者也提出了建议,希望给出采用Java实现的例子,更容易理解和使用。
当今时代,技术发展的速度越来越快,诞生的框架、工具越来越多,虽然有心更新书的内容,但时间和精力都无法快速更新并发布新版,所以,这次希望能通过这个系列,先将过去的一些实践细化,包括DevOps、持续集成、持续交付以及使用Pact等实践,并采用Java(基于Spring Boot/Spring Cloud的快速发展)实现一个模拟的案例。
3. 为感兴趣的传统开发者提供可用的案例
过去两年微服务的快速发展,已经有很多传统企业开始尝试使用微服务解耦业务系统。传统企业和互联网企业的业务形态不一样,互联网公司业务变化快,响应速度快,组织愿意积极尝试开源的工具和方法论,降低交付成本和缩短交付周期。互联网领域中,大部分的产品,本身就是基于分布式系统构建,所以微服务的概念只是新瓶装旧酒。
而传统企业在过去多年的业务运作积累中,综合多种因素(组织结构、业务发展等),技术体系相对封闭,缺乏持续交付的理念。如果光有微服务的理论基础,和业界的成功案例,不动手尝试持续交付、DevOps等,很难有深刻的理解。
Github上微服务相关的实现Repo蛮多,但作为完整系列的不多。
所以,基于这些原因,结合过去为企业实施微服务架构培训的内容,也希望能输出这个系列。
受众用户是谁
本系列的受众用户,主要是年轻(1~3年)的Java开发者、传统应用的IT架构师,以及对微服务感兴趣的童鞋们。
希望通过本系列,能将微服务、持续交付、Docker以及DevOps等技术,作为整体输出,帮助大家缩短系统了解微服务的成本。
数据说话
关于IT社区对微服务的关注度和市场的需求数据,请看下图,一个字🔥。
图的上部分是Google Trends上关于
Microservice
的增长趋势。图的左下部分是
Microservice
相关关键字的增长速度,Breakout
表明在搜索的区间内,其增长的幅度超过5000%。图的右下部分是Indeed.com中对于
Microservice
的市场招聘需求的增长曲线。(趋势来了,挡都挡不住,提升个人竞争力,赶紧哈~ 😝)
总结
好的,进入正题,请移步课程