DEV Community

HyperRedStart
HyperRedStart

Posted on

2021 DevOpsDays Taipei

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

  1. query redis
  2. queries to web server (slow)
  3. memory capacity
  4. 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 問題

  1. vault write 創建網域名稱
  2. issue Certificate
  3. 立即生成 certificate
  4. 進行檢測 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
自組織:當某個團隊成員不在時,團隊
仍能正常運作
跨職能:每個人幾乎都能夠負責團隊的所有事物
:::

常見促進組織或跨職能的方式

  1. 鼓勵團隊成員在會議中分享更多資訊、進度、細節(跨職能)
  2. 特意舉辦Learning session 知的會議,提升成員技術能力(跨職能)

團隊成員對專案的資訊共享

  1. P1 P2 P3

會議中分享更多資訊可提升能力

  1. 不在專案中的成員,可能還是聽得很胡,因為沒有hand on 或是特定問題去孑孓
  2. 解決問題的思考方式太過於細節,沒有被分享出來

Learning Session

  1. 對於團隊成員,專案進度負擔
  2. 分享的技術跟現有的問題關聯不大,導致成員動機不高

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)