摘要:近日,社區O2O平臺Instacart公司的首席工程師尼克·埃爾瑟介紹了該公司是如何利用云服務逐步發展壯大的,其談到了這家日常食品雜貨配送平臺所倡導的一小時送達服務的成功經驗。
Instacart公司成立于2012年7月,以一種全新的方式來解決一個老大難的問題:如何提升顧客購買的雜貨的配送交付速度。這家初創型企業并沒有斥資數百萬現金用于基礎設施的投資、與經銷商關系的打造、倉庫的建立、招聘大量配送卡車司機,而是通過利用現有資源與食品雜貨店合作,及與個體的“購物代理人(personal shoppers)”簽訂采購和交付訂單合同。而當涉及到所需要的技術支持來支撐其YCombinator孵化業務時,Instacart公司也回避了采用投資自有基礎設施和人員的方式,而是選擇了托管服務,其首先選擇了Heroku的服務,現在則采用亞馬遜網絡服務(AWS)。
該公司的客戶群、訂單量、零售合作伙伴的數量和配送產品分類目錄都呈現了爆炸似增長;每個月Instacart新數據的增長都是TB級的。盡管如此,該公司工程師團隊負責人尼克·埃爾瑟卻一直沒有組建一支基礎架構團隊(2015年5月,他首次租用了他的第一款基礎設施),或建立新的數據中心。
當AWS在2013年11月宣布推出其PostgreSQL的關系型數據庫服務(RDS)時,Instacart就成為了其首批簽約客戶之一。“無需增加基礎設施工程師,我們只是增加了RDS硬件。”埃爾瑟說。他的團隊不必擔心備份、調整大小規模、安全性、生產監控和報告 “所有那些初創型企業所普遍遭遇的難題都被搞定了。”埃爾瑟說。“亞馬遜為我們提供了API來解決這些問題。”取而代之的是,該工程團隊可以集中精力去解決企業自身的業務問題。
CIO.com的記者專門就這家一小時送達服務平臺的基礎設施需求采訪了埃爾瑟。期間談到了該公司是如何評估和權衡由Heroku托管轉為選擇AWS的相關風險問題;以及在現如今這樣一個瞬息萬變的環境中管理生產數據庫的難度問題;采用基礎設施適時反應戰略(just-in-time)的好處。
您作為Instacart公司工程師團隊負責人的作用是什么?
埃爾瑟:我已經是我們公司的一名老員工了,也就是說,我已經在這家公司供職超過兩年半的時間了。我是做全棧開發的,并在處理基礎設施相關問題方面有經驗,所以我自然而然地能夠勝任今天的這一角色。我負責帶領團隊,并負責規劃和執行我們企業的基礎設施需求。
隨著公司的發展壯大,您為什么決定從Heroku(建立和部署Web應用程序的平臺即服務)轉移到AWS RDS?
埃爾瑟:像很多初創公司一樣,我們最初在Heroku推出我們的服務的。在彼時,這是令人難以置信的強大且非常有用的。而且,我們仍然針對很多更小的產品使用它。但在某一點,其已然沒有我們所需要的那樣強大了。
我們正在處理的是令人印象深刻的大規模增長,而這些增長不僅僅是來源于我們的客戶群,同時還來源于我們企業的內部。我們雇用了這么多的工程師,每天推送上百個更新到我們的服務器。Instacart的工程師們所面臨的其中一個巨大的挑戰是管理規模驚人且品種繁雜的商品分類——這些都是來自數千家雜貨店的需要被不斷更新的商品庫存信息。其結果是,我們需要對這些流程有更多的控制。同時,事實證明,管理生產數據庫真的是相當困難。
一年多以前,我負責率領我們公司將相關托管工作負載轉移到AWS,從那時起,我們已經利用了他們太多的技術,并將越來越多的棧遷移到他們的云。AWS通過控制管理我們的基礎設施,以及更好更強大的管理我們的RDS數據庫,給了我們更多的控制權。
當亞馬遜推出針對PostgreSQL的RDS時,我們在第一時間成為了其首批客戶。這是一個完全托管的,工業強度數據庫解決方案,使我們能夠很容易的隨著我們自身業務的發展壯大而增長規模。
您能否談談關于這款基礎設施所支持的預測分析嗎?
埃爾瑟:隨著后端的技術不斷發展,使我們得以有了分配算法。我們所做的其中一件大事便是采用了Python和R語言library的機器學習。基本上,我們有大量的機器在EC2環境運行,以處理這些預測算法,決定將相關訂單分配給哪位購物代理人,而這些決定的做出是隨著城市的不同、以及每天時間點的不同而動態變化的。而這一切都需要歸功于AWS的啟用。
云基礎設施的采用如何影響了您企業內部對于所需IT專業人士類型的需求?
埃爾瑟:具體而言,我們無需任何人專注于數據庫管理,雖然我們也有了解這方面的人才。這的確改變了我們公司聘用人員的方式和聘請人員的類型。我們已經偏向于雇傭更多能夠解決業務問題的通才,而不是集中于諸如數據存儲方面的某一專業人才。實際上,對于我們來說,快速獲取信息和優化我們的購物代理人及顧客的體驗才是非常重要的。
從Heroku過渡到AWS的過程中的困難程度如何,您是怎么管理這其中的風險的呢?
埃爾瑟:在我們轉移之前,我們做了廣泛的測試。我們先將2個集群運行一段時間,以確保其正常運行。在此測試的基礎上,我們沒有了后顧之憂。
從Heroku轉移到AWS的缺點是什么?
埃爾瑟:Heroku的是一款非常強大的平臺,將復雜性隱藏在其表面之下。而這些復雜性直到您遷出之前,您都不會意識到。我們必須為諸如配置,擴展和部署編寫替代方案。慶幸的是,有大量的開源解決方案使我們能夠復制。而我們能夠創建一款更加符合我們業務需求的定制化解決方案。
他們也有一支驚人的支持團隊來解決我們可能在基礎設施方面所遭遇到的很多問題。因此,我們沒有再一直訪問該團隊以幫助我們解決問題。亞馬遜也擁有一支支持團隊,但其運作還處在一個較低的水平。所以最終,遷移到AWS給了我們一個更強大和靈活的解決方案,但沒有Heroku所提供的安全的網絡。
業務部門是否關心IT基礎設施是如何配置的?他們看到的好處是什么?
埃爾瑟:首先,我們能夠支持新的業務增長,能夠在進軍到一座新的城市或在我們現有的市場增長時實現快速,無縫地規模化擴展。我們已經在兩年內將市場由一座城市擴展到17座城市,而購物代理人也由幾百名增加到數千名。其次,該平臺為我們提供了我們為客戶提供良好的體驗的穩定性。它總是能夠保持正常運行,并做出快速反應,而且我們也沒有安全性方面的問題。我們的首要任務一直是保證客戶體驗,以及確保基礎設施的可靠和快速響應才是至關重要的。
在利用基礎設施即服務方面,您有什么樣的建議?
埃爾瑟:對我們來說,最大的一課是,我們沒有管理我們的主要數據存儲。這意味著我們可以將更多精力用在客戶體驗方面。在一個快速變化的環境中,我不能夸大管理生產數據庫是多么的難。能夠利用云所帶來的力量是相當瘋狂的強大。
第二課是及時進行基礎設施決策的好處。每年真的沒有必要進行大規模的架構大修。相反,您可以為未來兩個月做容量規劃,在提供服務級別協議的同時進行資源配置。我們所有的架構決策均是建立在提供卓越的客戶體驗基礎之上的。