ExplainThis 全端開發雙週報 #1
Vercel 讓你更容易從前端邁向全端、亞馬遜 Prime Video 團隊從 serverless 架構遷移到 monolith、AI 成為大廠持續裁員的另一個原因
[前端開發] Vercel 讓你更容易從前端邁向全端
這週在前端界的大事,莫過於 Vercel 的年度旗艦發表會 Vercel Ship 進軍全端世界。假如還不知道 Vercel 的人,這邊快速科普一下,Vercel 是 React 最火紅的框架 Next.js 背後的公司,公司主要的服務項目是前端的部署。過去假如你做完一個前端專案,你可能會自己部署在 AWS 或者用 Heroku 等服務來部署。不過在 Vercel 出現後,因為實在太簡單好用,前端界的部署幾乎都轉往 Vercel 去。
而在這次的發表會中,Vercel 發表了三個新產品 Vercel KV (Redis 解決方案)、Vercel Postgres (SQL 資料庫)、Vercel Blob (像是 AWS S3)。意味著 Vercel 的守備範圍從前端,進一步擴展到全端。
社群對於 Vercel 的這三個新產品褒貶不一,批評的人多半是說這三個產品的收費太貴了,市面上有其他產品一樣好用,但收費沒這麼貴。而讚揚的人則是說,這三個產品一如 Vercel 過去的產品,都是做得很簡單好用,讓人能輕鬆上手,所以多收點錢也合理。
我們的觀點是樂見這樣的新產品,因為對於前端工程師來說,如果想跨入全端,透過這三個儲存方案,是能更輕鬆做到的。而且如果只是要做個人的 side project,免費版本也一定夠用。所以假如你是前端工程師,有在考慮轉往全端,或許現在可以從 Vercel 開始。
[後端與系統設計] 亞馬遜 Prime Video 團隊從 serverless 架構遷移到 monolith,為什麼他們要這麼做?
這週亞馬遜的 Prime Video 團隊發表了一篇新的技術文章《Scaling up the Prime Video audio/video monitoring service and reducing costs by 90%》,在文中描述它們如何透過把架構從 serverless 遷移到 monolith 來節省 90% 的成本。這件事在社群中掀起極大的討論,因為這幾年的架構趨勢都是往 serverless 靠攏,但是沒想到有團隊反而選擇從 serverless 遷移到 monolith,而且還因此更省成本。
非常推薦大家讀一下原文。在讀這篇原文時,有幾個我們認為值得思考的點。首先,架構方式沒有絕對的好與壞,而是有其適用的場景。在文中有提到,該團隊最開始選擇 serverless 的架構讓他們能夠非常快速開始專案,因此不能說最開始的架構選擇是錯的。只是隨著系統的使用量增加,該團隊意識到原本的架構變得不是最佳的形式,因而決定調整架構。
在真實世界的系統設計,很難真的在一開始就預知未來會發生的事,因此適時回頭檢視既有架構是否需要被重構,是非常重要的。沒有所謂完美的系統設計,只有最符合當下階段與情境的系統設計,該團隊的例子給了一個非常好的示範。
此外,在真實的系統設計中,成本永遠是一個重要的考量。而用 serverless 架構代表在分散式的元件之間有更高的資料傳輸成本,所以該團隊的高吞吐量使用情境下,若把這些元件從分散式改到單一進程的 monolith 當中,能大幅降低傳輸資料的成本。但不是所有團隊都會遇到像這個團隊在的情境,以及不是系統中的所有元件都有這種特性。因此實際的作法,可能會是有高運算與吞吐需求的子系統,放到 monolith 當中,而其他子系統維持用 serverless 的方式。
非常感謝亞馬遜 Prime Video 團隊公開分享這篇文章,假如你看完文章有想要進一步討論,歡迎加入 ExplainThis 的 Discord 頻道 (點擊加入),跟大家分享你的觀點。
[軟體業趨勢與職涯] 大廠持續裁員,穩定的職涯奠基在快速變動與適應
過去兩週全球軟體業持續在裁員,這波裁員潮已經持續將近一年了。從最開始許多大公司在裁員信中會提到總體經濟不好是主要原因,到這兩週看到的裁員,似乎跟總體經濟的關聯似乎沒那麼大了。例如 Shopify 在今年第一季利潤大漲 12%,但這週還是開刀裁了 20% 的人力。又或者 Dropbox 雖然在裁員信提到跟總體經濟仍有些關係,但更大的原因是 AI 時代到來,人力需求與過往不再相同,所以才會裁員同時又持續招人。
從個人面來看這個矛盾的狀況,我們認為有兩點值得大家重新思考。首先,過去認為「大公司等於穩定職涯」這件事,在過去一年的大廠接力式的裁員,已經幾乎不復存在了。換句話說,如果你在評估你的職涯選擇時用「穩定」來衡量,那麼你不該預期大廠會比新創來得好。現在大廠連營運狀況良好時都裁這麼兇,更加證實了大公司不再與穩定掛上等號。
此外,過去常聽人說的「變是唯一的不變」這說法,在 AI 時代顯得更精闢。在 AI 時代,特別是軟體產業的發展速度非常之快,想要讓自己能在行業內站穩腳步,就要先讓自己能夠跟著大環境快速變動。不斷學習、不斷思考,新科技與新技術出來就玩玩看,當成為走在技術前沿的人,就不擔心成為被裁的那個 (或是即使被裁,也肯定會馬上被別間公司招走)。
ExplainThis 文章更新
《新加坡擁抱 ChatGPT 與 AI 的前瞻思維》 身在新加坡的軟體業,我們透過這篇文章,淺談新加坡政府如何把政府部門當科技公司一樣營運,並積極嘗試把 ChatGPT 與生成式 AI 帶到公部門中。
一些值得花些時間看的資訊
Qwik 正式推出了 1.0 版本了,Qwik 是 Angular 之父的最新力作,從去年開始在前端社群掀起一陣討論,特別是因為 Qwik 提出的 Resumability 概念,有別於以往的前端架構。恭喜 Qwik 推出正式版,也推薦大家去試試看。
Swift 之父推出新語言 Mojo,是一款可兼容 Python 的語言,其目標是補足 Python 在效能面的不足。目前 Mojo 還沒有對外開放,有興趣的人可以申請排入候補名單。
這週看到有人分享 a-picture-is-worth-a-1000-words 這個 GitHub 上的開源專案,用生動的圖畫解說一些軟體工程的概念,例如這個解釋 Git 指令的系列圖畫,非常生動易懂。
在網頁開發界小有名氣的講師 Kent Dodds 最近推出了一個免費的網頁應用部署課程,短短的但涵蓋了部署時該注意的要點,推薦對於部署不熟的人可以看看。
加入 ExplainThis 社群
希望這一期的全端開發雙週報有帶你一些不同的新知與觀點,如果你喜歡我們的內容,歡迎與可能感興趣的朋友分享,也歡迎加入 ExplainThis 的社群: