Soft_Job 板


LINE

因為有看到一些關鍵字,還是單獨回一篇好了。 ※ 引述《walker088 (巴拉圭魯蛇)》之銘言: : 各位年薪百萬大大們好 : 小魯我是目前在巴拉圭的替代役男 : 剛開始在地球另一端摳頂大概三週而已 : 工作的計畫是協助他們國家醫院醫療資訊系統的開發&維護 : 使用的技術如下: : Backend: Java 8, Struts2, Tomcat 8.5 [-----] struts 2 必須死 http://bit.ly/2HYz8vB : Database: PostgreSQL-9.4 : Platform: CentOS 7 : Others: Flyway, Gradle : 這邊想跟各位大大請益問有關DevOps的問題 : 這裡開始使用我們系統的醫院目前都有獨立的伺服器 : 因此當我們的APP(Java)或DB有做修改後 : 他們目前是逐台Server做手動更新 : 滿浪費時間的而且未來推廣到更大量醫院時候很慘 : 幾分鐘前老闆讓我找個方法可以同時更新所有的Server 這段配合著你在推文中想的情境來看 『 量很大且人力不足的話 (e.g.,300台機器 5人的team) 也會是傾向逐台手動嗎? 不會是像MS那樣直接更新? 』 假設,程式真的寫得糟糕到不行。 每 1 台只能同時有 100 人在 web 上操作。 那你是打算要同時服務 3 萬人嗎? 這例子其實不太合理,但也是那是你因為焦慮而隨意說說的內容。 真的到你得服務麼多人時,早不是這樣的架構了。 (團隊編制應該也很不同) : 這邊因為基本上更新主要有兩個任務: : 1. 寫好更新DB的sql後丟上Server用Flyway執行 (或直接psql吃.sql) : 2. 開發出新的版本後包成 .war 檔丟進Server的Tomcat 由於你才剛進入團隊 3 週,也許別急著要做出成果來。 先別管 DevOps 是什麼東東, 你目前在做的事情本質上是自動化部署 (還談不上 CI/CD 的邊,因為有些基礎建設並不存在) 依你的方法是可行的,BUT.... : ----------------------以下是土法煉鋼-------------------------- : 目前直覺想到的解法是寫個簡單的輕量TCP Server放在醫院們的Server上 : 接受可以通過一些檢查(e.g., rsa)的TCP client的請求後執行上面兩個更新的動作 : -------------------------煉鋼完畢----------------------------- 我們可以隨意挑出幾個目前廣泛運用在 DevOps 或 CI/CD 工具 來做到你想要做的事,但輕易地跟你說 『 OOO 可以做到你想做的 XXX 』 是個便宜的答案,你可以暫時間內獲得能動的解答。 但對大家都沒有益處,因為基礎建設不足可能引發的災難遠大於效益。 自動化的優點就是省去人工的時間, 並且它會非常地快速完工 (相較於人類的手速來說) 若沒有基本的 CI (也可能沒有能跑的 test case) 那麼 Bug 或程式缺陷也會被迅速地部署上去。 到時你想喊停可能都還來不及啊! 這就是為什麼,我的推文是問『災難回復』的策略與演練呢? 你們團隊的 plan 是什麼?有沒有 plan 來幾個小問題就能先心裡有個底了 先試著回答一些簡單地問題: 1. 如果所有的 server 與 db,不小心因為天災、人禍而消失 有辦法輕易地重建回來嗎? 2. 有定期備份 db 資料嗎?上一次備份的時間是什麼時候? 3. 有定期試著由備份的 db 資料,做回復並驗證內容的正確性嗎? 4. 在基礎系統設定完成後 (像是基本的 OS, Network, Account) 4.1 安裝 db 到資料回存完要多久時間? (別忘了算取回備份的時間) 4.2 安裝相關 server 並佈署完應用程式,能開始對使用者服務要多久 4.3 整個 4 是否有『計劃』並完整理處理過一輪 5. 上述的每一項目是否有 RCA 的 log 記錄,不管是專門的文件或 issue 內 供後人做 trouble shooting 的參考 你的回答有幾種可能: 1. 集合團隊所有人『腦中』的智慧有辦法完成上面的每一件事 2. 已有文件來回答上面的每一項問題(或部分的問題) 2.1 通常是有 4 的文件,但其他項目不清楚 2.2 假設有文件,但可能 out of date 已久, 它可能是先前剛建 team 時寫下來的,但後來忙於日常開發就不再更新 3. 針對 server 環境的初始化已有 provision 腳本 (例如寫成 ansible playbook) (你絕不會想要反覆地去搞 CentOS 的 selinux 設定的, 或程式跑一陣子發現 ulimit 忘了改,而開不出檔案) 4. 針對應用程式 deployment 已使用自動化工具 (例如寫成 ansible playbook) 5. 不僅自動化了應用程式部署,並在那之前 release 版本皆通過足夠的測試 5.1 基本的單元測試 5.2 配合外部環境的整合測試 5.3 針對使用者視角的 e2e 測試 ................................................ 雖然是說問幾個簡單的問題,不知不覺就寫了許多 (汗 : 但因為並不熟悉Dev-Ops的領域 : 怕這樣土法煉鋼未來會比較麻煩 : 畢竟役期只有接近一年,結束後就會返台了 一年其實不短,真正該導入的不是 tool 而是 mindset 當 mindset 對了,要挑什麼工具只是依情境判斷的問題。 先前的題問,其實還在開發階段的事情,還沒提到維運部的事。 monitoring 又是另一個重要的主題,假設你真的有 300 台!? 你真的會想一台一台上去看 log 或看誰硬碟滿了要清嗎!? : 為了避免留下困擾給之後的人 : 想詢問是否有比較主流 or 有制度 or未來好管理擴充的做法 : 有開源工具或者相關關鍵字的話就更好不過了! : 感恩感恩 Continuous Delivery https://amzn.to/2KcrjUy http://bit.ly/2K8o14y Effective DevOps https://amzn.to/2K8ouDQ http://bit.ly/2KaETI6 想起先前也有回過類似的主題 https://webptt.com/m.aspx?n=bbs/Soft_Job/M.1475483798.A.9C0.html 另外,關於 Tomcat 有個實用的功能 Parallel deployment http://bit.ly/2KaP3bD 可以針對同 1 個 context 部署多個版本,利用它來達成 zero downtime deployment 很好用。 然後,如果程式碼不多, 或能切出新功能是用不同的 tech stack 的話 struts 必須死! --



※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.231.141.56
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Soft_Job/M.1542462776.A.040.html
1F:推 kewang: 推好文,大家在用 buzzword 之前,還是要了解本質到底做了 11/17 22:04
2F:→ kewang: 什麼 11/17 22:04
3F:推 alihue: 推 11/17 22:16
※ 編輯: qrtt1 (36.231.141.56), 11/17/2018 22:21:00
4F:推 johnny94: 敢問 qrtt1 在哪高就,真想跟有這種想法的人一起工作XD 11/17 22:34
偏鄉的小公司 (咦!? ※ 編輯: qrtt1 (36.231.141.56), 11/17/2018 22:36:27
5F:推 f496328mm: 推推優質好文 11/18 00:19
6F:推 ian90911: 推好文 11/18 00:25
7F:推 chocopie: 推 11/18 01:05
8F:推 umum29: 推 11/18 01:09
9F:推 genius945: 推 11/18 01:46
10F:推 walker088: 感謝q大的回覆,真的是獲益良多,確實如q大所說沒有經 11/18 06:50
11F:→ walker088: 過足夠測試的自動部署在方便的同時也會把bug通通部署 11/18 06:50
12F:→ walker088: 上去。目前這邊團隊很小在部署測試甚至版本文件等等部 11/18 06:50
13F:→ walker088: 分幾乎是沒有任何固定的流程或規範,只求系統能動而已 11/18 06:50
14F:→ walker088: 。昨天看完眾多大大們聽到的技術關鍵字看了一下文件及 11/18 06:50
15F:→ walker088: 教學後也有了一些大致的概念,但確實會需要一個完整的 11/18 06:50
16F:→ walker088: 方案來取得自動化 安全以及災害復原的平衡。非常感謝q 11/18 06:50
17F:→ walker088: 大的提醒! 11/18 06:50
18F:→ walker088: 阿忘了回應struts2的部分XD, 其實我個人也不大喜歡... 11/18 06:55
19F:→ walker088: , 但因為系統是我來之前就寫好一陣子的且原本對java也 11/18 06:55
20F:→ walker088: 不大熟, 要打掉重構成比較新的架構(e.g., spring boot 11/18 06:55
21F:→ walker088: )的話需要一點決心... 而且話說這個系統本來就完全沒 11/18 06:55
22F:→ walker088: 有任何文件, 大家在部署時候環境版本也都沒統一, 我也 11/18 06:55
23F:→ walker088: 是來這邊邊摸邊寫文件跟做自動化這樣orz 11/18 06:55
24F:推 wanlinlin: 推 11/18 07:17
25F:推 ChoDino: 收藏! 11/18 11:22
26F:→ rocwild: 問CI/CD相關問題得到DR回答,帥。 11/18 11:53
27F:推 unknow: 感謝分享~QAQ 11/18 13:40
28F:→ remmurds: 每次一有類似議題馬上就有人跳出來喊docker 11/18 16:54
29F:→ remmurds: 都不膩嗎? 11/18 16:54
30F:推 pig840502: 推 11/18 17:51
31F:推 johnny94: 推remmurds。而且docker跟原PO問的問題根本沒半點關係 11/19 01:00
32F:→ Weky: Docker牆都快倒了 別再docker了 11/19 19:01
33F:推 Csongs: 樓上怎說 11/19 23:45







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:Boy-Girl站內搜尋

TOP