DevOpsDay
      • Sharing URL Link copied
      • /edit
      • View mode
        • Edit mode
        • View mode
        • Book mode
        • Slide mode
        Edit mode View mode Book mode Slide mode
      • Customize slides
      • Note Permission
      • Read
        • Owners
        • Signed-in users
        • Everyone
        Owners Signed-in users Everyone
      • Write
        • Owners
        • Signed-in users
        • Everyone
        Owners Signed-in users Everyone
      • Engagement control Commenting, Suggest edit, Emoji Reply
      • Invitee
    • Publish Note

      Share your work with the world Congratulations! 🎉 Your note is out in the world Publish Note

      Your note will be visible on your profile and discoverable by anyone.
      Your note is now live.
      This note is visible on your profile and discoverable online.
      Everyone on the web can find and read all notes of this public team.
      See published notes
      Unpublish note
      Please check the box to agree to the Community Guidelines.
      View profile
    • Commenting
      Permission
      Disabled Forbidden Owners Signed-in users Everyone
    • Enable
    • Permission
      • Forbidden
      • Owners
      • Signed-in users
      • Everyone
    • Suggest edit
      Permission
      Disabled Forbidden Owners Signed-in users Everyone
    • Enable
    • Permission
      • Forbidden
      • Owners
      • Signed-in users
    • Emoji Reply
    • Enable
    • Versions and GitHub Sync
    • Note settings
    • Engagement control
    • Transfer ownership
    • Delete this note
    • Insert from template
    • Import from
      • Dropbox
      • Google Drive
      • Gist
      • Clipboard
    • Export to
      • Dropbox
      • Google Drive
      • Gist
    • Download
      • Markdown
      • HTML
      • Raw HTML
Menu Note settings Sharing URL Help
Menu
Options
Versions and GitHub Sync Engagement control Transfer ownership Delete this note
Import from
Dropbox Google Drive Gist Clipboard
Export to
Dropbox Google Drive Gist
Download
Markdown HTML Raw HTML
Back
Sharing URL Link copied
/edit
View mode
  • Edit mode
  • View mode
  • Book mode
  • Slide mode
Edit mode View mode Book mode Slide mode
Customize slides
Note Permission
Read
Owners
  • Owners
  • Signed-in users
  • Everyone
Owners Signed-in users Everyone
Write
Owners
  • Owners
  • Signed-in users
  • Everyone
Owners Signed-in users Everyone
Engagement control Commenting, Suggest edit, Emoji Reply
Invitee
Publish Note

Share your work with the world Congratulations! 🎉 Your note is out in the world Publish Note

Your note will be visible on your profile and discoverable by anyone.
Your note is now live.
This note is visible on your profile and discoverable online.
Everyone on the web can find and read all notes of this public team.
See published notes
Unpublish note
Please check the box to agree to the Community Guidelines.
View profile
Engagement control
Commenting
Permission
Disabled Forbidden Owners Signed-in users Everyone
Enable
Permission
  • Forbidden
  • Owners
  • Signed-in users
  • Everyone
Suggest edit
Permission
Disabled Forbidden Owners Signed-in users Everyone
Enable
Permission
  • Forbidden
  • Owners
  • Signed-in users
Emoji Reply
Enable
Import from Dropbox Google Drive Gist Clipboard
   owned this note    owned this note      
Published Linked with GitHub
Subscribed
  • Any changes
    Be notified of any changes
  • Mention me
    Be notified of mention me
  • Unsubscribe
Subscribe
# 走過 DevOps 風雨的下一步.... - 郭家齊(Edward Kuo) {%hackmd @DevOpsDay/BymyqYaeo %} > 各家講者出來分享自己的經驗多少都有些公司內規和公關要求的限制,有些不方便分享的地方(例如:不要張貼簡報截圖)還請大家多多包涵喔(不然就更多人不敢出來分享了) > [name=DevOpsDays Taipei 2022] > 從這開始 ###### tags: `DevOpsDays Taipei 2022` 9:40-50 Opening 在過去DevOps求快求效率,現在開始更要思考如何提供更安全及高品質的服務 ## What is DevOps 自動化做到後來只是自動化,什麼都沒有改變,會遇到瓶頸,講者更希望來的人是主管,後期可能需要改變的是想法 DevOps是什麼? - 文化 - 流程 - 工具 每個人都知道,但做了什麼呢? - 購買工具 - 換工具 - 再換工具 這就是目前devops的現狀 然後一些廠商例如微軟,就一直賣工具,好像買了工具就devops了 大部分可能只解決自動化問題 ### What is DevOps https://theagileadmin.com/what-is-devops/ ### DevOps是敏捷的延伸 敏捷的商業需求 敏捷的系統開發 敏捷的日常維運 ## DevOps的荊棘之路 轉得慢外在淘汰 轉得快會被公司內部鬥爭幹掉 導入git? 沒人有正式環境真正的source code 大家手上都自己有一份,要以誰的為準? 一直發生互相把其他人程式蓋掉的事情,在製造業天天發生 ### 製造業IT的原罪 * IT只是"支援單位",編制有限 - IT人員只佔全部員工的3%,而其中開發人員又只佔一小部分 * 過去經驗太成功,不願改變 * 即便願意改變,能承擔改變的風險能力較低 * 學習與試錯文化相對不盛行 * ***對硬體花費的成本是投資,對人花費學習的成本是浪費*** ***欲練神功,必先改變*** ex: 試著去版控 - 改變工作流程 - 改變工作習慣 - 改變思考模式 - 改變組織結構 - 改變軟體開發流程 導入DevOps常被問到: - 怎樣算是導入成功? - 能讓我們更快完成專案嗎? - 推薦好用的DevOps工具? - 能在短期內看到導入成效或是KPI嗎? - 沒資源、沒方向 - 沒有好的/強的團隊或開發人員 - 可不可以減少員工 **主要原因是DevOps並沒有明確的告訴你該怎麼做** 大多數人停留在KPI思維,習慣量化 所以最後就變成工具是第一順位,導入工具就有KPI - 能用錢解決、快又有效 - 有量化指標,有指標有績效 - 門檻最低最沒有風險 - 不需要調整組織、團隊或流程 - 確保每個人都有事做,老闆才會覺得你們很忙,不是在休息 最後其實還是在用waterfall + 隕石開發 並不是敏捷,但敏捷是DevOps的基礎核心 ## 責任不應該隸屬一人 •團隊(部門)負責系統數量平均是20~30個以上 • Devops重視是一種高效率的協同合作模式 •管理者應該考慮團隊效率而非單一(開發者)效率 •管理者不該產生另類的穀倉效應 •高績效團隊具有快速處理危機與反應變化的能力 •高績效團隊能致力讓系統穩定且交付有效率 ## DevOps並不是只有自動化 只完成自動化,會如同薄冰 軟體不是只有build, release, deplo要聚焦於系統生命週期的平衡流動 就變成 1. 需求卡住,一次一大堆需求丟進來 2. code卡住,因為寫不完 還是快不起來 code寫不快的原因常常是前面的需求管理沒做好 因此即使做了自動化,也只是感覺很快,還是有瓶頸 Dev+Ops = One Team - 開發與維運合成一個團隊是好事嗎? - 應該是彼此有對方的思維 - 維運者往開發靠,還是開發往維運靠? - 一個人或許不需要十八般武藝都會,但團隊需要 - 團隊能共享整個軟體開發和維運生命週期的所有權 - DevOps重視分工而不是角色 賽道理論 有看過賽車或是玩賽車的人都知道 賽車走的是最快路徑而不是最短路徑 一昧追求走最短路徑 會很容易在其他地方卡住 三者密不可分 - Agile:文化 - DevOps:流程 - SRE:工程指標 Database's DevOps 很難! **92% 數據顯示 DB 佈署是 DevOps 瓶頸** 大多數系統修改,DB是會修改 Ops 外的另一個門檻 - 多數 DevOps 團隊,認為資料庫的持續部屬相當困難 思維 & 工程障礙 - DBA 團隊將他們的領域和專業視為工作保障 - 非 DBA 團隊成員被推離資料庫禮遇,造成穀倉效應 - 資料本身具有慣性 - 需要修改資料結構時,需要遷移? 開發人員對自己負責的DB不熟,他可能沒有商業思維,不知道自己的資料是怎樣的 DB 的變更有 Best Practice 嗎? 有的,不過基本做不到 除非主管或是大老闆來推這件事情 所以 RDBMS 本身幾乎是做不到自動化 還有一個可能,程式都寫在store procedure裡面,那就做不到自動化 現實是殘酷的 - 大型系統/套裝系統的資料庫架構(ERP、MES) - 變更往往取決於別人或是廠商 - 檔案過大 ### 對DB的管控不妨做些改變 - store procedure很難寫unit test - 盡可能抽到API層級 - 資料庫納入版本控制 持續整合 & 佈署 - 持續整合 - Code Scan,符合 SQL 開發規範 - 資料庫程式封裝 - 持續佈署 - 執行 SQL 程式自動化佈署會產生的差異化 Script - 程式以版控為主** 做了一件很不人道的事情 ***所有資料庫內的程式一率要版控,沒版控的會全部被砍掉*** > 讚 > 如果部門大老闆不支持,這樣會被 AP 或是開發團隊幹死 > [name=Mark_Mew] 期初避免下列幾點 - 一次性的資料庫屬性設定 - 大型資料表的索引新增修刪 - 修改資料表的名稱或欄位 > API First Ruddy 老師也提過 > [name=Mark_Mew] API First 思維 - 降低資料庫程式的耦合性 - 增加商業邏輯的可被測試性 - 增加商業邏輯的易讀性 - 降地資料庫瓶頸的可能性 AP與資料庫程式部署時程接近 避免DB程式有遺漏部署 [更多細節: Database in DevOps](https://www.slideshare.net/jaigikuo/database-in-devops-249872632) 處處都是 Dev N Ops 你會發現近年來 N 越來越多 N = Sec, ML, ... ```plaintext 你無法複製任何(團隊)人的模式 只能學習並不斷嘗試,然後不斷改進 ``` > 之前遇到這樣的老闆和公司 > 真的覺得他們都在哭 > [name=Mark_Mew] 商業需求跟工程需求是同等重要 - 大多數管理者會忽略工程需求 - 80%商業需求與20%技術需求同時存在 - 長期忽略工程需求,將會降低團隊彈性與動能 - 技術債不可能被清零,但必須要被有效管理 - 我們每天都被商業需求壓垮了 - 建議80,20法則,要有20%時間做改善 - 在看板管理中,放一塊技術債管理,讓它有效的被管理 > 有的老闆會要求,你不能用上班時間來改善工程需求 https://profile.edwardkuo.dev

Import from clipboard

Paste your markdown or webpage here...

Advanced permission required

Your current role can only read. Ask the system administrator to acquire write and comment permission.

This team is disabled

Sorry, this team is disabled. You can't edit this note.

This note is locked

Sorry, only owner can edit this note.

Reach the limit

Sorry, you've reached the max length this note can be.
Please reduce the content or divide it to more notes, thank you!

Import from Gist

Import from Snippet

or

Export to Snippet

Are you sure?

Do you really want to delete this note?
All users will lose their connection.

Create a note from template

Create a note from template

Oops...
This template has been removed or transferred.
Upgrade
All
  • All
  • Team
No template.

Create a template

Upgrade

Delete template

Do you really want to delete this template?
Turn this template into a regular note and keep its content, versions, and comments.

This page need refresh

You have an incompatible client version.
Refresh to update.
New version available!
See releases notes here
Refresh to enjoy new features.
Your user state has changed.
Refresh to load new user state.

Sign in

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

Help

  • English
  • 中文
  • Français
  • Deutsch
  • 日本語
  • Español
  • Català
  • Ελληνικά
  • Português
  • italiano
  • Türkçe
  • Русский
  • Nederlands
  • hrvatski jezik
  • język polski
  • Українська
  • हिन्दी
  • svenska
  • Esperanto
  • dansk

Documents

Help & Tutorial

How to use Book mode

Slide Example

API Docs

Edit in VSCode

Install browser extension

Contacts

Feedback

Discord

Send us email

Resources

Releases

Pricing

Blog

Policy

Terms

Privacy

Cheatsheet

Syntax Example Reference
# Header Header 基本排版
- Unordered List
  • Unordered List
1. Ordered List
  1. Ordered List
- [ ] Todo List
  • Todo List
> Blockquote
Blockquote
**Bold font** Bold font
*Italics font* Italics font
~~Strikethrough~~ Strikethrough
19^th^ 19th
H~2~O H2O
++Inserted text++ Inserted text
==Marked text== Marked text
[link text](https:// "title") Link
![image alt](https:// "title") Image
`Code` Code 在筆記中貼入程式碼
```javascript
var i = 0;
```
var i = 0;
:smile: :smile: Emoji list
{%youtube youtube_id %} Externals
$L^aT_eX$ LaTeX
:::info
This is a alert area.
:::

This is a alert area.

Versions and GitHub Sync
Get Full History Access

  • Edit version name
  • Delete

revision author avatar     named on  

More Less

Note content is identical to the latest version.
Compare
    Choose a version
    No search result
    Version not found
Sign in to link this note to GitHub
Learn more
This note is not linked with GitHub
 

Feedback

Submission failed, please try again

Thanks for your support.

On a scale of 0-10, how likely is it that you would recommend HackMD to your friends, family or business associates?

Please give us some advice and help us improve HackMD.

 

Thanks for your feedback

Remove version name

Do you want to remove this version name and description?

Transfer ownership

Transfer to
    Warning: is a public team. If you transfer note to this team, everyone on the web can find and read this note.

      Link with GitHub

      Please authorize HackMD on GitHub
      • Please sign in to GitHub and install the HackMD app on your GitHub repo.
      • HackMD links with GitHub through a GitHub App. You can choose which repo to install our App.
      Learn more  Sign in to GitHub

      Push the note to GitHub Push to GitHub Pull a file from GitHub

        Authorize again
       

      Choose which file to push to

      Select repo
      Refresh Authorize more repos
      Select branch
      Select file
      Select branch
      Choose version(s) to push
      • Save a new version and push
      • Choose from existing versions
      Include title and tags
      Available push count

      Pull from GitHub

       
      File from GitHub
      File from HackMD

      GitHub Link Settings

      File linked

      Linked by
      File path
      Last synced branch
      Available push count

      Danger Zone

      Unlink
      You will no longer receive notification when GitHub file changes after unlink.

      Syncing

      Push failed

      Push successfully