AWS - Aurora 簡介Aurora 是 MySQL/PostgreSQL 兼容的 RDB 其優勢為更好的效能且節省成本的方案,Aurroa 可以提供 MySQL 5 倍吞吐量,3 倍 PostgreSQL 吞吐量,且使用 Aurora 不需要對多數應用程式進行修改 Aurora 數據庫集群架構 一個或多個 DB Instance Volume Cluster(跨可用區的 Virtual Volume) 使用 SSD 每個可用區都有數據副本 自動擴展至最大 128 TiB 以 10GB 為單位的邏輯塊(保護組) Instance...

AWS - ELB Cross Zone Load Balancing 情境 多 Zone 多 Instance 都是同一個服務並且有各自的 ELB 假設 AZ-1 有 4 個 Instances AZ-2 有 2 個 Instances 我們怎麼如何讓每台 Instance 都是負擔同樣的負載呢? 情境一 Close Cross-Zone Load Balancing(Default) 實際上前面的大 ELB 會平均分配流量給各 Zone 的 ELB 也就是 AZ-1 50% AZ-2 50% 但是當前情況是每個 Zone Instances 數量不同造成單 Zone 加總負載相同 單...

網路管理 - mDNS(Multicast DNS) 在本篇文章中,我們將深入介紹什麼是 mDNS(Multicast DNS)、它的工作原理、使用場景,以及如何實作與除錯。這是一項對 IoT、智慧家庭、區網服務自動發現非常關鍵的技術。 簡介 - 什麼是 mDNS?mDNS(Multicast DNS)是一種 不需要中央 DNS 伺服器就能進行名稱解析的協定,它讓區域網路(LAN)中的裝置可以透過名稱來互相發現彼此,而不需要手動輸入 IP...

部署 - Ramped Deployment/Rolling Deployment 簡介 Ramped Deployment/Rolling DeploymentRamped Deploymeny(逐漸部署)/Rolling Deployment(滾動部署) 很多人在處理 Ramped Deployment 會很困惑,因為阿這些通常是用於部署 多叢集/多伺服器/多實例 的子集,但其實 Ramped Deployment 與 Rolling Deployment 有著微小的差異, Ramped...

部署 - Big Bang Deployment / Continuous Deployment 簡介 Big Bang Deployment一次性將完整的新系統或大規模更新部署到生產環境,通常涉及停機時間,風險較高,若有問題回滾困難。 傳統上來講就是這種部署 簡介 Continuous Deploymeny自動化地將通過測試的變更持續部署到生產環境,無需人工介入,能快速提供新功能,風險較小。 簡單比較 Big Bang / Continuous 特性 Big Bang Deployment Continuous...

部署 - Blue/Green,Canary Deployment 前言Blue/Green Deployment(藍綠部署) 是一個相較於 Rolling Update(滾動更新)更有部署彈性的方式之一,而 Canary Deployment(金絲雀部署) 是基於 Blue/Green Deployment 的延伸應用,其中 Blue/Green Deployment 能夠比 Rolling Update 更有彈性的理由是,是新舊版本同時並存,當新版在部署期間發生問題都可以隨時快速 Rollback...

部署 - Shadow Deployment/Dark Launching 簡介 Shadow Deployment/Dark LaunchingShadow Deployment(影子部署) 在這個部署方式會在現存的版本中額外部署新版在一旁,但是使用者沒有存取新版的權限,就像被藏在陰影之中依樣,那… 新版的作用是甚麼呢,我們會在運行現存版本之中,同時複製使用者的請求到新版運行,在這之中觀察同樣的功能在新舊版本之間運行的差異。 優點這個方法可以讓我們去測試新功能,但不需要等待這些功能進行完整的 QA...

部署 - Recreate Deployment 簡介 Recreate DeploymentRecreate Deployment(重建部署) 在這種部屬方式,需要去關閉舊的系統,部署新的系統,然後重新啟動整個系統,這代表說會有一段停機時間 優點這是個便宜的部署方式,當我們想要完全改變系統,就不在需要負載平衡器來協助切換版本,不需要流量的重新導向 缺點但是最大的衝擊還是終端使用者,有一段的停機時間,必須等待應用程式可用,因此很多團隊並不會使用這種部屬方式,除非別無選擇。 參考資料 APWIDE GOLIVE - 8 Deployment Strategies Explained and...

Flaky Test 不穩定測試 Flaky Test不穩定測試是在相同 Test case 在不同執行中可能產生不同結果,時而 Pass 時而 Fail,這樣會降低測試的可靠性,所以我們應該針對不同問題方面進行強化 Flaky Test 不是測試方法,而是說明你的測試並不可靠,因此我們應該去了解是甚麼原由造成不可靠的測試,主要以三點來進行 思考原由 如何避免 哪些工具可以協助模擬適當環境 常見不穩定測試因素 環境變化 - 測試環境的配置與周遭設備是最容易去影響結果的要素之一 Race Condition - 資源在測試過程中被搶奪造成的占用造成結果不同 測試順序依賴 -...