Platform as a Service (PaaS)

The platform is infrastructure for the development and deployment of software applications. The functionality of a platform’s infrastructure differs widely across platform vendors, so this section focuses on a handful of the most well-known vendors, those who have helped to pioneer the concept of PaaS itself. The suffix “as a Service” (aaS) means that the platform exists “in the cloud,” accessible to customers via the Internet. Many variations exist on this acronym, most notably SaaS (Software as a Service) and IaaS (Infrastructure as a Service). PaaS sits in the middle of these two, a multiplying force for developers to leverage the cloud itself to build and run the next generation of cloud-enabled services.

PaaS is a category within the umbrella of cloud computing. Cloud computing is a phrase to describe the movement of computing resources away from physical data centers or servers in a closet in your company and into the network, where they can be provisioned, accessed, and deprovisioned instantly. You plug a lamp into an electrical socket to use the electrons in your region’s power grid. Running a diesel generator in your basement is usually not necessary. You trust that the power company is going to provide that service, and you pay the company as you use the service. Likewise with the wide availability of high-speed Internet connectivity, cloud computing has become as practical as centralized power generation.

Cloud computing as a general concept spans every conceivable configuration of infrastructure, well outside the scope of this book. The potential benefits are reduced complexity and cost versus a traditional approach. The traditional approach is to invest in infrastructure by acquiring new infrastructure assets and staff or redeploying or optimizing existing investments. Cloud computing provides an alternative, and PaaS in particular strives to lower the cost of developing and deploying applications through the simplification and centralization of commodity hardware and software infrastructure. The following subsections introduce the mainstream PaaS products, those focused on application developers rather than bloggers or other users, and include brief descriptions of their functionality. Consult the Web sites of each product for further information.

Amazon Web Services

Amazon Web Services refers to a family of cloud computing products. The most relevant to PaaS is Elastic Beanstalk, a platform for running Java applications that provides load balancing, auto-scaling, and health monitoring. The platform is actually built on several other Amazon Web Services products that can be independently configured by advanced users, with the most significant being Elastic Compute Cloud (EC2). EC2 is a general-purpose computing platform, not limited to running Java programs. You can provision virtual instances of Windows or Linux machines at will, loading them with your own custom operating-system image or one prebuilt by Amazon or the community. These instances run until you shut them down, and you are billed for usage of resources such as the central processing unit (CPU), disk, and network.

A raw machine with an operating system (OS) on it is a great start, but to build a business application requires you to install, manage access to, maintain, monitor, patch and upgrade, back up, plan to scale, and generally care and feed in perpetuity an application platform on the EC2 instance. Many of these tasks are still required of Amazon’s higher-level Elastic Beanstalk offering. If your organization has the skills to build on .NET, Java 2 Platform Enterprise Edition (J2EE), a LAMP stack (for example, Linux, Apache, MySQL, and PHP), or other application stacks, plus the OS, database administration, and information technology (IT) operations experience, Amazon’s virtual servers in the cloud could be a strong alternative to running your own servers in-house.

Amazon provides various other products that complement Elastic Beanstalk and EC2. These include Simple Queue Service for publish-and-subscribe-style integration between applications, Simple DB for managing schemaless data, and Simple Storage Service, a content repository.

Google Cloud Platform

Google Cloud Platform is the name for a family of cloud services from Google. Of all of them, App Engine is the closest to a PaaS. It’s designed to host Web applications. App Engine is like having an unlimited number of servers in the cloud working for you, preconfigured with a distributed data store and Python, Java, Go, or PHP-based application server. It’s much like Amazon’s Elastic Beanstalk but focused on providing a higher-level application platform. App Engine includes tools for managing the data store, monitoring your site and its resource consumption, and debugging and logging. Like Amazon, Google also offers access to raw computing resources via Google Compute Engine, their answer to EC2.

App Engine is free for a set amount of storage and page views per month. Developers requiring more storage or bandwidth for their applications can purchase it by setting a maximum daily dollar amount they’re willing to spend, divided into five buckets: CPU time, bandwidth in, bandwidth out, storage, and outbound email.

Windows Azure

Windows Azure is Microsoft’s cloud computing initiative. It provides a wide variety of IaaS products such as virtual machines, storage, SQL database, identity, cache, service bus, and a content delivery network. Windows Azure is much lower level than Google App Engine or Amazon Elastic Beanstalk. It includes services that would be useful in building an application, but hosting the application itself is a manual process. For example, you would need to provision a virtual machine to run Windows, place your .NET-based application there, and leverage a Windows Azure SQL Database for structured storage.

Force.com

Force.com is targeted toward corporate application developers and independent software vendors. Unlike the other PaaS offerings, it does not expose developers directly to its own infrastructure. Developers do not provision CPU time, disk, or instances of running operating systems. Instead, Force.com provides a custom application platform centered around the relational database, one resembling an application server stack you might be familiar with from working with .NET, J2EE, or LAMP.

Although it integrates with other technologies using open standards such as Simple Object Access Protocol (SOAP) and Representational State Transfer (REST), the programming languages and metadata representations used to build applications are proprietary to Force.com. This is unique among the PaaS products and comes with a learning curve. The payoff for learning Force.com is a significantly higher level of abstraction than other PaaS products, ideally resulting in higher productivity for developers.

To extend the reach of Force.com to a larger developer community, Salesforce provides a subset of Force.com called Database.com. Database.com includes much of Force.com but without the user interface (UI) technologies and CRM-oriented data model. It’s priced per user, record, and transaction. Along the same lines, Salesforce offers Heroku to developers who want to work directly with standard databases and development languages but still benefit from the time-saving abstractions of PaaS.

Force.com is free for developers. Production applications are priced primarily by storage used and number of unique users.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.145.199.51