2018年对于微服务来说是非常重要的一年,这一年Service Mesh开始崭露头角,解决服务间复杂的通信问题,这一年很多国内互联网公司已经有了较为成熟的微服务实践案例,网易云主办的微服务实践沙龙中也曾邀请过多位微服务大咖带来干货分享。2019年微服务领域又有哪些新趋势呢?

在2018年初,来自Redpoint的VC Astasia Myers曾成功预测过Service Mesh,事件驱动的架构,容器本地安全等趋势,而在2019年初,他们认为微服务将在以下领域取得重大进展:

  1. 测试自动化

  2. 持续部署/持续验证(CD/CV, Continuous Deployment/Verification)

  3. 应急响应

  4. 云服务费用管理(CSEM, Cloud Service Expense Management)

  5. 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

本文首发自网易云社区,转载请注明出处。

相关文章:
【推荐】 网易容器云平台的微服务化实践(一)
【推荐】 多大规模的数据才值得用大数据的方式来处理?

2019年微服务5大趋势,你pick哪个?的更多相关文章

  1. 微服务应用新趋势:Service Mesh、AIOps和中台化

    微服务技术由于天生支持快速迭代.弹性扩展的特点,使企业能够在不确定性下提升发展速度及抗风险能力,受到了越来越多的关注.当前,云服务商纷纷试水微服务产品,最为典型的,当属推出轻舟微服务平台.剑指整个微服 ...

  2. 深入解析DC/OS 1.8 – 高可靠的微服务及大数据管理平台

    深入解析DC/OS 1.8 – 高可靠的微服务及大数据管理平台 大家好,欢迎大家参加这次DC/OS的技术分享. 先做个自我介绍,刘超,Linker Networks首席架构师,Open DC/OS社区 ...

  3. 2019年微服务实践第一课,网易&谐云&蘑菇街&奥思技术大咖深度分享

    微服务的概念最早由Martin Fowler与James Lewis于2014年共同提出,核心思想是围绕业务能力组织服务,各个微服务可被独立部署,服务间是松耦合的关系,以及数据和治理的去中心化管理.微 ...

  4. 带你十天轻松搞定 Go 微服务之大结局(分布式事务)

    序言 我们通过一个系列文章跟大家详细展示一个 go-zero 微服务示例,整个系列分十篇文章,目录结构如下: 环境搭建 服务拆分 用户服务 产品服务 订单服务 支付服务 RPC 服务 Auth 验证 ...

  5. 掌握业界最新工程实践 | 了解AIOps下一代微服务等最新趋势

    近年来,IT应用越来越复杂,一旦出现故障,诊断越来越困难,使用传统技术来管理机器数据的组织会让其运维团队不堪重负.幸好随着大数据.机器学习和AI技术的飞速发展,智能化运维给这一现状带来了改变. 那么就 ...

  6. 微服务架构下 CI/CD 如何落地

    本文系云原生应用最佳实践杭州站活动演讲稿整理.杭州站活动邀请了 Apache APISIX 项目 VP 温铭.又拍云平台开发部高级工程师莫红波.蚂蚁金服技术专家王发康.有赞中间件开发工程师张超,分享云 ...

  7. 我眼中的ASP.NET Core之微服务

    ### 前言 前几天在博客园看到有园友在分享关于微软的一个微服务架构的示例程序,想必大家都已经知道了,那就是[eShopOnContainers](https://github.com/dotnet- ...

  8. ELK-6.5.3学习笔记–使用filebeat管理微服务日志

    微服务日志打印. 转载于http://www.eryajf.net/2369.html 上边是输出了nginx日志,从而进行展示,以及各种绘图分析,而现在的需求是,要将微服务当中的日志汇总到elk当中 ...

  9. 《深入理解Spring Cloud与微服务构建》书籍目录

    转载请标明出处: https://blog.csdn.net/forezp/article/details/79735542 本文出自方志朋的博客 作者简介 方志朋,毕业于武汉理工大学,CSDN博客专 ...

随机推荐

  1. 2Linux常用命令-Liunu就该这么学

    常用系统工作命令 1.echo 用于在终端输出字符串或变量提取后的值,格式为“echo [字符串 | $变量]” 2.date date "+%Y-%m-%d %H:%M:%S" ...

  2. E0264 Unable to execute '"/usr/bin/codesign" ...'

    E0264 Unable to execute '"/usr/bin/codesign" ...' http://docwiki.embarcadero.com/RADStudio ...

  3. JavaScript学习-1

    本章目录: --------①数据类型. --------②定义变量. --------③类型转换. --------④运算符. --------⑤比较符. --------⑥if语句. ------ ...

  4. 一个linux bbr存在的调用顺序bug

    最近跟踪bbr的状态转换的代码,发现一个问题: [,min_rtt_us=,full_bw=,cycle_idx=,pacing_gain=,cwnd_gain=,rtt_cnt= [,min_rtt ...

  5. Linux:sudo,没有找到有效的 sudoers 资源。

    首先,这是因为用户的权限不够导致的. 使用 ls -l /etc/passwd 查看所有用户及权限.只有可读权限(r),说明用户的权限不够. 因此,我们可以用以下方法修改用户权限: 1. su roo ...

  6. unity编程心得

    1.  不要通过public变量 从工程面板 直接 拖 GameObjct 的引用, 当这样的public变量很多 ,子物体很多,又没有做成预制体,,别人重新移植这段功能会很麻烦,,应该用GameOb ...

  7. python的int方法实现数据类型转换

    int方法默认以十进制来实现数据类型的转换: 举例: str1=" #给定的内容最好是纯数字,当然也可以是数字再掺杂点别的,最好别掺杂,因为会报错 print(type(str1),str) ...

  8. Page Visibility(网页可见性) API与登录同步引导页实例页面

    页面1  HTML代码: <p id="loginInfo"></p> JS代码: (function() {     if (typeof pageVis ...

  9. python 删除非空文件夹

    import os import shutil os.remove(path) #删除文件 os.removedirs(path) #删除空文件夹 shutil.rmtree(path) #递归删除文 ...

  10. [leetcode]84. Largest Rectangle in Histogram直方图中的最大矩形

    Given n non-negative integers representing the histogram's bar height where the width of each bar is ...