大規模Web服務開發技術

2021-09-08 08:00:23 字數 4744 閱讀 8004

--大規模web服務開發技術

[]伊藤直也,田中慎司編著

李劍

isbn 978-7-121-13884-3

20117月出版

定價:59.00

16

356

hatena

是日本最大的

web

服務提供商之一,它提供的服務包括關鍵字(類似於維基百科)、部落格、相簿等。本書的內容主要來自

hatena

為學生們舉行的暑期實習的課程,內容涵蓋廣泛,介紹了效能優化、分布式、演算法、系統架構等各個方面,甚至還介紹了硬體的經濟成本,是運維工程師們必不可少的參考書。書中還包括幾個演算法實習課題,介紹了壓縮演算法、全文搜尋等演算法的實現方法,對於打算靠

web

創業的人不失為一本很不錯的參考書。

譯者序

去年

8 月份,

fcicq

向我推薦了《大規模

web

服務開發技術》這本書。當時這本書剛剛出版,在日本著實火了一段時間。後來到網上一查,發現我以前在日本的同事也寫了一篇部落格推薦這本書,看樣子這本書已成為

web

技術人員人手必備的參考讀物了。

後來博文視點的策劃編輯張春雨找到我,希望我翻譯這本書。我在日本工作期間,就對日本的

it 技術十分佩服,尤其是

web

相關技術,很多知名的技術大牛,如伊藤直也、小飼彈等

都寫過許多深入研究技術的文章,見解也相當獨到。而在日本的書店裡,

web

技術的書籍也是琳琅滿目,其中不乏珍品。因此我很想找個機會把日本的技術書籍帶到中國來。於是,與張編輯一拍即合,當即接下了這本書的翻譯任務。

正如這本書的前言裡所說,這本書的內容主要來自

hatena

株式會為學生們舉行的暑期實習課程,因此其形式也是以講義為主,風格和一般的技術讀物略有不同。其內容涵蓋範圍也很廣,從效能優化、分布式,到演算法、系統架構,甚至還介紹了硬體的經濟成本。最吸引人的就是書中的幾個實習課題,介紹了壓縮演算法、全文搜尋等演算法的實現方法。

在翻譯該書時,我想到了以前做**開發時的幾件事。

第一件就是效能優化的重要性。當時我們開發了乙個類似於

rss

閱讀器的**,其中有個推薦功能,可以根據訪問量、收藏人數等對文章進行社會化推薦。由於計算量很大,因此只能寫成批處理放到夜間執行,但執行效率實在不堪忍受

——40

萬的資料量,計算一次就要

3 個小時。後來我們對

sql

語句進行了優化,使得計算時間從

3 小時一下子減少到了

20 分鐘。

第二件就是維護工作的辛苦程度。**對

web

伺服器採用了分布式,將請求分散到

32 臺伺服器上。每次版本更新,都要制定嚴密的更新計畫,先改變負載均衡器設定,然後停掉一半伺服器,更新**,再然後逐台測試;之後再切換負載均衡器以更新另一半伺服器並測試。更新都是在深夜進行的,每次更新都會持續到凌晨

3 點多才能下班。

第三件就是不可知事件的應對策略。這本書裡提到了

yahoo!

攻擊,這正是我們當年親身經歷過的。當時晚上

9 點多,我們突然收到了大量報警郵件,報告相簿服務的負載過高。一看伺服器已經幾乎無法訪問了。調查之後發現,一名博主引用了相簿中的,而這篇文章又被

yahoo!

上的一篇新聞引用。於是來自

yahoo!

的巨大流量湧入我們的相簿伺服器,導致服務中止。後來,我們改變了相簿服務的架構,並增加了快取機制,以避免這類事件再次發生。

對於運維高手來說,解決這些問題應該是輕車熟路了,但當時我們的團隊沒有類似的經驗,只能自己慢慢摸索解決方法。而

hatena

株式會的技術專家們將他們的運維經驗寫成了書,使我們有幸分享這些寶貴的經驗和知識。如果當時我們有這樣一本書,這幾個問題也就迎刃而解了。願這本書能對廣大**運維人員(特別是初涉該領域的新手們)有所幫助。 李

劍 2011 年2

月27 日

自己開發的

web

服務,以後規模增大時系統能否承受得起?從事

web

開發的諸位中很多人都有這個顧慮吧,或者是系統每天都會陷入困境,如何才能打破這種狀況?面對成長起來的

web

服務,整日愁眉苦臉的人一定存在吧。

我也有過完全相同的經歷。

hatena

**,月訪問人次

1500

萬,而我們參與了規模如此龐大的系統的開發和運營。

1000

臺伺服器分擔負載,

100

多萬使用者不停地發表部落格或收藏社會化書籤,資料量每天都在激增,伺服器資源頻頻告急。技術人員為了上

gb、上

tb 的資料量絞盡腦汁。即便如此,流量的波濤也從未平息過。

曾幾何時,

hatena

的團隊尚未成熟,面對規模日益增大的系統束手無策。龐大的資料和巨大的流量湧來,伺服器宕機、服務停止。趕緊深夜跑過去重啟伺服器,覺得總算能穩定了,清晨回家之後,發現伺服器又宕機了,這種事情也曾面對過。

怎樣才能**大規模服務這頭野獸?本書凝聚了

hatena

的技術人員在反覆試驗中得到的技術和訣竅

——即大規模服務技術的地圖和指南。

本書是開發、運營大規模服務的技術者的入門書。

web

服務在不斷成長,當它的資料規模變大,處理起來也就不再易如反掌了,此時,怎樣做才是正確的?為了避免系統宕機,寫**時應該注意什麼?設計高可擴充套件性(

scalability

)的系統時應該記住哪些要點?這些都是本書的內容。

hatena

每年夏天都舉辦面向學生的、以就業體驗為目的的實習活動(

hatena summer intern

)。這些實習活動會讓學生參與到

hatena

的系統開發中。我們把開發經驗很少的學生們與正式員工同樣看待,讓他們獲得大規模系統開發的成功經驗,這就是

hatena

之道。那麼,我們希望學生們在開發之前知道什麼呢?正是我們歷經坎坷學到的大規模服務的開發和運維的知識。

通過實習計畫,

hatena

的大規模服務技術的培訓方法也有了體系。本書就是以實習課程為基礎,試圖來說明大規模服務技術。

本書的內容從作業系統和計算機的原理開始,介紹資料庫的分布式方法、實用演算法在系統中的應用、能支撐海量資料的搜尋引擎的原理,以及統觀系統全域性的基礎設施設計的知識等多個方面。

這是擁有

1500

萬使用者的

hatena

才能傳達的真實的、實踐性的技術和現場感。缺乏經驗的學生們在短短幾天的培訓中學到大規模服務開發所需的知識,在本書中得以系統化。本書融匯了這些知識,努力做到妙趣橫生、百讀不厭,並讓讀者學到真正的知識。

希望本書能成為從事

web

服務開發的所有工程師們的得力助手和工具。

2010 年6

月 hatena

株式會cto

伊藤直也

大規模Web服務開發技術

大規模web服務開發技術 日 伊藤直也,田中慎司編著 李劍 譯 isbn 978 7 121 13884 3 2011年7月出版 定價 59.00元 16開 356頁 內 容 簡 介 hatena是日本最大的web 服務提供商之一,它提供的服務包括關鍵字 類似於維基百科 部落格 相簿等。本書的內容主...

大規模Web服務開發技術

大規模web服務開發技術 日 伊藤直也,田中慎司編著 李劍譯 isbn 978 7 121 13884 3 2011年7月出版 定價 59.00元 16開 356頁 內 容 簡 介 hatena是日本最大的web 服務提供商之一,它提供的服務包括關鍵字 類似於維基百科 部落格 相簿等。本書的內容主要...

《大規模web服務開發技術》筆記

2012 02 02 15 06 by teloon,716 visits,收藏,編輯 前段時間趁空把 大規模 web服務開發技術 這本書看完了,今天用一下午時間重新翻了一遍,把其中的要點記了下來,權當複習和備忘。由於自己對資料壓縮 全文檢索等還算比較熟,所以筆記內容主要涉及前5章內容,後面的零星記...