Author: Corey Lai
Date: 2021.11.24
共同筆記:https://hackmd.io/@DevOpsDay/2021/%2F6KHX2iVFTPyyCDOY6ouI0Q
奇勳 iThome 總編輯
650人報名 * 3240 = $2106000
軟體更新速度:
程式碼 commit 頻率 卓越 973倍
deploy lead time 6570倍
穩定度
企業跑在程式碼上
TSMC DevOps Journey
陳蕙猛 | TSMC
Lances
台積電IT全程DevOps 2000人 it 線上工廠4萬人
Intro
::: info
學習如何自動化任何東西
晶片缺就蓋廠,製成出新 1~2年,Scale Up
PMP PMO Product Mobe
:::
- 全員 DevOps
- IT needs IaC when infra scale out.
- How to turn project mode to product mode.
公司問題
五百億個電晶體,2000~5000個機台
每個廠都有好幾個phase
每廠
每天需要留下的資料 1~2 TB
8~10 m Manufacturing
400k OHT Travel
MES / 設備製程控制
IT Product & Teams
TSMC是一個run在軟體上的公司。
- MES
- Fab Automation
- Yield
- Business
- CRM
建立新廠
operation.create
copysystemfrom
modifyfrom
newfab.system.run
failed to recover
發展ai 來幫助確認機器錯誤
林宏達 CIO
當沒有網路時,應該要如何運作
engineering ouptut
帶領工廠做數位轉型
DevOps Change
Tech Change
- technology
- chaos engineering
- Coding to do everything
- 硬體都用code來做
- 軟體都用API
- On-Prem (cloud native platform)
- recovery plan
Infra service -> automation -> networking -> data center retrofit -> infra api -> coding to do everthing -> service mesh -> observability
api first -> agile plan -> realtime message -> code review -> microservice -> sla/slo / ci/cd -> metrics -> recovery drill
-> on premise cloud native platform
Value System Change:
- everything in code
- use on-premise kubernetes to imporve configuration management
Culture Change
- review performance with OKR
- align business target from different departments together
- 同理心
- Agile planning & feedback
- 建立互信都溝通
- 用共識決,一起決定要實踐的任務。
Journey to Product DevOps
Plan - Feature to Code
:::info
code review的目的之一是要讓大家看得懂,並且核對coding的規則。也是一個凝聚團隊的過程。
:::
Transform product roadmap and user feedbacks into backlogs
Code Quality
pull request -> unit test & code review
CI/CD 流程
Dev commit -> repo -> ci -> push image
Ops change config -> dev Repo -> diff & sync -> argo CD -> dev/test/prod
Management 流程
Planning -> Daliy meeting -> ut coverage / pr/ code review -> release process
談假設思維之下的開發者體驗
Ruddy | 91App
為什麼要關注開發者體驗
Devops 背後的科學
DX <--> UX
80%操作不需要使用手冊
協同合作,彼此回饋
敏捷為假設思維
假設思維 use case storyboard
專注於 coding 不是開發環境與開發過程
Running and Operating Large Scale Real-time Data system on Cloud
Terry Wu(吳家威)│趨勢科技
Backend of Trend Micro Vision One - XDR
XDR 資安數據分析
API SIEM SOAR
Trend Micro XDR Ratings Overview
Gartner
System Overivew
High Level Architecture overview
- hundreds if bullions log a day
- running on production
- multi-region
- multi-cloud vendor
log collection -> analytics(Apache FLink / EMR / AKS) -> result / (prometeus / cloud watch -> grafana / elastic search) monitoring / operation
Design
Logs -> Kinesis/Kafka/EventHub -> Analytics Engine (Flink) -> Alert
Develop
Where to start
- Build POC to process jist 100k
- iterate from it
- key is speed of iterations
- visibility
- E2E First
- Bottom-up thinking
Dev.2
Bottleneck
- query redis
- queries to web server (slow)
- memory capacity
- CPU 1ms per log 1000 logs per sec per machine
Dev. 3
No clear role on who is doing what
任何人可以做任何事情
Business requiement 不追求短期利益
Monrting
prometheus & grafana (EKS) flink
Real time quality
追蹤request 時間
停留時間
Flink Prometheus
Filnk -> pulling -> Prometheus -> query Grafana
Visibility
difficult to trace bug
Engineering
Kinesis shard same number of flink task manager to consume?
kinesis 送log 到 flink 只集中在某幾個 flink 新加入的flink linesis 拿不到資料
Use Dashboard to prove
Real time streaming
AWS kinesis -> AWS LAMBDA -> Amazon Cloudwatch
amazon s3 -> AWS SQS -> AWS LAMBDA
如何在零信任環境下提高 Kubernetes 的安全性
Yulei Liu(刘宇雷)│ HashiCorp
Local 環境應用較於簡單
:::info
在雲環境實體就無法被保護,失去物理層的控制
:::
- 內部網路存取是嚴格信任
- 應用程式未使用大量微服務,聯繫是安全的
Meanwhile in Kubernetes
88% 已經使用k8s
94% 被攻擊
55% 因被攻擊而被迫退出
k8s 常見安全問題
secret 並不 secret
base64加密隨使可以解碼
configmap 是使用明文方式保存
秘密氾濫
- yaml 文件內有各種祕密 密碼可能被放在 配置文件、email、excel、sharepoint、wiki
秘密氾濫後果
- 帳號共享
- 無法進行審計
- 無法更換 (用於多個應用導致無法更換密碼)
- 不安全
HashiCorp Vault 解決密碼氾濫
USER -> FE -> Public API -> Product API / Payment API
解密 : base64 -d
db-configmap
connection string 其中的設定為明文
Vault
會公開於repositry
product-api 動態產生用戶名與密碼
可設置有效時間
解決k8s 不安全問題
K8S 不使用 SSL
- SSL Certificate 是驗證服務身分
- Certificate 保證沒有人可以偷聽
K8S SSL 實際困難
- SSL 申請流程複雜
- SSL 生命週期複雜
- 不可超過 13 個月 ,瀏覽器聯盟不認可
HashiCorp and Cert Manager 解決 K8S SSL 問題
- vault write 創建網域名稱
- issue Certificate
- 立即生成 certificate
- 進行檢測 SSL SHOPPER
SSL Ingress
kubernetes-class :
cert-manager.io/issuer :
service name frontend
vault ui
可以透過公有 ca 發放
進一步思考
HashiCorp Vault 可以管理 secret / ssl
其他問題
- k8s 集群安全node pool, network, etc
- pod 通訊安全性
- 保存在storage 之上的數據本身的安全性 , encryption at reset
Ansible AWX - 輕鬆打造你的 IaC 基礎架構即程式碼平台
Weithenn(王偉任)│ Micron Technology, Inc.
IaC (Infra as Code)
Bimodal IT Mobe 1 / Mobe 2
Mobe 1
- Traditional Infra
- physical server
Mobe 2
- Infra Agility
- Software Defined(SDC,SDS,SDN)
- vm/ container / microservice
- Agility / DevOps
DevOps Is Code
Dev -> stage -> prod
- Habits
- Production first mindset
- Infra as flexible resource
Why Anisble AWX
Ansible Language of automation
- Cross Platform
- Human readable
- Perfect Desc of app
- Version control
- Dynamic Inventories
- Orchestration plays well with others
- AWS is a opensource for ansible tower
- RBAC
- PUSH BUTTON - Easy to execute playbook
- RESETFUL API
- WORKFLOW
- ENTERPRISE INTEGRATION
- CERTRALIZED LOGGING
AWX Operator
- 單次部屬3000台在小型伺服器中可以正常運作
RBAC
可以使用flow 允許操作
使用者只需要登入,並按下所需要的playbook 火箭 即可執行
Automation Workflow
困難點
時菸是最匱乏的資源 - Oeter Drucker
- 實際紀錄使用時間
- 減少浪費時間的項目
- 改變行事曆的排法
- OTPR 敏捷工作法 #### 組織導致的時間耗損
- 英勇救火隊
- 無效會議過多 #### 善用零碎時間
- 正確幫助同事的姿勢
- 在需要的時候幫助他
- 避免好為人師
- 避免家長方式教育
- 避免自以為是的幽默(頂多自嘲)
- 未請求幫助時,無須提供個人意見,但可以推薦
- 實際餐與會議,了解痛點
- 建立信任感,重啟新局 #### Comfort Zone
- comfort zone
- 感到舒適
- 非理性的安全感/缺乏危機感
- 惰性
- Optimal Performance Zone
- 焦慮增加/壓力增加
- Danger Zone
- 焦慮爆表/壓力爆表 ##### 排除導入時遭遇的困難
- 幫助跨出舒適圈
- 未導入IaC造勢
- 贊成/中間/反對
- 對抗焦慮
- 拆解不確定性的源頭
- 風險管理
- 規避 / 承擔 / 減緩 / 轉嫁 ##### 心流 Mihaly Csikszentmihalyi
- 大腦處理能力
- 人體現110 - 120b /s
- 談話交流 60~70b /s
- 最佳體驗
- 刻意練習
- 專注力
- 古典約制力
- 大腦也需要休息
- 避免生活噪音
- 心流汗放空互相交替
如何實踐品質內建之企業級DevOps流程架構
D.C.(蔣政道)│玉山銀行
DevOps 實行背景
Fintech 時代
永續發展數位轉型
注重客戶體驗價值創造
快速響應效率回饋
施行痛點
安全與高品質交付流程
容器安全
實際專案開發流程規劃
OA 開立需求 ->分支標準化 -> codereview -> 測試檢核 -> CICD
OA 表單起頭 使用 api 開啟議題 -> 議題需求來源 測試案例 開發文件 問題紀錄
Confluence 統一歸檔
JIRA 建立發布版本 script runner
版更流程
模擬取得 gitlab 資訊 repo 的資訊 透過介面決定版本
UAT_版本號 (UAT 測試環境)
SIT_版本號 (SIT 測試環境)
進入 UAT
自動留言提示git操作
審核程式碼 發出PR / MR
合併集成
單元測試
UAT 測試時可挑選需求進行差異上板,JIRA會依據相依性檢核挑選的需求,以確保勝完整性
SA 系統分岐人員
相異檢查jira 效能
Quality gate
Confluence api 進行人員清查
邁向 DEVSECOPS
交付速度交付品質
改善問題
測試 人工方式 紀錄追蹤不易
資安
查驗流程耗時 淺在風險高 完整流水線
腳色分切
劃分流程中腳色 pg、sa、sd、pm
議題追蹤流程管理
落實安全
自動化測試框架
- 即時監控
- Prometheus
- Log 蒐集
- SynopseRT
- Fluentd 蒐集資訊
- kibana 顯示監控
- 品質監控
- sonarqube 做品質管控
- 安全測試靜態分析
- HCL APPSCAN 黑箱測試
- NEXUS CONTAINER 黑箱安全
- NEXUS LIFECYCLE
- CLAIR 靜態容器安全
- Red Hat Quay
- CHEKMARX 靜態程式安全
資安檢測
- KM文件
- ISMS 安全規章
- 符合容器化安全
- Admission Control 阻擋有風險的 pod 啟用服務
公有雲平台維運之 DevOps 流程
Dr. Aug(趙逢毅)│台灣智慧雲端服務股份有限公司
TWCC - 國家前瞻計畫
國家前瞻計畫 HIPAA 認證
台灣杉二號
Taiwania 2
nvidia tesla v100
Large Scale Surveillance AI Workload
1488 streaming videos and vehicle detected speed data (provided by freeway beuro)
Hdaoop Platform: stream data gray scaling image downsizing and preparing
datasets.
AI Traning: submit k8s and slurm jobs evenly
Only Computing Cost
1488 streaming videos
Hadoop cluster with 32v cpu + 128gb mem+60gb Disk x60 capable
of processing 40000 image/sec
for AI training test requires for all sources,
3635.89 GPU hrs to prepare 1 day model
Performance Benchmark
TesNet 50 on 17 nodes Large Scale benchmark
AWS 節點架構 EHTERNET
超級電腦 架構不同
維護運行
Current Capacity
VSC: more than 1300 nodes, incl. V100 T4 and other GPU
CCS: more than
One AI
AI ML
雲端檔案服務
台南市政府口罩偵測
Woodpecker Project
雲平台OSS整合
- 服務現況
- 平台元件穩定度
- 用戶情境驗證
用戶情境持續測試
ITCM information technology change management
台灣固網技術提供
團隊導入 Mob Programming
Yuan(洪立遠)│LINE 株式会社
:::info
自組織:當某個團隊成員不在時,團隊
仍能正常運作
跨職能:每個人幾乎都能夠負責團隊的所有事物
:::
常見促進組織或跨職能的方式
- 鼓勵團隊成員在會議中分享更多資訊、進度、細節(跨職能)
- 特意舉辦Learning session 知的會議,提升成員技術能力(跨職能)
團隊成員對專案的資訊共享
- P1 P2 P3
會議中分享更多資訊可提升能力
- 不在專案中的成員,可能還是聽得很胡,因為沒有hand on 或是特定問題去孑孓
- 解決問題的思考方式太過於細節,沒有被分享出來
Learning Session
- 對於團隊成員,專案進度負擔
- 分享的技術跟現有的問題關聯不大,導致成員動機不高
Mob Programming
團隊成員再一起在同一時間解決同一問題。
資訊、know how 共享
促進團最自組織,會有自然的領導順位產生,一起解決最難的問題
鍛鍊每個成員領導力、溝通力(自組織、跨職能)
團隊成員跨職能能力成長
系統的底層邏輯
解決bug 問題的思路
Linux Shell Command
好用的熱鍵
Mob Programming 主題
::: info
同一時間,團隊在同一台電腦,解決同一個問題
鍛鍊每個成員的領導力、溝通力(自組織、跨職能)
:::
- project中的困難點 (所以在mob中可以深入context Sharing)
- 系統設計的討論
- investigate 與修復緊急bug
Mob Programming 主題準備
Host
- Host 就是主導mob的人,大家看的電腦,以現在線上的情況來看,大家會看著他的共享畫面
- 採用round robin
- 身為下一個team manager,建議每次mob都需要準備一下,避免該host 不知所措
- 但是每個人都要有自覺,要主動積極餐與討論
時長
- 每次兩小時
- host 最多更換一次
- 但現在多半是一個host 撐兩小時
Note
可以用 wiki boxnote google doc etc
要訣
- 提前告知主題與決定host
- 身為下一個team manager 我建議每次 mob都至少準備一下,避免mob不知知所措
- 但是為了JUNIOR HOST鍛鍊,還是保留一定的空間,讓他們主導
- 每次MOB一開市需要先分享CONTEXT ,討論與設計,在進入到CODING避免直接開始寫CODE
- 但是MOB 還是可以保有HANDON的細緻
自身享受的好處
- 學習LINUX指令
- 看出每個成員優勢與能力
- 一起解決最難的問題
- 自己的領導力、主持會議能力也有所增強
- 有一個固定的時間可以RESOLVE BLOCKER
舉例
實例 LINUX COMMMAND nc 傳送檔案,改/etc/hosts 來 hijack request 到自己的測試 Server 用 Pref 搭配 Flame Chart 來做 Profiling
學會資深工程師 Debug 思維,先用各種工具縮小範圍,避免一開始就直接跳進去coding
個人成長團隊產出兩難
結論
高校共享context 技術教學,一起解決最難的問題,以及鍛鍊成員的領導力、溝通力、主持力,
他會付出團隊生產力代價,因為共同在一個時間一起做同一件事情,但是成員能力的提昇會值得的。
Top comments (0)