你们要如何以规模化方式运维微服务应用程序?实践当中会出现哪些问题,咱们又该如何加以解决?在大规模与非预测性工做负载场景当中,咱们须要知足哪些条件才能运行一款大型微服务应用程序,而又可以确保没必要受到功能发布或者产品变动的影响?html
在围绕微服务展开的探讨当中,咱们发现几乎不多有人可以切实回答上述问题。以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目前还没有完全完工,不过遵循“早发布、频发布”的原则,咱们认为如今已经应该将其早期版本交付给你们。ui
所以,若是你们对此抱有兴趣,那么不妨首先访问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