Web applications are a dominant part of most enterprise IT portfolios and Platform-as-a-Service (PaaS) products offer a compelling way to easily deploy and manage these applications. However, PaaS have proven tricky for vendors to explain, and therefore difficult for customers to understand. In this post, we’ll discuss the reason you should consider using PaaS products, what CenturyLink Cloud has to offer, and how you can deploy a web application to a PaaS in a matter of minutes.
Benefits of PaaS
What exactly is PaaS? Basically, it’s a way of delivering an application platform as a service. Developers don’t interface directly with infrastructure (e.g. servers, networks, load balancers) but rather, focus on building and deployment applications through a set of exposed services in a managed fabric. PaaS simplifies the deployment and management of modern web applications while making those applications more resilient and functional. How can PaaS add value to your organization? Let’s drill into some specifics:
*Reduce server sprawl with a centralized host for web applications. How many web servers are sitting relatively idle in your data center because they are only running a handful of applications? Server sprawl can be a major issue as each IT project requisitions its own hardware for application development/staging/QA/production. What about all your websites for customers and marketing campaigns? It’s possible that you’re using many different servers (and even providers!) to host all of those individual websites. PaaS can offer a centralized fabric that can be sized and optimized for hundreds of internal or external web applications.
*Save money by adding resources only when you need them. Many PaaS products have a concept of automatic scale or user-driven resizing to account for spikes or dips in utilization. Before cloud computing, organizations typically sized their infrastructure for peaks and accepted that their environment would be underutilized the majority of the time. Now, it’s possible to deploy a web application with a 128MB memory allocation, and instantly double it when needed. Need to spread the workload across multiple machines? Simply issue a command to add the application to another node in the PaaS fabric. No calls to the operations team, no formal “deployment” exercises. PaaS makes it possible to size and scale applications on demand, which makes it easier for you to manage the overall environment.
*Focus on your application, and don’t sweat the infrastructure. One of the most important benefits of PaaS is that it abstracts the infrastructure away from the application, and the developer. Developers deploy to a fabric, not a server. There’s no need for the IT project team to provision web or database servers. Simply push applications to the existing PaaS environment. The infrastructure itself is managed closely by an operations team and automation is included at all levels to deliver automatic patching, scaling, monitoring and more.
*Multi-tenancy and high-availability baked in. PaaS products are designed to deliver high-availability to multiple applications (or “tenants”) and are therefore scaled out to provide significant compute capacity. As such, you’ll find many PaaS products with built-in load balancing services, failover when servers fail, concurrency management, and more. All of these features boost reliability and performance for each application hosted in the PaaS. Even applications not specifically designed for PaaS can conceivably be deployed to a PaaS with little to no code refactoring.
*Avoid unnecessary duplication by using consolidated application services. When most people think of PaaS they think of hosting web applications, but some of the best capabilities are those offered by complimentary services. Most PaaS products offer add-on services like databases, storage, identity management, messaging, caching and more. You’ll also find some PaaS products that offer business services such as service catalogs, and API management and monitoring. Developers can use these services when building their web applications and not have to provision or locate hardware to host those services at runtime. These services simply exist inside the PaaS and are available to all applications deployed there.
*Deliver “IT as a Service” through measured usage for easy chargebacks. A core tenet of cloud computing is “pay as you go” and measured usage. A true PaaS is built upon a “cloudy” foundation that tracks utilization and delivers an all-up cost to the user at the end of the month (or whenever the user checks their charges). Because of this cost transparency, it’s easy for organizations to deliver “IT as a service” by offering a PaaS for internal/external websites and passing along the usage-based invoices to each department.
All of this helps developers produce faster deployments while giving system administrators a more streamlined operations responsibility.
Why CenturyLink Platform as a Service?
CenturyLink Cloud has its own PaaS product – called Platform as a Service – that is based on Pivotal’s Cloud Foundry project. We’ve added the open-source Iron Foundry extensions so that we can offer some of the best language and framework support in the industry. Unlike the shared PaaS services offered by others, Platform as a Service is provisioned uniquely for each customer. This gives you the isolation you need, while still offering a robust platform for all the custom applications used by your organization. The default Platform as a Service environment consists of five total servers and can support dozens of web applications.
Why might you choose to use the CenturyLink Platform as a Service to host your modern web applications? We like to point out at least five reasons:
1. Support for the programming languages you already use. Most IT shops are heterogeneous and use technologies from multiple vendors. You may have written a number of enterprise-class web applications in .NET or Java, but also have departments that make use of Ruby or PHP. If you’re doing more mobile development, you might have started looking at Node.js for high performing web applications. CenturyLink's Platform as a Service supports all those programming languages and more. Instead of using multiple PaaS products or infrastructure clouds to host your diverse application portfolio, use a single fabric for all of them!
2. Application services to cover your scenarios. Need a relational database? We offer MySQL, PostgreSQL, and Microsoft SQL Server. Looking for a NoSQL repository? Platform as a Service has Redis and MongoDB. RabbitMQ is also available when you want to add a durable message queue to your solution. In addition, each Platform as a Service comes with New Relic monitoring for web applications. This excellent application performance management tool gives you deep insight that helps identify bottlenecks and monitor application health.
3. Cloud Foundry ecosystem. There’s no doubting the impact of Cloud Foundry on the PaaS industry. This open source project was launched in 2010 and has been adopted by multiple PaaS vendors. Not only does this make it straightforward to move applications between Cloud Foundry-compliant clouds, but also means that there are multiple parties creating tools that work for any Cloud Foundry environment. From the Windows-based Cloud Foundry Explorer, to the OSX-friendly Project Thor, to web-based development environments, there’s a growing ecosystem of vendors and tools to help you be successful with Cloud Foundry.
4. Enterprise-class infrastructure. CenturyLink Cloud’s network of highly resilient, globally distributed infrastructure is optimized for performance throughout the stack. And since Platform as a Service runs on the CenturyLink Cloud enterprise cloud, your applications will be powered by high performing storage, multiple VPN options, security services, and much more.
5. IaaS and PaaS, better together. Not all workloads fit into a PaaS platform, and not all applications require dedicated infrastructure. By offering our customers enterprise-class infrastructure in addition to Platform as a Service, we’ve provided two useful hosting mechanisms in the same cloud. Keep your PaaS applications geographically close to your IaaS applications and data, and share the same management tools, security profile, and networking configuration.
Deploying to Platform as a Service from a Cloud-based Development Environment
Developers can push their application to Platform as a Service in a number of ways. While most developers are familiar with command line interfaces and GUI tools that run on their desktop, a new crop of cloud-based integrated development environments (IDEs) can make PaaS deployments even simpler. Cloud IDEs offer excellent collaboration capabilities, easy accessibility, and “no-touch” setup.
One such cloud IDE is Codenvy. This tool works natively with Cloud Foundry, making it easy to build Java/Ruby/Python/PHP applications and then push them to Platform as a Service. After signing up for a free account, the developer is presented with the option to link to GitHub or any Git repository.
Codenvy uses a handy “new project” wizard experience to help the developer choose which programming language to use, and then which (supported) PaaS to push to. In the short animation below, observe how I created a new Java Spring project, chose Cloud Foundry (Platform as a Service) as a destination, finish the wizard and publish the application to Platform as a Service.
The Codenvy IDE includes many developer productivity features including type-ahead coding (i.e. “intellisense”), code generation, formatting tools, and much more. Changing the application code and re-publishing the application to Platform as a Service is simple. Notice how easy it is to resize my application (e.g. memory, instance count) at any time!
Besides simply deploying applications, Codenvy supports simple management of existing applications. From the PaaS –> Cloud Foundry –> Applications menu, I can see all the applications that I’ve deployed to Platform as a Service and stop/start/restart/delete any of them.
Developers using cloud-based IDEs don’t get all the features of desktop IDEs (like access to local resources, plug-ins), but they are an increasingly viable choice for developers who are trying new technologies or need access to their IDE from any computer.
With our enterprise-class infrastructure and platform cloud, CenturyLink Cloud is uniquely positioned to address your cloud needs. Platform as a Service is an ideal host for your modern web applications and its Cloud Foundry heritage makes it compatible with a wide array of tools including cloud-based IDEs like Codenvy.
Interested in taking a look at Platform as a Service? Contact us for a demonstration and free trial!