顯示具有 資料庫與作業系統 標籤的文章。 顯示所有文章
顯示具有 資料庫與作業系統 標籤的文章。 顯示所有文章

2026年4月4日 星期六

Building Serverless Applications with Google Cloud Run

 

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的第一步,仍不失為一本值得推薦的好書。


2024年4月24日 星期三

Elasticsearch in Action, Second Edition

 

在用慣了Apache Solr以及Splunk的工作環境下,一直沒有動力去使用Elasticsearch或是整合度更高的ELK(Elasticsearch、Logstash和Kibana)。即便ELK在大數據應用領域中有著不可忽視的優勢與地位,我先前也沒有動心起念要研究、導入這個解決方案。但隨著大數據資料收集的需求逐步增長,此時如果將不含商業價值的系統紀錄檔放在以容量計價的Splunk商品裡,不免讓人覺得像個富少般擺闊。此時開源、在限定條件下免費使用的ELK,儼然就是替代Splunk的最佳備胎。

由於ELK的開箱即用、橫向擴充架構以及它在資料收集、檢索的強大功能,容易讓人造成兩個迷思。一是公司導入ELK平台後,就是有了大數據的核心技術;二是使用ELK只要下一步、下一步點點點,藉由軟體預設值的協助,即使是初學者,三兩下也能建置好一套堪用的巨量資料查詢平台。這些迷思問題在於,ELK雖然是收集巨量資料的極佳方案,但對於資料運算上有它的侷限性,大概就是條件查詢、彙總等統計分析。無法做到像Hadoop/Spark大數據引擎般,用簡單、暴力的平行運算執行返覆的自訂邏輯。其次,ELK看似簡單易用,揭開面紗後是運用Kibana友善的Web介面,包裹Elasticsearch令人驚豔的分散式搜尋引擎。平台裡的所有資料收集、拆分與儲存、查詢與計算,都是Elasticsearch的核心功能。所以想要對ELK得心應手,非得對Elasticsearch下一番功夫,這也是我翻閱這本Elasticsearch in Action, Second Edition的起因。

想要透過閱讀來學會Elasticsearch像是在玩踩地雷遊戲,一不小心就會買到一本雷包書。主因是在Elasticsearch和ELK火熱時的那些年,相關主題的書目,內容介紹的都是舊版本。不巧卻遇到Elasticsearch在6.x後的大改版,更動最核心的索引資料層級,捨去mapping type的設計,連帶修改了各種資料操作的API格式。這般大破大立的氣魄,除了讓已使用ELK的團隊得苦惱改版事宜,也注定出版社沒賣完的舊作只能丟到垃圾筒裡。這也使得Elasticsearch in Action在時隔多年後,得配合版本差異發行第二版。

全書詳盡完整地從資料欄位到索引分片等基礎講起,接著是花了近一半的篇幅介紹查詢語法,畢竟Elasticsearch是搜尋引擎,賣點是提供優質的資料查找機制。後續也有針對建置、管理議題提供相關的知識,讓讀者未來面對維運的課題時,能有基礎的能力。總結來說,想用好ELK平台,對於Elasticsearch這產品不能不深入瞭解,而目前在中外文出版品中,Elasticsearch in Action, Second Edition是編寫最用心、主題最全面的好書,推薦給有心想導入使用ELK平台的朋友們。