ISBN:9781492057093
最近感覺對開發人員來說,雲端平台的學習與推廣存在一種成本上的悖論。有心想了解、試作的軟體工程師,面對處處以秒計費的各種雲端平台功能,如果要自己掏腰包嘗試,總會躊躇不前,無法放開手腳。相較於POC(Proof of Concept/功能驗證)時期長時間、大規模的使用,即便有免費額度可申請,也只是九牛一毛。因此,我認為資訊產業中成功導入雲平台的企業組織,多半採取開放心態,鼓勵員工嘗試並導入各種雲端功能,且不吝於投入雲端支出的各項費用,才能成事。
近十幾年來,以美國為首的各大雲平台崛起,其實也鬆動了原本已經僵固的軟體工程師職務分際。尤其資料系統的架構範型(Pattern),被解析、重構成易學、易用的各項功能元件,讓資淺的工程師也能依樣畫葫蘆地打造出世界級的資訊系統,系統架構師的價值因此被稀釋、邊緣化。而各種全代管服務(Managed Services)的出現,讓資料庫、訊息佇列、noSQL、負載平衡等中介層都可以即插即用。在兩者相輔相成之下,新創產業得以站在雲端平台巨人的肩膀上快速蓬勃成長,卻也容易埋下「知其然而,不知其所以然」的隱憂。
《Building Serverless Applications with Google Cloud Run》是一本講解如何使用GCP平台Cloud Run服務,打造現代常見網路應用程式的書籍。Cloud Run的全代管程式運行概念並非新事物,早在近十年前,GCP就已推出其前身App Engine。不過App Engine在程式語言與開發風格上有所限制,因此未能掀起浪潮。隨著Docker容器化技術在軟體產業中風行,融合容器化的新一代全代管應用程式平台「Cloud Run」,讓GCP重新獲得開發人員的關注與青睞。藉由Docker帶來的應用程式標準化,若再搭配Jenkins等CI/CD自動化部署工具,將專案程式直接部署至Cloud Run的運行引擎,並運用其內建的流量負載平衡機制以及藍綠部署功能,開發團隊便能在不導入Kubernetes這類龐大系統的情況下,於輕量級的容器運行平台Cloud Run上執行資源最佳化的應用程式。
書中內容從最基礎的程式容器化開始說明,並提及Cloud Run平台必備的映像檔儲存服務Artifact Registry。接著由簡單的網頁應用範例,逐步進展到整合關聯式資料庫,並帶入Cloud SQL的實作。隨後介紹網頁應用常見的Session概念與實作方式,當然GCP也提供多種noSQL服務,其中Memorystore是相當合適的選擇。在專案進行過程中會面臨的相關議題,如權限設定的IAM、記錄分析的Cloud Logging,以及基礎架構即程式碼(IaC)的Terraform,都是在GCP上運行專案必須克服的關卡,而透過研讀本書,多半可以迎刃而解。
GCP本身確實提供即時且詳盡的官方技術文件,也有大量線上教學與範例程式碼。然而,對於初次接觸如此龐大、多樣且錯綜複雜服務的開發者而言,即便是資深工程師,也可能不知該如何踏出第一步。因此,一本專注於特定主題的技術書,能夠由淺入深地講解如何運用GCP平台打造具體服務,就顯得格外可貴,如春風化雨。
本書在介紹非同步呼叫的實作時,採用了較為過時的Cloud Tasks(與 App Engine 同期技術),而非Pub/Sub服務,可能讓讀者錯失選擇最佳方案的機會,算是美中不足。但考量到GCP平台本身持續快速演進,只要能成功帶領讀者跨出擁抱GCP的第一步,仍不失為一本值得推薦的好書。

沒有留言:
張貼留言