為什么開源應(yīng)該是云原生環(huán)境的首選
基于 Linux 擊敗了專有軟件一樣的原因,開源應(yīng)該成為云原生環(huán)境的首選。
讓我們回溯到上世紀(jì) 90 年代,當(dāng)時(shí)專有軟件大行其道,而開源才剛開始進(jìn)入它自己的時(shí)代。是什么導(dǎo)致了這種轉(zhuǎn)變?更重要的是,而今天我們轉(zhuǎn)到云原生環(huán)境時(shí),我們能從中學(xué)到什么?
基礎(chǔ)設(shè)施的歷史經(jīng)驗(yàn)
我將以一個(gè)高度武斷的、開源的視角開始,來(lái)看看基礎(chǔ)設(shè)施過(guò)去 30 年的歷史。在上世紀(jì) 90 年代,Linux 只是大多數(shù)組織視野中一個(gè)微不足道的小光點(diǎn)而已——如果他們聽(tīng)說(shuō)過(guò)它的話。你早早購(gòu)入股票的那些公司們很快就發(fā)現(xiàn)了 Linux 的好處,它主要是作為專有的 Unix 的廉價(jià)替代品,而部署服務(wù)器的標(biāo)準(zhǔn)方式是使用專有的 Unix,或者日漸增多的使用 Microsoft Windows NT。
這種模式的專有本性為更專有的軟件提供了一個(gè)肥沃的生態(tài)系統(tǒng)。軟件被裝在盒子里面放在商店出售。甚至開源軟件也參與了這種裝盒游戲;你可以在貨架上買到 Linux,而不是用你的互聯(lián)網(wǎng)連接免費(fèi)下載。去商店和從你的軟件供應(yīng)商那里只是你得到軟件的不同方式而已。
我認(rèn)為,隨著 LAMP 系列(Linux、Apache、MySQL 和 PHP / Perl / Python)的崛起,情況發(fā)生了變化。LAMP 系列非常成功。它是穩(wěn)定的、可伸縮的和相對(duì)用戶友好的。與此同時(shí),我開始看到對(duì)專有解決方案的不滿。一旦客戶在 LAMP 系列中嘗過(guò)了開源的甜頭,他們就會(huì)改變他們對(duì)軟件的期望,包括:
- 不愿被供應(yīng)商綁架,
- 關(guān)注安全,
- 希望自己來(lái)修復(fù) bug ,以及
- 孤立開發(fā)的軟件意味著創(chuàng)新被扼殺。
在技術(shù)方面,我們也看到了各種組織在如何使用軟件上的巨大變化。忽然有一天,網(wǎng)站的宕機(jī)變成不可接受的了。這就對(duì)擴(kuò)展性和自動(dòng)化有了更多的依賴。特別是在過(guò)去的十年里,我們看到了基礎(chǔ)設(shè)施從傳統(tǒng)的“寵物”模式到“群牛”模式的轉(zhuǎn)變,在這種模式中,服務(wù)器可以被換下和替換,而不是一直運(yùn)行和被指定。公司使用大量的數(shù)據(jù),更注重?cái)?shù)據(jù)留存和數(shù)據(jù)到用戶的處理和返回速度。
開源和開源社區(qū),以及來(lái)自大公司的日益增多的投入,為我們改變?nèi)绾问褂密浖峁┝嘶A(chǔ)。系統(tǒng)管理員的崗位要求開始 要求 Linux 技能和對(duì)開源技術(shù)和理念的熟悉。通過(guò)開源類似 Chef cookbooks 和 Puppet 模塊這樣?xùn)|西,管理員可以分享他們的模式配置。我們不再單獨(dú)配置和調(diào)優(yōu) MySQL;我們創(chuàng)建了一個(gè)掌控基礎(chǔ)部分的系統(tǒng),我們現(xiàn)在可以專注于更有趣的、可以給我們雇主帶來(lái)更高價(jià)值的工程作業(yè)。
開源現(xiàn)在無(wú)處不在,圍繞它的模式也無(wú)處不在。曾經(jīng)仇視這個(gè)想法的公司不僅通過(guò)協(xié)同項(xiàng)目與外界擁抱開源,而且進(jìn)一步地,還發(fā)布了他們自己的開源軟件項(xiàng)目并且圍繞它們構(gòu)建了社區(qū)。
轉(zhuǎn)向云端
今天,我們生活在一個(gè) DevOps 和云端的世界里。我們收獲了開源運(yùn)動(dòng)帶來(lái)的創(chuàng)新成果。在公司內(nèi)部采用開源軟件開發(fā)實(shí)踐的情況下, Tim O'reilly 所稱的 “內(nèi)部開源” 有了明顯增長(zhǎng)。我們?yōu)樵破脚_(tái)共享部署配置。像 Terraform 這樣的工具甚至允許我們編寫和分享我們?nèi)绾尾渴鹛囟ǖ钠脚_(tái)。
但這些平臺(tái)本身呢?
“大多數(shù)人想都不想就使用了云……許多用戶將錢投入到根本不屬于他們的基礎(chǔ)設(shè)施中,而對(duì)放棄他們的數(shù)據(jù)和信息毫無(wú)顧慮。" —Edward Snowden, OpenStack Summit, May 9, 2017
現(xiàn)在是時(shí)候要更多地想想本能地轉(zhuǎn)移或擴(kuò)展到云上的事情了。
就像 Snowden 強(qiáng)調(diào)的那樣,現(xiàn)在我們正面臨著對(duì)我們的用戶和客戶的數(shù)據(jù)的失控風(fēng)險(xiǎn)。拋開安全不談,如果我們回顧一下我們轉(zhuǎn)向開源的原因,個(gè)中原因還包括被廠商綁架的擔(dān)憂、創(chuàng)新難以推動(dòng)、甚至修復(fù) bug 的考慮。
在把你自己和/或你的公司鎖定在一個(gè)專有平臺(tái)之前,考慮以下問(wèn)題:
- 我使用的服務(wù)是遵循開放標(biāo)準(zhǔn),還是被廠商綁架的?
- 如果服務(wù)供應(yīng)商破產(chǎn)或被競(jìng)爭(zhēng)對(duì)手收購(gòu),什么是我可以依賴的?
- 關(guān)于停機(jī)、安全等問(wèn)題,供應(yīng)商與其客戶溝通中是否有一個(gè)明確而真誠(chéng)的歷史過(guò)往?
- 供應(yīng)商是否響應(yīng) bug 和特性請(qǐng)求,即使那是來(lái)自小客戶?
- 供應(yīng)商是否會(huì)在我不知情的情況下使用我們的數(shù)據(jù)(或者更糟,即便我們的客戶協(xié)議所不同意)?
- 供應(yīng)商是否有一個(gè)計(jì)劃來(lái)處理長(zhǎng)期的,不斷上升的增長(zhǎng)成本,特別是如果最初的成本很低呢?
您可以通過(guò)這個(gè)問(wèn)卷,討論每個(gè)要點(diǎn),而仍然決定使用專有的解決方案。這很好,很多公司一直都在這么做。然而,如果你像我一樣,寧愿找到一個(gè)更開放的解決方案而仍然受益于云,你確實(shí)有的選擇。
基于私有云
當(dāng)您尋找私有云解決方案時(shí),您的首選是開源,投資一個(gè)云提供商,其核心運(yùn)行在開源軟件上。 OpenStack 是行業(yè)領(lǐng)袖,在其 7 年的歷史中,有 100 多個(gè)參與組織和成千上萬(wàn)的貢獻(xiàn)者(包括我)。 OpenStack 項(xiàng)目已經(jīng)證明,結(jié)合多個(gè)基于 OpenStack 云不僅是可行的,而且相對(duì)簡(jiǎn)單。云公司之間的 API 是相似的,所以您不必局限于特定的 OpenStack 供應(yīng)商。作為一個(gè)開放源碼項(xiàng)目,您仍然可以影響該基礎(chǔ)設(shè)施的特性、bug 請(qǐng)求和發(fā)展方向。
第二種選擇是繼續(xù)在基礎(chǔ)層面上使用私有云,但在一個(gè)開源容器編排系統(tǒng)中。無(wú)論您選擇 DC/OS(基于Apache Mesos) 、Kubernetes 或 Docker Swarm 模式 ,這些平臺(tái)都允許您將私有云系統(tǒng)提供的虛擬機(jī)作為獨(dú)立的 Linux 機(jī)器,并在此之上安裝您的平臺(tái)。您所需要的只是 Linux 而已,不會(huì)立即被鎖定在特定云的工具或平臺(tái)上。可以根據(jù)具體情況來(lái)決定是否使用特定的專屬后端,但如果你這樣做,就應(yīng)該著眼于未來(lái)。
有了這兩種選擇,你也可以選擇完全離開云服務(wù)商。您可以部署自己的 OpenStack 云,或者將容器平臺(tái)內(nèi)部架構(gòu)移動(dòng)到您自己的數(shù)據(jù)中心。
做一個(gè)登月計(jì)劃
最后,我想談一談開源項(xiàng)目基礎(chǔ)設(shè)施。今年 3 月,在召開的 南加州 Linux 展會(huì) 上,多個(gè)開放源碼項(xiàng)目的參與者討論了為他們的項(xiàng)目運(yùn)行開源基礎(chǔ)設(shè)施。(更多的,請(qǐng)閱讀我的 關(guān)于該會(huì)議的總結(jié))我認(rèn)為這些項(xiàng)目正在做的這個(gè)工作是基礎(chǔ)設(shè)施開源的最后一步。除了我們現(xiàn)在正在做的基本分享之外,我相信公司和組織們可以在不放棄與競(jìng)爭(zhēng)對(duì)手相區(qū)分的“獨(dú)門秘方”的情況下,進(jìn)一步充分利用他們的基礎(chǔ)設(shè)施開源。
開源了他們的基礎(chǔ)設(shè)施的開源項(xiàng)目,已經(jīng)證明了允許多個(gè)公司和組織向他們的基礎(chǔ)設(shè)施提交訓(xùn)練有素的 bug 報(bào)告,甚至是補(bǔ)丁和特定論文的價(jià)值。突然之間,你可以邀請(qǐng)兼職的貢獻(xiàn)者。你的客戶可以通過(guò)了解你的基礎(chǔ)設(shè)施,“深入引擎蓋子之下”,從而獲得信心。