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/cn.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/cn.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灯, 水草

请输入看板名称,例如:Tech_Job站内搜寻

TOP