應用軟體設計(application design, software architechture)架構的演進從單體式(Monolithic)到多層架構(Multitier)到微服務(Microservice)的架構:
- Monolithic Architecture:單體式架構,將所有的功能都塞在一起。為了方便開發與維護,漸漸地會將下列應用程式的功能模組化:
- Multitier:通常會是三層架構(3 Tiers Architecture),把monolithic架構拆分地的UI, logic, data等功能對應到下列三層:
- Presentation layer:由前端(Frontend)開發,把從使用者接到的需求丟到後面的logic layer來處理,不會直接存取data layer的資料。
- Logic layer:由後端(Backend)開發,根據business logic來處理需求,並且與data layer溝通完成使用者的需求後,把結果丟回presentation layer。
- Data layer:由資料庫管理員(Database admin)來維護,提供logic layer處理需求所需的資料。不會與presentation layer有所溝通。
- Microservice:微服務,把軟體提供的每一項功能都拆開後,單一功能由一個微服務來提供。
- API Gateway:接收使用者從不同裝置的需求,透過API丟到微服務
- Microservices:每個拆分的功能都由一個微服務來提供,每個微服務可以由不同的開發團隊來開發;微服務之間溝通透過所謂的surface area,例如說:gRPC, event streaming, message broker等等來達成。
- 將資料庫的資料拆分到微服務中
參考資料
- Microservices Explained in 5 Minutes@5 Minutes or Less:五分鐘理解monolithic, 3-tier architecture, microservice的影片,本文的內容整理自這個影片
- What Are Microservices Really All About? (And When Not To Use It)@ByteByteGo:說明微服務會遇到的困難,建議小公司先從monolithic開始,變大後再慢慢轉到microservice
- What is API Gateway?@ByteByteGo:解說從client到API的資料流
- 淺談 Web Server and Application Server:AppServer負責 business logic 的執行以及資料庫的存取。
Common Gateway Interface, Java 的 Servlet, Python 的WSGI, Ruby的Rack
_EOF_
Postprocess upscale by: 2.5, Postprocess upscaler: R-ESRGAN 4x+ Anime6B
Time taken: 21.6 sec. on Nvidia MX550
A: 1.23 GB, R: 1.28 GB, Sys: 1.8/2 GB (89.2%)
Monolithic, Multitier, Microservice, sci-fi
Steps: 32, Sampler: Euler, CFG scale: 7, Seed: 1653555007, Size: 512x256, Model hash: fc2511737a, Model: chilloutmix_NiPrunedFp32Fix, Version: v1.6.1
Time taken: 47.4 sec. on Nvidia MX550
A: 1.70 GB, R: 2.26 GB, Sys: 2.0/2 GB (100.0%)
沒有留言:
張貼留言