單體應用(Monolithic application)是指一個應用程序以一體化的形式部署和運行在一個獨立的進程中,通常包含一個完整的應用程序棧(application stack),包括用戶界面、應用邏輯、數(shù)據(jù)存儲和處理等組件。單體應用是傳統(tǒng)的應用開發(fā)和部署方式,通常使用一個大型的代碼庫,所有功能都在同一個代碼庫中實現(xiàn),整個應用程序由一個運行時進程執(zhí)行,數(shù)據(jù)庫和其他資源都是共享的。
理解單體應用可以類比成一個傳統(tǒng)的大型商場,所有商品都在一個建筑物里面,商場有一個總控制中心來管理各個部門的運營,不同的部門通過共享資源來協(xié)同工作。同樣地,單體應用也是一個大型的應用程序,所有功能都在同一個代碼庫中實現(xiàn),由一個運行時進程來執(zhí)行,不同的模塊通過共享資源來協(xié)同工作。
盡管單體應用具有部署簡單、開發(fā)效率高等優(yōu)點,但也存在一些局限性,如擴展性差、可靠性差、靈活性差等。隨著業(yè)務增長和應用規(guī)模擴大,單體應用的弊端逐漸顯露出來,因此,現(xiàn)在越來越多的應用采用了微服務等分布式架構來解決這些問題。