iT邦幫忙

軟體開發相關文章
共有 132 則文章
鐵人賽 Software Development DAY 30

技術 [ Day 30 ] CICD 串接 AWS EC2 0 成本雲端發布、CloudWatch 監控真相與 30 天架構師畢業之旅!

太棒啦,恭喜大家跟著我一起堅持到了最後一天,在過去 29 天裡,我們從最底層的 Netty 非同步 I/O 引擎切入,經歷了網路延遲混沌工程、Resilienc...

鐵人賽 Software Development DAY 28

技術 [ Day 28 ] Pod 重啟資料卻失蹤 : K8s Volume 與 ConfigMap / Secret 打造狀態與機密不崩潰的高可用微服務!

在前面的文章中,我們完成了微服務上 K8s、滾動更新雙探針與 HPA 自動擴充。然而,當我們準備將這套系統推向真實 Production 生產環境時,我們必須確...

鐵人賽 Software Development DAY 26

技術 [ Day 26 ] K8s 分散式節點會比單機Docker 快嗎?實測拆解:Docker vs k8s 3 副本叢集的 QPS、延遲與抗壓邊界

前兩天我們成功將非同步 S3 微服務部署至 Minikube K8s 叢集,並設定了Liveness/Readiness 雙探針實現了 0% 錯誤率的無感發佈,...

鐵人賽 Software Development DAY 24

技術 [ Day 24 ] 告別人工維運 - 從 Docker image 到 K8s 叢集,用 2 個 YAML 檔打造 3 副本高可用微服務

昨天我們學習了高可用性(High Availability, HA)核心思維,並在本地建立好了 Minikube 測試叢集與 kubectl 命令列工具。 今天...

鐵人賽 Software Development DAY 25

技術 [ Day 25 ] k8s 剛啟動的 Pod 偷偷吃流量?實測 Readiness/Liveness 達到無感滾動更新 (Zero-Downtime) !

昨天我們成功撰寫了 Deployment 與 Service YAML 檔,將非同步 S3 微服務部署至 Minikube 叢集,並親眼驗證了當 Pod 被殺掉...

鐵人賽 Software Development DAY 20

技術 [ Day 20 ] 寫入靠背壓,讀取靠快取 - 為什麼對 List API 限流是反效果?Cache 才是救星!

昨天我們深入剖析了 Timeout 設定與容量規劃的數學公式,證明了盲目放寬 Timeout 只會讓連線池乾涸。 今天,我們要將壓力測試的視角從PUT上傳轉向l...

鐵人賽 Software Development DAY 23

技術 [ Day 23 ] 為什麼 Docker 單機一定會崩潰?高可用 (HA) 叢集與告別人工維運的救星 K8s

前幾天我們利用Docker完成了非同步 S3 微服務的容器化、架設了 Prometheus + Grafana 監控鏈路,並透過 JMeter 壓測驗證有無保護...

鐵人賽 Software Development DAY 22

技術 [ Day 22 ] 重新部署就爆出 5xx 警報?零停機部署與 0 封包遺失的優雅停機!

前幾天我們完成了微服務容器化(Docker)、Prometheus/Grafana 監控服務建立、破除長 Timeout 迷思、並透過壓力測試驗證了listOb...

鐵人賽 Modern Web DAY 30

技術 系列附錄:用 AI 做出一個你自己領域的工具——從規則卡到驗收交付

本篇由 AI 協作整理。 內容整理自 a11y-moda 的開發與驗收經驗,由作者與 Codex 協作編排,發布前由作者確認。協作模式見 Day 01。 如...

鐵人賽 Software Development DAY 19

技術 [ Day 19 ] 盲目調大 Timeout 讓記憶體暴增 15 倍!解密微服務連線池乾涸與 OOM 爆發點

昨天我們成功在 JMeter 上傳併發測試中,證明了前面寫的保護api的功能將 3 秒超時引發的錯誤率從 53% 降至 0%,並透過 Grafana 發現真正的...

鐵人賽 Software Development DAY 18

技術 [ Day 18 ] CPU 不到 40% 卻卡死?Grafana監控網路瓶頸與防禦型 API 實戰對照

昨天我們成功運用 Docker Compose 建立App 微服務 + Prometheus + Grafana 的全套監控服務 現在,我們的容器不再是黑盒子了...

鐵人賽 Software Development DAY 17

技術 [ Day 17 ] 容器化魔法:Docker Compose 一鍵建立 App + Prometheus + Grafana 監控服務

昨天我們成功運用多階段建置(Multi-stage Build)技術,將非同步 S3 微服務打包成僅有 500MB 的極輕量 Docker 容器,並在獨立隔離的...

鐵人賽 Software Development DAY 16

技術 [ Day 16 ] 容器化服務 : 撰寫 Dockerfile 與多階段建置 (Multi-stage build) 環境隔離

我們從一開始的三高指標與同步/非同步引擎對決,一路升級到分散式環境下的防禦機制(Semaphore 背壓限流、Double-Check 、uploadId 冪等...

鐵人賽 Software Development DAY 12

技術 [ Day 12 ] 前端重試一百次也絕不產生髒資料!實作客戶端重試與 Idempotency 設計

昨天我們完成了 Double-Check Pattern 的實作,當 putObject 發生 timeout 時,後端不再直接回傳失敗,而是使用 headOb...

鐵人賽 Software Development DAY 14

技術 [ Day 14 ] 初探混沌工程(Chaos Engineering ):本地端用 tc 製造網路延遲與封包遺失

在前兩篇中,我們在本地開發環境裡,利用了 simulateScenario 在代碼內部模擬超時,驗證了自我修復確實可以起死回生,手把手完成了微服務的三層防禦盾牌...

鐵人賽 Software Development DAY 11

技術 [ Day 11 ] 實作 Double-Check Pattern:狀態的二次確認機制

昨天我們說明了網路世界最殘酷的一面。當微服務呼叫 AWS S3 上傳檔案時,如果發生 TimeoutException時不能直接斷言上傳一定失敗,也有可能是上傳...

鐵人賽 Software Development DAY 10

技術 [ Day 10 ] 當延遲和封包遺失讓網路不再可靠:告別強一致性,擁抱最終一致性

昨天我們用 JMeter 與 JConsole 進行了本地端的第一波大壓測,親眼見證了非同步 Netty 在面對高併發流量時,如何以極其穩定的執行緒表現,不過在...

鐵人賽 Software Development DAY 6

技術 [ Day 6 ] 實戰演練:雲端前哨站 AWS S3 最小權限原則(IAM)到本地服務連線

前幾天我們完成了本地端非同步模型的底層修煉,對非同步與 Event Loop 機制有了紮實的理解。接著再開始用 Java 21 與 Netty 非同步 HTTP...

鐵人賽 Software Development DAY 5

技術 [ Day 5 ] 非同步救星:初探 Netty 與 Event Loop 事件驅動模型

昨天我們親眼見證了同步連線的慘況:當大量併發請求湧入時,少量的執行緒會因為等待 I/O 而卡死(執行緒飢餓);但如果無腦加開成千上萬個執行緒,又會讓伺服器記憶體...

鐵人賽 Software Development DAY 21

技術 [ Day 21 ] 程式語言底層對決Java vs Node.js vs Python:為什麼非同步不是萬靈丹?單核、多核與OOM的挑戰

前幾天的單機壓測中,目睹了伺服器在極限流量下崩潰的瞬間。不論如何優化Netty的Event Loop,當請求像海嘯般湧入時,記憶體指標依然無情地飆升,最終迎來O...

鐵人賽 Software Development DAY 4

技術 [ Day 4 ] 傳統的極限:實作同步連線與執行緒飢餓(Thread Starvation)

昨天我們用餐廳的比喻了解了同步與非同步的差異。今天,我們要會透過程式碼,重現傳統同步連線在面對併發請求時,伺服器會面對哪些問題 為了專注於觀察底層行為,我們今天...

鐵人賽 Software Development DAY 3

技術 [ Day 3 ] 為什麼伺服器會卡死?圖解同步、非同步與阻塞的愛恨情仇

前兩天我們聊了系統設計的思維,以及高併發情境下(如演唱會搶票)伺服器連線池被榨乾的慘況。今天,我們終於要切入正題,來面對那個讓無數後端工程師頭痛的高併發下伺服器...

鐵人賽 Software Development DAY 2

技術 [ Day 2 ] 理想與現實的落差:大型系統到底在考量什麼?

在實作之前,我們必須先釐清真實世界的系統到底長什麼樣子。回想以前自己寫些小專案時,只要資料庫寫得進去、畫面出得來就好。但在真實的商業環境裡,不同類型的服務面臨著...

鐵人賽 Software Development DAY 1

技術 [ Day 1 ] 為甚麼本地端好好的,上線怎麼炸了?告別通靈除錯的架構演進之旅

為什麼明明在本地端跑都好好的,為什麼一上線就炸了? 剛踏入軟體工程師這個領域滿一年,這句話大概是我在心裡吶喊過最多次的一句話。以前在學校做專題或實驗時,專案...

技術 AI agent 的 PR 被退,不是因為它不會寫 code,而是你沒有先定義什麼值得修

一個 AI agent 送出 PR,測試有跑,描述也寫了,diff 看起來還算乾淨。 然後 reviewer 還是把它退掉。 這件事一點都不矛盾。真實工程流程不...

技術 AGENTS.md 不是提示詞備忘錄,而是 repo 的新基礎設施

如果一個檔案會改變 agent 怎麼讀你的 repo、怎麼下手改 code、怎麼判斷任務完成,這個檔案就已經不是提示詞備忘錄了。 它是基礎設施。 這件事一開始很...

技術 AI coding agent 的下一個介面不是 chat,而是預算表

很多團隊導入 AI coding agent 時,第一個反應還是很直覺:介面是不是更好聊?prompt 要怎麼寫?agent 能不能一次看懂整個 repo? 這...

技術 【吳桑泥的淬鍊升級書單】Day19 (診斷篇)我們為何總是治標不治本?洞悉阻礙你深入思考的九個陷阱

(診斷篇)我們為何總是治標不治本?洞悉阻礙你深入思考的九個陷阱 那個永遠在「提醒」的 PR 身為一個軟體工程師,我想你對這個場景肯定不陌生:你信心滿滿地提交了...

鐵人賽 Mobile Development DAY 1

技術 【30 天做一個極簡App】技術選型與系統設計(Flutter × LLM × n8n)

「明明很有想法,下筆卻很困難?」 這是我在工作中,時常接觸到知識型創作者和中小型企業主,最常聽到的心聲!他們能言善道,說自己的想法時,既真誠又有魅力(油嘴滑...