.png)
我的日常工作流
引言
看腻了果粉的生态传销、各种软件广告和 NAS 党的存储焦虑,这里我换一个角度,从物理架构方案出发,分享一下我的工作流,这是我个人的工作体系的一部分,并非是什么经年累月磨砺出的企业级解决方案,但它胜在足够应对个人工作场景,稳健、简洁、通用而不折腾。
我知道我的这套方案可能只适合部分软件行业从事者,若能博得前辈会心一笑,或令后生少走些弯道,便不枉我效法仓颉造字之苦。若嫌粗陋,则权我当结绳记事尔。
硬件架构
硬件架构是我工作流的核心,分为三层,对于我来说,是一种必要解耦,包括终端、服务层、存储层,下图是一个例子。
终端层
我这里的终端,类似 "胖 / 瘦客户端" 这一概念,无论是平板电脑、笔记本,甚至网吧开的一台机子,他们只会承担轻量级任务例如本地开发、文档编写、浏览网页或者画画原型,以及一些小创意,有的设备,可能只是一个纯粹的接入点。
在我的工作模式下,终端层就是一个临时工,类似一种无状态的概念,我不会在上面存储任何敏感信息或重要信息,一般只会访问一些 SAAS,或者我自建工具,终端不负责存储数据的,就算本地需要存些数据,也就是个临时文件,浏览器或 xshell 占用了 90% 的使用时间。
有些重活,或者敏感的数据,我会通过终端,通过自建的 Headscale 内网,远程到我家里的 Windows 主机上,这样,我只需要在 Windows 主机这里面配置相应的环境以及安装对应的软件就可以了,可以做到环境的统一。
这种方式,大部分情况下,延迟无感,操作体验和本地没岔。工具就是微软自带的远程桌面,这玩意大部分操作系统里都是开箱即用的。
服务层
服务层主要包括两类机器,一个是前哨,Windows 主机,另一类是个 Linux 的一个小集群,算是服务层的主城。
Windows 大奶机,占据了这层所有设备 60% 的总估价,主要是显卡贵,我又爱打游戏,因为有些软件吃主频,或者对最新 CPU,GPU 架构有优化,新的硬件体验不言而喻。
大奶机里面有我最完整的开发环境和软件,每当我坐在电脑桌前,面对着 4 台显示器,我的整个人也好似也成了 4 个,效率飞起,同时十分惬意。
他不仅是中枢工作站,也是服务层和数据中心的门户,可以访问我的一切内网设备以及一切数据。
服务器,目前主要在用的是一台二手的戴尔 T630,七八年的老机子,128G 内存,两块 E5-2682V4,一共 40 个核心。单从表面数值来看,可能再过七八年也不会过时,上面跑了个 PVE,当我需要什么环境的时候,比如拉一个 k8s,或者为了某个版本的系统编译一个包,就是他发挥余热的时候,可以说,虽是垂垂老矣,但可抵千军万马。
我不搞 ALL in boom,很多时候,直接跑在物理机上更为稳健。所以淘汰笔记本还在发挥余热,都安装了 Debian 系统,因为有显卡,所以目前在干一些影音服务器的活,笔记本自带电池,不需要接在 UPS 上面还是很方便的。
家里面组了个 2.5G 的局域网,直接用的交换机和网线连一切,所以互相访问很少经过路由器,都是直接走在数据链路层,互相访问感觉不到什么延迟。我看最近万兆甚至 40G 也露头了,有很多人已经开始尝鲜了。可惜我用的机子除了大奶机都是老网卡,目前也并没有万兆的需求,故而没有 follow,follow 了也没用,因为我除了系统运行用的是 SSD,其他存储用的是机器硬盘,飙满也就 270MB 左右了,因为现在硬盘的价格连年的涨,我也就没组 RAID10。如果有什么需要吃延迟或者读写速度的文件,我也就直接在本机上处理了。
除了 Windows 大奶机,这几台服务器,我是并不在意他的性能的,对于我来说,再过十年,他们可能仍不过时。甚至性能还是远远过剩的,当然,如果新买个机子省下的电费能 cover 住旧机子的钱的话,还是可以换一下的。
还记得小的时候,我喜欢打游戏,红警、CS、星际争霸,当时能有一台接了电话线的台式机就觉得很满足了,家里一有人打电话游戏就断网,现在可能很多小孩都没有见过电话线,拨号上网也不知道是什么,当时整个带宽只有几十 K,我还能用来打 CS。现在的硬件,在我看来,都算是未来科技了。
存储层
数据是整个架构的核心,要求只有,不丢数据不裸奔。现在我所有的机子,除了系统盘安装点软件, 其他数据都是统一丢进本地的数据中心进行处理的。
这一层更具体的内容,之前专门有所讨论,此处不再赘述。
碎碎念
我的日常工作流,也可以说是方案,这种高度定制化的东西,一个人是折腾不出来什么东西的,我也不可能当一个运维,7 * 24 的盯着我的服务,索性这些东西停了也就停了,我这个硬件的架构和工作流,高可用,对于我来说没有什么意义,只要数据不丢失就可以,这个是重点,当然,就算是服务器炸了,也不会影响我的数据,因为我的每个服务器都是有备份的。就算他炸了,也最多影响我一个人,少数服务会影响到几个朋友。我大可下班回家或者出差回来给他拾道好了。
服务器的好处是稳,以年为单位的重启是完全可以接受的。我每年基本都会给他们体检,换换硅脂,清清灰,顺便也就重启了,我挺爱护他们的,就是电费有点叛逆。
我的服务层像是丐帮聚会,用起来可能没有直接一步到位全上 AIO 管起来方便,但是这是结合多年来我的生活、工作经验所自以为是的一种必要的解耦, 至少用硬件冗余换取精神安宁是真的。用的久了,机器是真的可能暴毙的,尤其是我用的这种廉价二手老家伙。
我单独的拆分出了一个终端层,一是因为我日常只会用到浏览器和 xshell,对于其他工作内容,我只要管好我的数据就好了。
我的终端机,不会去存放处理任何敏感的数据,有的话,也是在大局域网内,传到家里的 Windows 主机这一个流程。这个过程,数据是不落地、不留痕的,从外界的 U 盘、光盘等介质,直接剪切过去。
记得之前,特别喜欢折腾各式各样的硬件,不同容量的硬盘,花里胡哨的 U 盘,超大容量的内存条,烟盒差不多大的服务器 CPU,显卡,刀片、机架服务器或者是塔式,我也算是个奇葩,家里放塔式,不知道整个中国能找出几个来。
不过之后我也有了点需求克制和成本意识,可能是懒了,也可能是没了冲劲,不追新不折腾,够用就好,有了能用的,我就不想花钱花精力去动了,去搞什么硬件迭代,软件换新了,年年看到性能翻倍的发布会,越看越像是给韭菜开光的法会。
我自己的这套方案,是一个框架,一种偏向底层的,如何组织数据访问与多机共用的框架,像是房子的地基,不管硬件软件如何变,这个解决方案的设计思路仍旧不会过时。所谓 "山中无历日,寒尽不知年"。我也不需要学习新什么东西来升级我的方案了。