2018年微服务架构沿着这5个趋势发展必炸裂

原创 2018年04月14日 22:08:11

在2017年,DevOps领域中增加了大量的生态系统玩家,那么2018年会有哪些变化呢?本文展望了微服务在2018年可能的5个发展趋势,并对各个趋势进行了详细的介绍。

对于DevOps来说,2017年是重要的一年,不仅生态系统玩家的数量大幅增加,而且CNCF项目增加了两倍。展望未来一年,我们期待创新和市场变化进一步加速。以下是我们对2018年微服务趋势的看法:服务网格、事件驱动架构、容器本地安全、GraphQL和混沌工程。

我们将关注这些趋势,以及未来一年将围绕它们建立业务的公司。你看到了什么趋势?在下面留言让我们知道哪些被遗漏了,或者如果你同意/不同意我们概述的内容。

1. 服务网格非常热门

服务网格是一个用于改进服务与服务之间的通信的基础架构层,也是目前最流行的原生云类别。随着容器变得越来越普遍,服务拓扑变得越来越动态,需要更先进的网络功能。服务网格可以通过服务发现、路由、负载均衡、健康检查和可观察性来帮助管理流量。服务网格试图驯服难以控制的容器复杂性。

随着像HAProxy、Træfik和NGINX这样的负载均衡器开始重新定位为数据平面,它的服务网格变得越来越受欢迎。我们还没有看到广泛的部署,但确实知道在生产环境中运行服务网格的业务。此外,服务网格并不仅限于微服务或Kubernetes环境,还可以应用于VM和Serverless环境。例如,国家生物技术信息中心不是运行容器,而是使用Linkerd。

服务网格也可用于混沌工程,“在分布式系统上进行实验的规程,以建立对系统抵御混乱状况能力的信心。”服务网格不需要在每个主机上安装一个守护进程,而是将延迟和失败注入到环境中。

Istio和Buoyant Linkerd是该领域最引人注目的产品。请注意,Buoyant在去年12月为Kubernetes提供的一个开源服务网格 Conduit v0.1。

2. 事件驱动架构的崛起

随着业务敏捷性需求的增加,我们开始看到一个向“推送”架构或者基于事件体系结构的发展趋势,即:一个服务发送一个事件,一个或多个观察者容器异步地运行逻辑来响应该事件,而不需要通知事件生产者。与请求-响应架构不同,在事件驱动的系统中,启动容器中的功能流程和事务负载并不依赖于下游容器中远程进程的可用性和完成情况。另一个好处是,在设计各自的服务时,开发人员可以更加独立。

虽然开发人员可以将容器环境构建为事件驱动架构,但功能即服务(FaaS)本身就体现了这种能力。在FaaS架构中,函数作为文本存储在数据库中,并通过事件触发。一旦调用了该函数,API控制器就会接收消息并通过负载均衡器将其发送到消息总线,消息总线将其排入计划并提供给一个调用容器。执行完后,结果存储在数据库中,并发送给用户,然后函数被分解,直到再次触发。

FaaS的好处包括:1)从编写代码到运行服务的时间缩短了,因为创建或push源码之后不需要做额外操作。2)当函数由FaaS平台(如AWS)管理和缩放时,开销会减少。然而,FaaS并非没有自身的挑战。由于FaaS要求将服务的每个部分解耦,因此可能会出现难以发现、管理、编排和监视的函数的扩散。最后,如果没有依赖项的全面可视化工作,就很难调试FaaS系统,可能会出现无限循环。

目前,FaaS不适合需要长调用、加载大量数据到内存和强一致性能要求的进程。虽然开发人员使用FaaS进行后台工作和临时事件,但我们认为随着存储层加速和平台性能的提高,用例将随着时间的推移而扩展。

在2017年秋季,云计算基金会(CNCF)对550人进行了调查,其中31%使用serverless技术,28%计划在未来18个月内使用Serverless。接下来的调查是询问哪个特定的服务器平台正在被使用。在使用Serverless技术的169项中,有77%表示他们使用了AWS。虽然Lambda可能是领先的Serverless平台,但我们相信在边缘需求中可能会有其他的机会。边缘计算对于物联网和AR/VR用例尤其有效。

3. 安全需要改变

由于内核访问控制,打包在容器中的应用程序从根本上更安全。在VM环境中,唯一可见的点是虚拟设备驱动程序。现在应用程序移动到容器环境,操作系统具有syscalls和semantic含义。这是一个更加丰富的信号。以前的操作符通过将代理放入VM来实现某些信号,但它比较复杂并且需要很多管理工作。容器环境下要提供清晰的可视化和集成功能,而这些工作量与VM环境工作量相比是微不足道的。

考虑到这一点,在451研究调查报告说,安全是容器应用的最大障碍——挑战依然存在! 最初,漏洞是容器环境中的主要安全问题。随着公共注册中心中随时可用的容器映像的数量成倍增加,确保它们没有漏洞变得非常重要。人工处理、镜像扫描和授权认证已经成为一种常态处理方式。

与虚拟机管理程序作为访问和控制点的虚拟化环境不同,任何具有访问内核根的容器最终都可以访问内核上的所有容器。反过来,组织必须确保容器如何与宿主机交互,哪些容器可以执行某些操作或系统命令。增强主机控制以确保正确配置cgroups和namespace对于维护安全性也很重要。

最后,传统防火墙依靠IP地址规则来把关网络流。这种技术无法扩展到容器环境,因为动态编排器会复用IP地址。

运行时威胁检测和响应对生产环境至关重要,通过对容器环境进行指纹识别,并构建详细的行为基线图像,可以容易地检测到异常行为和攻击者的沙箱。一份451的研究报告指出,52%的被调查公司在生产环境中运行容器,这表明容器的运行时威胁检测解决方案正在加速发展。

4. 从REST转变到GraphQL

GraphQL是一种API规范,它是一种查询语言和一个运行时的查询执行操作。它由Facebook在2012年创建,并于2015年开源。GraphQL类型系统允许开发人员自定义数据模式。可以随时添加新的字段,并可以在不影响现有查询或重构客户端应用程序的情况下对字段进行更新。GraphQL是功能强大的,因为它没有绑定到特定的数据库或存储引擎。

GraphQL服务器作为一个单独的HTTP端点运行,它表示服务的全部功能。通过在类型和字段之间定义资源之间的关系(而不是像REST一样的端点),GraphQL可以遵循属性之间的引用,因此服务可以使用单个查询从多个资源中接收数据。此外,REST api需要为单个请求加载多个url,这导致网络跳数增多,降低了查询速度。通过较少的通信次数,GraphQL减少了每个数据请求所需的资源数量,并且返回的数据通常格式化为JSON。

使用GraphQL可以获得比REST额外的好处。首先,客户端和服务器是解耦的,于是可以单独维护它们。与REST不同,GraphQL在客户机和服务器之间使用的语言非常类似,使得调试更容易。查询语句的数据形状与从服务器获取的数据的形状完全匹配,使得GraphQL比SQL或Gremlin等其他语言更加高效和有效。查询语句反映了它们的响应的形状,因此可以检测到偏差,并且不能正确解析的字段可以被识别。由于查询更简单,使得整个过程的稳定性更强。该规范最广为人知的是支持外部api,而我们发现它也被用于内部api。

GraphQL的用户包括 Amplitude、Credit Karma、KLM、NY Times、Twitch、Yelp等。在11月,Amazon通过推出AWS AppSync(包括GraphQL支持)证明了GraphQL的流行程度。观察GraphQL将如何在gRPC和诸如Twitch的Twirp RPC框架这样的替代环境中发展,将会非常有趣。

推荐一个交流学习群:575745314   里面会分享一些资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化这些成为架构师必备的知识体系。还能领取免费的学习资源,目前受益良多

5. 混沌工程变得更加广为人知

最初由Netflix推广,后来被亚马逊(Amazon)、谷歌、微软(Microsoft)和Facebook应用,在系统上进行混沌工程实验,以提高其在生产问题上的确定性。混沌工程在过去的十年里不断发展。它从Chaos Monkeys开始,它们在生产环境中关闭了服务,并且扩展到更大的环境中使用失败注入测试(FIT)和Chaos Kong。

表面上看来,混乱工程仅仅是为了注入混乱。虽然破坏系统可能很有趣,但它并不总是有效或提供有用的信息。混沌工程包含了更广泛的范围,不仅仅是注入故障,还包括其他场景,如流量峰值、异常请求组合等,以发现现存的问题。除了验证假设之外,它还应该显示系统的新属性。通过发掘系统的弱点,团队可以帮助提高弹性,预防糟糕的客户体验。

像神经网络和深度学习这样的复杂的新技术,相比证明它们的有效性,理清它们的工作原理可能会变得不那么重要。混沌工程通过对系统进行整体测试来识别不稳定性,从而帮助应对这一挑战。随着工程师们努力使他们日益复杂的系统变得更加健壮,这可能会成为一种更为普遍的做法。

随着混沌工程变得越来越主流,它可以采用现有的开源项目、商业产品的形式,或者用上文提到的服务网格形式实现。

2018年数据中心行业三大发展趋势

随着2017年的离去,组织的IT专业人员和数据中心管理人员将会展望新的一年,因为每一年都会带来新的变化。无论是将业务从内部部署的数据中心迁移到云环境,还是对数据中心定期健康检查的日益增长的需要,重要的...
  • j6UL6lQ4vA97XlM
  • j6UL6lQ4vA97XlM
  • 2018-03-08 00:00:00
  • 64

2018年微服务将疯狂至死?带你领略不一样的思维历程!

本文是Dave Kerr发表的一篇微服务批判性文章,他认为复杂性是导致微服务将死的一个重要原因,实际上微服务本来是解决复杂性的,将牵一动百的单体架构变成很多独立发展的服务,相互隔离,复杂性关键是因为隔...
  • bntX2jSQfEHy7
  • bntX2jSQfEHy7
  • 2018-01-22 00:00:00
  • 383

在 2018 年初,让我们再谈谈大前端的趋势

上一次写前端趋势这一类的东西,是在去年的这个时候。一年多过去了,又发生了怎样的变化呢?One JavaScript:移动应用前有,使用 React 及 React Native 来开发 Android...
  • j01G58UC80251
  • j01G58UC80251
  • 2018-03-12 00:00:00
  • 692

2018年互联网发展趋势预测

2016年年底,我写了一篇博文,对2017年进行了7项预测,让我们先回顾一下我是如何预测的。我如果我的预测是正确的我将给自己两分,大部分是正确的得一分,预测错误得零分,那将给我最大可能的14分。请看…...
  • DP29syM41zyGndVF
  • DP29syM41zyGndVF
  • 2018-01-12 00:00:00
  • 799

张开辉谈2018年新媒体或自媒体营销发展趋势!

说到新媒体,就得说到报纸、广播、电视等的传统媒体! 报纸和杂志是基本印刷术而出现的纸质媒介;广播是基于无线电传播技术发明的声音媒体;电视是在电信通信和卫星传播技术基础上发明出的视频媒体。 而新媒体则是...
  • seo591
  • seo591
  • 2018-02-09 22:45:31
  • 446

2018年用户体验设计的10个趋势

设计和体验从未像现在这么重要。在过去的10年当中,设计不断适应着用户的新需求,发生了翻天覆地的变化。虽然我们不大可能预测太远的未来,但是我们仍然可以对明年的设计趋势有一个基本的猜测。今天的文章,我们将...
  • dlfeicui
  • dlfeicui
  • 2017-12-07 15:54:13
  • 439

2018世界十大技术发展趋势总结

近日,全球领先的信息技术研究和顾问公司Gartne公布了即将在2018年对大部分企业机构产生显著影响的首要战略科技发展趋势,人工智能依旧是瞩目的焦点。 本次公布的2018年十大战略科技发展趋势,前三...
  • u010321471
  • u010321471
  • 2017-12-27 01:08:49
  • 840

2018年开源技术的10大发展趋势

程序猿(ID:imkuqin) 猿妹 编译编译自:https://opensource.com/article/17/11/10-open-source-technology-trends-2018技...
  • UzV80PX5V412NE
  • UzV80PX5V412NE
  • 2017-12-31 00:00:00
  • 849

推荐 :2018大数据10大发展趋势

“大数据”是今年达沃斯世界经济论坛的热词之一,与会各界都对云计算、大数据等驱动经济数字化转型因素表达了高度关注。2018年,各种规模的组织将会探索数据驱动业务决策以及如何改善盈利的多种方式。那么201...
  • Tw6cy6uKyDea86Z
  • Tw6cy6uKyDea86Z
  • 2018-02-12 00:00:00
  • 443

2018年3大UI设计趋势,你知道吗?

以下内容由Mockplus团队翻译整理,仅供学习交流,Mockplus是更快更简单的原型设计工具。之前小编已经和大家讨论了2018年软件测试的五大趋势,现在让我们一起来看看移动UI设计在2018年会有...
  • jongde1
  • jongde1
  • 2018-02-12 13:23:47
  • 230
收藏助手
不良信息举报
您举报文章:2018年微服务架构沿着这5个趋势发展必炸裂
举报原因:
原因补充:

(最多只允许输入30个字)