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. ActiveMQ(1)---初识ActiveMQ

    消息中间件的初步认识 什么是消息中间件? 消息中间件是值利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成.通过提供消息传递和消息排队模型,可以在分布式架构下扩展进 ...

  2. 阿里云ODPS <====>蚂蚁大数据

    1.命令行客户端工具的安装参考文档:http://repo.aliyun.com/odpscmd/?spm=a2c4g.11186623.2.17.5c185c23zHshCq 2.创建和查看表:ht ...

  3. 解决bootstrap和easyUI部分css类冲突问题。

    今天发现bootstrap和easyui的css类重复用了一个很笨的办法解决了,这种小事网上都不好搜啊. 我先引用的bootstrap后引用的easy UI,bootstrap的会被覆盖,boot的样 ...

  4. git从远程分支clone项目到本地,切换分支命令,其他常用命令

    1.在git命令窗口输入git clone git@139.129.217.217:sg/sgsq_cms.git 回车,即可克隆远程项目到本地.红色字体为远程分支的SSHkey,可以登录到gitli ...

  5. 示例:pm_multiple_models 匹配——形状匹配

    * This example program shows how to use HALCON's shape-based matching* to find multiple different mo ...

  6. MyBatis :Insert (返回主键、批量插入)

    一.前言    数据库操作怎能少了INSERT操作呢?下面记录MyBatis关于INSERT操作的笔记,以便日后查阅. 二.insert元素 属性详解   其属性如下: parameterType , ...

  7. shell一出手

    1.查看有多少个IP访问: awk '{print $1}' log_file|sort|uniq|wc -l 2.查看某一个页面被访问的次数: grep "/index.php" ...

  8. 【Unity】打包安卓APK常见问题

    问题:unity error invalid command android 原因:Android版本较新,Unity版本太旧(如4.X),Unity打包APK时调用Android工具使用的命令已被安 ...

  9. C++继承中关于子类构造函数的写法

    构造方法用来初始化类的对象,与父类的其它成员不同,它不能被子类继承(子类可以继承父类所有的成员变量和成员方法,但不继承父类的构造方法).因此,在创建子类对象时,为了初始化从父类继承来的数据成员,系统需 ...

  10. js控制easyui文本框例子及控制html例子

    easyui $('#value').textbox('setValue',''); //赋值 $('#value').textbox({required:false});//必填,方框变红 $('# ...