What is a cloud service?
If you hear anyone mentioning cloud services you will hear
about one
of three acronyms:
1 -
SaaS (Software As A Service)
2 -
IaaS (Infrastructure As A Service)
3 - PaaS (Platform As A Service)
What most people don't talk about is what actual cloud
computing is,
and that makes it really confusing.
Cloud computing is actually a new
paradigm shift in
development centered around designing and
architecting
software to be elastic and scalable.
This means that
people need to take scalability and growth of applications
under big
consideration. SCALABILITY.
Why is the word scalability so important?
Lets look
back at the 3 terms above...
1 - SaaS - Software As A Service is
basically a cloud software package
like Google docs or
Office Live that you would migrate to. This cloud could or
could not be scalable. It all depends on the 'cloud
software' that
you buy. Usually it is but you can
never be sure so make sure you
know before making any
commitments. You don't want your entire mail
service
down because of a datacenter outage without a backup
location...
2 -
IaaS - Infrastructure As A Service is
basically remote VMs in 'the
cloud' that you can
purchase at cheaper costs than dedicated servers
from
typical hosting providers. This is a great and easy
solution for
enterprises looking to quickly move
towards 'the cloud' and migrating
machines at their
own pace.... But keep in mind SCALABILITY. With
IaaS
you will have to routinely ensure and validate the load on
your
cloud VMs. This may take some resources and may
cost money to standup
machines and test. If your code
runs bad and has memory leaks you
really won't know
any you will keep having to buy extra large VMs to
support the bad practices. You also have to manage
the VM upgrades
and security patches (potentially
expensive)
3 - PaaS - Platform As A Service is
an entire platform for deploying
and managing your
applications in the cloud. It is primarily built on
scalability and gives developers the ability to make
any component of
their application 'scale-out'.
Scaling-out is big when it comes to
load as it would
be a lot better with respect to performance and cost
to have many small VMs with fast response times than
one large VM
(scale-up) with long response times (from
a large memory footprint).
Server maintenance
(patching, upgrades) are taken care of but the PaaS
provider because you are deploying and developing
under their platform
(no more worrying about server
management). This of course takes some
time to
research, understand, and get up to speed on the development
guidelines and best practices for 'scale-out'
applications. The
technology itself is still early
but very promising.
Its up to you to decide which model to choose for a
cloud service.
Each has its PROs and CONs. It all
really depends on how much
configuration, cost,
resources, and time you have along with how much
frustration you are willing to deal with as new
technologies aren't
always easy to deal with :)
Have fun