我們每半年釋出一次技術雷達:它是所有我們認為橫跨業界當下和將來的相關重要技術的快照。我們從世界各地召集了約20位最有資歷的技術人來編寫技術雷達,這也是一個用全球視角對比趨勢和方向的絕佳機會。我們在技術雷達上總結出了主要的潮流,但這其中的奧妙足以再專門寫一篇長文章。在此,我們將關注於技術雷達中未能覆蓋到的一些巨集觀趨勢。
強大的團隊和商業
開拓新業務所需要的不僅僅是好軟體。
開源軟體現在出現了大爆炸式的集中釋出,其中有一些公司公開了那些你可能認為是專屬或有競爭優勢的軟體。比如,谷歌的TensorFlow深度學習工具包和Netflix的整體產品棧。
乍一想這似乎是個糟糕的主意:競爭對手可能用這些程式碼一步登先,然後進行競爭。但Google真正的’祕密武器’不是軟體,而是軟體中的資料。對於Netflix,其雲規模不(再)是競爭性優勢,真正的優勢在於他們的原始內容、有許可的交易和品牌力量。
這些都是著名的利用軟體與技術促使企業變強變大的例子,但這不是企業成功的真正原因。我們看到很多贏家通過關注“產品思維”來建立優秀的體驗,同時吸引和保留優秀的員工來打造他們的產品。在這種情況下,開源軟體更多的被用於招聘和增加名譽,公司即便將軟體免費贈送,也可以保持自己的市場領導地位。
自治團隊贏得全棧控制權。
在過去的幾年裡,我們看到了“誰建立,誰執行”的敏捷團隊的崛起:由同一批人來建立、釋出軟體,併為之做產品支援。我們是這種方式的擁護者,最起碼做產品支援能夠讓人成為一個更優秀的開發者。
這種趨勢在逐漸擴大,我們能夠看到團隊的控制權越來越深入,選擇PaaS,然後在此基礎上部署、執行他們的(通常是基於雲的)負載以及執行測試工具、監控工具和安全工具。這是一個好的趨勢,但最終,企業環境中需要一些標準化。我們喜歡Spotify的方式:允許團隊創新,然後尋求最佳解決方案——這是一個處在創新和高效之間不錯的平衡。
開源是高尚的副產品。
開源軟體中的創新比以往發生得都更加迅速。之前我們提到了Google和Netflix釋出開原始碼庫,但是如果你在搜尋引擎中敲入“開源”+公司名稱,你很有可能找到滿滿一頁都在講述該公司對於開源軟體貢獻的頁面。公司投資於開源軟體有兩大原因。
第一個是獲取有天賦的人:隨著技術越來越強力地驅動著商業和社會,能否尋找最具天賦的人才是成功的關鍵要素。但是作為一個技術人員,搞清楚自己是否真的想要為某個公司工作是困難的——面試過程和實際工作之間有巨大的差異。開源軟體能夠幫助候選人通過檢視該公司產生的程式碼質量,來對一個組織獲得更深的理解,也能幫助公司為潛在新成員展示其技術文化。第二個是將之作為文化宣告。很多技術人員相信分享和重用的力量,為開源軟體做貢獻是一個公司展示與此哲學一致性的方式。
平臺和生態系統提升生產力
開發者們主要通過程式碼來溝通。
討論技術問題最好的方式通常是程式碼交流。敏捷宣言的原則之一是“可工作的軟體”優於“理論或觀點”,而開源軟體就反映了這一點。
不同於試圖用長篇大論解釋所有技術問題的細節,開發者們通常會寫一部分或全部程式碼,使用Github的程式碼社交功能來輕鬆討論、接受或拒絕建議。直接通過程式碼來討論,通常會帶來更加高效的討論,我們也逐漸看到這種技術在企業上下文中被採用。企業正在採用一種“內部開源”的模型,在這樣模型下,原始碼可以隨時被分享出來並用於協作。但企業應該在面臨風險時,忽略這種趨勢。
每個人都應該使用PaaS,但這個選擇並不是永恆不變的。
能夠參與到從“資料中心裡放的一堆堆伺服器”到“按需索求的虛擬基礎設施”的業界革命的過程一向都是激動人心的,ThoughtWorks也一直處在譬如DevOps和持續交付等運動的領導前沿。客戶常常要求我們使用雲策略幫助他們,而我們今天的建議通常是“你需要採用PaaS”。
很多組織已經欣然接受了IaaS並且創造了複雜的基於“chuppet’的、領域特定的、通常由一些膠水程式碼和shell指令碼搭起來的PaaS。儘管這些土生土長的平臺已經夠用了,但我們認為現有的PaaS產品更加成熟、值得一用。
PaaS可供選擇的範圍很大,從高度結構化的選項比如Cloud foundry和OpenShift,到無結構的以容器為中心的選項例如Mesos和Kubernets。我們不認為這些平臺是萬靈藥。很有可能你會需要深入到IaaS底層來滿足你的結果(比如配置複雜的網路)或者它們會降低你的靈活性(比如使之很難使用某個服務定位庫)。但是一個PaaS,如果實現得當,能夠為大多數企業級開發選購帶來巨大的生產力。我們曾見證過,僅僅是利用將平臺標準化、取得高效的部署、執行app,就產生了兩倍生產力的爆發。和要求20個團隊自己搞明白部署策略相比,PaaS是絕對的規則變革者。
Docker,Docker,Docker。
如果缺少了Docker,那整個技術行業的概述都不是完整的。這個容器化現象已經吸引了所有人的關注力,不管是開發者、測試者還是產品運營專家。Docker首先使包裝一個應用或元件到容器裡變得十分容易,在這基礎之上,它還可以管理容器的各個生命週期。
Docker對於開發場景十分適用,比如從在同一個筆記本上執行多個微服務,到利用Docker映象作為規模和管理單元來跨資料中心管理大型產品負載。我們認為最有趣的是圍繞著Docker的高能源生態系統。現在的確有和Docker相競爭的工具,但是Docker在人們腦海中的佔有率和其投資有著重要的意義,而且很有可能,在可預見的未來它會變成架構設計、開發策略和產品PaaS平臺的底層基礎。
Swift生態系統發展逐漸加速。
我們編寫此次雷達時,討論了很多Swift工具、庫和框架,儘管它們不是每一個都光彩奪目。在諸如Microsoft的.Net, Ruby on Rails, Scala和Clojure等已沿用多年的平臺基礎上,開發者們在用Swift重新創造他們最中意的軟體。這是Swift平臺逐漸接近成熟的好兆頭,而且它也是iOS開發的不錯的選擇。特別地,我們會質疑任何使用Objective-C為起點來開發新的專案。
基於“計算組織體”的創新持續加速
底層技術——IoT, VR, 和Blockchain——給提供我們重要的元件塊
當我們評估新的技術趨勢時,觀察其下支撐的工程學和物理學是非常有指導性的。比如說,物聯網,就是由於底層的工程,諸如電池、高效能低功耗晶片、無處不在的網路連線的進步而變為可能的。這些智慧的、相互連線的裝置會帶來諸多優勢,首當其衝就是在那些能顯著改善效用和節能的工業和商業環境下。消費者物聯網依然停留在淺顯的、小把戲的程度,在接下來幾年裡需要解決重要的安全和隱私問題。虛擬現實在譬如Oculus Rift和HTC Vive平臺上的應用越來越廣泛,超越遊戲範疇的VR會隨著我們逐步採用這個新元件塊而變成一個增長領域。至於blockchain,我們預期在未來6~18個月中有比較緩慢的增長,但在超分散式信任和不可改總賬之下,存在著我們可以用於建立商業、經濟甚至社會的新能力。
當今時代顯然是科技工作的黃金時代。在接下來的六個月裡,我們期待能夠看到這些趨勢持續帶給我們生產力上的增長,使團隊和商業變得更加有力,並帶給我們前所未有的全新想法和模式。我們也想要聽聽你的想法,在評論區告訴我們你心中最重要的行業趨勢,以及未來我們可能見證要發生的事情吧!