开发者社区 > 云原生 > 微服务 > 正文

AWS中的生产级微服务架构

我有一个新的Web应用程序,在我们公司中我们决定像下面这样,并且我是第一次创建架构,因此需要一些输入。

1)前端-React.js

2)后端-Java(春季启动)

3)体系结构-微服务

4)下文-AWS

5)CI-詹金斯

我们将发展分为三个阶段

第1阶段-使用Spring Boot和Spring Cloud创建AWS基础设施,前端服务和少量后端服务。尽量减少使用AWS服务

第2阶段-创建更多后端服务并对所有内容进行Docker化

第3阶段-使用Kubernetes协调上一阶段,并在需要时使用更多AWS服务

我处于第1阶段,经过大量资源和学习资料之后,在创建生产级架构和AWS环境方面需要帮助。有很多单独的资源,但是对于实际系统在运行时的外观并没有找到多少。

1)如何隔离环境?

我的理解-创建将拥有5个帐户的组织-根帐户,安全帐户,共享服务帐户,产品帐户和非产品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

展开
收起
垚tutu 2019-12-19 17:06:30 1016 0
0 条回答
写回答
取消 提交回答

为微服务建设降本增效,为微服务落地保驾护航。

相关电子书

更多
微服务治理技术白皮书 立即下载
微服务与Serverless 立即下载
EDAS4.0 助力企业一站实现微服务架构转型与 K8s 容器化升级 立即下载