陈屹力:感谢主持人,再次感谢今天下午到场的各位嘉宾,今天下午的议题是一个标准解读,同时也是微服务标准历经了大概半年时间正式发布,目前标准正在征求意见阶段,后面我们再同步跟进送审稿,最终发布大概在9月份,待会儿我会详细介绍。
首先说一下微服务的定义,微服务的定义公认的是ThoughWorks公司的MartinFlower的博客描述,从他们官方的微博里可以看到微服务架构采用一种小服务来构建应用的方法,每个服务是独立运营,各个服务之间靠标准的RPC或者HTTP进行通信。最重要是服务围绕业务本身去构建,并依赖自动部署机制来独立部署。
大家知道应用架构的整个演变过程,从单体的结构更多的是向集中架构发展到分布式架构,再到微服务架构。集中式架构就是一个War包或者其它形式的格式,发布、运行就可以了,对于资源或者消耗是相对比较少的。二是在维护方面是统一的,哪怕是一个很小的更新也要整体打包发布。
到微服务,整个粒度变得更小了,通过组件化去独立开发和部署,大大有利于应用局部的快速迭代。微服务架构的特性是随着更新迭代的敏捷性,它的需求不易维护和难以扩展,其实是整个单体架构很大的一个挑战。目前云计算、这种越来越庞大的体系,其实传统架构很难去适应新的业务需求。微服务就是在当前这个容器技术非常成熟的情况下,微服务我觉得是一个面临一个变革的趋势。
在他们总结微服务架构的时候也同时给出了微服务的设计原则,通过服务组建化围绕业务能力组织、产品,而非项目化模式,去中心化的治理和管理模式,智能端点和亚管道,技术人员是更多偏向无状态,智能端点更多是在服务端和消费端。故障设计包括熔断、限流这些设计。演进式设计,微服务是慢慢逐步迭代、逐步演进的过程。最后的基础设施,尽可能的让基