昨晚(9月21日)「微信應用號」萌萌噠的化身——「小程序」纔剛開始宣佈內測,今天朋友圈就刷屏了!真是一石激起千層浪,各類分析、預測文章鋪天蓋地而來,讓人目不暇接。這讓筆者依稀看到了當年Docker技術開源時的盛景。前端
有人說,微信小程序的橫空出世,讓前端開發開始熱鬧起來;而筆者想說,在後端開發中,Docker的地位能夠與微信小程序一較高下,由於它早就已經火遍後端!vue
今天咱們就來比比微信小程序和Docker到底是如何在前端和後端開發中一統天下的!react
做爲給容器領域提供了標準化「集裝箱」的Docker技術,自開源以來,Docker類應用均以CloudNative雲原生自居,在容器類創業者、國內外Docker技術大拿的不斷推進下,真正讓開發者、企業開始逐漸接受這種雲原生應用,並經過Docker&k8s等技術推進互聯網的不斷進步。web
那麼,Docker是如何火遍後端的呢?先來看看下面這段火藥味十足的對話:小程序
測試:你提測的代碼有BUG。看這個頁面顯示問題吧,點下這個連接跳轉的不對吧,再多點幾下,網站掛掉了吧!!!後端
開發:開什麼玩笑,我這裏怎麼一點事沒有。搞出網站掛掉這種BUG我還混不混了。你部署環境有問題吧???微信小程序
測試:!##$&!#$%@#安全
開發:&@#$@#$&!#前端框架
開發:我上你的機器看下……服務器
10分鐘後,或者更長,或者更更長時間後……
開發:你配置文件沒更新!
測試:你提測的文檔裏沒說要更新!
開發:我昨天不是說過了麼……
這裏咱們並不討論誰是誰非,要知道是人就會出錯,咱們應該找到好的方法避免出錯。那應該如何統一開發與測試環境呢?
Docker帶來了很好的解決方案:把代碼和依賴環境作成不可變的一個鏡像,須要關注的事物越少遺漏機率越小,這是毫無疑問的。如此統一了開發、測試以及生產環境,你就能節省出更多的時間作更有意義的事情。
爲了充分利用計算資源以及考慮到安全問題,咱們會在高性能的服務器上使用虛擬機隔離資源爲多租戶提供服務,要知道虛擬機是重量級的解決方案,建立速度慢、自己佔用資源高。
而Docker使用了cgroups/namespace等,是很是輕量的解決方案,佔用資源少,啓動速度快,能夠秒級啓動容器。這意味着相同的機器使用Docker可以提供更多的服務。
上面只是簡單地舉了兩個例子,Docker實際解決的問題遠不止這些,因此不火纔怪。後端開發同行們,你認不認同!
微信小程序提供了豐富的框架組件和 API,極大下降了開發的難度,在這些組件和接口的幫助下,創建在微信上的小程序在運行能力和流暢度上即可以保持和Native App同樣的體驗。
尤爲對於 web 前端開發者來講,開發 APP 再也不須要學習 IOS、Android,也不須要搞懂 React Native,開發一個微信小程序就夠了,因此 JavaScript 是世界上最好的語言。
微信小程序實現了千千萬萬前端工程師開發App的夢想,想不火都難。因此別再開發App了,請開發移動網頁應用吧。
◆ 技術角度
Docker (微服務)的開發技術:
爲什麼要微服務?瞭解微服務架構、瞭解其優勢與缺點;
微服務間如何通訊?學習常見網絡協議;
如何製做Docker鏡像?學習Dockerfile;
如何管理各容器?瞭解經常使用編排系統,如Kubernetes、Mesos、Swarm 。
微信小程序的開發技術:
前端框架如何選擇?微信小程序提供了豐富的UI控件,WeUI讓小應用看起來更加微信原生化(react、vue、ionic是否是躍躍欲試了呢~)
如何調用系統接口?微信小程序提供的接口和框架異常豐富,包括:視圖、內容、按鈕、導航、多媒體、網絡能力、羅盤、重力感應、畫板等。
◆ 產品市場角度
Docker:加速了創業公司的Server端開發流程;
微信小程序:加速了創業公司的用戶端開發流程。
微信小程序的出現,能夠說給開發者和創業者帶來了無限的想象空間,最直接的好處就是下降了App開發成本,加快了互聯網產品的迭代;而Docker技術的開源和普及,則讓後端開發者們嚐到了開發運維一體化的甜頭,下降了App Server的開發成本,加快了產品的迭代。