這是傳統(tǒng)開放核心模式的倒置,傳統(tǒng)開放核心模式是企業(yè)應(yīng)用層產(chǎn)品的許多商業(yè)開源策略背后的模式。在開放核心中,產(chǎn)品的核心是開源的,而在企業(yè)版中,供應(yīng)商提供和支持專有增強功能。使用API方法,產(chǎn)品的核心通常在云端不可見,進出產(chǎn)品的唯一方式是通過API。
由于API,我們看到企業(yè)版本通過工具、小部件和組件遷移到邊界后的區(qū)別、增強和價值。這些可以是閉源和/或開源,但是我們會在邊界上看到更多的開源,因為許多供應(yīng)商可以通過支持核心和對調(diào)用API或交易收費來賺錢。兩個最好的例子是Twilio和Stripe。
這就像裝修房子
了解這種情況的一個簡單方法是將其與裝修房子類比。如果你想在現(xiàn)有的房子里加一個新衛(wèi)生間,通常需要雇傭一個水管工和總承包商。水管工帶來管道,并將它們裝好。然后,承包商圍繞這些管道建浴室。
大多數(shù)人通常不在乎,甚至壓根不想知道這些管道從哪里來、如何連接到普通管道系統(tǒng)。我們只是知道輸入是什么和輸出會是什么樣(干凈的水)。我們需要它們能正常工作。我們有一個被普遍接受的服務(wù)水平協(xié)議(SLA),這是一個關(guān)于如何管道應(yīng)該工作的性能預期。如果我們沖廁所,一切都應(yīng)該消失在管道(API)中。當我們打開水龍頭時,飲用水需要以一定的壓力流出來(另一種API性能SLA)。
這里的要點是,我們需要的唯一信息是API(管道)如何執(zhí)行。這個業(yè)績預期就是SLA。如果你正在設(shè)計衛(wèi)生間,你要花時間考慮要購買的水槽的風格、要安裝的瓷磚類型,以及新浴室的整體布局。這種“外觀和感覺”是我們?yōu)榧以黾拥膬r值。我們還需要付錢給水管工人,但如果你每次要裝修衛(wèi)生間或廚房都得重新折騰整個房子的管道,你會發(fā)瘋的。這里的創(chuàng)新已經(jīng)從核心轉(zhuǎn)移到了邊界。
這正是伴隨著API的興起所發(fā)生的。開發(fā)人員意識到,從供應(yīng)商那里采購高性能API可以讓他們專注于增值服務(wù)。
典型的開放核心應(yīng)用
來看一些使用開放核心模型的開源企業(yè)軟件的典型例子。
- Sugar:Sugar CRM使其源代碼可供客戶和合作伙伴使用。Sugar的企業(yè)版增加了特定的企業(yè)級功能,例如增強報告、更好的工作流和其他企業(yè)特定功能和附加組件。
- JasperSoft:JasperSoft提供開源商業(yè)智能報告。早在2007年,就有超過30,000個開發(fā)者在其社區(qū)注冊。Jasper提供SDK和RESTful API來與其產(chǎn)品進行交互。
- Odoo:Odoo的開源企業(yè)資源規(guī)劃(ERP)應(yīng)用已經(jīng)成為專有軟件的一個非常受歡迎的替代品。圍繞其開放核心,Odoo及其合作伙伴渠道已經(jīng)增加了數(shù)百種不同的付費模塊,擴展了開源核心。核心框架包含大約30個模塊,社區(qū)還創(chuàng)建了數(shù)千個模塊。其中一些是免費的,但許多其他的是付費和封源的。
- ProcessMaker:ProcessMaker提供開源業(yè)務(wù)流程管理(BPM)和工作流軟件。開發(fā)人員可以使用JavaScript和PHP來增強開源版本。ProcessMaker提供了一系列企業(yè)插件,包括Advanced Active Directory集成、儀表板和增強的開發(fā)人員工具。
采用開放核心模式的許多軟件公司在初始開源項目獲得了顯著牽引力(即數(shù)百萬次下載)之后就這樣做了,所以他們組建了一家支持開源代碼的公司。逐漸地,這些公司根據(jù)開源開發(fā)出擴展和訂閱。隨著云和軟件即服務(wù)模式更加突出,這些公司通常根據(jù)開源核心開發(fā)出云端版本,以進一步把自己的產(chǎn)品和開源版本區(qū)別開來。
也許許多開源產(chǎn)品被迅速采用的兩個最大的驅(qū)動因素是開源許可,和通過像SourceForge這樣的下載站點實現(xiàn)的無摩擦分發(fā)模式。
有什么變化
這種商業(yè)化開源模式在20世紀90年代末和21世紀初變得普遍。然而,業(yè)界正在發(fā)生改變:API興起。 API由于以下幾個原因而變得越來越重要:
- 需要構(gòu)建更多可擴展的軟件
- 需要構(gòu)建更多的連接軟件
- 需要加快創(chuàng)新步伐
- 需要應(yīng)對日益增長的復雜性
軟件越來越復雜,必須連接到更多類型的應(yīng)用程序,并且必須擴展以處理更大的需求(數(shù)量級上的變化)。結(jié)合這三個因素,你很快就會意識到為什么API非常重要。
開發(fā)人員不能再開發(fā)單片代碼庫并允許其他應(yīng)用程序連接到它,不論他們多么希望并期望維護軟件和確保它在規(guī);瘯r表現(xiàn)良好。API是兩個或多個服務(wù)彼此交互的明確的和被推崇的方式。通過了解另一個軟件期望如何與你的軟件一起工作,你可以保持質(zhì)量,并根據(jù)這一期望進行判斷,即使你的軟件發(fā)展壯大。
基于API的商業(yè)模式
一些公司已經(jīng)適應(yīng)了基于API的商業(yè)模式。這里有幾個:
- Twilio:Twilio提供與通信相關(guān)的API,以支持消息、語音和視頻。 Twilio在市場上提供了通過其API與Twilio集成的第三方加載項。附加構(gòu)建器利用Twilio提供的內(nèi)容,并利用來自自身來源的信息進行增強——產(chǎn)品隨后作為API發(fā)布。
- Stripe:Stripe的付款處理平臺提供一個RESTful API來提交付款,每年處理數(shù)十億美元的付款。第三方擴展通過為用戶的Stripr帳戶提供API請求來提供其他功能。還有第三方庫支持開發(fā)和插件,使Stripe能夠與其他產(chǎn)品一起工作。
- Factual:Factual為移動廣告和其他移動應(yīng)用提供基于位置的數(shù)據(jù)。它提供了一組API,開發(fā)人員可以使用它們構(gòu)建與Factual的產(chǎn)品集成的擴展。一些Factual的位置數(shù)據(jù)可通過下載許可證提供給合作伙伴。
- ProcessMaker I / O:ProcessMaker I / O提供了一個工作流即云微服務(wù)。企業(yè)ISV可以使用ProcessMaker API將企業(yè)工作流功能添加到其產(chǎn)品堆棧中。工作流API可以連接到任何后端,并可以擴展到每秒數(shù)百萬個交易。開發(fā)人員可以使用Java、Python、JavaScript、PHP或其他語言的SDK來連接到API。
- Form I / O:Form.io提供強大的API來管理Web表單。這些Web表單可以填充任何類型的無服務(wù)器架構(gòu)的數(shù)據(jù)源。
API模型的優(yōu)點
API模式對開發(fā)人員有實打?qū)嵉暮锰帯i_源和開放核心意味著不斷變化,會產(chǎn)生因為不定期的副作用而導致的風險(不管有沒有測試,多少測試)。通過忽略產(chǎn)品內(nèi)部核心而偏向API模式,開發(fā)人員可以專注于使用提供可靠行為保證的已暴露功能。這樣可以在應(yīng)用程序的外圍實現(xiàn)更快的創(chuàng)新(而且更多),而不是慢慢地修改核心——這樣的話你需要更深入地了解項目才能實現(xiàn)創(chuàng)新。
由于API可以提供與不同后端系統(tǒng)相同的功能,因此API方法可以訪問供應(yīng)商支持的應(yīng)用程序,同時長期來看可以降低供應(yīng)商鎖定的風險。當然,在短期內(nèi),與供應(yīng)商的API掛鉤意味著你將依賴該API。如果這個API掛了,你的應(yīng)用程序必須知道如何處理它。但始終不符合SLA的API提供商將被更可靠的提供商所取代。競爭對手復制API相對容易,這為開發(fā)人員提供了安全性——如果需要,可以替換API。
開發(fā)人員可以獨立于后端測試API的功能,并專注于將這些專門的微服務(wù)組合到需要創(chuàng)建的更大的應(yīng)用程序中,從而支持業(yè)務(wù)用戶。他們可以專注于核心競爭力,即專門的業(yè)務(wù)知識,而不是基礎(chǔ)設(shè)施。更重視業(yè)務(wù)知識意味著最終產(chǎn)品更符合業(yè)務(wù)需求。
小供應(yīng)商將發(fā)揮更大作用
考慮到API是應(yīng)用程序的新管道(因此也是互聯(lián)網(wǎng)的新管道),很難想到小型提供商可以改變。但他們絕對可以。API服務(wù)以驚人的速度增長;它們是長尾創(chuàng)新的真正新驅(qū)動力。原因是API可以暴露真正的微服務(wù)。然后,開發(fā)人員將這些微服務(wù)混合到有意義的應(yīng)用程序中。
預計經(jīng)過幾年的大規(guī)模API擴散,我們可能會開始看到API整合。但是離這種情況出現(xiàn)還有一段較長的時間,在這之前,較小的供應(yīng)商會在API經(jīng)濟中扮演重要角色。