啟動的架構

建立新創公司是一項獨特的挑戰。 核心任務是在市場上找到一個創新作為產品或服務的地方。 此程式需要測試創新內建的多個假設。 成功的初創公司必須逐一查看這些假設,並在產品獲得產品和市場適合時擴大和規模。 找到這個適合之後,這家初創公司必須進行調整,以滿足市場需求。

在不同的創業生活階段,開發人員、建築師和首席技術官(CTO)處理不同的開發階段。 這些階段需要基本不同的方法和不同的技術選擇。 工作的一部分是建立啟動所在的階段。 選擇符合該階段的技術與架構。

創新階段

肯特·貝克描述了軟體產品創新的三個階段。 這些階段是 探索展開擷取。 您可以將此程式的不同部分視為圖表:

顯示產品開發探索、展開和擷取階段的圖表。

顯示針對 Y 軸「確定/投資/變更風險」和 x 軸「時間」繪製的 sigmoid 曲線圖表。 圖表已醒目提示三個區域:上轉前的初始部分標示為「探索」、標示為「展開」的 sigmoid 曲線的高成長部分,以及標示為「擷取」的高原。

  • [ 探索 ] 階段會以低斜率開始,而您正嘗試在其中尋找可運作的內容。 確定性很低,您只投資少量,而您所做的任何變更的風險也很低。

  • 在某些時候,圖表會更快上升。 這種快速增長是 擴展 階段。 你的確定性大大增加,你投資更多,你更了解風險。

  • 最後,當圖形扁平化時,您會到達 [ 擷取 ] 階段。 變化的確定性、投資和風險都很高,但增長率已經達到高原。

瀏覽

當您的啟動處於探索階段時,您的必要條件是將少量的時間和精力投入到許多不同的產品構想上。 大多數想法都不是正確的探索。 只有逐一查看和學習,您才能找到適合的產品和市場。 通過做許多小賭注,你的目標是找到一個得到回報的產品理念。

此階段需要專業領域。 很容易過度投入一個想法,你可以用更少的時間和精力進行測試。 一位技術專家發現,很容易陷入這個陷阱。 若要進行可簡化探索的架構選擇,請記住您要探索。 您還不知道目前的產品構想是否為可調整的產品。

從架構的觀點來看,選擇針對速度、成本和選項優化的服務。 使用受控服務和平臺即服務 (PaaS),例如 Azure App 服務 快速開始使用,而不必擔心複雜的基礎結構。 在探索時,選擇免費層和較小的實例大小來管理成本。 容器支援使用適合您的任何工具進行開發,併為您提供未來彈性的部署選項。

建置您的第一個堆疊

如同您的第一個產品版本,您的第一個技術堆疊應該牢牢地植根於探索。 這表示技術堆疊應該能夠輕鬆快速進行產品反覆專案,而不會浪費精力。 您不想花費時間或精力在回答目前問題所需的基礎結構或架構上。

在探索階段期間,您必須針對速度、成本和選擇性進行優化。 速度是關於您可以建置和前進的想法的速度,或移至下一個想法。 成本是您執行基礎結構所花費的成本。 選擇性描述您可以根據目前架構變更方向的速度。

平衡成本、速度和選擇性很重要。 過於專注於成本限制速度和選擇性。 過於專注於速度可能會導致成本增加和選項較少。 針對太多選項進行設計會建置複雜度,進而增加成本並降低速度。

請考慮使用我們建議 的第一個技術堆疊。 此架構使用 PaaS 服務輕鬆實作、可透過最小規模啟動,並使用容器和 開放原始碼 技術,這些技術可在您成熟時輕鬆地部署在不同的技術堆疊上。

展開

一旦您的初創公司透過探索找到成長,您就可以將齒輪轉移到擴張。 您專注於移除產品與公司持續成長的任何封鎖。 從技術觀點來看,您可以解決基礎結構規模挑戰,並提升開發速度。 目標是要符合新客戶的需求,並推進您的產品藍圖。

擴充您的架構

當您反覆運算產品時,您不可避免地會發現您的架構需要擴充的區域。 您可能需要在背景中完成長時間執行的工作,或處理來自物聯網 (IoT) 裝置的頻繁更新。 您可能需要將全文搜索或人工智慧新增至您的產品。

您可能需要架構變更,以容納藍圖上的專案。 抵制提前做出這些變化的誘惑。 延伸模組可能會將複雜性新增至您的架構和基礎結構成本至您的資產負債表。

在早期啟動階段,任何架構延伸模組都應該是 Just-In-Time。 延伸應該只需要花費盡可能多的時間和精力來測試下一個假設。 準備好移除延伸模組以減少複雜性。 尋找您的客戶未使用的產品功能,以簡化您的架構並減少基礎結構支出的機會。

您的架構可以透過許多方式擴充,例如:

擷取

在擷取階段,當您達到市場機會的限制時,增長速度會放緩。 因為您通過上一個階段擴展,現在有很多損失,所以您採取更謹慎的方法。 邊界擴充、成本降低和效率改善的特點是擷取階段。 在擷取階段,請小心不要危害您在擴充階段中贏得的客戶的產品。

處理成長並成熟您的堆疊

一旦產品達到產品與市場適合,許多需求就會推動其架構。 使用量增加可能需要基礎結構調整來處理負載。 新的企業合規性需求可能需要更大的隔離。 這些變更是成功應用程式成熟時常見的步驟。

您為處理成長和新增成熟度所做的變更,與擴充架構不同。 這些變更不是功能需求,但與解除鎖定規模相關。 規模增加可能來自凈新客戶、現有客戶的使用量增加,以及法規需求較高的客戶。

抵制過早優化的誘惑。 請務必採取成長和成熟步驟,以協助您繼續反覆運算和改善產品。

下一步