简体   繁体   English

为 Web 应用程序/api(IaaS、PaaS?)选择正确的部署模型

[英]Choosing right deployment model for web app / api (IaaS, PaaS?)

We have a project in plan which will use the following technologies:我们有一个计划中的项目,该项目将使用以下技术:

1) asp.net mvc + angular for front end 1)asp.net mvc + angular 前端

2) asp.net web api RESTful service 2) asp.net web api RESTful 服务

3) windows services in background for different purposes 3)不同目的的后台windows服务

4) message queues/brokers for exchanging messages between 2) and 3) 4) 用于在 2) 和 3) 之间交换消息的消息队列/代理

5) MS SQL database 5) MS SQL 数据库

6) Redis or similar cache 6) Redis 或类似的缓存

We expect significant traffic down the road (tens of thousands requests / sec in peek times) and anticipate need for scaling out / load balancing.我们预计未来会有大量流量(在 peek 时间内,数以万计的请求/秒)并预计需要扩展/负载平衡。

As we have no experience with cloud PaaS so far (always used on-premise hosting or for example rackspace could servers IaaS) i would like to get some recommendations about what is the most usual / common way to go with cloud hosting in such scenario?由于到目前为止我们还没有使用云 PaaS 的经验(总是使用内部托管或例如机架空间可以服务器 IaaS),我想获得一些关于在这种情况下使用云托管的最常见/最常见方式的建议?

My first thought is to go with IaaS VMs as our stuff is used to it.我的第一个想法是使用 IaaS VM,因为我们的东西已经习惯了。 On the other hand, i would not like to miss PaaS benefits if there are some for our case.另一方面,如果有一些适合我们的案例,我不想错过 PaaS 的好处。

Any thoughts would be highly appreciated.任何想法将不胜感激。

Definitly look at some of the PaaS offerings at least for the persistence layer.至少在持久层方面一定要看看一些 PaaS 产品。 Azure (assumed if using .NET MVC) already provides Redis as a Service, MSSQL as a service, etc. No need to worry about backups, nodes going down, managing a redis cluster, etc. Azure(假设使用 .NET MVC)已经提供了 Redis 即服务、MSSQL 即服务等。无需担心备份、节点宕机、管理 Redis 集群等。

It only takes a few seconds to provision a new Db and you can maintain the same Redis client libs, JDBC connections, etc. Same goes for using Azure Event Hub or Storage Queues.只需几秒钟即可预配一个新的数据库,并且您可以维护相同的 Redis 客户端库、JDBC 连接等。使用 Azure 事件中心或存储队列也是如此。 Db stuff is always hard to get right initially and support it. Db 的东西在最初总是很难得到正确的并支持它。

For the web app stuff, you can try the IaaS route, especially if you're already familiar with it, but still be pointing to managed Db hosts urls.对于 Web 应用程序的内容,您可以尝试 IaaS 路线,特别是如果您已经熟悉它,但仍然指向托管 Db 主机 url。 Much of the Web App PaaS is pretty quick to pick up if you're already used to IaaS in the cloud.如果您已经习惯了云中的 IaaS,那么大部分 Web 应用程序 PaaS 都会很快上手。 Azure just provides some additional benefits when it comes to auto scaling, deployment, etc. But you are still working with the same old C# code. Azure 只是在自动缩放、部署等方面提供了一些额外的好处。但您仍在使用相同的旧 C# 代码。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM