看板 Soft_Job 關於我們 聯絡資訊
各位年薪百萬大大們好 小魯我是目前在巴拉圭的替代役男 剛開始在地球另一端摳頂大概三週而已 工作的計畫是協助他們國家醫院醫療資訊系統的開發&維護 使用的技術如下: Backend: Java 8, Struts2, Tomcat 8.5 Database: PostgreSQL-9.4 Platform: CentOS 7 Others: Flyway, Gradle 這邊想跟各位大大請益問有關DevOps的問題 這裡開始使用我們系統的醫院目前都有獨立的伺服器 因此當我們的APP(Java)或DB有做修改後 他們目前是逐台Server做手動更新 滿浪費時間的而且未來推廣到更大量醫院時候很慘 幾分鐘前老闆讓我找個方法可以同時更新所有的Server 這邊因為基本上更新主要有兩個任務: 1. 寫好更新DB的sql後丟上Server用Flyway執行 (或直接psql吃.sql) 2. 開發出新的版本後包成 .war 檔丟進Server的Tomcat ----------------------以下是土法煉鋼-------------------------- 目前直覺想到的解法是寫個簡單的輕量TCP Server放在醫院們的Server上 接受可以通過一些檢查(e.g., rsa)的TCP client的請求後執行上面兩個更新的動作 -------------------------煉鋼完畢----------------------------- 但因為並不熟悉Dev-Ops的領域 怕這樣土法煉鋼未來會比較麻煩 畢竟役期只有接近一年,結束後就會返台了 為了避免留下困擾給之後的人 想詢問是否有比較主流 or 有制度 or未來好管理擴充的做法 有開源工具或者相關關鍵字的話就更好不過了! 感恩感恩 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 200.108.131.62 ※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1542313134.A.FB3.html ※ 編輯: walker088 (200.108.131.62), 11/16/2018 04:21:57
SheLoBDenI: cronjob+bash_script, gluster? 11/16 06:39
感謝大大關鍵字分享
bapemilo: Ansible 11/16 06:58
bapemilo: 你可以看看Jenkins & Ansible 11/16 07:01
bapemilo: 用Jenkins撰寫一個發布的Job 11/16 07:02
bapemilo: 這個job做的是打包成War然後執行flyway 11/16 07:02
bapemilo: 再透過Ansibleㄧ次將war更新多台機器 11/16 07:03
好像很多人推Anible+CI server耶 感謝大大
pxycho: Chef or Ansible 11/16 08:35
LuLuCow: CI + Ansible 11/16 09:05
didifong: Ansible+1 11/16 09:05
qrtt1: 跑在什麼系統上? 11/16 09:20
Server是CentOS 7
Sieg2010: Ansible 11/16 09:27
hxrgjo: Ansible +1 佈署很方便的 11/16 09:28
gofigure: 我想你需要的是replication相關 而不是上面那堆土法煉鋼 11/16 09:39
我也覺得直接寫不大好 能解問題但未來更多問題orz 感謝soft_job版眾們的幫助
SISQUAKE: Ansible 一解 11/16 10:21
qrtt1: 別衝動,你的基礎建設有完整了嗎?災難回復策略跟演練呢? 11/16 10:50
vi000246: 如果要土法練鋼我有寫支FTP佈署的 11/16 11:01
vi000246: https://goo.gl/oJnRxZ 11/16 11:02
水哦感謝大大的分享
ripple0129: 看樣子ansible已經稱霸CM市場了 11/16 11:09
ian90911: 推qrtt1 先釐清復原手段 11/16 11:15
ChungLi5566: 主流就是一台一台手動部署 11/16 12:15
量很大且人力不足的話 (e.g.,300台機器 5人的team) 也會是傾向逐台手動嗎? 不會是像MS那樣直接更新?
alog: 你們有沒有規劃怎麼rollback上一個版本 這個很重要 11/16 12:33
alog: 還有有沒有可能搞掛資料庫 或 退回上一個版本資料被你們砍 11/16 12:35
alog: 掉 11/16 12:35
alog: 如果是停機維護還好 可以在執行前再備份 如果是不停機 就會 11/16 12:41
alog: 比較尷尬 新進資料搞掛了包你囧爆 11/16 12:41
alog: 另外就是 或許還會有更酷的工具 或是 需要整合其他的先進服 11/16 12:54
alog: 務進入到你們的架構 11/16 12:54
alog: 但一定要留意你們在處理的資料 他是國家級的醫療資訊,或許 11/16 12:59
alog: 可能內容還好,但有些工具或先進的系統服務 最好要跟你上面 11/16 12:59
alog: 的主管確認/授權過再用 不要沒有確認過就直接傻傻用 怕你沒 11/16 12:59
alog: 事變有事 11/16 12:59
目前應該會是採用停機維護的方式加上備份比較保險 感謝大大提醒到弄壞新進資料的部分 想詢問一下在rollback的部分有什麼推薦嗎
Masakiad: docker + CI/CD server啊 11/16 13:32
因為web app已經包成war檔了 想詢問這樣再加上docker可以扮演的角色是?
remmurds: 架構魔人要出動了嗎? 11/16 15:47
哈哈哪位大大是架構魔人
gino0717: 巴拉圭有電腦喔 11/16 17:55
有啊網速也還行 wifi也大概有個3-5mbps左右 行動網路他們走3G+LTE
single4565: 這替代役好像還不錯欸 11/16 18:14
------------------------------------------------------------------- 感謝以上大神們的熱情分享和幫助 小魯會好好survey一下的 ※ 編輯: walker088 (200.108.131.62), 11/16/2018 19:46:16 ※ 編輯: walker088 (200.108.131.62), 11/16/2018 19:48:26
popmentos: https://pulumi.io/ 以後可能會變主流 11/16 20:25
ChungLi5566: war安裝完會有個路徑來放解開後的檔案 11/16 20:44
ChungLi5566: 設成ftp站台 換版就直接把war解開後蓋過去 11/16 20:45
ChungLi5566: 不過即使UAT環境測過 也無法保證Prod也ok 11/16 20:49
ChungLi5566: 所以主流還是晚上加班手動換版 11/16 20:50
RunRun5566: Ansible, DB不要放server,不然就用Dicker把app跟db綁 11/17 09:08
RunRun5566: 著用 11/17 09:08
MIKEmike07: Jenkins + Ansible 11/17 14:35