2018年对于微服务来说是非常重要的一年,这一年Service Mesh开始崭露头角,解决服务间复杂的通信问题,这一年很多国内互联网公司已经有了较为成熟的微服务实践案例,网易云主办的微服务实践沙龙中也曾邀请过多位微服务大咖带来干货分享。2019年微服务领域又有哪些新趋势呢?
在2018年初,来自Redpoint的VC Astasia Myers曾成功预测过Service Mesh,事件驱动的架构,容器本地安全等趋势,而在2019年初,他们认为微服务将在以下领域取得重大进展:
测试自动化持续部署/持续验证(CD/CV, Continuous Deployment/Verification)应急响应云服务费用管理(CSEM, Cloud Service Expense Management)Kubernetes扩展到机器学习领域趋势1:CI来了,自动化测试也该兴起了
传统模式下,测试用例的设计通常用来判断软件能否在不同场景下正确地运行,通常由QA工程师创建和运行测试用例。现在,在持续集成(CI, continuous integration)的pipeline中,软件工程师开始从传统的QA团队中接手部分测试的职责,这也给开发者带来了新的负担。
大部分业务团队都希望有一套能够自动化地设计,运行和汇报结果的软件测试解决方案,并且这套解决方案能够和CI系统无缝兼容,实时检查最新的代码,像人工一样添加注释。这套解决方案还要有UI界面,以便于工程师们能在用户界面中寻找问题,减少漏判。大多数情况下,我们通过界面鼠标点击的方式来完成测试,但是有时这种测试方式并不能覆盖所有场景,而API测试往往能更好地解决这种问题。
在网易轻舟微服务平台中,GoAPI接口测试是以接口生命周期管理为核心理念,以提高微服务测试效率为核心价值的协作平台,提供一站式接口管理、测试方案。通过接入GoAPI测试,德邦快递的自动化测试已经覆盖核心系统主流程,发现缺陷率达到49.8%。
趋势2:高效的持续部署/验证,将替代低效的手动部署
据说在某些金融机构中,有十分之一的DevOps工程师从事的工作是部署软件到生产环境中。持续部署将代码从测试到部署的过程自动化,代替了DevOps工程师的手工操作,假设持续部署软件仅取代全球10%的DevOps工程师的价值,整个持续部署的市场规模也将接近20亿美元。
持续验证在持续部署之上加了一个智能层,从日志和APM中收集事件数据,并通过机器学习技术,去分析导致成功和失败部署的特征。持续验证还应该提供人工介入的接口,以便工程师能提供反馈,提高模型的准确度,并与系统建立信任。此外,持续验证通常还能够安全地回退失败的部署。相信未来持续验证可以帮助持续部署在多云环境下成为一个智能的控制点,它还可以基于服务的特征,去选择最合适的云,区域和配置。
在轻舟微服务平台中,CodePipeline提供一整套端到端的工具链,打通代码检出、编译、镜像构建、部署、测试阶段,帮助团队提升使用微服务架构时的持续集成、持续交付能力。基于Codepipeline,网易考拉的变更频率由每天2次增长到每天1000次以上,结合熔断,限流,降级等策略,软件产品质量提升52%。
趋势3:宕机不用怕,应急响应来“救火”
宕机通常会带来财务损失,所以快速的解决方案非常重要。据Gartner的数据显示,平均每分钟的宕机会给业务带来5600美元的损失,而像Amazon这这大型网站,平均每分钟的损失则高达22万美元。并且每次宕机不但会给业务带来财务损失,还会对品牌造成伤害。
SRE(Site Reliability Engineers,网站可靠性工程师)应运而生,当服务失败的时候,整个SRE团队会收到报警,同时会启动一系列的工作流。应急响应指挥官维护着一份“响应状态报告”,其中记录了事件情况,环境和修复情况。每个团队成员按照预先定义好的模板化的规程去执行解决方案。
PagerDuty,Slack,Jira,Google文档和知识库都是SRE团队用来做事件响应的常用工具。Redpoint认为这些工具可以被整合为端到端的SaaS平台,帮助自动化修复的过程,最终形成最佳实践。这个平台不光要分配角色和启动工作流,还要陈述事件的影响范围,状态,事件时间轴,会加速MTTR(Mean-Time-To-Recovery,平均恢复时间),协作和知识共享。
趋势4:不想花冤枉钱,就请把云服务费用管理重视起来
云服务费用管理(CSEM)不但对工程师和IT团队影响至深,也是整个公司面临的挑战之一。大部分业务都是混合云的部署模式,但是仅使用公有云的企业数量也有增长的趋势,随着公有云市场的扩展,成本管理和预测会变得越来越重要。
尽管市场上已经有很多云服务费用管理的解决方案,但是费用控制对云服务的客户来说依然是一个痛点。一个云服务费用管理平台应该能识别出过载或闲置的资源,需要支持预定和现买现卖,规模优化,退款,还要能设置定制的折扣,并标记异常的花费,还能根据流量的上涨和数据存储需求预测费用,此外服务优化也是关键功能。
趋势5:Kubernetes扩展到机器学习领域
Kubernetes已经成为容器编排的事实标准,它的领域也在不断扩张,未来Kubernetes将成为机器学习技术栈的一部分。比如,Google发布了开源的Kubeflow,通过添加Custom Resources Definitions (CRDs) 到集群中,扩展了Kubernetes的API,使得机器学习的工作负载在Kubernetes中成为一等公民。在KubCon Seattle 2018大会上,Kubeflow已经成为关注度最高的云原生项目。无独有偶,Lyft也基于Kubernetes构建了自己的机器学习平台。还有一些独角兽公司在试图将Kubernetes上的机器学习和分析的工作负载标准化。
你认为2019年微服务会有哪些趋势?欢迎在留言区与我们互动。
参考文献:https://medium.com/memory-leak/5-microservices-trends-to-watch-in-2019-fd2dbd33780d