# Blog 6|系統設計 介紹 - Reference : - https://hogantechs.com/zh_tw/system-design-intro-software-frontend-backend/ - 系統設計是指在軟體工程和系統工程中,為滿足特定需求而規劃和規範系統各個組成部分的過程。這個過程包括選擇合適的技術、架構、流程和資源,以創建一個能夠高效運作且具備可維護性和可擴展性的系統 ## 系統設計 - 可用性(Availability): 可用停機時間來表達 - | 可用性 | 停機時間(每年) | 停機時間(每月) | 停機時間(每天) | |---------------|------------------|------------------|------------------| | 99% | 約 3.65 天 | 約 22 小時 | 約 1 小時 | | 99.9% | 約 8.76 小時 | 約 43 分鐘 | 約 2.5 分鐘 | | 99.99% | 約 52.56 分鐘 | 約 2.5 分鐘 | 約 15 秒 | | 99.999% | 約 5.26 分鐘 | 約 0.25 分鐘 | 約 1.5 秒 | | 99.9999% | 約 0.53 分鐘 | 約 1.5 秒 | 約 0.03 秒 | - 可靠性(Reliability):能夠承受故障的能力 - MTBF: 平均故障間隔 - MTTR: 平均修復時間 - 可擴展性(Scalability):隨著需求增長而適應新的負載 - 負載均衡(Load Balancing)、自動擴展(Auto-scaling)、分散式系統、消息隊列(Kafka, RabbitMQ) - 水平擴展 : 使用更多的伺服器 - 垂直擴展 : 現有伺服器的裝置進行升級 - 可維護性(Maintainable):易於修復、擴展和優化 - 模塊化設計(Modular Design): 分層架構、微服務架構 - 自動化測試與部署 : Unit/Integration Test、CICD - 文檔與可讀性 : UML、Coding Style - 容錯性(Fault Tolerance): 部分元件故障仍能提供服務 - 備份 (Replication) - 分區(Partitioning) - 檢查點 (Checkpointing) - 高效性(Efficiency): 提升系統效能 - 緩存(Caching) - DB indexing - DB sharding - 數據一致性(Data Consistency): 確保數據在分散式系統中的一致性是可靠性的一部分。常見策略包括: - CAP 理論:Consistency、Availability、Partition Tolerance - 多版本控制(Version Control
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up