【译】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 安装和 ...
随机推荐
- [原创] JavaScript实现简单的颜色类标签云
效果预览: 源码分享: <!DOCTYPE html><html><head lang="en"> <meta charset=" ...
- 实时Android语音对讲系统架构
本文属于Android局域网内的语音对讲项目系列,<通过UDP广播实现Android局域网Peer Discovering>实现了局域网内的广播及多播通信,本文将重点说明系统架构,音频信号 ...
- 使用SSH框架查出的实体集合用AJAX形式刷新到页面JOSONArray报异常
所报异常:net.sf.json.JSONException: java.lang.reflect.InvocationTargetException 问题根源:数据库中查出的日期是java.sql. ...
- BogoMIPS与calibrate_delay
在分析Arm+linux启动信息的时候.发现有一个信息竟然耗费了2s的时间,这简直是不能忍受的.这个耗时大鳄是什么东西哪,请看分析信息: [ 0.000000] console [ttyMT0] ...
- php中print_r、var_dump和var_export几个函数的用法区别
php中print_r.var_dump和var_export几个函数的用法区别
- Supervisor: A Process Control System
Supervisor: 进程控制系统 概述:Supervisor是一个 Client/Server模式的系统,允许用户在类unix操作系统上监视和控制多个进程,或者可以说是多个程序. 它与launch ...
- eNSP自学入门(基础)
写了上篇博客之后,就立即投入到了eNSP的怀抱之中了,自己从零基础,入门到现在.也学了不少东西,在这里和大家分享一下. 说一下学习的过程吧,老师说做网络工程的课程设计用eNSP,关于这个软件什么都没有 ...
- 浅析被element.style所覆盖的样式
近日,我在用swiper插件写一个手游官网时,出现了一个很奇怪的问题.问题如下 如上图所示,这里是一个可以左右拖动的ul,每一个英雄介绍都是一个li标签,上图这是正常的情况.可是,它会随机不定期不定时 ...
- ThinkPHP框架的增删改
使用TP框架主要是比较简单一些,之前我们写增删改,代码量相对来说还是比较多的,这里利用tp框架写起来是非常简单的,大大的减少了代码量 这里我是以数据库的nation表为例的,nation表 ...
- 【运维工程师必知必会】——MySql基础
一.SQL语句 1.分类 DDL(data definition language)数据定义语言(create.alter.drop),管理基础数据.例如:库.表 #运维要熟练,开发也要熟练 ...