【译】Envoy with Nomad and Consul (一)
原文:
http://timperrett.com/2017/05/13/nomad-with-envoy-and-consul
在过去的许多年我的职业生涯一直是围绕着数据中心和平台基础设施。工作范围包括一些乏味的事情像搬运日志,也有一些令人兴奋的领域比如集群调度和动态流量路由。可以说在过去的多年里,调度,Service mesh(不好翻译,看文尾译注)和组件发现 - 与其他所有相关的工具 - 都有长足的发展, 并且会以惊人的速度继续下去。
在我看来这种发展节奏很大程度上归结到想要建立,进化和维护一个越来越大的系统的愿望。让我们回头看一下十年前,单体应用很普遍:只要将你的EJB EAR部署到你的Tomcat应用服务器上就可以把业务搞定。应用会由很多由不同team开发的组件组成并捆绑在一起- 调度任务,特性和发布进程都被紧紧的耦合在部署细节中。 在最近几年,组织快速迁移到适应流程和技术额方式来赋能团队去以并行的方式来生产服务和项目,交付的效率可以在上市时间上影响更广泛的产品,在很多领域上这是一个很重要的价值。
这个新的技术栈分层极大的改变了系统构建的角色和责任;看下以下的图例,标注下这些元素,并用他们的相关责任域来注释。

十年前我画这个图的时候,除了一些与特定业务产品相关的工程(以红色显示),基本都是黄色的。我们现在看到的是一个有效并商业化的中间组件:传统运维事物已经从图中被大量移除了,腾出手来去解决其他地方的困难问题,平台化思维的工程事物为更广泛的工程产品团队提供了一套一致性的工具集 - 大家共赢!
在本文中,我会介绍三个最火的项目来帮助在这些组织中的引路人来改变,并赋能团队来更快的交付和以小型构件块来构建更大型的系统,并可以解决基础设施工程的长期问题:
- Nomad 作为调度 (https://www.nomadproject.io/)
- Consul 作为发现 (https://www.consul.io/)
- Envoy 作为Service mesh (https://lyft.github.io/envoy/)
下面的段落在高层回顾了这些工具 - 如果你已经熟悉或者对背景不感兴趣可以跳过。
译注:Service mesh不太好用中文翻译出来,这篇文章
https://blog.buoyant.io/2016/10/04/a-service-mesh-for-kubernetes-part-i-top-line-service-metrics/
介绍了Service mesh的关键特性:
- Baseline resilience: retry budgets, deadlines, circuit-breaking.
- Top-line service metrics: success rates, request volumes, and latencies.
- Latency and failure tolerance: Failure- and latency-aware load balancing that can route around slow or broken service instances.
- Distributed tracing a la Zipkin and OpenTracing
- Service discovery: locate destination instances.
- Protocol upgrades: wrapping cross-network communication in TLS, or converting HTTP/1.1 to HTTP/2.0.
- Routing: route requests between different versions of services, failover between clusters, etc.
阿里技术体系的同学看到这就会明白,这些指的都是在应用下层,支撑服务型应用的中间件体系。
对应到上面的特性,我们有:
- sentinel限流平台
- alimetric设施
- 集群间hsf流量调度duct
- 集群间http流量调度vipserver
- 分布式追踪工具鹰眼
- 服务发现设施config server
- 至于不同服务版本的流量调度,目前有一些微灰度产品。
文章来自微信平台「麦芽面包」(微信扫描二维码关注)。未经允许,禁止转载。

【译】Envoy with Nomad and Consul (一)的更多相关文章
- Ubuntu & Docker & Consul & Fabio & ASP.NET Core 2.0 微服务跨平台实践
相关博文: Ubuntu 简单安装 Docker Mac OS.Ubuntu 安装及使用 Consul Consul 服务注册与服务发现 Fabio 安装和简单使用 阅读目录: Docker 运行 C ...
- nomad的简易集群
启动服务器 第一步是为服务器创建配置文件.无论是从下载的文件github,或粘贴到一个名为server.hcl: vim server.hcl # Increase log verbosity log ...
- 单节点下使用docker部署consul
部署consul 目前Consul使用的版本是: v1.0.1 本教程适用于刚刚开始学习consul并简单使用consul的同学,可以在短时间内了解conusl,配合官方文档https://www.c ...
- Nomad入门
Nomad 简介 Nomad是一个管理机器集群并在集群上运行应用程序的工具. Nomad的特点: 支持docker,Nomad的job可以使用docker驱动将应用部署到集群中. Nomad安装在li ...
- Docker & Consul & Fabio & ASP.NET Core 2.0 微服务跨平台实践
相关博文: Ubuntu 简单安装 Docker Mac OS.Ubuntu 安装及使用 Consul Consul 服务注册与服务发现 Fabio 安装和简单使用 阅读目录: Docker 运行 C ...
- nomad 集群搭建
比较简单的集群搭建 一个server 三个client (单机) 参考代码 https://github.com/rongfengliang/nomad-cluster-demo server 配置 ...
- nomad 安装(单机)试用
备注: nomad 可以实现基础设施的调度管理,类似kubernetes ,但是在多云以及多平台支持上比较好, 还是hashicrop 工具出品的,很不错,同时本地测试因为使用默认的 ...
- Consul 入门-运行
HashiCorp Consul 是由 HashiCorp 公司开发的,它是一家专注于 DevOps 工具链的公司,旗下的明星级产品包括 Vagrant.Terraform.Vault.Nomad 以 ...
- NET Core 2.0 微服务跨平台实践
NET Core 2.0 微服务跨平台实践 相关博文: Ubuntu 简单安装 Docker Mac OS.Ubuntu 安装及使用 Consul Consul 服务注册与服务发现 Fabio 安装和 ...
随机推荐
- POI框架实现创建Excel表、添加数据、读取数据
public class TestPOI2Excel {//创建2003版本Excel用此方法 @Test public void testWrite03Excel() throws Exceptio ...
- 关闭discuzX3.2注册页面的注册邮箱验证
论坛升级后发现注册用户在输入任何邮箱email时,一直提示email 地址无效.用firephp跟踪发现:随机生成的email的后缀是@localhost! 找到原因,修改如下: //原来代码 if( ...
- 人生第一次hash
人生的第一次hash交给了模板题. 讲道理,还没有别人快排要快,就比暴力快那么一点... 难道我写的hash就那么菜么? 我想了想,光是处理字符串就O(n*len).. 这是hash的正确写法吗?我都 ...
- elasticsearch系列(一) 术语
elasticsearch(以下简称es)是一款开源的搜索引擎,基于apach lucene.最近在做nlp的时候顺便研究一下. 下面是官方列举的术语解释 Near Realtime 接近实时的查询, ...
- 捕获mssqlservice 修改表后的数据,统一存储到特定的表中,之后通过代码同步两个库的数据
根据之前的一些想法,如果有A,B 两个数据库, 如果把A 用户通过界面产生的更新或者插入修改,操作的数据同步更新到B 库中,如果允许延时2分钟以内 想法一: 通过创建触发器 把变更的数据和对应的表名称 ...
- JavaScript获取html元素的实际宽度和高度
一.JavaScript获取html元素宽高 1.宽高都写在样式表里,就比如#div1{width:120px;}.这中情况通过#div1.style.width拿不到宽度,而通过#div1.offs ...
- JavaScript中var变量引用function与直接声明function
今天在h5开发app的过程中遇到了一个js问题,function的执行问题 在js中声明函数function有这两种方法 var A=function(){...} 或者 function A(){. ...
- logback配置文件详解
一:根节点<configuration>包含的属性: scan: 当此属性设置为true时,配置文件如果发生改变,将会被重新加载,默认值为true. scanPeriod: 设置监测配置文 ...
- openlayers应用“三”:百度地图纠偏
前两篇文章介绍了openlayers3加载百度在线和离线瓦片地图,页面上能够正常显示.地图加载后在地图上显示一条GPS轨迹,发现离实际位置相差太远,如下图所示: 轨迹形状和实际形状相同,但是位移太远, ...
- 基于django做HTTP代理服务器
计算机网络的一次小实验,最后一共用了不到100行 实现了: a) 网站过滤:允许/不允许访问某些网站: b) 用户过滤:支持/不支持某些用户访问外部网站: c) 网站引导:将用户对某个网站的访问引导至 ...