無伺服器時代:國家地理雜誌上線,讓 130 年的珍貴資料沒有包袱

評論
Photo Credit: Photo Credit:Alexander Andrews on Unsplash
Photo Credit: Photo Credit:Alexander Andrews on Unsplash
評論

西元 1888 年,《國家地理》雜誌(National Geographic)創刊了,他們透過精彩絕倫的攝影、嚴謹真實的文字、精密準確的地圖與生動的插畫,引領全世界的讀者從深海到外太空、從自然環境到尖端科技,用巨觀與微觀的角度,探索這個世界。

在大眾媒體興起以後,其母公司 National Geographic Partners(NGP)更是將觸角不斷延伸,每個月透過全球電視頻道,以及 43 種不同語言發行的雜誌,服務世界各地超過 4 億 5 千萬的閱聽大眾。

創刊後的 130 多年來,《國家地理》雜誌為人類記錄了許多珍貴的影像、以及無數個觸動人心的故事。為了要將內容快速傳播給網路世代的大眾,NGP 希望能夠與時俱進,於是將 IT 營運從多個本地端的資料中心遷徙到雲端統整,並重新構思其傳統的內容管理系統(CMS),以便更加符合他們多元管道、多元格式的內容。

將所有的期刊搬上雲端的兩個難題

《國家地理》雜誌想要達到的目標之一,是打造一個多媒體線上雜誌書櫃,讓訂戶可以從單一入口瀏覽他們所累積的寶貴內容,包含自 1888 年創立以來的每一期期刊。然而,他們遇到了兩個問題:首先,大量的舊資料儲存在世界各地、橫跨在多個大陸的系統中,而且是以不同的格式儲存,這讓資料的搜集工作相當麻煩。其次,系統中有大量的圖像,包括照片、地圖、圖表等資料,都沒有適當的分類。這些圖像缺乏足夠的詮釋資料(metadata),系統無法知道圖像本身包含了什麼資訊。

雖然 NGP 團隊考慮過用人工的方式來標記這些資訊,但發現除了耗時、成本高昂以外,還需要自行創建全新的工具及流程才能做得到。

「無伺服器」技術,讓開發者更專注於功能開發

那麼,什麼是「無伺服器」(Serverless)技術呢? 今天大多數公司在開發應用程序,並將其部署在伺服器時,無論是選擇公有雲還是私有的資料中心,都需要提前了解:究竟需要多少台伺服器、多大容量的儲存空間、以及多少資料庫功能等,並部署運行所需的應用程式和軟體,到基礎設施上。

假設我們不想在這些細節上花費精力,是否有一種簡單的架構模型,能夠滿足我們這種想法?這個答案已經存在,就是今天軟體架構世界中熱門的話題之一——「無伺服器」(Serverless)架構。它雖然不代表完全去除伺服器,但卻去除對於伺服器運行狀態的關心和擔心,像是「它們是否在工作?應用是否正常運行?」等問題。採用了無伺服器技術 ,NGP 團隊可以將開發時間縮短好幾個月,甚至能快速添加原先計劃以外的功能。

NGP 團隊選擇使用 AWS(Amazon Web Services)的服務,來協助他們打造出《國家地理》雜誌第一個行動裝置原生的應用程式。並串接多個功能型服務,讓開發團隊能快速將散落各地的資料,在雲端統一彙集、處理,執行和擴展高可用性應用程式所需的一切工作。

Photo Credit:Pixabay

當 NGP 團隊從舊系統將資料導入雲端時,前端的程式會先將資料標準化,以便和 AWS 的搜尋服務 Amazon CloudSearch 索引相容。然後,再將檔案儲存在資料儲存服務 Amazon S3 上。檔案的儲存事件會自動觸發一個無伺服器的 AWS Lambda 服務來運行程式,並更新 Amazon DynamoDB 中的索引。而且,這是一個無伺服器的非關聯式資料庫,不論儲存的規模有多大,都可保持毫秒級的反應能力。

這就有點像是當一座圖書館編列新書時,會先為每本書制定一個統一格式的編號,並登錄在內部書目之中,再把書放進倉庫。如此一來,每當有新書放入倉庫,工作人員就會被通知,將書本分門別類地貼上條碼,再擺到架上任人取用。

此外,如果新建立的檔案是圖像,其他的 AWS Lambda 服務會自動依照需求裁切和調整大小。接著, AWS Lambda 服務會呼叫 Amazon Rekognition 來做影像辨識,以解決詮釋資料不足的問題。 Amazon Rekognition 是一個具備深度學習能力的人工智慧服務,它可以自動辨識圖像和影片中的對象、事件和概念。這裡產生的詮釋資料會被標記在資料庫中,如同在圖書館系統中為新書添加主題標籤以供查詢。

這樣一來,新增的資料就可以被系統辨別,並清楚呈現在用戶的 iOS 或 Android 裝置上。為了提供高度個人化的體驗,《國家地理》雜誌的應用程式也會在 Amazon DynamoDB 中儲存用戶的瀏覽紀錄和喜愛內容。 AWS Lambda 會再利用這些數據來了解用戶的喜好,並推薦相似的內容。透過無伺服器技術,國家地理雜誌能夠更好的提高開發的靈活性和速度,來因應業務和客戶需求的變化。

無伺服器技術的其他甜頭:再也沒有運算資源閒置的浪費

使用無伺服器技術,除了免去伺服器管理,讓工程師可以專注在產品開發上,以及能使用 AWS 提供的廣泛服務,來最大限度地提高靈活性和速度以外,還有更多優點。例如:運用無伺服器架構的程式,可依需求自動擴展,有發生事件才需要調度資源,使用上更為有效率。而且,它是按照程式實際執行的時間來計算費用,不會有有運算資源閒置浪費的問題。

用先前的比喻,就是當需要整理圖書館的入庫新書時,會以新進書的數量來決定調度的工作人員數量。量愈大,召集的人數就愈多。有新書時才需要工作人員,不會有閒置人力。因此,對於希望精減 IT 支出的新創公司,或嘗試用新科技轉型的企業來說,無伺服器雲端運算是一個非常有吸引力的選擇。


精選熱門好工作

Server Developer

PicCollage 拼貼趣
臺北市.台灣

獎勵 NT$20,000

前端開發者 / Frontend Developer

奔騰網路科技有限公司
臺北市.台灣

獎勵 NT$20,000

Backend 工程師

Omlet Arcade 美商歐姆雷特
臺北市.台灣

獎勵 NT$20,000

評論