Cloud vs Server for Application Development [close

2019-04-08 11:12发布

What are the benefits of using a Cloud Service over a normal server setup? It's a given that i may benefit from a distributed server setup (The cloud) and maybe cost. But am i really missing out on any capabilities by not using a cloud service? If anything cloud computing is rather limited.

For example the Azure service not all of the .Net Framework assemblies are available to the developer.

There has been a lot of hype with Push and data synchronization technologies recently, and they seem to be sold as something that can only be done with cloud services. There's nothing baked into Cloud Services that enables Push or Syncing right? The developer still needs to write the apps and it host it on the Cloud. If so, then why not use a normal server setup?

Forgive me if i am talking total nonsense, but i am trying read beyond the marketing hypea dn try to understand the real limitations/benefits of using a Cloud and what business benefits it can bring.

标签: cloud
9条回答
Fickle 薄情
2楼-- · 2019-04-08 11:41

The only real difference between a "clustered server" environment and a "cloud" is that you own and controll your cluster of servers whereas someone else owns and controlls the cloud servers.

This is either an advantage or disadvantage depending on what you are doing.

There are many apps can never be put on a cloud because of privicy, SOX and other regulations simply becuase you have no real control over what happens to the data once its out there.

查看更多
等我变得足够好
3楼-- · 2019-04-08 11:41

It is important to distinguish between two kinds of Cloud Computing (as I see it). Elastic - such as the one of Amazon EC2 Fabric- such as Google App Engine

The elastic kind (or model if you like) gives you the flexibility to manage multiple instances, yet all the scale-up coding is on your shoulders. You are the one who responsible that your application will be scalable. From that perspective, it is not much different than using typical server.

The Fabric cloud services (as I call it), has some limitations but it provides you an hassle free scale up environment. You write your application and it is automatically scalable. You don't have to manage a server, there are no physical disk, server services, admin users, etc. You don't have to take care of filesystem backup, because from your point of view, there's no such thing as server. With this benefit comes a price. I/O access to the filesystem, threads, or lower network api are unexposed. But considering you're building your app to scale, you will not use these services in the first place.

Fabric cloud service will provide you with easy alternatives, though. In AppEngine for example, you can easily create background tasks, call remote web services (restless or soap), and you can easily deploy multiple versions of your app.

In conclusion, normal server deployment vs elastic cloud is just a matter of price and flexibility. normal server deployment vs fabric cloud is a matter of paradigm. For the latter, most of the time your app design is the same, but if you need sophisticated server side programming, then it's no doable, on the other hand if you can't or don't want to administrate or secure your server, it's a perfect solution.

查看更多
▲ chillily
4楼-- · 2019-04-08 11:44

I think the biggest advantage of server development is also the biggest roadblock for clouds: you own the servers. They're under YOUR control. You can walk over and see where your data is. You don't have to worry about it being in a data center somewhere else. You don't have to worry about a company going out of business or mishandling your information.

This is a real worry for conservative businesses. Data is the lifeblood of most organizations, so a decision to put it into someone else's hands isn't taken lightly.

The problem with server development is that greater control brings greater responsibility. You have to pay for all that hardware, software, electricity, data center real estate, and people to maintain it all. You assume that your security and data handling practices are as good as or better than the cloud firm you might be handing the data to. If this is bad assumption, cloud computing starts looking better.

I think it has little to do with development considerations and everything to do with business realities.

查看更多
Summer. ? 凉城
5楼-- · 2019-04-08 11:47

One big advantage of cloud services (and in particular here I am talking about Amazon's EC2, though others work the same way) is that you can easily scale your usage up or down (the E stands for 'elastic'). So if you have a low-traffic website that suddenly gets Slashdotted, you can spin up 10 more servers within a minute or so, pay for them only while you use them, and shut them down again once the traffic dies down. If you were maintaining your own servers, you might be stuck with higher costs for a longer period of time (if you were renting), or with a bunch of machines you didn't need (in the worst case).

Also, with things like machine images, EC2 makes setup really easy.

Sorry if this sounds like an advertisement. In the interest of full disclosure, I used to work on the EC2 team but have not in over a year. I don't care if you use them or something else, I just happen to know the most about it.

查看更多
贼婆χ
6楼-- · 2019-04-08 11:48

Cloud follows "pay as you go model". This means there is not huge cost initially and you pay as per usage. Also you can easily scale up and down as per your needs. Physical servers are managed by service providers like Godaddy, Amazon etc.

In normal case when you own servers. Initial investment cost is high and you need to take care of managing the physical servers. Scaling is not so easy in this case; you need to plan well in advance.

查看更多
老娘就宠你
7楼-- · 2019-04-08 11:50

The biggest advantage of cloud for development is infrastructure provisioning . Imagine getting a server for development it requires many intra department approvals and more money and time if server is not available with the organization.

Not to mention the upfront cost of server. Moreover if development team is distributed another setup is required for giving access to team and maintaining security aspects which add more cost and time.

查看更多
登录 后发表回答