2019年微服务5大趋势,你pick哪个?

2019年微服务领域趋势包括自动化测试兴起,持续部署与验证智能化,应急响应体系完善,云服务费用精细化管理,及Kubernetes拓展至机器学习。这些趋势将推动微服务架构更成熟,提升软件质量与运维效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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年微服务会有哪些趋势?欢迎在留言区与我们互动。

点击这里了解网易云轻舟微服务平台

参考链接:medium.com/memory-leak/

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

相关文章:
【推荐】 【专家坐堂】四种并发编程模型简介
【推荐】 SpringBoot入门(一)——开箱即用

### Git Cherry-Pick 的概念 Git cherry-pick 是一种用于将特定的提交(commit)应用到当前分支的操作工具。它允许开发者从另一个分支挑选某个或某些具体的提交记录,并将其合入到当前的工作分支中[^2]。 通过该操作,可以有效地解决跨分支协作中的部分功能集成问题,而无需合并整个分支的历史记录。这使得团队成员能够更加灵活地管理代码变更,特别是在需要针对某次具体修改进行快速修复或者特性移植的情况下非常有用。 #### 主要特点 - **精确控制**:可以选择单个或多个指定的提交来应用。 - **保持历史清晰度**:不会引入不必要的中间状态或其他无关更改。 - **独立性**:即使源分支存在冲突或复杂依赖关系,目标分支仍然能单独完成所需改动的应用。 --- ### 使用场景分析 以下是几种常见的使用场景: 1. **热修复发布** 当生产环境遇到紧急问题时,可以通过 `git cherry-pick` 将解决问题的相关提交直接应用于维护版本的分支上,而不必等待开发主线上的全部更新同步过来[^4]。 2. **特性迁移** 如果某一新特性的实现分布在不同阶段被分别提交到了实验性质的专题分支里,则可以用此方法把这些相关的提交逐一搬运至主干或者其他长期支持型分支之中[^3]。 3. **错误修正传播** 开发人员发现自己之前做的一个小调整实际上也适用于另外一些地方(比如文档改进),那么就可以利用这种方式把那个孤立的小修缮带到那些区域去执行同样的优化处理过程[^1]。 4. **避免重复劳动** 在多人合作项目当中经常会出现这样的情况——两个人几乎同时做了差不多的事情却因为沟通不够而导致最后都要重新做一遍;如果事先知道对方已经完成了这部分任务的话,完全可以借助于此技术轻松获取他们的成果从而节省大量宝贵的时间资源投入进去再去做别的更重要的事情上去考虑如何进一步提升产品质量和服务水平等方面做出贡献出来才行啊! --- ### 基本语法与参数解析 标准形式如下所示: ```bash git cherry-pick [<options>] <commit>... ``` | 参数名 | 描述 | |---------------------|--------------------------------------------------------------------------------------| | `<commit>` | 要拾取的具体提交哈希值 | | `--edit` | 编辑所创建的新提交的消息 | | `-n`, `--no-commit` | 应用更改但不自动生成新的提交 | | `-m parent-number` | 指定父级编号当面对合并提交时 | | `-s` | 添加 Signed-off-by 行 | | `-x` | 自动生成一条消息表明这是由原来的哪个提交衍生出来的 | | `--ff` | 若可能则尝试快进 | | `-S[<keyid>]` | GPG签名 | 示例演示: 假设我们有一个名为 featureA 的分支包含了几个有用的提交,现在想把这些提交加入到 master 分支中。 切换回 master 并拉取最新数据后运行下面命令之一即可达成目的: ```bash # 单独选取一个提交 git cherry-pick abcdefg # 连续选取一系列连续的提交 (注意顺序是从旧到新) git cherry-pick start_commit..end_commit # 排除第一个提交外其余都选 git cherry-pick ^start_commit end_commit ``` --- ### 处理潜在冲突的方法论 尽管大多数时候一切顺利无误发生任何异常状况的可能性极低,但仍有可能面临文件内容差异无法自动协调的情况。此时系统将会暂停进程提示用户手动介入解决矛盾之处后再继续前进下去直到完全结束为止[^4]。 一旦检测到冲突,请按照以下步骤操作: 1. 打开涉及冲突的文件查看标记位置; 2. 修改相应的地方消除分歧; 3. 使用 `git add` 或者 `git rm` 来确认解决方案已被采纳; 4. 输入最终版的信息保存下来形成一个新的正式记录条目。 恢复中断流程有两种方式可供选择: - 完成所有待办事项之后调用 `git cherry-pick --continue`; - 放弃尚未完结的部分转而恢复正常状态可通过 `git cherry-pick --abort`. ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值