值得省思的文章 —— Scaling up the Prime Video audio/video monitoring service and reducing costs by 90%
這是 1 篇講述關於 Amazon Prime Video 內部 1 個影音品質監控系統從微服務(microservices)架構轉為 monolith 架構的文章。 最近看到社群有些人在講被顧問坑微服
Posted on Dec 17, 2023 by Amo Chen ‐ 1 min read
這是 1 篇講述關於 Amazon Prime Video 內部 1 個影音品質監控系統從微服務(microservices)架構轉為 monolith 架構的文章。 最近看到社群有些人在講被顧問坑微服
Posted on Dec 17, 2023 by Amo Chen ‐ 1 min read
使用 Docker compose 架設開發環境真的十分方便,但是隨著容器數量增多,很容易遇到多個容器都有共通設定的問題,例如多個容器都使用同一套環境變數,每新增 1 個容器,又要再重新複製貼上⋯⋯,如下列範例:
services:
web:
image: "nginx"
environment:
- DEBUG=true
- API_VERSION=v1
redis:
image: "redis:alpine"
environment:
- DEBUG=ture
- API_VERSION=v1
不過 YAML 的規格其實有針對這個問題提出解決辦法,該功能稱為 YAML anchors & aliases 這個功能可以讓我們把共通/共用的設定變成 1 個可引用的區塊,然後如果後續需要使用這些共通/共用的設定時,可以用特殊語法直接告訴 Docker compose 去複製/引用該區塊的設定。
真的相當方便,一起來看怎麼使用吧!
Posted on Dec 16, 2023 in Docker by Amo Chen ‐ 4 min read
在使用 docker compose 架設開發環境時,會遇到所謂的服務相依性問題(service dependencies), 舉個簡單的例子,通常資料庫的容器(container)ㄧ定要先正常啟動,後端 API server 的容器才能接著啟動,因為 API server 可能在啟動時需要與資料庫連線建立 connection pool 之後,才會提供 API 服務,否則就會發生錯誤並退出執行,導致容器啟動失敗。
在這個情況下, API server 容器依賴資料庫容器的正常運作,這就是服務相依性。如果沒有理解服務相依性的問題,那麼在使用 docker compose 的時候,將會很容易遇到時而啟動成功,時而啟動失敗的問題,因為有時相依的服務會剛好準時或提早起動成功,有時則還沒準備好。
為此, docker compose 也有提供解決服務相依性的設定,那就是 depends_on 設定。
本文將教導如何使用 depends_on
設定。
Posted on Dec 14, 2023 in Docker by Amo Chen ‐ 5 min read
現在 Desktop 版本的 Browser 幾乎(Chrome, Firefox, Safari, Edge 等等)都有提供 Notification API ,這個 API 可以讓開發者發出類似手機推播的訊息到使用者的桌面,使用 Push Notification 的好處是: 使用者
Posted on Dec 13, 2023 by Amo Chen ‐ 2 min read
這篇文章雖然標題有 Python, 但是個人覺得寶貴的內容是作者對於 cp 指令的研究與介紹。 cp 指令是 Unix, Linux, macOS 等作業系統的基本指令,用來複製檔案,可以說每個工程師都
Posted on Dec 12, 2023 by Amo Chen ‐ 1 min read
你有在寫工作日誌嗎? 今年初我做了 1 個嘗試,每天寫下當天做了什麼的工作日誌,想要作為日後回顧使用之外,也用來反省每天做的事有沒有實質推進專案進
Posted on Dec 11, 2023 by Amo Chen ‐ 2 min read
雖然 Python 3.12 還是可以使用 datetime.utcnow() 取得 UTC 的 datetime object, 不過會顯示 datetime.utcnow() 被 Deprecated 的警告。 p.s. datetime.utcfromtimestamp() 也是如此 datetime.utcnow() 之所以會被退休是因為 datetime.utcnow() 會回傳沒有時區(timezone)的 datetime object, 如果這
Posted on Dec 10, 2023 by Amo Chen ‐ 1 min read
如果要在前端等待特定時間後某些工作,或者定期執行某些工作,都是用 setTimeout() 與 setInterval() 達成需求。 不過使用這 2 個函式的最大誤區是認為它會準時執行⋯⋯。 「 是的,
Posted on Dec 9, 2023 by Amo Chen ‐ 2 min read