SlideShare a Scribd company logo
1 of 22
多奇數位創意有限公司
技術總監 黃保翕(Will 保哥)
https://blog.miniasp.com
從實戰經驗看到的 K8s 導入痛點
痛點一:缺乏現代化 Infra 管理經驗
缺乏自動化管理能力
• 現有 Infra 經驗都是管理虛擬機器為主
• 極度缺乏對 Infra 的自動化管理能力
• 不知道如何將 Infra 設定轉換為代碼 ( IaC )
• 對於 DevOps 或 CI/CD 沒有完整的概念
3
缺乏容器化技術的使用經驗
• 沒有實際將應用系統容器化的經驗
• 沒有 Dev/Ops 的分工經驗 (一個人包辦所有開發與維運工作)
• 過渡依賴 GUI 操作界面,不熟悉 CLI 介面操作
4
痛點二:組織文化
究責文化
• 究責文化導致沒人敢創新
- 槍打出頭鳥
• 大量的紙上作業或人工簽核流程
- 自動化的殺手
- 為了有人能負責?
• 程式出錯找誰負責?
- 信心哪裡來?
6
康威定律 (Conway's Law)
• 導入 K8s 會受限於當下組織的溝通結構
- 敏捷
- 透明
- 信任
- 自主
- Inverse Conway Maneuver
• 不允許犯錯的工作環境
- 追求 100% 的成功
• 不相信自動化背後帶來的長期效益
- 無法克服自動化帶來的短期陣痛
7
敏捷文化
• 我真的超想導入 CI/CD 但負責 Infra 的同仁不想自動化
• 老闆都認為敏捷就是什麼都要快一點
8
痛點三:複雜的部署環境
混和 Windows 與 Linux 執行環境
• 許多中大型企業都有類似困擾
• 院級單位的政府機關經常有混和的 IT 架構
• 大型企業的網路管理有時候會極其複雜
10
部署架構混亂且缺乏彈性
• 為了節省 IP 而將大量服務塞到同一台主機上
• 大量的 Configuration Drift 導致無人可掌握部署環境
• 部署架構缺乏彈性,不容易做到自動橫向延展 (Scale out)
• 開發人員寫出「有狀態」的程式碼,缺乏「分散式」架構觀念
11
效能調校的經驗不足
• 遇到效能問題先調 DB 索引
- 將資料庫視為「全域變數」來使用
• 無法有效率的使用 CPU 資源
- 非同步程式設計
• 缺乏分散式架構的設計經驗
- 善加利用 Message Queue
- 設計出可以 Scale out 的程式架構
12
痛點四:錯誤認知與期待
錯誤的認知
• 我的服務絕對不能斷線!
- 硬體毀損
- 程式錯誤
- 停機時間
- Zero Downtime Updates
• 我不想再面對 Windows Update 了!
- 你可以不要再用 Windows 了嗎?
• 我的流量很大,聽說導入 Kubernetes 之後 Pod 會經常死掉
- 到底是誰說的?
14
錯誤的期待
• K8s 有 Desired State 是不是意味著我程式寫的再爛也不怕了?
• 我現在一台 VM 可以承受 200 人同時連線,上了 K8s 可以更好嗎?
15
痛點五:我公司沒人懂 K8s
不懂沒關係:不要瞎掰跟腦補
• 對 K8s 有正確的理解,比什麼都還重要!
• 我們是否該選用雲端的 K8s 託管服務?(EKS, AKS, GKE)
• 開發人員不管主機也需要學習 K8s 嗎?
• 維運人員不會寫 Code 可以學 K8s 嗎?
• 我們的服務現在都已經透過 Docker 運行,適合上 K8s 嗎?
將現有系統搬上 K8s 的效益
• 導入 Kubernetes 是一把「照妖鏡」
• 透過 Kubernetes 提供的各種抽象改善複雜度問題
- 想像 K8s 就是「一台」可以自動長大的「單一」伺服器
- 妥善設計應用程式的顆粒度,提升資源利用率
• 徹底將應用程式(App)與基礎架構(Infra)進行解耦 (Decoupling)
- 解構應用程式,盡量以無狀態的方式進行運作
• 徹底簡化 CI / CD 複雜度
- 只要有 YAML 與 kubectl 就可以掌握一切
18
總結
成功導入 Kubernetes 五步驟
1. 對相關人員進行教育訓練 (Dev/Ops)
2. 將應用程式或系統全面容器化 (開發環境/測試環境/生產環境)
3. 遷移與部署應用程式到 K8s 進行運作
4. 調整 CI / CD 流程並簡化部署程序
5. 對服務進行監控與分析
與我聯繫
21
聯絡資訊
• The Will Will Web
記載著 Will 在網路世界的學習心得與技術分享
- http://blog.miniasp.com/
• Will 保哥的技術交流中心 (臉書粉絲專頁)
- http://www.facebook.com/will.fans
• Will 保哥的推特
- https://twitter.com/Will_Huang

More Related Content

What's hot

20分でわかった事にするパワーマネジメント
20分でわかった事にするパワーマネジメント20分でわかった事にするパワーマネジメント
20分でわかった事にするパワーマネジメント
magoroku Yamamoto
 
How VXLAN works on Linux
How VXLAN works on LinuxHow VXLAN works on Linux
How VXLAN works on Linux
Etsuji Nakai
 
Cloud Native Bern 05.2023 — Zero Trust Visibility
Cloud Native Bern 05.2023 — Zero Trust VisibilityCloud Native Bern 05.2023 — Zero Trust Visibility
Cloud Native Bern 05.2023 — Zero Trust Visibility
Raphaël PINSON
 

What's hot (20)

Kubernetes Networking with Cilium - Deep Dive
Kubernetes Networking with Cilium - Deep DiveKubernetes Networking with Cilium - Deep Dive
Kubernetes Networking with Cilium - Deep Dive
 
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
 
Cilium + Istio with Gloo Mesh
Cilium + Istio with Gloo MeshCilium + Istio with Gloo Mesh
Cilium + Istio with Gloo Mesh
 
20分でわかった事にするパワーマネジメント
20分でわかった事にするパワーマネジメント20分でわかった事にするパワーマネジメント
20分でわかった事にするパワーマネジメント
 
Best Practices for ETL with Apache NiFi on Kubernetes - Albert Lewandowski, G...
Best Practices for ETL with Apache NiFi on Kubernetes - Albert Lewandowski, G...Best Practices for ETL with Apache NiFi on Kubernetes - Albert Lewandowski, G...
Best Practices for ETL with Apache NiFi on Kubernetes - Albert Lewandowski, G...
 
Deep dive in container service discovery
Deep dive in container service discoveryDeep dive in container service discovery
Deep dive in container service discovery
 
Learn O11y from Grafana ecosystem.
Learn O11y from Grafana ecosystem.Learn O11y from Grafana ecosystem.
Learn O11y from Grafana ecosystem.
 
How VXLAN works on Linux
How VXLAN works on LinuxHow VXLAN works on Linux
How VXLAN works on Linux
 
20220302_TechDojo_OpenShift_BootCamp_1章概要
20220302_TechDojo_OpenShift_BootCamp_1章概要20220302_TechDojo_OpenShift_BootCamp_1章概要
20220302_TechDojo_OpenShift_BootCamp_1章概要
 
Kubernetes and service mesh application
Kubernetes  and service mesh applicationKubernetes  and service mesh application
Kubernetes and service mesh application
 
Apache Camel v3, Camel K and Camel Quarkus
Apache Camel v3, Camel K and Camel QuarkusApache Camel v3, Camel K and Camel Quarkus
Apache Camel v3, Camel K and Camel Quarkus
 
開發人員必須知道的 Kubernetes 核心技術 - Kubernetes Summit 2018
開發人員必須知道的 Kubernetes 核心技術 - Kubernetes Summit 2018開發人員必須知道的 Kubernetes 核心技術 - Kubernetes Summit 2018
開發人員必須知道的 Kubernetes 核心技術 - Kubernetes Summit 2018
 
Challenges of Kubernetes On-premise Deployment
Challenges of Kubernetes On-premise DeploymentChallenges of Kubernetes On-premise Deployment
Challenges of Kubernetes On-premise Deployment
 
BuildKitによる高速でセキュアなイメージビルド (LT)
BuildKitによる高速でセキュアなイメージビルド (LT)BuildKitによる高速でセキュアなイメージビルド (LT)
BuildKitによる高速でセキュアなイメージビルド (LT)
 
Introduction to KubeSphere and its open source ecosystem
Introduction to KubeSphere and its open source ecosystemIntroduction to KubeSphere and its open source ecosystem
Introduction to KubeSphere and its open source ecosystem
 
Cloud Native Bern 05.2023 — Zero Trust Visibility
Cloud Native Bern 05.2023 — Zero Trust VisibilityCloud Native Bern 05.2023 — Zero Trust Visibility
Cloud Native Bern 05.2023 — Zero Trust Visibility
 
分散仮想ストレージシステム紹介
分散仮想ストレージシステム紹介分散仮想ストレージシステム紹介
分散仮想ストレージシステム紹介
 
k8s practice 2023.pptx
k8s practice 2023.pptxk8s practice 2023.pptx
k8s practice 2023.pptx
 
[KubeCon EU 2020] containerd Deep Dive
[KubeCon EU 2020] containerd Deep Dive[KubeCon EU 2020] containerd Deep Dive
[KubeCon EU 2020] containerd Deep Dive
 
Running Kubernetes in Production: A Million Ways to Crash Your Cluster - DevO...
Running Kubernetes in Production: A Million Ways to Crash Your Cluster - DevO...Running Kubernetes in Production: A Million Ways to Crash Your Cluster - DevO...
Running Kubernetes in Production: A Million Ways to Crash Your Cluster - DevO...
 

Similar to 從實戰經驗看到的 K8S 導入痛點

開放原始碼 Ch2.3 app - oss - ui framewoks (ver 1.0)
開放原始碼 Ch2.3   app - oss - ui framewoks (ver 1.0)開放原始碼 Ch2.3   app - oss - ui framewoks (ver 1.0)
開放原始碼 Ch2.3 app - oss - ui framewoks (ver 1.0)
My own sweet home!
 
2021 MOPCON - 行動化解決方案的技術選型, 交給 Line Bot 來搞定
2021 MOPCON - 行動化解決方案的技術選型, 交給 Line Bot 來搞定2021 MOPCON - 行動化解決方案的技術選型, 交給 Line Bot 來搞定
2021 MOPCON - 行動化解決方案的技術選型, 交給 Line Bot 來搞定
Kyle Shen
 

Similar to 從實戰經驗看到的 K8S 導入痛點 (20)

從 GitHub Copilot 到 Enterprise Copilot:打造符合企業需求的智能開發助手之路 | .NET Conf 2023 Taiwan
從 GitHub Copilot 到 Enterprise Copilot:打造符合企業需求的智能開發助手之路 | .NET Conf 2023 Taiwan從 GitHub Copilot 到 Enterprise Copilot:打造符合企業需求的智能開發助手之路 | .NET Conf 2023 Taiwan
從 GitHub Copilot 到 Enterprise Copilot:打造符合企業需求的智能開發助手之路 | .NET Conf 2023 Taiwan
 
DevOps的神鬼奇航
DevOps的神鬼奇航DevOps的神鬼奇航
DevOps的神鬼奇航
 
實踐 Clean Architecture(實作高可用性的軟件架構)
實踐 Clean Architecture(實作高可用性的軟件架構)實踐 Clean Architecture(實作高可用性的軟件架構)
實踐 Clean Architecture(實作高可用性的軟件架構)
 
在學校開機場把自己的學費賺回來!.pptx
在學校開機場把自己的學費賺回來!.pptx在學校開機場把自己的學費賺回來!.pptx
在學校開機場把自己的學費賺回來!.pptx
 
Linux运维趋势 第0期 运维自动化
Linux运维趋势 第0期 运维自动化Linux运维趋势 第0期 运维自动化
Linux运维趋势 第0期 运维自动化
 
雲端05_如何在雲端管理研發知識以廣義智控為例 曾廣輝
雲端05_如何在雲端管理研發知識以廣義智控為例 曾廣輝雲端05_如何在雲端管理研發知識以廣義智控為例 曾廣輝
雲端05_如何在雲端管理研發知識以廣義智控為例 曾廣輝
 
Android裝置開發過程的軟硬整合關鍵及挑戰
Android裝置開發過程的軟硬整合關鍵及挑戰Android裝置開發過程的軟硬整合關鍵及挑戰
Android裝置開發過程的軟硬整合關鍵及挑戰
 
Towards scrum of scrums
Towards scrum of scrumsTowards scrum of scrums
Towards scrum of scrums
 
開放原始碼 Ch2.3 app - oss - ui framewoks (ver 1.0)
開放原始碼 Ch2.3   app - oss - ui framewoks (ver 1.0)開放原始碼 Ch2.3   app - oss - ui framewoks (ver 1.0)
開放原始碼 Ch2.3 app - oss - ui framewoks (ver 1.0)
 
01 DevOps and Azure DevOps overview
01 DevOps and Azure DevOps overview01 DevOps and Azure DevOps overview
01 DevOps and Azure DevOps overview
 
Dev ops 顛覆新時代創新論壇
Dev ops 顛覆新時代創新論壇Dev ops 顛覆新時代創新論壇
Dev ops 顛覆新時代創新論壇
 
开源软件营销策略
开源软件营销策略开源软件营销策略
开源软件营销策略
 
2021 MOPCON - 行動化解決方案的技術選型, 交給 Line Bot 來搞定
2021 MOPCON - 行動化解決方案的技術選型, 交給 Line Bot 來搞定2021 MOPCON - 行動化解決方案的技術選型, 交給 Line Bot 來搞定
2021 MOPCON - 行動化解決方案的技術選型, 交給 Line Bot 來搞定
 
Scrum敏捷开发模型
Scrum敏捷开发模型Scrum敏捷开发模型
Scrum敏捷开发模型
 
啟動你的AI工匠魂
啟動你的AI工匠魂啟動你的AI工匠魂
啟動你的AI工匠魂
 
Kamigo reviews 20191127
Kamigo reviews 20191127Kamigo reviews 20191127
Kamigo reviews 20191127
 
Piz nair technologies introduction
Piz nair technologies introductionPiz nair technologies introduction
Piz nair technologies introduction
 
導讀持續交付 2.0 - 談當代軟體交付之虛實融合
導讀持續交付 2.0 - 談當代軟體交付之虛實融合導讀持續交付 2.0 - 談當代軟體交付之虛實融合
導讀持續交付 2.0 - 談當代軟體交付之虛實融合
 
微服務對IT人員的衝擊
微服務對IT人員的衝擊微服務對IT人員的衝擊
微服務對IT人員的衝擊
 
從技術找未來
從技術找未來從技術找未來
從技術找未來
 

More from Will Huang

More from Will Huang (20)

深入理解 CVE-2022-24765 漏洞的攻擊與防護策略 (Git v2.35.2)
深入理解 CVE-2022-24765 漏洞的攻擊與防護策略 (Git v2.35.2)深入理解 CVE-2022-24765 漏洞的攻擊與防護策略 (Git v2.35.2)
深入理解 CVE-2022-24765 漏洞的攻擊與防護策略 (Git v2.35.2)
 
從頭打造 C#、.NET 與 ASP.NET Core 開發環境
從頭打造 C#、.NET 與 ASP.NET Core 開發環境從頭打造 C#、.NET 與 ASP.NET Core 開發環境
從頭打造 C#、.NET 與 ASP.NET Core 開發環境
 
ASP.NET Core 6.0 全新功能探索
ASP.NET Core 6.0 全新功能探索ASP.NET Core 6.0 全新功能探索
ASP.NET Core 6.0 全新功能探索
 
進擊的前端工程師:今天就用 JSON Server 自己打造 API 吧!
進擊的前端工程師:今天就用 JSON Server 自己打造 API 吧!進擊的前端工程師:今天就用 JSON Server 自己打造 API 吧!
進擊的前端工程師:今天就用 JSON Server 自己打造 API 吧!
 
你一定不能不知道的 Markdown 寫作技巧
你一定不能不知道的 Markdown 寫作技巧你一定不能不知道的 Markdown 寫作技巧
你一定不能不知道的 Markdown 寫作技巧
 
使用 .NET 5 實現美股期貨的量化交易策略 (.NET Conf 2020)
使用 .NET 5 實現美股期貨的量化交易策略 (.NET Conf 2020)使用 .NET 5 實現美股期貨的量化交易策略 (.NET Conf 2020)
使用 .NET 5 實現美股期貨的量化交易策略 (.NET Conf 2020)
 
實現 Angular, Docker 與 Kubernetes 持續部署 (NG+2020)
實現 Angular, Docker 與 Kubernetes 持續部署 (NG+2020)實現 Angular, Docker 與 Kubernetes 持續部署 (NG+2020)
實現 Angular, Docker 與 Kubernetes 持續部署 (NG+2020)
 
Micro-frontends with Angular 10 (Modern Web 2020)
Micro-frontends with Angular 10 (Modern Web 2020)Micro-frontends with Angular 10 (Modern Web 2020)
Micro-frontends with Angular 10 (Modern Web 2020)
 
RxJS 6 新手入門
RxJS 6 新手入門RxJS 6 新手入門
RxJS 6 新手入門
 
极速 Angular 开发:效能调校技巧 (ngChina 2019)
极速 Angular 开发:效能调校技巧 (ngChina 2019)极速 Angular 开发:效能调校技巧 (ngChina 2019)
极速 Angular 开发:效能调校技巧 (ngChina 2019)
 
你不可不知的 ASP.NET Core 3 全新功能探索 (.NET Conf 2019)
你不可不知的 ASP.NET Core 3 全新功能探索 (.NET Conf 2019)你不可不知的 ASP.NET Core 3 全新功能探索 (.NET Conf 2019)
你不可不知的 ASP.NET Core 3 全新功能探索 (.NET Conf 2019)
 
Protractor: The Hacker way (NG-MY 2019)
Protractor: The Hacker way (NG-MY 2019)Protractor: The Hacker way (NG-MY 2019)
Protractor: The Hacker way (NG-MY 2019)
 
邁向 Windows Server 應用程式現代化 (Windows Server Application Modernization)
邁向 Windows Server 應用程式現代化 (Windows Server Application Modernization)邁向 Windows Server 應用程式現代化 (Windows Server Application Modernization)
邁向 Windows Server 應用程式現代化 (Windows Server Application Modernization)
 
Angular 开发技巧 (2018 ngChina 开发者大会)
Angular 开发技巧 (2018 ngChina 开发者大会)Angular 开发技巧 (2018 ngChina 开发者大会)
Angular 开发技巧 (2018 ngChina 开发者大会)
 
Angular 7 全新功能探索 (Angular Taiwan 2018)
Angular 7 全新功能探索 (Angular Taiwan 2018)Angular 7 全新功能探索 (Angular Taiwan 2018)
Angular 7 全新功能探索 (Angular Taiwan 2018)
 
利用.NET Core 與 Azure Kubernetes Service (AKS) 建立高彈性 Microservices (Azure TechDay)
利用.NET Core 與 Azure Kubernetes Service (AKS) 建立高彈性 Microservices (Azure TechDay)利用.NET Core 與 Azure Kubernetes Service (AKS) 建立高彈性 Microservices (Azure TechDay)
利用.NET Core 與 Azure Kubernetes Service (AKS) 建立高彈性 Microservices (Azure TechDay)
 
AKS 與開發人員體驗 (Kubernetes 大講堂)
AKS 與開發人員體驗 (Kubernetes 大講堂)AKS 與開發人員體驗 (Kubernetes 大講堂)
AKS 與開發人員體驗 (Kubernetes 大講堂)
 
使用 ASP.NET Blazor 開發 SPA 網頁應用程式 (.NET Conf 2018)
使用 ASP.NET Blazor 開發 SPA 網頁應用程式 (.NET Conf 2018)使用 ASP.NET Blazor 開發 SPA 網頁應用程式 (.NET Conf 2018)
使用 ASP.NET Blazor 開發 SPA 網頁應用程式 (.NET Conf 2018)
 
全新 Windows Server 2019 容器技術 及邁向與 Kubernetes 整合之路 (Windows Server 高峰會)
全新 Windows Server 2019 容器技術及邁向與 Kubernetes 整合之路 (Windows Server 高峰會)全新 Windows Server 2019 容器技術及邁向與 Kubernetes 整合之路 (Windows Server 高峰會)
全新 Windows Server 2019 容器技術 及邁向與 Kubernetes 整合之路 (Windows Server 高峰會)
 
使用 C#/Razor 開發互動式 WebAssembly 網站 (Modern Web 2018)
使用 C#/Razor 開發互動式 WebAssembly 網站 (Modern Web 2018)使用 C#/Razor 開發互動式 WebAssembly 網站 (Modern Web 2018)
使用 C#/Razor 開發互動式 WebAssembly 網站 (Modern Web 2018)
 

從實戰經驗看到的 K8S 導入痛點

Editor's Notes

  1. 講述「行政院」導入的故事: 先導入 CI / CD 再導入 Docker 容器化技術 再導入 Kubernetes 叢集技術
  2. 講述「行政院」導入的故事: 先導入 CI / CD 再導入 Docker 容器化技術 再導入 Kubernetes 叢集技術
  3. 講述「行政院」導入的故事: 先導入 CI / CD 再導入 Docker 容器化技術 再導入 Kubernetes 叢集技術
  4. 講述「行政院」導入的故事: 先導入 CI / CD 再導入 Docker 容器化技術 再導入 Kubernetes 叢集技術 政府部門導入 DevOps 的挑戰與機會 https://blog.miniasp.com/post/2018/12/24/The-DevOps-Challenge-and-Opportunity-for-Government
  5. 講述「行政院」導入的故事: 先導入 CI / CD 再導入 Docker 容器化技術 再導入 Kubernetes 叢集技術
  6. 講述「行政院」導入的故事: 先導入 CI / CD 再導入 Docker 容器化技術 再導入 Kubernetes 叢集技術
  7. 管理異常,而不是管理正常