<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>consul | 伪架构师</title>
    <link>/tags/consul/</link>
      <atom:link href="/tags/consul/index.xml" rel="self" type="application/rss+xml" />
    <description>consul</description>
    <generator>Source Themes Academic (https://sourcethemes.com/academic/)</generator><language>zh</language><lastBuildDate>Wed, 11 Jul 2018 19:40:12 +0800</lastBuildDate>
    <image>
      <url>/img/logo-wide.png</url>
      <title>consul</title>
      <link>/tags/consul/</link>
    </image>
    
    <item>
      <title>Consul vs Istio</title>
      <link>/post/consul-vs-istio/</link>
      <pubDate>Wed, 11 Jul 2018 19:40:12 +0800</pubDate>
      <guid>/post/consul-vs-istio/</guid>
      <description>&lt;p&gt;原文：&lt;a href=&#34;https://www.consul.io/intro/vs/istio.html&#34; target=&#34;_blank&#34;&gt;Consul vs Istio&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Istio 是一个开源平台，可以为微服务提供连接、管理和加密功能。&lt;/p&gt;

&lt;p&gt;要启用 Istio 的全部功能，必须部署多个服务。控制面包括了 Pilot、Mixer 以及 Citadel 这几个必要组件，数据面的 Envoy Sidecar 也是必不可少的。另外 Istio 需要第三方的服务发现支持，例如 Kubernetes、Consul、Eureka 或者其他别的什么。最后 Istio 需要一个外部系统用来进行存储，通常是 ETCD。换句话说，Istio 需要至少三个独立的服务，以及至少一个分布式系统才算完整。&lt;/p&gt;

&lt;p&gt;Istio 在七层提供了基于路径的路由、流量整形、负载均衡以及遥测功能。Istio 还基于服务认证功能提供了访问控制的支持，能使用七层和四层的属性对访问、路由进行控制。&lt;/p&gt;

&lt;p&gt;Consul 是一个单一的二进制文件，同时提供了服务器和客户端的能力，并自带全部的服务发现、配置、TLS、认证等功能。无需安装额外的系统即可使用，同时还为 Vault 之类的外部系统提供了可选支持，从而进行功能扩展。这一架构让 Consul 能够轻松的安装在任何平台上，也包括物理机。&lt;/p&gt;

&lt;p&gt;Consule 是一个基于 Agent 的模型，集群中的每个节点都需要运行一个 Consul 客户端。客户端软件管理一个本地缓存，缓存的数据来源于服务器。无需任何外部通信，所有的加密服务通信 API 都能在几毫秒的时间内进行响应。这样我们的连接过程发生在边缘，无需和中央服务器进行通信。Istio 将请求流入位于中央的 Mixer 服务，而数据的推送过程又必须由 Pilot 完成。这种机制极大的降低了 Istio 的稳定性，而 Consul 却能够在边缘高效的完成数据更新的分发以及其他工作。&lt;/p&gt;

&lt;p&gt;Consul 的数据面是可插接的。它包含了一个内置的代理服务器，这一服务牺牲了较多性能，换来易用性的提升。用户也可以使用 Envoy 这样的第三方代理。不同的任务会有各自合适的代理，Consul 就提供了这种能力，从而能够支持复杂多样的应用部署。&lt;/p&gt;

&lt;p&gt;除了第三方代理支持，应用可以直接和 Connect 协议进行集成。这样一来，引入 Connect 的开销就可以忽略不计了。任何其他的 Connect 支持的应用，不管使用代理或者 Connect 原生方式，都具备互联互通的能力。&lt;/p&gt;

&lt;p&gt;Consul 只在四层实现了认证和鉴权——TLS 连接是否能够建立。我们认为服务认证应该留在四层，七层要做的事情是路由、遥测等事情。我们鼓励用户借助我们的可插接数据面，为集群所需要的七层功能选择合适的代理服务器。Consul 会在未来加入更多七层特性。&lt;/p&gt;

&lt;p&gt;Consul 实现了自动的 TLS 认证管理，并且提供了完整的轮转支持。即使是一个大型的 Consul 集群中，也能够在无中断的情况下实现自动轮转。认证管理系统也是可插接的，目前通过代码集成在 Consul 中，很快我们会将其剥离成为外部插件。这就 Consul 就有了和任意 PKI 方案协同工作的能力。&lt;/p&gt;

&lt;p&gt;因为 Consul 的服务连接能力（”Connect“）是内置的，他也具备和 Consul 一样的稳定性。2014 年以来，Consule 就在大型企业的生产环境中工作，目前已经有单集群部署 50000 节点的规模。&lt;/p&gt;

&lt;p&gt;这一比较基于我们自己对 Istio 的有限认识，以及和 Istio 用户的交流。如果读者认为其中有不实之处，请点击 &lt;a href=&#34;https://github.com/hashicorp/consul/blob/master/website/source/intro/vs/istio.html.md&#34; target=&#34;_blank&#34;&gt;Edit this page&lt;/a&gt; 提交修改建议。我们会尽快对读者意见进行审核和更新，希望以此来保证本文的准确性。&lt;/p&gt;
</description>
    </item>
    
  </channel>
</rss>
