wiki:jazz/LessonsLearned

Version 6 (modified by jazz, 2 years ago) (diff)

--

Lessons Learned

Network

  • 跨不同 Data Center 的資訊架構要特別留意 data pipeline 會受制於 bandwidth / latency ,而且要額外規劃 high availability

Docker

  • Docker 的精神是傾向單一 image 可以維持 stateless (至少要確保 state 存放於外部 storage 中)

Fluentd

  • 前提:不熟悉 Ruby 的開發團隊
  • Fluentd 比較合適用在 input source 不是開發團隊可以控制,只能取得 log / syslog 等的場景 (扮演黏著不同 Data Pipeline 的角色)

DNS

  • Azure Traffic Manager 是認 DNS Server 的位置,不是 Client 裝置的位置

時區

  • 由於不容易確保 Infra 的 default timezone 都有正確改到,最好在 Application Layer 也實作
    • Java -Duser.timezone=

字集

  • 確保讀寫都用 UTF-8

產品生命週期

併購 & 知識管理

  • 場景:大公司併購小公司,產品從小公司 migrate 到大公司的資料中心或公有雲。
  • 痛點:原開發團隊核心開發者離開,若沒有妥善交接,欠缺知識管理,維運團隊後續維運起來會很痛苦(因為很多事情都是黑盒子,無從得知過去為何會那樣開發,技術細節更不是單看程式碼就可以馬上理解。遇到緊急狀況,無法快速技術排除)。