大家要如何以规模化方式运维微服务应用程序?实践当中会出现哪些问题,我们又该如何加以解决?在大规模与非预测性工作负载场景当中,我们需要满足哪些条件才能运行一款大型微服务应用程序,而又能够确保不必受到功能发布或者产品变更的影响?

在围绕微服务展开的探讨当中,我们发现几乎很少有人能够切实回答上述问题。以Docker、Mesos、Kubernetes以及gRPC为代表的各类新型技术成果的快速崛起使得我们能够轻松建立小型新架构。然而,高流量生产性用例又该如何实现?根据我们的推算,目前能够以规模化方式运行微服务,从而解决实际问题的企业数量仍然相当有限。

Twitter就是其中的典型代表。而且尽管其也经历过公共服务中断,但Twitter负责运维的是世界上规模最大的微服务应用之一,其中包含上百种服务、数以万计的节点以及每项服务中的数百万RPS。令人震惊的是,事实证明这样的工作绝非易事。虽然不是不可能,但需要企业投入多年并充分运用自身聪明才智,从而令一切在实践层面运作良好。

当Oliver和我前几年离开Twitter公司时,我们的目标是运用自己多年积累下的专业知识,将其转化成可供全世界各组织机构使用的可行性资源。令人振奋的是,这些知识中已经有相当一部分以开源项目的面貌了,也就是Finagle项目——这是一套用于支撑Twitter微服务架构的高通量RPC库。

Finagle属于Twitter的内部核心库,负责管理不同服务间之通信流程。事实上,Twitter公司的每一项在线服务都立足于Finagle构建而成,而且其支持着每秒发生的成百上千万条RPC调用。除了Twitter之外,Finagle还为多家企业的基础设施提供帮助,具体包括Pinterest、SoundCloud、Strava、StumbleUpon以及其它众多公司。

今天,我们很高兴地宣布我们将Finagle推向大众的愿景已经迈出了重要的一步。linkerd已经迎来其0.1.0版本,而我们亦以Apache License v2为基础对其进行了开源。

linkerd是我们面向微服务的开源RPC代理。它直接立足于Finagle构建而成,设计目标在于帮助用户简化微服务架构下的运维。这些多年积累下来的宝贵经验能够让我们轻松实现自包含、最低依赖性并确保将对现有应用程序的调整幅度控制在最低水平。

如果大家正在着手构建一套微服务方案,那么肯定需要发挥Finagle的各项优势——包括智能化、自适应负载均衡、服务发现抽象化以及内部业务流量路由等等。大家可以利用linkerd将这些功能添加进入,而无需对应用程序代码做出任何变更。另外,linkerd还提供一套漂亮的仪表板!

linkerd目前尚未彻底完工,不过遵循“早发布、频发布”的原则,我们认为现在已经应该将其早期版本交付给大家。

因此,如果大家对此抱有兴趣,那么不妨首先访问linkerd.io网站获取说明文档及进行下载。另外,如果大家乐于为其做出贡献,也可以直接前往linkerd GitHub repo提交您的成果。我们强烈支持开源精神——而我们也乐于以此为核心建立起一整套社区。

我们未来还有着漫长的发展道路,并已经准备好了一份接下来需要被添加进linkerd的令人兴奋的功能清单。欢迎大家加入我们这个开源大家庭。

——William、Oliver以及整个Buoyant团队

如果大家对这个名称感到好奇,我们将linkerd理解为微服务的‘动态链接器’,即dynamic linker。正如操作系统中的动态链接器需要获取库名称与函数以对该函数进行调用一样,linkerd也需要获取服务名称与RPC端点,从而对该RPC加以执行——而且整个过程安全且可靠。

参考资料:

http://j.news.163.com/docs/28/2016022009/BG8MBR7J9001BR7K.html

http://www.tuicool.com/articles/RRFFJrq

【架构】linkerd:来自Twitter为微服务而生的开源RPC解决方案的更多相关文章

  1. (转)微服务架构 互联网保险O2O平台微服务架构设计

    http://www.cnblogs.com/Leo_wl/p/5049722.html 微服务架构 互联网保险O2O平台微服务架构设计 关于架构,笔者认为并不是越复杂越好,而是相反,简单就是硬道理也 ...

  2. Java 18套JAVA企业级大型项目实战分布式架构高并发高可用微服务电商项目实战架构

    Java 开发环境:idea https://www.jianshu.com/p/7a824fea1ce7 从无到有构建大型电商微服务架构三个阶段SpringBoot+SpringCloud+Solr ...

  3. 微服务7:通信之RPC

    ★微服务系列 微服务1:微服务及其演进史 微服务2:微服务全景架构 微服务3:微服务拆分策略 微服务4:服务注册与发现 微服务5:服务注册与发现(实践篇) 微服务6:通信之网关 微服务7:通信之RPC ...

  4. 微服务8:通信之RPC实践篇(附源码)

    ★微服务系列 微服务1:微服务及其演进史 微服务2:微服务全景架构 微服务3:微服务拆分策略 微服务4:服务注册与发现 微服务5:服务注册与发现(实践篇) 微服务6:通信之网关 微服务7:通信之RPC ...

  5. Re:从0开始的微服务架构--(二)快速快速体验微服务架构?--转

    原文地址:https://mp.weixin.qq.com/s/QO1QDQWnjHZp8EvGDrxZvw 这是专题的第二篇文章,看看如何搭建一个简单模式的微服务架构. 记得好久之前看到一个大牛说过 ...

  6. 通俗地理解面向服务的架构(SOA)以及微服务之间的关系

    SOA是一种软件的应用架构方法,它基于面向对象,但又不是面向对象,整体上是面向服务的架构.SOA由精确的服务定义.松散的构件服务组成,以及业务流程调用等多个方面形成的一整套架构方法. 这话是不是听起来 ...

  7. 【分布式微服务企业快速架构】SpringCloud分布式、微服务、云架构快速开发平台源码

    鸿鹄云架构[系统管理平台]是一个大型 企业.分布式.微服务.云架构的JavaEE体系快速研发平台,基于 模块化.微服务化.原子化.热部署的设计思想,使用成熟领先的无商业限制的主流开源技术 (Sprin ...

  8. go微服务框架go-micro深度学习 rpc方法调用过程详解

    摘要: 上一篇帖子go微服务框架go-micro深度学习(三) Registry服务的注册和发现详细解释了go-micro是如何做服务注册和发现在,服务端注册server信息,client获取serv ...

  9. 微服务的一种开源实现方式——dubbo+zookeeper

    转自: http://blog.csdn.NET/zhdd99/article/details/52263609 微服务架构成了当下的技术热点,实现微服务是要付出很大成本的,但也许是因为微服务的优点太 ...

随机推荐

  1. Orchard源码分析(4.4):Orchard.Caching.CacheModule类

    概述 CacheModule也是一个Autofac模块.   一.CacheModule类 CacheModule将DefaultCacheManager注册为ICacheManager:       ...

  2. idea的修改文件变颜色

    直接用IntelliJ IDEA 拉SVN 工程 时,如下图所示都不勾选可以成功拉取.

  3. verilog描述表决器的两种方式简易分析

    命题:设计一个三变量表决器.真值表如下: 可以写出并简化得出公式:F=AB+BC+AC. 以下是两种算法: 第一种:仅从算法方面描述为:A.B.C的和大于1则输出结果为1,否则为0:源码如下: mod ...

  4. 理解JavaScript中的arguments,callee,caller,apply

    arguments 该对象代表正在执行的函数和调用它的函数的参数. [function.]arguments[n] 参数function :选项.当前正在执行的 Function 对象的名字. n : ...

  5. C#数字格式化

    格式规范的完整形式:{index [,width][:formatstring]} index是此格式程序引用的格式字符串之后的参数,从零开始计数:width(可选) 是要设置格式的字段的宽度,wid ...

  6. redis php扩展安装下载

    php的redis 扩展下载地址 Windows :http://windows.php.net/downloads/pecl/releases/redis/2.2.7/ 下载对应版本,一般有两个 n ...

  7. centos 安装php7.0.2

    PHP7.0正式版已经在2015年11月份左右发布,目前是PHP7.0.2版本,本人最早是从2015年8月php7的第一个测试版跟起,现在正式版发布. linux版本:64位CentOS 6.6 Ng ...

  8. CF460D Little Victor and Set (找规律)

    D - Little Victor and Set Codeforces Round #262 (Div. 2) D D. Little Victor and Set time limit per t ...

  9. webapp中fixed问题解决方案

    主要问题: 1,头部输入框固定后,只要再滑动内容的话,输入框会随着滑动内容而滑动. 2,在低端机:2.3以下的安卓机,你会发现怎么解决都不行的,系统浏览器是不会支持的,头部底部固定的话会滑动内容而滑动 ...

  10. ubuntu 14.04 安装mysql server的分支MariaDB Server初级教程

    序,MariaDB Server是Mysql的fork版本,与Mysql完美兼容,mysql在10年被sun收购,后sun被oracle收购,后mysql的创建者及项目长期技术带头人之一的Michae ...