首頁>科技>

“ 一個優秀的應用開發平臺不僅是一個開發平臺,也是一個文化平臺!而且是一個技術人很好的能力和貢獻證明。”

如果你想快速開發一個Web應用,透過一鍵配置後就可以立即開發業務邏輯,又不用管伺服器這些底層的事情,是不是很香?

由我們部門的技術大神“丹花”一手打造的AppRunner內部應用開發平臺就是這樣的平臺,它賦能和激發了我們全球的開發人員在上面開發了近兩千個應用,為公司內部的管理、度量、人才盤點等需求提供了大量高效工具,也構造了一種良好的技術文化。而且讓“丹花”進一步鞏固其技術大神的位置。

讓我們一起來探究一下這麼牛的平臺和它背後的意義吧。

01 平臺概貌

很多時候,我們都想開發一些小應用,來幫助我們提升管理、開發和工作效率。但當我們要開始開發一個Web應用時,往往會因為以下障礙而止步不前:

搭建開發環境——雖然像Java的Maven這樣的構建工具已經大大簡化了開發流程,但離一鍵配置、部署和執行還差十萬八千里;需要開發框架——要高效開發,最好是站在巨人的肩膀上,而不是一直重複造輪子,我們希望在一些成熟的開發框架上進行開發, 從而能更快地聚集在業務邏輯的程式設計,而不是糾纏於底層的實現。但像Java裡Spring、Spring Boot這樣的主流框架,離“開箱即用”還有一段距離,對於Web應用來說,也不是一站式的解決方案;需要執行伺服器——開發出來的應用最終還需要執行在伺服器上。在我們公司,即使可以在數小時內透過內部雲獲得測試伺服器,但由於沒有root和sudo的許可權,還要找伺服器運維團隊花費數天時間做必要的額外配置,更別說要找錢“供養”伺服器。後續針對伺服器的各種維護,像打補丁、OS升級等都是煩人的事情。

AppRunner為我們解決了以上煩惱。我們可以

一鍵配置

透過一鍵,新應用的專屬的Github倉庫和基礎程式碼就已經準備好了,我們只需要把AppRunner的公鑰放到自己的Github設定中從而允許AppRunner訪問,然後透過git clone把專屬Github倉庫的程式碼拉到本地就可以開始開發了。

多種語言支援

AppRunner支援多種語言,包括Java、Node.js、Clojure、Python、.NET,滿足大家的語言偏好。

快速開發

一旦新應用生成後,基於MuServer的後臺基礎程式碼和Hello World頁面已經就緒,我們可以以此為基礎進行業務邏輯的開發。也可以隨意引入前端框架。

資料可以以檔案或以檔案形式管理的輕量級資料庫儲存,AppRunner為每個應用保留一定的儲存空間。

快速測試

我們可隨時透過打包(如Java中的mvn package),然後執行程式包(如Java中的java -jar xxx.jar),即可透過localhost進行本地測試。

把程式碼提交到Github後,AppRunner也會以秒級的速度立即自動部署,然後所有人都可以透過應用專屬的URL訪問更新的應用。可以在AppRunner上看到部署和執行的日誌。

無需管理伺服器

伺服器資源完全由AppRunner管理,我們作為開發人員根本不需要操心。

當然,AppRunner僅限於內部應用開發和使用,不能用於正式的業務應用和涉及敏感資料,這也是為什麼它的開發、部署流程比較簡單,但對於內部工具型的應用開發,足夠了。

02 技術實現

下圖是AppRunner的工作原理。當一個新應用生成時,AppRunner會為它分配一個唯一的埠和URL。使用者透過應用專屬的URL訪問時,AppRunner會把請求代理到相應的埠。

AppRunner為每個新應用都準備了以MuServer為底層應用伺服器的基礎程式碼。MuServer(https://muserver.io/)是用Java開發的高效、輕量級的現代Web應用伺服器。開發人員可以隨意新增Handler來處理HttpRequest和HttpResponse,生成相應的API Endpoint。

開發人員也可以隨意呼叫其它AppRunner應用提供的API,獲取資料,站在別人的肩膀上。

由於所有應用的Github倉庫都是內部開源的,我們也可以隨時參閱別人的程式碼。

03 優秀應用

有了AppRunner,開發人員可以快速地、無所顧慮地開發內部工具型應用供所有人使用。到目前為止,AppRunner上已經部署了接近2000個應用,其中不乏被廣泛使用的優秀應用。

比方說收集開發和DevOps指標的Dashboard類應用,方便所有人對重要指標進行度量,並以此為根據進行持續改進;自底向上的自組織團隊登記,方便各團隊管理人員資料;輔助系統監控的Dashboard;實現所有人線上各抒己見的回顧會議工具;運維資料完整性檢查;系統間架構關聯圖譜;分享會預告和登記等。

04 寫在最後

AppRunner作為開放的內部應用平臺,除了激發了人們對內部工具類應用開發的熱情,也讓所有人更容易反哺,切實地為大家提供各種高效的工具,形成了一種良性的氛圍與文化,這也是我想跟大家分享的重點。作為技術人,我們應該堅持用技術解決一切問題!

另外,作為一家技術公司,我們一直為人們提供管理和技術兩個發展路徑。但是技術路線怎麼發展和評估,則不像管理路線那樣可以透過管理級別、團隊規模進行量化。一個技術人個體怎樣證明自己比別人更厲害,甚至可以“以一打十”,其實是很難的。

而評估一個技術人的能力,一個切入點可能就是看TA是否有能力賦能組織和其他人做出更大的成就,而且更有說服力的,就是看TA是否做出過實實在在的產品、平臺、工具或服務,切實地賦能了大家,這樣TA的能力和貢獻就有了槓桿。技術牛不牛,技術人有沒有貢獻,從來不能靠吹,而是要靠做。

文中提到的“丹花”是我們公認的技術大神,AppRunner也再次很好地證明了他的能力和貢獻。這就是一個技術人發展的很好的榜樣。

近期必讀:

關於作者

劉華(Kenneth)

7
最新評論
  • 整治雙十一購物亂象,國家再次出手!該跟這些套路說再見了
  • 「歐睿資料」讓商品管理決策從直覺到科學,使“人貨場”真正匹配