[請益] 如何同時更新多台Server內的DB及APP

看板Soft_Job作者 (巴拉圭魯蛇)時間5年前 (2018/11/16 04:18), 5年前編輯推噓20(20023)
留言43則, 22人參與, 5年前最新討論串1/2 (看更多)
各位年薪百萬大大們好 小魯我是目前在巴拉圭的替代役男 剛開始在地球另一端摳頂大概三週而已 工作的計畫是協助他們國家醫院醫療資訊系統的開發&維護 使用的技術如下: 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

11/16 06:39, 5年前 , 1F
cronjob+bash_script, gluster?
11/16 06:39, 1F
感謝大大關鍵字分享

11/16 06:58, 5年前 , 2F
Ansible
11/16 06:58, 2F

11/16 07:01, 5年前 , 3F
你可以看看Jenkins & Ansible
11/16 07:01, 3F

11/16 07:02, 5年前 , 4F
用Jenkins撰寫一個發布的Job
11/16 07:02, 4F

11/16 07:02, 5年前 , 5F
這個job做的是打包成War然後執行flyway
11/16 07:02, 5F

11/16 07:03, 5年前 , 6F
再透過Ansibleㄧ次將war更新多台機器
11/16 07:03, 6F
好像很多人推Anible+CI server耶 感謝大大

11/16 08:35, 5年前 , 7F
Chef or Ansible
11/16 08:35, 7F

11/16 09:05, 5年前 , 8F
CI + Ansible
11/16 09:05, 8F

11/16 09:05, 5年前 , 9F
Ansible+1
11/16 09:05, 9F

11/16 09:20, 5年前 , 10F
跑在什麼系統上?
11/16 09:20, 10F
Server是CentOS 7

11/16 09:27, 5年前 , 11F
Ansible
11/16 09:27, 11F

11/16 09:28, 5年前 , 12F
Ansible +1 佈署很方便的
11/16 09:28, 12F

11/16 09:39, 5年前 , 13F
我想你需要的是replication相關 而不是上面那堆土法煉鋼
11/16 09:39, 13F
我也覺得直接寫不大好 能解問題但未來更多問題orz 感謝soft_job版眾們的幫助

11/16 10:21, 5年前 , 14F
Ansible 一解
11/16 10:21, 14F

11/16 10:50, 5年前 , 15F
別衝動,你的基礎建設有完整了嗎?災難回復策略跟演練呢?
11/16 10:50, 15F

11/16 11:01, 5年前 , 16F
如果要土法練鋼我有寫支FTP佈署的
11/16 11:01, 16F

11/16 11:02, 5年前 , 17F
11/16 11:02, 17F
水哦感謝大大的分享

11/16 11:09, 5年前 , 18F
看樣子ansible已經稱霸CM市場了
11/16 11:09, 18F

11/16 11:15, 5年前 , 19F
推qrtt1 先釐清復原手段
11/16 11:15, 19F

11/16 12:15, 5年前 , 20F
主流就是一台一台手動部署
11/16 12:15, 20F
量很大且人力不足的話 (e.g.,300台機器 5人的team) 也會是傾向逐台手動嗎? 不會是像MS那樣直接更新?

11/16 12:33, 5年前 , 21F
你們有沒有規劃怎麼rollback上一個版本 這個很重要
11/16 12:33, 21F

11/16 12:35, 5年前 , 22F
還有有沒有可能搞掛資料庫 或 退回上一個版本資料被你們砍
11/16 12:35, 22F

11/16 12:35, 5年前 , 23F
11/16 12:35, 23F

11/16 12:41, 5年前 , 24F
如果是停機維護還好 可以在執行前再備份 如果是不停機 就會
11/16 12:41, 24F

11/16 12:41, 5年前 , 25F
比較尷尬 新進資料搞掛了包你囧爆
11/16 12:41, 25F

11/16 12:54, 5年前 , 26F
另外就是 或許還會有更酷的工具 或是 需要整合其他的先進服
11/16 12:54, 26F

11/16 12:54, 5年前 , 27F
務進入到你們的架構
11/16 12:54, 27F

11/16 12:59, 5年前 , 28F
但一定要留意你們在處理的資料 他是國家級的醫療資訊,或許
11/16 12:59, 28F

11/16 12:59, 5年前 , 29F
可能內容還好,但有些工具或先進的系統服務 最好要跟你上面
11/16 12:59, 29F

11/16 12:59, 5年前 , 30F
的主管確認/授權過再用 不要沒有確認過就直接傻傻用 怕你沒
11/16 12:59, 30F

11/16 12:59, 5年前 , 31F
事變有事
11/16 12:59, 31F
目前應該會是採用停機維護的方式加上備份比較保險 感謝大大提醒到弄壞新進資料的部分 想詢問一下在rollback的部分有什麼推薦嗎

11/16 13:32, 5年前 , 32F
docker + CI/CD server啊
11/16 13:32, 32F
因為web app已經包成war檔了 想詢問這樣再加上docker可以扮演的角色是?

11/16 15:47, 5年前 , 33F
架構魔人要出動了嗎?
11/16 15:47, 33F
哈哈哪位大大是架構魔人

11/16 17:55, 5年前 , 34F
巴拉圭有電腦喔
11/16 17:55, 34F
有啊網速也還行 wifi也大概有個3-5mbps左右 行動網路他們走3G+LTE

11/16 18:14, 5年前 , 35F
這替代役好像還不錯欸
11/16 18:14, 35F
------------------------------------------------------------------- 感謝以上大神們的熱情分享和幫助 小魯會好好survey一下的 ※ 編輯: walker088 (200.108.131.62), 11/16/2018 19:46:16 ※ 編輯: walker088 (200.108.131.62), 11/16/2018 19:48:26

11/16 20:25, 5年前 , 36F
https://pulumi.io/ 以後可能會變主流
11/16 20:25, 36F

11/16 20:44, 5年前 , 37F
war安裝完會有個路徑來放解開後的檔案
11/16 20:44, 37F

11/16 20:45, 5年前 , 38F
設成ftp站台 換版就直接把war解開後蓋過去
11/16 20:45, 38F

11/16 20:49, 5年前 , 39F
不過即使UAT環境測過 也無法保證Prod也ok
11/16 20:49, 39F

11/16 20:50, 5年前 , 40F
所以主流還是晚上加班手動換版
11/16 20:50, 40F

11/17 09:08, 5年前 , 41F
Ansible, DB不要放server,不然就用Dicker把app跟db綁
11/17 09:08, 41F

11/17 09:08, 5年前 , 42F
著用
11/17 09:08, 42F

11/17 14:35, 5年前 , 43F
Jenkins + Ansible
11/17 14:35, 43F
文章代碼(AID): #1RxTIk-p (Soft_Job)
文章代碼(AID): #1RxTIk-p (Soft_Job)