我造了個好大的"輪子",居然還不是"圓"的!

  我造的這個"輪子"指的是集低代碼開發與運維爲一體的平臺,爲什麼說它不是"圓"的,因爲它有些與衆不同,甚至可以說是有些另類。至於爲什麼造這個"輪子",以及另類在什麼地方且聽我慢慢道來。

一、痛苦的編碼歲月

  我是一個70後碼農,開發過不計其數的系統,小到進銷存大到電商、物聯網甚至是省級平臺。每次項目開始都要經歷從技術選型、架構設計、開發、測試及最終生產環境部署運維等多個步驟。小項目還好隨便一個單體架構就可以搞定,大項目特別是數據量較大的不仔細設計並考慮性能與擴展,隨隨便便就能把系統玩死。日復一日年復一年的編碼,還得時時擔心繫統crash真是讓我身心疲憊。

二、靜下心來的思考

  爲什麼?爲什麼碼農就需要這麼累?爲什麼會沒有銀彈,哪怕是近似的東東?我又到底需要什麼?

天下武功唯快不破

  • 我需要的是能夠快速的從無到有的開發出一套系統的工具,並且能夠快速部署。

簡單的纔是最美的

  • 我需要的是適用於中小規模的簡單架構,並且依賴的技術越少越好。

唯一不變的是變化

  • 我需要的是能夠隨時適應需求變化,並且能夠按需擴展的分佈式架構。

一切盡在掌握

  • 我需要的是能夠輕鬆掌握的系統狀態,並且能儘早發現問題及時告警。

三、苦苦的尋找

  經歷過痛苦與思考,才知道自己想要的是什麼,因而我開始了漫長的尋找與學習過程。先是瞭解各類開發語言(包括可能您都沒有聽過的Vala),熟悉其優勢、弱勢及適用場景。然後學習各種類庫及框架,只要覺得能加速開發過程便會研究一番並嘗試應用於項目中。最後開始接觸各類零代碼低代碼開發平臺,包括國外的OutSystems,國內的起點等。但這些開發平臺有些授權費用高,有些有各種各樣的限制只能適用於特定場景,且大都是單體架構無法擴展,性能一般般對硬件的要求又高。總之沒有我認爲完美的技術或組合是我所需要的,難道真的應了“沒有銀彈”,只能繼續疲憊下去。可我偏偏是個比較偏執的人,沒有咱就來造一個,哪怕是隻提高10%的效率減少10%的成本那就有意義。

四、擼起袖子直接幹

  一開始我只是想參照一些快速開發平臺實現類似的功能,並且遵循“物得其所”的原則支持不同的存儲技術(Sql, NoSql, 對象存儲)。在此基礎上我實現了一個版本(代號AppBox),但在實現過程中爲了適配各類存儲技術及相應的api我煩不勝煩,另外這麼多技術疊加在一起對整個架構的部署與運維造成了不小的麻煩,總是覺得不完美太Low。

  既然選擇了造輪子,何不造個大一點的。所以我又開始動起了存儲的念頭,在學習了NewSql與NoSql技術後,我決定基於Raft與RocksDB直接實現分佈式的存儲集成在框架內,這樣的話關係型數據、半結構化數據、非結構化數據的存儲一併搞定。簡單!完美!

五、未來在招手

  “路漫漫其修遠兮,吾將上下而求索”,目前原型總算是有點模樣了,雖打開代碼滿屏的TODO,但我抱着愚公移山的態度,相信只要每天碼一點,總有一天碼出一個近似完美的“巨輪”,也藉此尋求志同道合者來共同完成這個“輪子”,共同實現Enjoy coding! Enjoy life!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章