2018 年 Service Mesh 元年,被誉为是下一代微服务架构

Stella981
• 阅读 461

微服务适用于开发运维(DevOps),可是这些架构依赖的服务到服务通信在生产环境下运行和管理起来很复杂。这时候Service Mesh闪亮登场了:这是企业扩展、保护和监控应用程序的最佳方式。

2018 年 Service Mesh 元年,被誉为是下一代微服务架构

Service Mesh是一个专用的软件基础设施层,用于控制和监控微服务应用程序中服务到服务的内部通信,让服务到服务通信变得快速、安全和可靠。它通常表现为“数据平面”和“控制平面”。在这种模式下,开发者(“服务所有者”)并不意识到Service Mesh的存在,而运营者(“平台工程师”)被赋予一套新的工具,以确保可靠性、安全性和可见性。如果你在构建云本地应用程序,就需要Service Mesh。

不妨把Service Mesh看成是用路由器和交换机互联的设备组成的网络,只不过在这里,网络存在于应用层(第7层),节点是服务,路由、交付及其他任务卸载给Service Mesh。目的在于,面对这个微服务Mesh,以一种可靠、安全、及时的方式获得请求。这通常是使用“代理”以拦截所有进出的网络流量来实现的。Service Mesh架构中的代理是使用边车(sidecar)模式来实施的:边车在概念上附属于主(或父)应用程序,提供平台功能以补充该父应用程序。借助这种模式,你的微服务就可以将边车用作同一个微服务容器里面的一组进程,也可以用作其自个容器中的边车,充分利用平台功能,比如路由、负载均衡、弹性、深度监控和访问控制。

与开发团队和运维团队交流后,这一点很明显:微服务有助于加快开发速度,但是这种架构面临的复杂性和风险在于微服务依赖的服务到服务通信。Service Mesh是一种应用程序优先的方法,它为微服务提供了一种通信结构(fabric),为DevOps团队提供了它们所需的灵活性和自主性,同时为运维团队提供了生产级应用程序方面所需的策略、可见性和洞察力,以便深入了解微服务环境。

Service Mesh提供了一种强大的微服务通信结构,为扩展容器化应用程序提供了最佳途径,无论应用程序在数据中心还是在云(或两者兼而有之)。最近还兴起了企业级Mesh,以满足企业生产环境的需求,应对其复杂性。Service Mesh不仅需要扩展应用程序,还需要监控和保护应用程序。一套受到支持的基础设施让DevOps团队拥有所需的灵活性和自主性,同时为运维团队提供了生产级应用程序方面所需的策略、可见性和洞察力,以便深入了解微服务。

Service Mesh的优点

不妨考虑一下贵企业在微服务方面的计划。也许贵企业打算在Kubernetes集群中运行10个服务、50个服务、100个服务或1000个服务。那么如何以一种高效而统一的方式在新的微服务和容器环境中管理所有那些服务?

你知道哪个服务在跟哪个服务联系、是否允许它们这样?这种通信是否安全?出现故障时,你如何来调试某个服务?如何在不影响所有应用程序的情况下添加跟踪或日志功能?你知道发布其中一个服务的新版本对上下游服务的性能或质量有何影响吗?

Service Mesh有助于回答那些问题。作为插入在微服务和网络之间的一个透明的基础设施层,它为你在应用程序的通信路径中提供了单一点,以便插入服务、收集遥测数据。你无需更改应用程序就可以做到这一点。

2018年:Service Mesh元年

Service Mesh是个比较新的概念。实际上,在2017年12月的KubeCon大会上宣布2018年是“ServiceMesh元年”之前,大多数人从来没有听说过Service Mesh这个概念。现在市面上有几种开源产品,几家公司在完善受到支持的Mesh,以便减轻管理微服务的负担。Service Mesh如何让企业组织能够进一步利用容器和微服务值得拭目以待。

欢迎加入行业交流群,群主微信:junfhu201(备注任职单位+职位,否则不予通过)

本文分享自微信公众号 - 架构师智库(beijing-tmt)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
待兔 待兔
4个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Stella981 Stella981
3年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Stella981 Stella981
3年前
DevOps世界中的软件开发
!(https://oscimg.oschina.net/oscnet/f40e68cbfe8148deb00f040b4e917a0a.jpg)在整个软件开发过程中,开发人员通常需要花费大量时间来修复错误和漏洞,以便一切按计划进行交付。但是,通过DevOps实践,可以更轻松地管理和保护这些问题。这是由于以下事实:使用DevOps实践的软
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
可莉 可莉
3年前
2018 年 Service Mesh 元年,被誉为是下一代微服务架构
微服务适用于开发运维(DevOps),可是这些架构依赖的服务到服务通信在生产环境下运行和管理起来很复杂。这时候ServiceMesh闪亮登场了:这是企业扩展、保护和监控应用程序的最佳方式。!(https://oscimg.oschina.net/oscnet/c175ae49de6f46daae67c41fca02a204.jpg)Se
Python进阶者 Python进阶者
10个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这