极分享:高质分享+专业互助=没有难做的软件+没有不得已的加班



极分享:高质分享+专业互助=没有难做的软件+没有不得已的加班

就像所有好的项目一样,这个项目也是为了解决实际问题而产生的。

作为网站可靠性工程师,我们负责管理 Google 公司的基础设施。我们平时需要处理大量的内部使用的服务,而这些服务需要负载均衡来保障其可伸缩性和可靠性。在 2012 年,我们有两个不同的平台来提供负载均衡,它们都有不同程度的管理和稳定性的挑战。为了缓解这方面的问题,我们团队开始着手寻找一个替代的负载均衡平台。

在评估了一些包括现有的开源项目的平台之后,我们没能找出一个能够满足我们所有需求的平台,所以我们决定自己着手开发一个可靠和可伸缩的负载均衡平台。需求并不太复杂,我们需要能够处理单播(unicast)和任播(anycast)虚拟 IP (VIPs) 流量,使用 NAT 和 DSR (也被称为 DR) 执行负载均衡,执行针对后端的健康检查。特别是,我们需要一个容易管理的平台,可以自动部署配置的变化。

原有的两个平台之一是基于 Linux LVS 构建的,它在网络层提供了必要的负载均衡。这方面已被证明是成功的,所以我们选择在新的平台中保留它。在项目初期我们就确定了几个设计决定,首先是使用 Go 语言,因为它提供了实现并发的强大方法(goroutines 和 channels) 以及方便的进程间通信(net/rpc)机制。其次是要实现一个模块化的多进程架构。第三,如果遇到了未知状态,能够简单地退出(abort)和终止(terminate)进程,这种情况理想上是做故障转移和/或自我恢复。


Read full article from 极分享:高质分享+专业互助=没有难做的软件+没有不得已的加班


No comments:

Post a Comment

Labels

Algorithm (219) Lucene (130) LeetCode (97) Database (36) Data Structure (33) text mining (28) Solr (27) java (27) Mathematical Algorithm (26) Difficult Algorithm (25) Logic Thinking (23) Puzzles (23) Bit Algorithms (22) Math (21) List (20) Dynamic Programming (19) Linux (19) Tree (18) Machine Learning (15) EPI (11) Queue (11) Smart Algorithm (11) Operating System (9) Java Basic (8) Recursive Algorithm (8) Stack (8) Eclipse (7) Scala (7) Tika (7) J2EE (6) Monitoring (6) Trie (6) Concurrency (5) Geometry Algorithm (5) Greedy Algorithm (5) Mahout (5) MySQL (5) xpost (5) C (4) Interview (4) Vi (4) regular expression (4) to-do (4) C++ (3) Chrome (3) Divide and Conquer (3) Graph Algorithm (3) Permutation (3) Powershell (3) Random (3) Segment Tree (3) UIMA (3) Union-Find (3) Video (3) Virtualization (3) Windows (3) XML (3) Advanced Data Structure (2) Android (2) Bash (2) Classic Algorithm (2) Debugging (2) Design Pattern (2) Google (2) Hadoop (2) Java Collections (2) Markov Chains (2) Probabilities (2) Shell (2) Site (2) Web Development (2) Workplace (2) angularjs (2) .Net (1) Amazon Interview (1) Android Studio (1) Array (1) Boilerpipe (1) Book Notes (1) ChromeOS (1) Chromebook (1) Codility (1) Desgin (1) Design (1) Divide and Conqure (1) GAE (1) Google Interview (1) Great Stuff (1) Hash (1) High Tech Companies (1) Improving (1) LifeTips (1) Maven (1) Network (1) Performance (1) Programming (1) Resources (1) Sampling (1) Sed (1) Smart Thinking (1) Sort (1) Spark (1) Stanford NLP (1) System Design (1) Trove (1) VIP (1) tools (1)

Popular Posts