那個寫腳本的架構師,被開除了...


我對 Linux 很是的精通,尤爲是腳本語言好比 sed、awk、python 等,用起來更是爐火純青。html


640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=1&wx_co=1

圖片來自 Pexelspython


我把它做爲本身一個很是特立獨行的技能,一個和其餘普通程序員區別開來的技能。
程序員


因此在我寫腳本的時候,我都會自豪的擡高個人頭,鼻孔朝天冥思精悍的 code。
web


好比,看到別人一遍遍的翻文檔安裝 Elasticsearch 這個軟件,我就渾身難受,寫了腳原本加快這個過程:
docker

mkdir /data
useradd es -d /data/es
chown -R es:es /data
cat > /etc/security/limits.conf <<EOF
soft nofile 65536
hard nofile 65536
soft noproc 65536
hard noproc 65536
es soft memlock unlimited
es hard memlock unlimited
EOF
cat >
 /etc/sysctl.conf  <<EOF
vm.swappiness = 0
vm.max_map_count = 262144
EOF
sysctl -p
chown -R es:es /opt/elasticsearch

這種腳本可以讓我快速知曉軟件安裝的要點,不須要再讀那些冗長的文檔。像這樣的事情,我老是在作,長此以往,搞的本身好像很閒同樣。
數據庫


這幾天看到小王一直在那裏搗鼓 Excel,這些數據他已經處理了好幾天時間了。
api


客戶須要從其餘平臺遷移到咱們的平臺,導出了一堆爛七八糟的數據,大概有三四十 MB 的樣子。不知道怎麼回事,清洗數據這個活兒,就落在了小王身上。
緩存


文件很大,公司的電腦很爛。小王打開以後,電腦的風扇就呼呼直轉。他每次都須要使用 ctrl+f 找到不太正常的數據,而後把它麼拷貝到另一個文件中。
安全


數據多,工期緊,昨天晚上,小王就加班幹到 23 點多,直到夜的盡頭。
服務器


總監對此專門進行了表揚。

640?wx_fmt=jpeg&tp=webp&wxfrom=5&wx_lazy=1&wx_co=1

我坐在小王的旁邊,天然不能對此坐視不理。常年養成的習慣,讓我對低效的事情沒法忍受,就如同一隻常年奔跑的兔子忍受不了緩慢爬行的蝸牛。


只掃了一眼小王的需求,我就斷定這個工期三天的任務,使用腳本只須要 2 個小時就能完成。


我並非樂於助人,實在是我很是的喜歡寫這種腳本,還有腳本帶來的這種速度差別的快感。


一個小時以後,我把調試好的 Python 腳本交給小王。Shell 裏一運行,正確的文件就出來了。好爽的感受。


小王天然對我拜服,逢人便吹我如何牛 X。


這個事情不知怎麼就被總監給知道了,我被叫進了寬大的辦公室。看到總監一臉陰沉的臉,我知道事情不妙,但並不知道癥結所在。


我剛入職這家公司,應該沒有在不經意間觸碰了不應逾越的底線,個人心中充滿了迷茫。


「據說你幫小王解決了個問題「 。總監說, 「之後少寫這樣的東西」。


「爲何?「 我彷彿不太相信本身的耳朵, 「腳本能顯著的增長工做效率」。


「就知道你會有這樣的疑問。」總監嚴肅的臉緩和了下來,和我講了一個架構師的故事。


小宋曾經是這家公司的架構師。有不少三腳貓的架構師並不寫代碼,因此小宋成爲了能碼字的稀缺架構師。他的一個絕活就是寫腳本,就像我如今乾的事情同樣。


腳本能增長效率,這是我多年的經驗。但效率這兩個字自己,就根本沒法衡量。


因此效率這兩個字,沒法被量化。即便你把工期從 3 天縮減到 2 個小時,那也不見得你的效率高,由於這只是零散的雜事中的一個小插曲,你省下的時間仍是去摸魚。


你的這些效率,打破了正常的研發週期,也斷送了想要拼搏的同窗的夢想。因此,增長效率 ,這種有實際功效的作法並不能登上大雅之堂,只能在小圈子裏樂呵一下,最後只會變成一個口號。


小宋的腳本第一次是用在一個線上事故的處理上。當時,程序有一個 Bug,數據庫和緩存中一部分數據錯亂,產生了不一致的狀況。因爲緩存分佈在 20 多臺機器上,就不能使用把全部緩存給清掉的方式。


業務經理很着急,通過討論以後,決定開發定時任務,掃描全部的緩存和數據庫中全部的記錄,而後修正數據。數據量很大,程序也須要驗證,估計修復時間至少須要兩天。


小宋說,沒那麼麻煩。你只須要把問題發生期間,全部的業務日誌給我就能夠了。


接下來的三個小時,小宋從日誌裏過濾出了問題發生過程當中全部被更新過的 Key。


略一思索,就使用腳本完成了對這一批 Key 的緩存刪除操做,很是完美的解決了問題。


這件事以後,小宋就常常被請去寫一些腳原本幫助處理疑難問題。他來者不拒,樂此不疲。一切像是向着良性的方向發展,直到一次線上的故障。


公司的幾百臺機器,都是在 AWS 平臺上的 EC2 服務。使用 EC2 提供的 API,能夠作不少事情。


但 EC2 的命令實在是太難以理解,因此小宋作了封裝:

https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/ec2.html

使用這個腳本,能夠對部分、或者全部的機器,進行批量管理(好比加個分組,開個權限等),就不用登錄到後臺作一些管理工做。每當小宋看到黑屏幕上流淌的字符,他就想,這就是效率的魅力。


腳本很是好用,因而獲得了分發。有一個運維拿到了這個腳本,鬼使神差的想要在線上驗證一把。


他向全部的機器發送了關閉命令。公司立馬就炸了鍋,扯皮的事是不免的。但最後的矛頭指向了小宋。


腳本是他寫的,但他首先是一個架構師。一個架構師,能夠不寫代碼,能夠不出成績,但必需要有風險意識。


可這些命令,並非我提供的。這是 AWS 平臺提供的東西,我對此什麼都沒有作。去測試這些命令,和用不用這個腳本沒有關係。小宋爭辯。


但命令確實是經過這個腳本發送出去的,也確實形成了後果。背後那些千迴百轉的曲折關係,沒人會去研究,也沒人會關心。


那些日常享受小宋腳本的同窗,此時也是默不做聲,由於這種責任問題,如同效率問題同樣,都是虛張聲勢,並無明確的結果。


這種事情,小宋也是體驗過的。好比提供了 Redis 腳本,有人就喜歡運行 FLUSHALL 命令;提供了 Docker 命令,有人就喜歡調用 docker purge 去作清理。這根本控制不住。


他認爲,這是使用者的水平問題,而不是他的腳本問題。與總監吵了幾架以後,小宋最後一氣之下,憤而離職。


他直接刪掉了這家公司全部人的好友,消失了。


「因此,我是對你好,纔會和你提這樣的要求。比起風險來,這點效率帶來的提高,真的是微不足道」。


講到這裏,總監意味深長的看着我。「我如今就是及時的制止你的行爲,免的步小宋的後塵」。


我點點頭,這個道理我懂。以前有家公司,就由於以爲 Linux 的學習成本大,命令危險,就選擇了 Window 系統作服務器。


寧肯難受、付錢買受權、當 2B,也不敢越雷池一步。拿着風險兩個字掛在嘴邊,這些道理都是同樣的。


我忽然以爲,這麼多年個人信仰就要崩潰了。花了那麼大的力氣,把命令行學精,到最後落到個學無所用,真是悲哀。
「總監,很差了......正在我想要表達些什麼的時候,有個小夥子闖了進來, 「線上有人使用 Ansible 練手,把根目錄的權限所有改爲 000 了!」

640?wx_fmt=jpeg&tp=webp&wxfrom=5&wx_lazy=1&wx_co=1

個人腦子裏立馬出現了這樣的命令,此次鍋是 linus torvalds 的了。

chmod -R 000 /

誰知道總監笑了。「你剛來,不瞭解這裏的狀況。這個月已經發生好幾回這樣的事了。是時候換安全可靠的 Windows 了,我認識採購的人。」


我微笑着點頭,不置能否,但虛心受教。我灰溜溜回到本身的工位,長嘆一聲,刪光了公司全部的人。


今天就提交辭呈吧,畢竟,公司是找不到 linus torvalds 的,但能找到我。畢竟,Ansible 這個工具,是我前幾天剛給推薦的。


因此,若是架構師是你,你會留下什麼腳本呢?

相關文章
相關標籤/搜索