JAMSTACK 數年實踐回望:一個管理及開發的平衡

閱讀時間約 6 分鐘

沒有最正確的軟體架構,通常都需要隨著時間和發展階段進行修正和修改。系統最終會變成怎樣往往也和公司的管理方式及運作模式密切相關。

在過去的幾年裡,為應對需求,公司的軟體架構走向了 JAMSTACK 的風格。這裡分享一些關於這種架構的感受和經驗。

raw-image

JAMSTACK = JavaScript / API / Markup Stack

JAMSTACK

Jamstack: For fast and secure sites
什麼是 JAMstack


JAMstack,全名為”JavaScript, APIs, and Markup”,是近年來廣受討論的一個技術概念。這種架構利用靜態網頁技術,結合 API 整合,將整體系統的架構精簡化,以取得更優越的性能、更高的安全性、卓越的可擴展性,同時降低了維護成本。

透過將前端、後端和內容進行有效的解耦,JAMstack 提供了更靈活且容易擴展的開發方式。

這個概念值得開發人員深入參考,特別是在思考系統的哪些部分可以進行緩存的情況下。即使您的系統目前並未考慮使用 JAMstack 架構,了解並接觸這個概念也是相當有價值的。

raw-image

架構的調整始終來自於需求

公司的主營業務是協助各式商業模式顧問及開發軟體方案,所以日常會面臨到的狀況是

  1. 領域非常多元(目前累積十多個領域),各種應用都有可能找我們協助
  2. 客戶從新創到已在市場上成功多年的單位都有
  3. 通常都會同時需要網站、APP 及後台系統

技術架構的建立是一個漸進的過程,需要在實際開發中改進,不斷調整和優化。有趣的是,經過幾年的發展發現系統架構逐漸趨向 JAMstack 的路線。

目前我們的技術組成大概如下,從中取得蠻多好處

  1. 前端走 React 技術棧:ReactJS / GatsbyJS / React Native
  2. 後端全雲端化,透過 AWS Lambda / CloudFront 及 MongoDB 以微服務、無伺服器架構將系統攤平

這使得公司在應對多元領域和各種應用需求時更具靈活性。前端技術的選擇使得客戶能夠獲得高度交互性的使用體驗,而後端的雲端化和微服務結構則提供了更好的擴展性和效能。這樣的技術架構也易於連結跨專案間的研發成果,可以很好的共享一些開發成果。

在許多案例上驗證 JAMSTACK 的效益極好

這樣的系統架構讓我們克服了許多實際的開發挑戰,比如

  1. 印刷業電商系統:前端多圖效能佳,且能複合複雜的後端流程
    - 更多細節:印刷業專屬電商 HiPrint 開發分享 — 以 GatsbyJS 打造高速 ERP / EC
    - 案例網址:感官文化印刷理想印制印刷吧
  2. 法朋甜點烘焙坊:透過微服務技術,易於應付突然間的大流量(高低可以在一小時內差到十數倍)
    - 更多細節:三分鐘內數百萬業績的高流量電商煉成 — Le Ruban Pâtisserie 法朋烘焙甜點坊
    - 案例網址:Le Ruban Pâtisserie 法朋烘焙甜點坊
  3. 拉亞線上點餐:透過微服務技術及完整 API 設計,同時完成 WEB 及 APP 開發及因應高流量
    - 案例網址:拉亞線上點餐拉亞漢堡 Laya Now (android)拉亞漢堡LayaNow (iOS)
  4. 台北市律師公會:透過 MongoDB 協助資料庫梳理並成功完成後台及雙平台 APP
    - 案例網址:台北律師公會

實踐上 JAMSTACK 帶來的好處及影響

除去一般 JAMSTACK 的幾個特點之外(如高效能及高安全性,當然這幾個優點已經夠讓人驚艷),在實踐上對我們來說更重要的可能是改變了某些工作流程及需求。

列舉幾個比較有感的點如下:

  1. 降低知識儲備的要求
    日常和客戶的溝通主要集中在應用層面,討論資料流程和互動方式等相關事項。然而,在實際的維護和開發過程中,我們通常需要對底層架構有更深入的認識。JAMSTACK 架構的扁平性(例如,在前端整合流程上幾乎等同於程式碼提交)有助於有效降低資訊傳遞上的落差。這種扁平的架構使得人員在執行任務、培訓和調度上更具靈活性和餘裕。開發和維運的任務可以更清晰地被切分,這使得團隊更容易協同合作。底層的透明度提高了開發者對整體系統的理解,從而更容易進行調試、優化和擴展。同時,這樣的結構也有助於提高人員的養成效率。由於整合流程相對簡單,開發者可以更專注於應用層的功能和特性,而不必過多擔憂底層的實現細節。這種結構的設計有助於降低開發者的學習曲線,同時簡化了協同工作的流程。
  2. 降低部署時的困難
    和客戶的溝通通常著重在應用層而不太涉及底層的架構。然而當合作的終點是將系統部署在客戶端時,由於目標框架的不同,很常會遇到困擾,有時也甚至必須根據客戶需求改變開發框架。但在 JAMSTACK 的概念下,前端是靜態網頁,與後端的介接有統一的介面,這使得系統更容易整合到客戶的既有系統中,類似於微前端的概念。這種結構的優勢在於可以很好地適應不同的客戶需求,並且無形中提高了系統的彈性。過往我們曾如此將方案部署入金融機構而幾乎沒遇到困難。
  3. 易於第三方資料源協作
    軟體開發過程中,資料的串整和整理往往佔據相當大的時間比重。透過JAMSTACK 在資料源整合上的彈性,可以使得這一過程更加靈活且高效。在 JAMSTACK 的框架下,由於前端是靜態網頁,資料的呈現可以更容易地由專責處理資料的團隊進行直接修改。這種彈性使得資料處理和前端顯示的變更能夠更加即時和協同合作。此外,JAMSTACK 中使用的git管理系統,進一步規範了資料的版本控制,有效地降低了因資料編修而引入的問題,同時也減少了需要投入的人力成本。

結語:技術的發展使各種架構變得可能,如何組合比選邊站重要

每種技術框架及組合都有其優點和缺點,JAMSTACK 也不例外,比如在一些即時互動的需求上就需要額外處理。

然而新技術和概念的價值常常不僅僅體現在單一的技術突破,更在於其開啟的新可能性。新技術如平台工具的進展使得DevOps更容易導入,這進一步促進了敏捷開發的實踐。由此來觀察 JAMSTACK,單單是思考其特性就能夠讓我們找到很多優化既有流程的點。

保持開放的心態去接觸不同的技術框架和概念才是保持進步的方法!





18會員
33Content count
從超過 50 個合作經驗中擷取在系統開發、顧問及營運上的經驗及心得
留言0
查看全部
發表第一個留言支持創作者!
Sam Huang的沙龍 的其他內容
作為程式開發者,每次聽到「加個 flag 就好」或者「開個變數存起來」這種話總是會心頭一驚。理由也很正常,就是像這樣子的 workaround 並沒有真正解決問題,只是徒留技術債,以後怎麼爆炸的都不知道。 workaround 聽起來真的是十惡不赦,不是嗎? 可凡存在必有道理,不如來聊聊 wor
「為什麼要維護?有 bug 你們就要負責啊,你們怎麼可以給我們有 bug 的東西!」 一瞬間我也是愣了一下,還差點被說服(?)。
我們的世界實際上由虛擬和實體兩個部分組成。NFT已經在虛擬世界中證明了自己的價值,但如果將NFT應用於現實世界,又會有哪些可能性呢?
一旦甲乙方進到零和賽局,情感上開始對抗之後,兩敗俱傷就是必然的結局了。既然是這樣,合約的撰寫及執行不妨看作是合作誠意的具象表態。
「幫我做的跟 Facebook 一樣單純就好」 「嗯 … ?」 不管怎麼估計都可能失準,在一件事做完之前你怎麼知道能不能做到?
殺雞用牛刀,降維打擊總是一個安全做法。殺雞何必用牛刀?但牛刀是真的有用啊!而手上有錘子什麼看起來都像釘子,問題是錘子真的能敲啊!
作為程式開發者,每次聽到「加個 flag 就好」或者「開個變數存起來」這種話總是會心頭一驚。理由也很正常,就是像這樣子的 workaround 並沒有真正解決問題,只是徒留技術債,以後怎麼爆炸的都不知道。 workaround 聽起來真的是十惡不赦,不是嗎? 可凡存在必有道理,不如來聊聊 wor
「為什麼要維護?有 bug 你們就要負責啊,你們怎麼可以給我們有 bug 的東西!」 一瞬間我也是愣了一下,還差點被說服(?)。
我們的世界實際上由虛擬和實體兩個部分組成。NFT已經在虛擬世界中證明了自己的價值,但如果將NFT應用於現實世界,又會有哪些可能性呢?
一旦甲乙方進到零和賽局,情感上開始對抗之後,兩敗俱傷就是必然的結局了。既然是這樣,合約的撰寫及執行不妨看作是合作誠意的具象表態。
「幫我做的跟 Facebook 一樣單純就好」 「嗯 … ?」 不管怎麼估計都可能失準,在一件事做完之前你怎麼知道能不能做到?
殺雞用牛刀,降維打擊總是一個安全做法。殺雞何必用牛刀?但牛刀是真的有用啊!而手上有錘子什麼看起來都像釘子,問題是錘子真的能敲啊!
你可能也想看
Thumbnail
重點摘要: 1.9 月降息 2 碼、進一步暗示年內還有 50 bp 降息 2.SEP 上修失業率預期,但快速的降息速率將有助失業率觸頂 3.未來幾個月經濟數據將繼續轉弱,經濟復甦的時點或是 1Q25 季底附近
Thumbnail
近期的「貼文發佈流程 & 版型大更新」功能大家使用了嗎? 新版式整體視覺上「更加凸顯圖片」,為了搭配這次的更新,我們推出首次貼文策展 ❤️ 使用貼文功能並完成這次的指定任務,還有機會獲得富士即可拍,讓你的美好回憶都可以用即可拍珍藏!
Thumbnail
隨著時間的演進,翻牆工具不斷地進化。今天,我們將深入探討2023年8月份,三種受到關注的翻牆工具,並概述GFW最新技術與它對流行工具的影響。在2022年底,GFW開始能夠識別到**TLS in TLS**的特徵,這個改進使得一些常用的翻牆工具如WireGuard,OPENVPN...
Thumbnail
比利時安特衛普皇家美術館於2011年宣布閉館大整修,終於在本月24日睽違11年後,重新開館迎接訪客!
Thumbnail
你聽過「棄嬰箱」嗎? 最近因為要交稿的關係,上網讀了些資料,意外發現一本好書。看完後頗有感觸,迫不及待發文與你分享。 這本書的書名是:《為什麼要拋棄我?:日本「嬰兒信箱」十年紀實》。 要介紹這本書,得先從「棄嬰箱」這三個字說起。
Thumbnail
「斜對面」、獲利多少、管理費便宜、銷售破九成、降價多少,都是騙人術語,讓你忍不住多看兩眼、心癢癢的衝動購屋。別以為電視購物那套只能騙便宜貨,房地產騙更大,而且你被騙之後還會感激他咧! 關於房地產有很多數學,不講你不會明白。 噹噹噹,第一題:「紅樹林站斜對面,捷運生活圈」或「距捷運十五分鐘」。
Thumbnail
好幾年前,正是流行紙片人的時期,因為被社會的審美觀綁架,Jannie從高中一路節食到30歲,病態的心理讓她陷入自我認同障礙,去年,她開始接觸重訓,徹底改變對「美」的認知,現在33歲的她,體態比20歲時還要火辣。 嚴苛的審美要求 病態的節食方式 運動好痛苦 回歸健康的心態 鼓勵你的話
Thumbnail
Jamstack 是個描述前後端分離下的字彙,因為老外就愛發明新字,所以這篇我們來用 Jamstack 的角度來看前後端分離。
Thumbnail
美國時間7月8日是「天使至鱒」Mike Trout初登大聯盟戰場的10週年紀念日,回顧這段不斷懷疑他天花板何在的日子,不知不覺竟也過了10個寒暑。儘管從5月中就拉傷右小退躺進傷兵名單,媒體依舊整理出他的10個驚奇紀錄,一方面提醒你我仍在見證這段傳傳奇進行式,也更令人期待「神鱒」復出江湖的那天...
Thumbnail
最近因為疫情,爸媽使用手機的習慣,從只發早安圖到頻繁的上網看新聞、學上網購物等,頻頻遇上各種麻煩,兩人透過視訊向我求救,經過耐心教一陣子,發現根本還是雞同鴨講,對牛彈琴!
Thumbnail
過去十年,本書作者巴加瓦每年出版的《洞見趨勢》一向是全球最受矚目的趨勢預測報告之一。由2011~2020,這系列趨勢解讀報告已發現並探討超過一百項改變人類文化的趨勢,而且其解讀準確程度高達九成以上,本文整理今年的10項洞見趨勢,附上40頁「完整簡報」分析,您會發現的確就是你我身處其中的現在進行式。
Thumbnail
利用數據看世界 數據的「數」這個字,發音與鼠年的鼠字差不多,可以當作今年就是數據翻轉年。 大數據的時代,任何物件的運作都會留下很多數據,數據完整性對於我這一位資料分析者而言,真是開心的不得了,每次發現一些新的數據,就迫不急待地拿出來計算一下,看到網路上的高手有新的分析方法,......
Thumbnail
重點摘要: 1.9 月降息 2 碼、進一步暗示年內還有 50 bp 降息 2.SEP 上修失業率預期,但快速的降息速率將有助失業率觸頂 3.未來幾個月經濟數據將繼續轉弱,經濟復甦的時點或是 1Q25 季底附近
Thumbnail
近期的「貼文發佈流程 & 版型大更新」功能大家使用了嗎? 新版式整體視覺上「更加凸顯圖片」,為了搭配這次的更新,我們推出首次貼文策展 ❤️ 使用貼文功能並完成這次的指定任務,還有機會獲得富士即可拍,讓你的美好回憶都可以用即可拍珍藏!
Thumbnail
隨著時間的演進,翻牆工具不斷地進化。今天,我們將深入探討2023年8月份,三種受到關注的翻牆工具,並概述GFW最新技術與它對流行工具的影響。在2022年底,GFW開始能夠識別到**TLS in TLS**的特徵,這個改進使得一些常用的翻牆工具如WireGuard,OPENVPN...
Thumbnail
比利時安特衛普皇家美術館於2011年宣布閉館大整修,終於在本月24日睽違11年後,重新開館迎接訪客!
Thumbnail
你聽過「棄嬰箱」嗎? 最近因為要交稿的關係,上網讀了些資料,意外發現一本好書。看完後頗有感觸,迫不及待發文與你分享。 這本書的書名是:《為什麼要拋棄我?:日本「嬰兒信箱」十年紀實》。 要介紹這本書,得先從「棄嬰箱」這三個字說起。
Thumbnail
「斜對面」、獲利多少、管理費便宜、銷售破九成、降價多少,都是騙人術語,讓你忍不住多看兩眼、心癢癢的衝動購屋。別以為電視購物那套只能騙便宜貨,房地產騙更大,而且你被騙之後還會感激他咧! 關於房地產有很多數學,不講你不會明白。 噹噹噹,第一題:「紅樹林站斜對面,捷運生活圈」或「距捷運十五分鐘」。
Thumbnail
好幾年前,正是流行紙片人的時期,因為被社會的審美觀綁架,Jannie從高中一路節食到30歲,病態的心理讓她陷入自我認同障礙,去年,她開始接觸重訓,徹底改變對「美」的認知,現在33歲的她,體態比20歲時還要火辣。 嚴苛的審美要求 病態的節食方式 運動好痛苦 回歸健康的心態 鼓勵你的話
Thumbnail
Jamstack 是個描述前後端分離下的字彙,因為老外就愛發明新字,所以這篇我們來用 Jamstack 的角度來看前後端分離。
Thumbnail
美國時間7月8日是「天使至鱒」Mike Trout初登大聯盟戰場的10週年紀念日,回顧這段不斷懷疑他天花板何在的日子,不知不覺竟也過了10個寒暑。儘管從5月中就拉傷右小退躺進傷兵名單,媒體依舊整理出他的10個驚奇紀錄,一方面提醒你我仍在見證這段傳傳奇進行式,也更令人期待「神鱒」復出江湖的那天...
Thumbnail
最近因為疫情,爸媽使用手機的習慣,從只發早安圖到頻繁的上網看新聞、學上網購物等,頻頻遇上各種麻煩,兩人透過視訊向我求救,經過耐心教一陣子,發現根本還是雞同鴨講,對牛彈琴!
Thumbnail
過去十年,本書作者巴加瓦每年出版的《洞見趨勢》一向是全球最受矚目的趨勢預測報告之一。由2011~2020,這系列趨勢解讀報告已發現並探討超過一百項改變人類文化的趨勢,而且其解讀準確程度高達九成以上,本文整理今年的10項洞見趨勢,附上40頁「完整簡報」分析,您會發現的確就是你我身處其中的現在進行式。
Thumbnail
利用數據看世界 數據的「數」這個字,發音與鼠年的鼠字差不多,可以當作今年就是數據翻轉年。 大數據的時代,任何物件的運作都會留下很多數據,數據完整性對於我這一位資料分析者而言,真是開心的不得了,每次發現一些新的數據,就迫不急待地拿出來計算一下,看到網路上的高手有新的分析方法,......