簡體   English   中英

AWS 中的生產級微服務架構

[英]Production Grade microservices architecture in AWS

我有一個新的 Web 應用程序,在我們公司,我們決定如下所示,我是第一次創建架構,因此需要一些輸入。

1) 前端 - React.js

2) 后端 - Java (Spring boot)

3)架構——微服務

4) 基礎設施 - AWS

5)CI - 詹金斯

我們將開發分為三個階段

階段 1 -使用 Spring Boot 和 Spring Cloud 創建 AWS 基礎設施、前端服務和少數后端服務。 盡可能少地使用 AWS 服務

第 2 階段 -創建更多后端服務並dockerize 一切

第 3 階段 -使用 Kubernetes 協調前一階段,並在需要時使用更多 AWS 服務

我處於第 1 階段,在瀏覽了大量資源和學習材料后,在創建生產級架構和 AWS 環境方面需要幫助。 有很多單獨的資源,但沒有找到太多關於真實系統在運行時應該是什么樣子的。

1)如何隔離環境?

我的理解 -創建將有 5 個帳戶的組織 - root、安全、共享服務、prod 和非 prod aws 帳戶。 如果需要,非產品可以有多個環境,如測試、階段。

Something like this

隔離環境

2)如何創建安全/網絡層?

我的理解 -創建私有和公共子網,並在共享服務和非生產環境之間創建 vpc 對等互連,並使用 iam 角色。

3)設計微服務的最佳方式?

我的理解 -在后端有一個微前端和微服務。 客戶端將在瀏覽器中請求網頁,請求將來到 UI 服務。

  • 我很困惑組件的順序是什么。

  • 它應該先響應應用程序,然后再訪問 api 網關或 ELB?

  • 我們需要ELB嗎?

  • 請求會來到 ELB,然后它會去 API 網關,再進一步?

  • 所有這些問題的答案將決定下一個問題的答案

  • 選項 A 還是 B? 或者如果兩者都錯了? 或者從客戶端到后端服務的箭頭應該在哪里?

選項 A 選項 A

選項 B 選項 B

4) 哪些資源要保留在私有和公共子網中?

我的理解 -在第 1 階段,每個服務模型遵循一個實例,因此每個服務都有 ec2 實例。 在后面的階段,我們將轉向容器化。 很少有事情很清楚,后端服務和持久性(如 DB)將位於私有子網中,並且僅在公共子網中保留非常少的資源(例如堡壘主機等)

- Question is depending on answer for question #3, what others should be public? 

- ELB, api gateway, service discovery? 

- do i need to keep NAT gateway always so as to allow private ones to access internet?

5) 完整的發布部署工作流程應該是怎樣的?

我的理解 -開發人員提交代碼,jenkins 應該觸發構建、存儲工件和部署。 - jenkins 服務器應該如何與其他機器通信以部署服務?

- how credentials are managed for communication between jenkins and ec2 instances?

- what is the production grade structure for jenkins project? like does build, deploy and test should be separate items?

如果您在您的企業/組織中配置了相同的配置,如果一些經驗豐富的架構師可以幫助我,我將不勝感激,如果有任何在線可用的參考資料,我無法找到用於構建此類生產級系統的參考資料,我將不勝感激

注意 - 階段 1 的設計方式應盡可能平穩地過渡到階段 2 和 3

這是一個復雜的問題,我們無法在 Stack Overflow 上正確對待。

我建議花一些時間閱讀:

您還可以研究AWS 無服務器英雄的內容。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM