Architecture 您建议使用哪种语言和平台

Architecture 您建议使用哪种语言和平台,architecture,cloud,software-design,platform,Architecture,Cloud,Software Design,Platform,我将开发一个基于web的产品,它有以下描述: 1-它可能会发展成为一个大网站和成千上万的用户 2-它将有一个API为用户服务,因此用户可以在自己的应用程序中调用该API 3-安全是如此重要 4-90%的工作在后端完成,但一些设计和设置在前端完成 5-某些部件是基于AI的服务 6-后端在数十个云上执行,因此我们需要管理云 7-速度至关重要 8-它需要与其他一些API和软件进行通信 现在,为了准备一个演示,我将PHP用于网站,将C#作为API用于服务器端,如AI、数据库、云管理、应用程序管理。但对于

我将开发一个基于web的产品,它有以下描述:

1-它可能会发展成为一个大网站和成千上万的用户

2-它将有一个API为用户服务,因此用户可以在自己的应用程序中调用该API

3-安全是如此重要

4-90%的工作在后端完成,但一些设计和设置在前端完成

5-某些部件是基于AI的服务

6-后端在数十个云上执行,因此我们需要管理云

7-速度至关重要

8-它需要与其他一些API和软件进行通信


现在,为了准备一个演示,我将PHP用于网站,将C#作为API用于服务器端,如AI、数据库、云管理、应用程序管理。但对于最终产品,我不知道使用什么平台、语言等?

对于这样的项目,第一步是从平台的组件(例如AWS/Azure/GCP)构建云架构

根据组件的目标和约束,语言将在以后出现


注意:在云上部署“经典”应用程序(即最初不是为云而设计的)可能非常复杂。

云上支持多种语言,包括您提到的语言,我建议您从团队最强大的地方开始。正如Pierre在他的回答中所指出的,为云开发有一个学习曲线,加入一种新的语言会减慢速度,您已经将速度列为关键。优先考虑体系结构:好的体系结构比工具的选择更重要

从微服务体系结构(MSA)的角度处理该项目。由于您预测增长,您不希望最终成为一个整体,并使可扩展性、可靠性、上市速度等变得复杂。请尝试将解决方案分成独立的、可部署的模块。这也将使您有机会优化工具并边走边学习

为正确的工作使用正确的数据库,在一个项目中使用多个数据层技术已成为一种常见做法

你提到

后端在数十个云上执行,因此我们需要管理云

此处的含义不确定,但如果你要走多云,请考虑使用<强>容器< /强>和更多的开放式编排引擎,如<强> Kubernetes < /强>。最小化无服务器组件,因为这可能意味着为每个云服务供应商重新设计


祝你一切顺利。

皮特,我同意你说的一切,只是我会动摇微服务的做法。这是一个令我非常兴奋的体系结构,但它确实很难正确地实例化。我同意,MSA的体系结构既不简单也不简单,需要谨慎:通常是在开发中权衡,但在卓越运营中有所收获。