【译】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 安装和 ...
随机推荐
- UIImage扩展用代码直接改变图片大小
以下内容属于转载 在iOS中,uiimage没有用于修改大小的属性,要在代码中改变uiimage图片的大小,需要扩展UIImage类,如下: 头文件: #import<UIKit/UIKit.h ...
- ConcurrentHashMap总结
线程不安全的HashMap 因为多线程环境下,使用HashMap进行put操作会引起死循环,导致CPU利用率接近100%,所以在并发情况下不能使用HashMap,如以下代码 final HashM ...
- cooking构建工具报错MSBUILD :error MSB4132解决办法
最近学习cooking构建工具的时候,在自己的笔记本上运行的好好的,项目在公司电脑上clone下来的时候,发现构建报错,逐条查错,试了好多方法也不行 最后在github上找到了答案,只是之前一直没找到 ...
- 通过一个小游戏开始接触Python!
之前就一直嚷嚷着要找视频看学习Python,可是一直拖到今晚才开始....好好加油吧骚年,坚持不一定就能有好的结果,但是不坚持就一定是不好的!! 看着视频学习1: 首先,打开IDLE,在IDLE中新建 ...
- ios 网络/本地播放器
推荐播放器: LRLAVPlayer相对易懂好修改,调整添加内容. https://github.com/codeWorm2015/videoPlayer NSString*path=[[NSBund ...
- Webdriver API之操作(二)
一.窗口截图 dirver.get_screenshot_as_file("D:\\report\\image\\xxx.jpg") 二.关闭窗口 dirver.close() # ...
- MapReduce处理流程
MapReduce是Hadoop2.x的一个计算框架,利用分治的思想,将一个计算量很大的作业分给很多个任务,每个任务完成其中的一小部分,然后再将结果合并到一起.将任务分开处理的过程为map阶段,将每个 ...
- 读《effective C++》2
条款03:尽可能使用const(Use const whenever possible) 1.const == 奇妙的事 const的一件奇妙的事是,他允许你定义一个约束,(告诉编译器,这是一个“不该 ...
- 《深入理解Java函数式编程》系列文章
Introduction 本系列文将帮助你理解Java函数式编程的用法.原理. 本文受启发于JavaOne 2016关于Lambda表达式的相关主题演讲Lambdas and Functional P ...
- Android的root学习
Android的内核就是Linux,所以Android获取root其实和Linux获取root权限是一回事儿.在Linux下获取root权限的时候就是执行sudo或者su,接下来系统会提示输入root ...