Skip to main content
Differences and challenges in developing web applications to be hosted on the cloud as opposed to dedicated servers?
- Legacy
mentality told us to build the biggest and beefiest server possible to
allow for solid and consistent performance of our apps.
- In the Cloud
however, you don't plan for stability, you plan for fluidity. That being
said, there are tons of challenges to be faced when making your app
truly harness the full potential of the Cloud.
- One example is
being fault tolerant. This means you plan on host machines going
unavailable. However, through: Chef, Puppet and APIs, you can have your
architecture and app auto-heal to overcome the host machine failure.
- Generally speaking it's faster and less expensive (starting up) to develop in Cloud than on dedicated servers, especially if you think PaaS like Heroku (heroku.com Heroku | Cloud Application Platform) rather than EC2 or DigitalOcean.
- Your choice of platform (Azure, Google, Heroku) does influence which language, because although most will support a standard set, each platform has subtle biases.
- We run everything in the Cloud including the whole development environment, test servers, build servers, and source control.
- A
traditional web application is meant to run on the most heavy duty
server you can afford while being as stable and well-performing as
possible. This usually requires VERY expensive, high-end servers, which are prone to going down and making the application
unusable.
- Cloud-base applications are less concerned with stability as
they are scalability and redundancy. Whereas an application may be too
demanding for a dedicated server unless an expensive one is chosen and
needs to be scaled back, cloud hosting and distributed computing allow
for a more “no-compromises” approach to processing power.
- This is a
trade-off, as some programming languages are better suited for the cloud
(as there is a higher likelihood for conflicting code than others.
- Additionally,
programming for a cloud-based application requires the programmer to be
far more aware of the interactions between multiple instances of the
same application, and how the load needs to be distributed across the
cloud.
Comments