目前,行业内基于云原生思想的开源项目,重点在于管理、控制微服务以及微服务架构下服务之间的通信问题。它们有效的解决了“服务异构化”、“动态化”、“多协议”场景所带来的east/west流量的管控问题,而针对north/south的流量控制仅仅提供了ingress/egress做流量入口,出口的管理。

为了解决云原生环境下的north/south流量控制问题,Ambassador开始走入大家的视线。Ambassador是一个网关,其中以Enovy作为具体策略的执行者,Ambassador抽象到控制平面,下发一些的网关控制指令。具体架构如下所示:

从架构图能够清晰的看到,Ambassador以Enovy基础扩展而来,实现思路上同样采取“控制平面”、数据平面想分离的设计思想。在容器生态环境下,无论是对kubernetes的traefik,还是istio下的Ingress-gateway都是强有力的扩展。

Ambassador有哪些特性呢?

异构化服务支撑

云原生架构下各个服务要求只要遵循相同的通信规范即可,因此不再强调语言,架构等一致性问题。Ambassador恰好能够有效的把请求流量导入到异构下的各个服务,并且完成服务的请求的管理控制。

支持基于各个服务的配置,更能够进一步实现“超时”,“速率限制”,“身份验证策略”等网关级别的细粒度控制。

能够支持不同层级的通信协议,L7协议包括HTTP、HTTP/2、grpc、trpc-web、websocket,L4协议TCP。

动态服务

服务更新会导致应用程序不断变化。Ambassador能够友好的支撑云原生应用的动态特性,具备如下特性:

  • 允许在生产测试,支持不同的灰度发布策略

  • 细化可观察性指标,有力管控服务行为

  • 配置信息的无感之变更,不会对最终用户产生影响

分散工作流程

云原生的应用下,允许不同的服务开发针对其自身的服务进行优化。

Ambassador为了满足这个特性,能够允许各个开发团队自身维护自己的服务,并且独立接入和使用Ambassador的配置信息,一改之前网关层统一配置变更思路,从而避免影响其他运行服务。

Ambassador部署

Ambassador提供了多种不同的部署方式来满足用户需求。包括kubernetes yaml部署,helm部署,docker image部署以及docker compose部署等。既可以作为独立的程序运行提供网关能力,同样能够与kubernetes,istio等云原生的框架集成,来充当入口流量的管理者。

以docker image部署说明Ambassador的部署配置。

docker run -it -d -p 8080:8080 --name=ambassador --rm quay.io/datawire/ambassador:0.73.0 --demo

查看Ambassador日志,确定运行情况。

AMBASSADOR: using '/ambassador/ambassador-demo-config' for configurationAMBASSADOR: not watching for Kubernetes config2019-07-17 08:22:55 kubewatch [9 TMainThread] 0.73.0 INFO: No K8s2019-07-17 08:22:55 kubewatch [9 TMainThread] 0.73.0 DEBUG: cluster ID URL is d6e_id://00000000-0000-0000-0000-000000000000/default2019-07-17 08:22:55 kubewatch [9 TMainThread] 0.73.0 DEBUG: Kubernetes is not available, so not doing CRD check2019-07-17 08:22:55 kubewatch [9 TMainThread] 0.73.0 DEBUG: cluster ID is 07eb43c8-1166-5145-a060-45e4dd907e10 (from hardcoded ID)AMBASSADOR: starting with environment:====AMBASSADOR_CLUSTER_ID=07eb43c8-1166-5145-a060-45e4dd907e10AMBASSADOR_CONFIG_BASE_DIR=/ambassadorAMBASSADOR_NAMESPACE=defaultAMBASSADOR_NO_KUBEWATCH=no_kubewatchAMBASSADOR_ROOT=/ambassador====AMBASSADOR: launching worker process: 'env' 'PORT=5050' 'python3' 'demo-services/auth.py'AMBASSADOR: launching worker process: 'python3' 'demo-services/qotm.py'AMBASSADOR: starting ads…………08:24:00] "GET /auth/v0//ambassador/v0/favicon.ico HTTP/1.1" 200 -ACCESS [2019-07-17T08:23:59.084Z] "GET /ambassador/v0/diag/ HTTP/1.1" 200 - 0 17012 69 62 "10.20.50.164" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.142 Safari/537.36" "7481ee18-307e-4d23-9c82-e0a623389655" "10.20.1.180:8080" "127.0.0.1:8877"ACCESS [2019-07-17T08:24:00.254Z] "GET /ambassador/v0/favicon.ico HTTP/1.1" 401 UAEX 0 57 4 - "10.20.50.164" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.142 Safari/537.36" "0013e864-1128-4e03-8814-49ed6e498d11" "10.20.1.180:8080" "-"ACCESS [2019-07-17T08:24:00.259Z] "GET /ambassador/v0/favicon.ico HTTP/1.1" 200 - 0 1150 8 4 "10.20.50.164" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.142 Safari/537.36" "9b0702c0-3800-4447-90aa-6bebb5a711fb" "10.20.1.180:8080" "127.0.0.1:8877"

基于docker image启动时,ambassador采用默认的config配置信息完成初始化工作。

访问Ambassador:

http://{ip}:8080/ambassador/v0/diag/

初始化默认用户名admin,密码admin。能够正常的看到访问页面

Ambassador,云原生应用的“门神”相关推荐

  1. K8s 文档增加反种族歧视声明 | 云原生生态周报 Vol. 54

    作者 | 陈洁.高相林 业界要闻 Kubernetes 文档增加反种族歧视声明 所有 Kubernetes 相关的文档统一加上了反种族歧视的声明 Header,以表达社区坚决反对种族歧视的立场.此外, ...

  2. 云原生生态周报 Vol. 14 | K8s CVE 修复指南

    业界要闻 Mesosphere 公司正式更名为 D2IQ, 关注云原生. Mesosophere 公司日前发布官方声明正式更名为:D2iQ(Day-Two-I-Q),称关注点转向 Kubernetes ...

  3. 初探云原生应用管理(二): 为什么你必须尽快转向 Helm v3

    系列介绍:这个系列是介绍如何用云原生技术来构建.测试.部署.和管理应用的内容专辑.做这个系列的初衷是为了推广云原生应用管理的最佳实践,以及传播开源标准和知识.在这个系列文章的开篇初探云原生应用管理(一 ...

  4. 应用交付老兵眼中的Envoy, 云原生时代下的思考

    Envoy 是云原生时代的明星,其本质是反向代理负载均衡类软件,领域上归于应用交付,那么作为应用交付领域的老兵如何看待 Envoy,Envoy 又引发了哪些关于传统应用交付领域的思考? 关于作者 林静 ...

  5. 13种重要的云原生工具,让交付过程更快

    来源 | SDNLAB 责编 | 寇雪芹 头图 | 下载于视觉中国 SUSE收购Rancher Pure Storage收购Portworx Veeam收购Kasten VMware收购Octarin ...

  6. 乱中有变,云原生从“大爆发”说起 | CSDN人物志

    [编者按]云原生已无处不在,<云原生人物志>是CSDN重磅推出的系列原创采访,我们关注云原生中每一个技术人.公司的身影.知微见著,窥见云原生价值与趋势. 2021新年之初,来听听Tetra ...

  7. “寒武纪大爆发”之后的云原生,2021年走向何处?

    [编者按]云原生已无处不在,<云原生人物志>是CSDN重磅推出的系列原创采访,我们关注云原生中每一个技术人.公司的身影.知微见著,窥见云原生价值与趋势. 2021新年之初,来听听Tetra ...

  8. 阿里技术专家光锥:亿级长连网关的云原生演进之路

    光锥 阿里巴巴新零售淘系技术 读完需要 20 分钟 速读仅需 5 分钟 AServer 接入网关承载整个阿里集团的入口流量,负责亿级用户的长链保活,支持上万路由策略转发,是连接上亿用户与后端几十万服务 ...

  9. cube云原生机器学习平台-架构(三)

    全栈工程师开发手册 (作者:栾鹏) 一站式云原生机器学习平台 前言:cube是开源的云原生机器学习平台,目前包含特征平台,支持在/离线特征:数据源管理,支持结构数据和媒体标注数据管理:在线开发,在线的 ...

最新文章

  1. oracle全组件安装,Oracle text组件安装
  2. android 半透明pop,Android实现AppCompatActivity全屏半透明
  3. centos7+ docker1.12 实践部署docker及配置direct_lvm
  4. mysql crash_Mysql 无故crash
  5. RequiredFieldValidator----验证控件不起作用
  6. handler原子锁_深入Linux内核架构——锁与进程间通信
  7. Logisim 一个PLA电路
  8. Ubuntu Linux将支持所有树莓派设备
  9. 幼小衔接语言教案上c册_关于幼小衔接,这里有你最想要的解答
  10. 刚毕业的他仅用1年就拿下了年薪30W的阿里数据分析岗
  11. 学习开发webpart
  12. java docx 内存溢出_第2章 Java内存区域与内存溢出异常
  13. AngularJS track by $index引起的思考
  14. Ubuntu21.04 查看 GNOME 版本
  15. IDC发布2020上半年SD-WAN报告:阿里云领跑国内服务市场
  16. Python 进阶 — Flake8 静态代码检查工具
  17. LVS linux virtual server 章文嵩
  18. Java转化音频格式 m4a-wav
  19. POJ 1205 Water Treatment Plants(递推)
  20. 小程序源码:2022虎年春节拜年祝福语-多玩法安装简单

热门文章

  1. PHP清除网页病毒的方法
  2. CUMT中国矿业大学密码学20级考试
  3. 西门子携手太古可口可乐打造饮料行业数字化标杆
  4. android 监听短信并获取验证码
  5. 踔厉奋发,笃行不怠——2022年度引迈信息年终总结
  6. 谷歌浏览器页面点击出现光标的问题
  7. 西安思源学院计算机网络技术专业,西安思源学院特色专业:计算机网络技术
  8. 搭建简单的Netty开发环境
  9. 台式机机械硬盘的安装
  10. 【CTFshow】文件包含web78-web81