水土不服 什么Docker 、Mesos還是開源都是扯
目前我們對于開源的理解,早已走出了之前“開放源代碼”的膚淺。在越來越繁榮的開源環境下,大家都在不同層面上為開源做著貢獻:貢獻源代碼、完善社區生態、推動閉源軟件走向開源,等等。企業從開源中獲得的好處也越來越大,這讓諸多武藝高強的技術創業者找到了競技場。
然而,把在技術人眼中炫酷、客戶眼中冰冷的代碼變成好的產品,并不那么容易。如何讓那些高大上的國外開源技術,在本土環境下真正落地?如何借開源 項目接觸真實環境下用戶的需求,在完善產品的同時促進社區發展?在接受51CTO.com記者獨家專訪時,數人科技CTO肖德時,國內首位提交 Docker代碼的貢獻者,分享了他與數人科技帶著Docker 和Mesos闖蕩花花世界這一年多的路上,經歷的真心話和大冒險。
肖德時,數人科技CTO,Mesos/Docker項目代碼貢獻者,擅長企業內部工具的設計及實現。在數人科技負責開源項目的選型和整合,讓眾多開源項目無縫連接,提供更加強大、更加彈性、更加穩定的運算能力。
真心話篇
把握市場機遇
云計算的開放、自由推動開源成為大家擁抱的對象。現階段的開源已經不像以前,處于相對獨立的局面。那些做開源的人本身在商業公司里面身居要職,或 者是核心開發者。他們會將商業軟件的核心思想透露給開源社區。所以業界非常流行的那些開源軟件,其實在商業領域已經被驗證很多遍。
在這種環境下,大家不再把自己的核心技術握在手里。因為客戶真正需要的是解決方案,而不是冷冰冰的代碼。
云計算也帶來了更為靈活的IT基礎設施。隨著OpenStack等云計算技術的成熟,云上的解決方案越來越多。這時候,大家急需一種標準化技術,實現對不同云環境的統一管理,使企業遷移到云的應用可以得到有效衡量。
種種商業背景和大趨勢,讓肖德時和數人科技看到了云計算風口下國內的創業機會,那就是如何為企業提供端到端的解決方案,利用開源項目讓國外那些只聞其聲未謀其面的高大上技術,在國內真正落地。
選擇擅長技術
早先,老肖是紅帽分發系統團隊的Team Leader,主要負責把紅帽的軟件包分發到各個CDN,讓客戶去訂閱。這是紅帽的生命線,所以紅帽內部成立伊始就對這個系統非常重視,到現在已經有十幾 年的時間,花費了大量人力資源對其進行維護。老肖是閑不住的人,在紅帽,只要做好自己的本職工作,愿意多干你可以多干,沒人攔,所以老肖沒事找事的參與到 開源項目中。
2013年年初的一天,DotCloud在一次Linux 技術分享會上用一分鐘碼震驚了世界。在世界的某個角落,老肖也跟著一起搖擺。
Docker是一個只用一行代碼,就完成原來LXC要配置十行命令才能配出來的“Hello, World!”程序的開源應用容器引擎。借助Docker,我們可以將每臺機器看作一個資源點,就像一個一個小盒子,無論什么軟件都能被標準化封裝,最后 像搭積木一樣,使整個服務運行起來。它的出現得到諸多IT巨頭的關注,并紛紛在Docker生態圈搶占一席之地,希望能夠主導Docker的話語權。老肖 迫不及待地參與到Docker開發當中,并成為國內提交Docker代碼第一人。
此時的老肖并不知道,他已經被一個讓谷歌養懶了的人—老王—給盯上了。
話分兩頭。2014年,老王從谷歌回國創業。他發現一個問題,原來在谷歌用得極好的云計算平臺Borg國內沒有,這讓老王覺得干啥都不順手,于是 他開始在浩瀚的開源世界里面尋覓。終于,他看到 Apache Mesos,發現這個技術的核心思想完全是照抄Borg系統的,更美妙的是它開源。而且拜賜于Docker的大火,Mesos 受到越來越多的互聯網公司追捧。因為Docker與Mesos的結合,可以解決企業IT資源浪費、環境異構,支撐企業容災備份、混合云部署、彈性擴容等實 際問題。一開始,推ter就拿它做最佳實踐,后來Netflix、Apple,還有國外的各種云和大數據公司公司,都慢慢在用到這個技術。老王的眼 睛亮了。
就像Docker找到Mesos作為黃金搭檔般浪漫,老王和老肖相遇了。他們看到,目前國內的很多企業一直在不斷地浪費資源。但好在大家已經開始 希望通過購買服務,獲得專業技術的支撐,來更好地專注核心業務發展。所謂術業有專攻,老王和老肖希望用自己擅長的技術,扛起為企業提供專業的業務基礎設施 解決方案的大旗。
貼近用戶需求
數人科技專注于toB市場,他們選擇真正到企業中去登門拜訪,了解國內中小企業生產環境中的實際問題。老肖認為,這是數人科技與客戶共同成長的過程:“他們長大了,我們也就長大了”。在與企業逐漸接觸的過程中,與企業業務信息進行對接,充分利用計算資源,打破之前的壁壘。
能否選好那個最容易下手的行業,充分發揮服務優勢,決定著一款產品的成敗。老王和老肖選擇一些業務特點非常明顯的互聯網初創公司進攻,比如互聯網 金融行業和生物信息行業,這些行業的共同點是都需要大量的計算資源,還有做DSP、日志分析等,并嘗試將在這些企業中發現的共性問題,做成模板化的解決方 案。
真正走進企業后老肖更直觀地感受到,客戶不會關心你是不是用了Docker還是Mesos,而是關注大數據環境能不能快速搭建,能不能實現跨云或 是跨機房容災,能不能降低運維成本,開發的分布式應用能不能得到有效管理……了解企業的實際需求,基于開源技術提供定制化的解決方案。Docker與 Mesos可以為企業提供統一的軟件基礎構架,降低開發、運維的復雜度,也使業務部署、更新到多個數據中心變得更方便,極大減輕災備維護工作。這就是數人 科技能為用戶提供的商業價值。
兼顧外圍與開源社區間關系
肖德時告訴我們,目前國內真正做Mesos貢獻的,只有數人科技一家。在客戶提供服務的過程中,數人也會收集到的很多有價值的信息反饋給社區,保持和社區有很好的關系。
技術人在創業的過程中,很難再為社區做代碼貢獻,因為能夠在激烈的市場競爭中存活下來,是非常實際而艱難的。但是老肖認為,兼顧外圍和社區之間的關系是比貢獻代碼還有價值的事情。
對于創業公司來說,用技術做產品不是閉門造車,要提取出技術本身中的商業價值,而非寫出漂亮的代碼孤芳自賞。對社區做出貢獻的方式有很多,而社區 最關注的也是項目能不能被企業真正用起來。作為擁抱開源的技術驅動型公司,將技術商業化過程中的發現到的問題,比如Docker的兼容性問題,毫無保留地 反饋回社區,這對社區的發展同樣起到非常積極的正向推動作用。
大冒險篇
迎接云計算發展
老肖說,在國內云計算市場做創業,一定要有信心和耐心,等著云計算發展。雖然李克強總理說“互聯網+”,但現在“+”到了什么區域,資源是不是只集中在北上廣?商業模式又在哪里?
首先本土云生態環境正變得越來越復雜。國內云基礎設施參差不齊,不同的云間沒有統一的標準,因此很難界定客戶真正得到的服務質量的保證。這對數人 來說是機遇也是挑戰,他們希望能夠通過消除各種底層云環境間的異構為用戶提供統一的云平臺,這就需要和不同的云服務商進行API對接。這里面最大的難度不 是全部打通,而是讓客戶無感知的在不同云平臺間行走,實現跨越調度,這需要花費很大的力氣。
受網絡資源限制,跨云間的數據調度基本無法實現。目前數人云的解決方案是實現一個緩沖階段,也就是先做一個鏡像,與遠程數據同步一起進行,等數據 同步完成后再做切換。雖然這個方案目前并不完善,但老肖堅定地認為,基于Docker完成跨云調度實現資源共享,在技術實現方面是沒有問題的,只是需要一 些場景的磨合。
慎用微服務架構
目前創業公司在持續集成方面做的都不成熟,每家都有自己的問題。數人的問題就在于一開始做的系統就做成很多小模塊,每一個小模塊都有自己的接口。 每一個小部門都有自己的版本,而且程序員的開發進度不一。在相互調用的過程中就會發現,如果事前沒有統一的進度調配計劃,部署時非常容易出現問題。
隨著后續集成測試、依賴關系測試的進行,在沒有足夠經驗的前提下,就會簡單地認為把每一個服務都集起來就可以了。但是一到部署環境下,模塊間相互 調用時就會報錯,再做測試連調的時候,工作量會非常大,經常會返工,這讓老肖印象非常深刻,并讓數人的技術團隊越來越認識到,微服務架構還是應當謹慎使 用。
老肖說指引他走出紅帽,混進苦逼創業大軍隊伍的原因,并不是什么拯救世界的壯哉美哉所謂情懷,而是俗得不能再俗的自我能力提升。因為只有這樣,才 能鞭策自己不斷進步和學習。“原來讀書很少,現在基本上不管是技術書籍還是什么,我都愿意花點時間去學習去讀書,自我學習的過程中,就發現別的人也是這么 干的,創業過程中,大家都在自我提升。”老肖認為雖然看書是是很笨的辦法,但卻是最有效的。
最后,讓我們以老肖同志的傲嬌結束這篇文章:
“在紅帽時間長了,只負責一個小系統,沒什么意思。我希望我們的創業公司,即使在一個很小的領域里站住腳,那就是真的改造歷史。就算失敗了,至少我實現了個人價值”。
呃……好吧,貌似還是聽到了改造歷史什么的……