Re: [請益] 後端工程師除了CRUD之外還要精進什麼?

作者: lei0705 (Lei)   2018-06-02 19:22:15
我覺得,光要做好 CRUD 就很不容易了耶,我想簡單談談 R 就好。
我們假設一下。
當你的 API response time 越來越高時,怎麼辦呢?
第一步可以先看看演算法和 db 有沒有調效的空間,演算法和 db 的調效就可以研究好一
段時間了。
如果調完了,還是不夠快呢?
那可以考慮分析一下你的資料,分出常變動和不常變動的,常變動的放在 db 沒問題,不
常變動可以考慮用 cache 來解決。
cache 可以考慮自已處理,或者找找適合的工具,然後要 cache 在本機還是弄個
memory 的 nosql db 呢?db 的話要 redis 或 memcached呢?
cahce 也是個可以好好研究的東西,比方說 cache 要設多長呢?設短了查詢頻率還是很
高,設長了花較多的空間,然後資料有更新是要主動去更新 cache ,還是等 cache 時間
到了下次被 hit 再更新就好?
接著我們假設一下,你已經處理好你的 cache,也榨乾你那台 server 的效能了。
接下來要嘛升級要嘛加機器,升級總會到個物理極限就不談了,談談加機器吧。
加機器那問題就又來啦。(來不完乾)
如果你是三台、五台還好,一百台你總不可能要 client 接你 100 台機器吧,那就要瞭
解一下 load balancing 啦,lb 怎麼做和怎麼做好也是一門學問。
然後 100 台機器時,你總不會還要一台一台手動去更新程式吧,那怎麼自動部署呢,比
如用用 ansible 之類啊,也是可以研究的。
然後通常也不用到 100 台機器啦,瓶頸就又會變到你的 db 那了,那這時候要怎麼解呢
?可能可以做個讀寫分流啊,怎麼做跟怎麼做好也是可以好好研究。
光 R 感覺就講不完了,量一直衝上去挑戰就會一直來,頸瓶有可能出現在你系統任何地
方,你能承受越高的挑戰你的價值自然也越高。
學無止盡,回頭是岸。
不對,是加油,共勉之 ^^
作者: alihue (wanda wanda)   2018-06-02 20:00:00
然後發現原原 po 是接案公司,才要開始想下一個案子就來了
作者: vn509942 (如履薄冰)   2018-06-02 20:23:00
要玩的太多了
作者: abccbaandy (敏)   2018-06-02 21:28:00
推1F,這篇太理想,現實一堆接案公司,東西能動就好
作者: andymai (人生只有一次)   2018-06-02 21:30:00
3台、5台的意思是client試著去連3台、5台機器?不是超過1台就要考慮分散負載了?client永遠只連一台
作者: robler (章魚丸)   2018-06-02 21:53:00
load balancing的做法很多 像遊戲伺服器分流也是一種做法
作者: ku399999   2018-06-02 23:05:00
現實是多開兩台能花錢解決的立即解決然後放著等下次爆
作者: ybite (小犬/小B)   2018-06-03 00:35:00
能花錢解決的都是小問題 QQ 如果你遇到漏下index,或著更慘一點,你用的Library沒有Optimize Query,那還是得解決問題
作者: abccbaandy (敏)   2018-06-03 01:41:00
花錢解決也要看多少錢...一堆聽到金額就縮了XD
作者: vn509942 (如履薄冰)   2018-06-03 02:23:00
現在有些設備花錢也不會那麼快有現貨

Links booklink

Contact Us: admin [ a t ] ucptt.com