-
CaaS
-
Cloud-based storage
-
PaaS
-
AaaS
EXPLANATION
#1 Innovate Faster
First and foremost, using a PaaS to deploy and run your application enhances your agility.
The Web is accelerating the pace of innovation. To compete, you need
to quickly transform new ideas into real applications and evolve those
applications with agility in order to meet fast-changing business and
technical requirements. Market opportunities exist very briefly. Your
business needs to build, deploy, and iterate in days or weeks, not
months or years.
Setting up platform-level software to run your application is
time-consuming and complex. By simplifying, automating, and in many
cases eliminating the steps associated with setting up the foundation
for your application, you can get your application deployed much more
quickly in the first place, and you can iterate, adapt, and extend it
more rapidly over time.
It takes us 50%
less time to deploy on Engine Yard Cloud because it’s so easy to
configure servers. We can deploy with just a few clicks and add another
instance with just one more click—and on top of it all, everything is
pre-configured by Rails experts at Engine Yard who could write the book
on best practices for rapid deployment.
Do-it-Yourself on EC2 Use Engine Yard PaaS |
Use Engine Yard PaaS |
Initialize
- Build app
- Set up EC2 account
- For each desired instance:
- a. Install/configure OS
- b. Install desired language version, runtime
- c. Install frameworks and other libraries/gems
- d. Install/configure application server
- e. Install/configure HTTP server
- f. Install/configure load balancer
- g. Install/configure other components (DB, cache)
- h. Debug integration of stack
- i. Install/configure application on stack
- Get instances working together
|
Initialize
- Build app
- Set up Engine Yard account
- Click several configuration choices
- Click “Boot”
|
Update
- Repeat items a-i above, per instance
- Get instances working together
|
Update
- Use Update Instances wizard
|
Scale
- Do a-i above for new instances
- Reconfigure application servers, load balancers, DB, etc.
- Ensure consistent stacks
- Get instances working together
|
Scale
- Use Add Instances wizard
|
#2 Focus Resources
Eliminating much of the overhead to deploy and manage applications
doesn’t just mean you can do certain things faster. It means you don’t
have to do certain things at all. Which means that you don’t even need
to know how to do them. Which allows you to be even better at knowing
how to do the things that differentiate your business, like building
applications with innovative features and exceptional user experiences.
Let’s say you’re an entrepreneur with a great idea and some seed
funding, or you’re an enterprise line-of-business manager with some
spare budget you’d like to put on a special project. Do you want to
spend your precious funding on some generalist developers who can code
moderately well and also do system administration, or would you rather
get top-notch coders who don’t necessarily have deployment expertise?
Would you rather spend a dedicated headcount on an ops person or have an
additional application developer?
By deploying on
Engine Yard Cloud, we’ve saved at least 60% on engineering
resources—this productivity boost translates directly to more features
and faster time to market.
- Chris McNeilly, CTO, Motista
#3 Save Money
Focusing development resources and spending less headcount on
unneeded expertise are both benefits that intuitively translate into
reducing costs. But beyond these obvious things are even more ways that
PaaS saves real money compared with doing it yourself on IaaS.
With PaaS you are tapping into a real economy of scale. Imagine the
number of hours it would take to set up the core stack—the
platform-level components—for your applications. Imagine the hours
consumed on an ongoing basis to maintain the stack. Imagine the cost of
those hours, and consider the incremental value from this work to your
application. Now consider those same costs amortized across thousands of
applications. There is very little differentiating value from doing
this low-level work yourself, so clearly, buying platform from a
provider is more efficient than building it yourself.
We estimate that
our costs are 3-5x lower than if we had to pay the direct and indirect
costs of owning and managing our own infrastructure and deploying our
large array of applications.
- Eric Peng, CEO, PlayMesh
There are also less obvious hidden costs, such as the cost of
downtime when one of your administrators makes a mistake configuring
your application server and no one can access your Web application for
hours. According to a study by Uptime Institute, 70 percent of data
center downtime is caused by human error. Consider both the hard costs
of downtime, such as lost business and unexpected support costs, and the
soft costs, such as idled employees and a tarnished reputation.
#4 Get the Best Technology
The benefit of economies of scale doesn’t simply stop at getting the
same thing for less money. What you actually end up with is something
better, for less money. The stack and platform-level technology you
would build yourself will almost never be as good as what a top PaaS
will provide. Few companies have both the ability to pay and the
attractiveness to hire the world’s best platform builders. The top
platform builders are in companies whose main business is platform.
People who are world-class in a given discipline for the most part want
to work somewhere where that discipline is core to the business, not in
an ancillary or supporting role.
A PaaS typically employs specialists who constantly tune, optimize,
load-balance, reconfigure, and so on. The result of faster page loads is
often a reduction in bounce rates, because customers are more satisfied
with the service level they experience. And since search engines use
bounce rates and page load times to prioritize paid search rankings,
faster application performance can substantially improve your
application visibility and business performance.
We’ve mentioned the stack itself several times, and getting the best
stack means getting a stack with the latest versions of all components,
configured optimally to work with each other and as the foundation for
applications such as yours. In addition to the stack itself, there is
the deployment mechanism, the platform software that instantiates
virtual servers on the infrastructure and installs instances of the
stack on them. Many aspects differentiate a good deployment mechanism
from a bad one: what configuration parameters are exposed, what
component options exist, how stack versions are managed, what activities
are automated, what components are pre-built into binaries versus
compiled at deployment time, and so on.
With Engine Yard,
we can deploy our application in five minutes, and we know we’re
running on the best technology stack. If we were managing our own
servers, we’d have to take resources away from development to invest in a
dedicated IT/infrastructure engineer. Instead, we’re able to focus on
building new features.
- Damon Danieli, Founder and CTO, Z2Live
Above all of this, there is the user interface, which may include GUI
and CLI variants. Getting the user interface and user experience right
is make-or-break for platform interaction. The best platform user
interfaces will be simple yet flexible—the things you don’t care to
customize shouldn’t get in the way, and the things you do want to
customize should be easy to do so. The interface needs to be both
learnable and usable—i.e. quick to get started with but also powerful
enough to support the expert user.
#5 Stay Up to Date
A particular challenge of deploying your application on a self-built
stack is the sheer number of components that need to be tracked,
maintained, updated, and re-integrated over time. It’s one thing to get
it all set up and humming along in the first place, but the first time
you need to swap in an update to the app server or the load balancer or
the cache you may find yourself in a nightmare of reconfiguration. One
bad experience like this leads many do-ityourselfers to remain
indefinitely on an increasingly outdated stack for fear of rocking the
boat. The downside of course is that you end up missing out on the
latest security updates, performance improvements, and new features— and
what may have started as competitive advantage becomes a weighty
impediment to keeping up with your competitors.
With PaaS, you not only get the best possible stack as of the moment
you deploy, you also get a stack that keeps up with you over time,
ensuring that your application is always running on the latest and
greatest. You don’t fall behind your competitors, and you also don’t
waste time and incur risk by doing it yourself. The PaaS experts
constantly incorporate and test component updates and bring them into
the platform. At Engine Yard, updates are rolled out in a way that
minimizes risk of incompatibility and gives you complete control over
how updates are brought into your production applications.
Engine Yard Cloud
is a scalable, reliable platform that’s been developed and fine-tuned
by cloud experts. We have an easy and repeatable deployment process that
is 200% better than managing our own datacenter.
- John Schult, Director of Product Engineering, Vitrue
#6 Maximize Uptime
PaaS offerings can help you achieve your availability goals and give
you innovative new disaster recovery/ business continuity options. PaaS
vendors have the tools, technologies, and experience to help you avoid
the unplanned outages that cause downtime. The best PaaS vendors embed
technologies and techniques in their products to keep availability high
enough that they can offer service-level agreements (SLAs) at or above
99.9% availability. Engine Yard, for example, employs application
templates and configuration recipes that minimize human error, ensure
up-to-date snapshots of content assets, and allow fast and easy
rollbacks if something goes awry.
Beyond basic data backup and OS hardening, PaaS vendors can protect
your data in other ways. With Engine Yard, for example, completed
transactions can be recovered in the case of database failures, so you
never lose data from a committed transaction. And because application
configuration is all captured in application templates and recipes, it’s
easy to reproduce your application in another availability zone if the
primary zone has a disruption. Engine Yard automatically spreads your
application across multiple availability zones, enhancing application
resilience.
#7 Scale Easily
It’s one thing to get the best technology at the best cost for a
given size of business. It’s another thing to achieve that at many
different sizes—potentially spanning orders of magnitude—as your
business grows. When building a platform yourself, you basically have
three choices: you can optimize for the scale you’re at now, you can
optimize for a scale you expect to be at a later date, or you can invest
a lot in building your own scaling mechanism. In the first case you
risk having to redo your platform and incur downtime when you outgrow
your initial set-up. In the second case you will likely waste resources
due to overprovisioning. And in the third case, you will like spend a
lot of opportunity cost building something that ends up not nearly as
good as what you can get from a PaaS.
With a PaaS, on the other hand, you get the benefit of a great
scaling mechanism developed by experts over time and in response to the
needs of many customers. On top of that, the PaaS scaling mechanism
leverages the underlying infrastructure’s elasticity but presents it in
an easy-to-use way, abstracting the complexity of the mechanism’s
details. For example, to add instances in the Engine Yard Cloud you
simply click the ‘Add’ button, and a wizard walks you through a couple
of checkboxes.
We were the
victims of our own success—we had so many people using our applications
we couldn’t keep up with the need to expand. On top of that, we’re a
game studio, not an infrastructure company, so we were inexperienced
when it came to configuring servers to scale based on changing traffic
patterns. This is where Engine Yard really shines because scaling Rails
applications is one of their specialties.
- Eric Peng, CEo, PlayMesh
#8 Strengthen Security
Security showcases another distinct advantage of the PaaS model. With
the sheer volume and the diversity of security threats on an upward
spiral, protecting against attacks is best left to specialists. A PaaS
offering provides continual security updates for individual stack
components as they are issued. At Engine Yard the stack engineering team
maintains fully updated Rails and PHP technologies, so security
vulnerabilities in core language or framework components are quickly
remedied and customers are automatically notified following the patch.
#9 Do Your Project Right
An interesting behavior happens in real-world enterprises when
departments or lines of business can’t get corporate approval or fast
enough turnaround to build and deploy a new Web application; they tend
to do it anyway. Through the back door. They go to a digital media
agency; they re-channel some discretionary budget and hire consultants;
they get it done using the “easier to get forgiveness than permission”
principle.
These unofficial or back-door efforts usually result in a mess,
sooner or later. At the very least, they add to the complexity and
inefficiency of the environment, because they introduce new and
unapproved tools, processes, and/or infrastructure. In other cases they
create an even bigger mess: what if the new Web service really takes
off, and suddenly the LOB manager needs to procure budget to scale up?
What if the new Web service unexpectedly disrupts, corrupts, or causes
downtime in legacy applications? It might not be as easy to get
“forgiveness” as presumed.
PaaS dramatically cuts the risk, cost, and complexity of new
projects. It brings predictability to both the cost and the
ramifications of introducing new Web applications and services. To the
extent needed, a PaaS offering can complement and add value to existing
development and IT operations. Simply put, it doesn’t need to come in
through the back door.
#10 Get the Best Support
As outlined above, when you build and run on a PaaS, you use
technology that has been developed and refined in response to the needs
of thousands of customers. But it’s not just the technology that
embodies that aggregated expertise. It’s the people themselves. When you
call Engine Yard Support, you speak to someone who has dealt with
hundreds of problems in the same domain as yours. You speak to someone
who has access to—may even be sitting next to—some of the leading
experts in the community, whether for core Ruby or PHP language stack
components or complementary open source projects.
0 comments:
Post a Comment