Just a couple weeks ago, we looked at how Platform-as-a-Service (PaaS) helps developers rapidly build and deploy applications to the cloud. We also covered a new breed of cloud-based development environments (IDE) that developers can use to create and publish their web applications. Since then, the cloud-based IDE we featured – called Codenvy – has updated their product to support the CenturyLink Cloud Platform as a Service. In this post, we’ll walk through how to quickly and easily deploy and manage Platform as a Service applications from your web browser.
To start with, when users of Codenvy start a new web application project, they are asked which technology they want to use, and then which PaaS to deploy to. At this moment, the CenturyLink Cloud Platform as a Service is available for Java Web Application (WAR), Java Spring, and Ruby on Rails projects. Note that Platform as a Service works with more environments than these three, but these are the technologies supported via Codenvy.
Once the user chooses the technology and corresponding PaaS, they choose a simple project template (if one exists for that technology), and are then asked for the management API endpoint of the Platform as a Service environment.
The project framework is then created, and the user is prompted for their Platform as a Service credentials. After providing a valid username and password, the application is deployed and Internet-accessible. All of this in matter of seconds! To update the application, developers visit the PaaS menu option and choose CenturyLink Cloud Platform as a Service.
From the subsequent window, developers can modify the name, URL, and memory allocation of the application. Additionally, the application can be started, stopped, deleted, and updated. It’s also possible to add Platform as a Service application services – such as RabbitMQ for messaging or Microsoft SQL Server for relational database storage – to a project.
Codenvy can also be used as a simple management interface for any applications running in Platform as a Service. This can come in handy if you’re on a shared machine without the typical Cloud Foundry management tools available!
This interface shows you each application running in your Platform as a Service environment, and lets you start, stop, restart, or delete it.
We’re excited to be a supported part of the innovative Codenvy platform and think that this lowers the barrier to entry for our customers while making it simpler for developers to build amazing applications in any language of their choice. Want to try it out? Sign up for a free Codenvy account and then take Platform as a Service for a spin!
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 Cloud 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 Cloud Platform as a Service to host your modern web applications? We like to point out at least five reasons:
- 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 Cloud’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!
- 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.
- 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.
- 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.
- 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!
The Cloud Foundry PaaS team recently announced Cloud Foundry Core as a way to make it simple for PaaS customers to discover the services and platforms supported by each Cloud Foundry provider. The provider platform, such as CenturyLink Cloud’s Platform as a Service, is interrogated live to show the latest services and frameworks that are supported. But does this really matter? Is portability overrated? While your business applications are probably not leaping between environments on a daily basis, portability does greatly improve deployment choice and disaster recovery options.
Let’s see how this plays out in real life. I built a sample application that used Node.js for the web layer and PostgreSQL for the database layer. My goal is to quickly and seamlessly move this application between development (Micro Cloud Foundry), test (CloudFoundry.com) and production (CenturyLink Cloud Platform as a Service) environments.
Deploy an Application to Micro Cloud Foundry
Micro Cloud Foundry is a fully encapsulated virtual machine that surfaces all of the Cloud Foundry services. Developers can work with this local cloud to build and test their applications before deploying to a production-quality Cloud Foundry environment. This offering differs from the development fabric offered by other clouds in that it’s a complete clone of the cloud offering. There aren’t weird differences between the developer environment and the cloud itself. With Micro Cloud Foundry, developers get the same exact deployment, configuration, and management experience as with any Cloud Foundry providers.
To begin with, I spun up a new Micro Cloud Foundry instance.
On my local machine, I built and tested my Node.js application and was ready to push to a “cloud.” Because Micro Cloud Foundry supports the Cloud Foundry interface, I could use the standard vmc command line tool to target my Micro instance and push my application.
I also added a PostgreSQL application service to this deployment.
In a matter of seconds, my website was published and I could see it online. Note that Cloud Foundry automatically takes care of identifying the right port for Node.js to run on, regardless of what’s set in my app.js file.
All that was left to do was to add and configure my PostgreSQL database. Cloud Foundry supports a tunneling mechanism (called “Caldecott”) that lets me connect from my local machine to my PostgreSQL instance in Micro Cloud Foundry.
After opening the tunnel, I launched the PostgreSQL management tool (pgAdmin) and connected to my PaaS database.
I then took a backup copy of my local PostgreSQL database and restored it to this new Micro Cloud Foundry instance.
At this point, you’d think that I’d have to go into my Node.js application and update my database connection string to reflect the host, username, and password of this instance. However, Cloud Foundry does some awesome auto-reconfiguration of (Node.js) applications that injects my credentials for me! Because I used the very nice node-postgres Node.js module for my database access, I got this Cloud Foundry-supported auto-configuration magic for free. Once I added my table to the database, my Node.js application could instantly read the data.
Move an Application to CloudFoundry.com
I had the full cloud experience while my application resided in Micro Cloud Foundry. However, that environment is not meant for demonstrating scale-out or making an application available to other developers or testers. So, I had to migrate my application to a bigger, more widely-accessible environment. CloudFoundry.com fit the bill.
The first step was to use the same vmc tool to target the public CloudFoundry.com cloud. I then deployed the same Node.js application, and chose to create a new PostgreSQL instance.
Just like before, I tunneled into this new PostgreSQL instance, acquired the database credentials, logged into the database, and restored the table backup. Because of all the auto-configuration magic mentioned earlier, I could immediately view my application without having to change Node.js connection strings or runtime port numbers.
Move an Application to CenturyLink Cloud’s Platform as a Service
At this point, the application was sitting in a very capable public cloud. However, what if you needed more than what this particular cloud provides? Maybe you want access to CenturyLink Cloud’s world-class, global infrastructure cloud to compliment your PaaS applications. Or, you’re looking to use our well-engineered management software that offers self-service features for server provisioning, environment orchestration, group management, disk resizing, firewall policy rules, and much more.
The CenturyLink Cloud Platform as a Service is a .NET-friendly (but fully Cloud Foundry capable) version of Cloud Foundry. Customers can provision as many Platform as a Service clusters as they want from the CenturyLink Cloud Control Portal.
To send my Node.js application to Platform as a Service, I first targeted this environment from the vmc tool, and did a push of the code.
Just as before, I tunneled into my PostgreSQL database instance and restored my database backup. Once again, my application could instantly access my database and show the table records.
It literally took less than five minutes to take a database-driven website application and move it from one Cloud Foundry provider to the next. There were no application settings to change or strange machine configurations to remember. Simply take the same application and push it to a different provider with a single deployment tool. We hope that you find CenturyLink Cloud to be an exceptional home for your PaaS applications, but we also want you to be confident that your applications can enter and leave our environment whenever you want.
As we often say here at CenturyLink Cloud, the cloud should create choice, not limit it. And today is a good day for that guiding philosophy.
We’re excited about a new program from Cloud Foundry - the Cloud Foundry Core. Their blog entry today sums up the news:
The Cloud Foundry team is happy to announce Cloud Foundry Core - a program designed to preserve cloud application portability.
In the cloud computing world, preserving a choice of clouds is critical. The risks of being locked into a single cloud are substantial. Pricing, reliability, geographic location and compliance can all vary between clouds. Business requirements will evolve over time, necessitating the ability to move between clouds, whether public to private, private to public or between public cloud providers.
Why this is a Good Thing for Developers and Enterprise IT
Enterprises to different degrees have embraced cloud infrastructure-as-a-service, and are now looking to see what platform-as-a-service offers. Developers of course are leading the charge here.
The benefits of PaaS are straightforward enough – the PaaS does some of the heavy lifting for developers, including load balancing. Over time, as PaaS becomes more capable, development within the enterprise becomes cheaper and faster, while lowering risk. Why? The PaaS abstracts more platform-level operations away from the dev. It’s the “focus on your app” message to a much greater degree.
But unlike with IaaS, many developers and IT leaders are worried about vendor “lock-in”. The Core certification is a step in the right direction, since customers now have some elements of portability. The Core program is really about peace of mind - developers can now move their apps to different providers with confidence and relative ease should conditions arise.
Why CenturyLink Cloud is a Launch Partner
Cloud application portability is vital to realizing the full promise of cloud computing. That’s been our take for a while now – after all, our Platform as a Service product is built on Cloud Foundry and Iron Foundry. The latter is open source project started by CenturyLink Cloud to extend Cloud Foundry to the .NET ecosystem.
We want to help shape this flexible, compatible, and interoperable future of cloud computing – that’s why the Core program is so exciting for us. Look for more news, developments, and investments from CenturyLink Cloud along these lines.
So Now What?
On the main page of the Cloud Foundry Core Web Application you can enter an API path to any provider, with several provided by default, to determine what is or isn’t supported with that provider.
Platform as a Service, CenturyLink Cloud’s PaaS product, offers extensive compatibility, as noted the Cloud Foundry Core listing. We also carry the polyglot banner and support apps authored in:
Adding to this list is a roadmap priority for us. In fact, we have recently added support for some languages that are unavailable in any other PaaS today. For example:
Erlang - With Erlang you can write some of the most performant code for multi-core, multi-processor, threaded systems on the planet. Also, Erlang is one of the most resilient languages available with performance and scaling you’ll not find anywhere else.
.NET CLR v2 and v4 – Since .NET is one of the largest languages used in the enterprise, it was a “must have” for CenturyLink Cloud. With the Iron Foundry Project we’ve enabled .NET as a complete add-on with total native Windows support for Cloud Foundry. With .NET that provides the largest two languages full support on the CenturyLink Cloud Platform as a Service Platform by combining the capabilities of Cloud Foundry and Iron Foundry together.
Congratulations to the Cloud Foundry Community – CenturyLink Cloud is excited to be part of it and look forward to continuing development of Cloud Foundry and Iron Foundry as well as momentum for the category of PaaS technologies.
What are your thoughts on cloud application portability? Let us know in the comments.
At CenturyLink Cloud, we’ve been big supporters of Cloud Foundry—the VMware-led, open-source PaaS framework—from the beginning. That said, we’re a .NET shop and many of our customers’ most critical applications are .NET-based. So today we’ve decided to contribute Iron Foundry, our own .NET fork of Cloud Foundry, back to the community as an open-source project.
This project includes both the primary framework as well as both a Windows version of Cloud Foundry Explorer and a Visual Studio Plugin for Cloud Foundry. (Video demos for the command line interface and Visual Studio plugin are located at the bottom of this post.) Because developers can run their own instances of Iron Foundry in-house or with any service provider who supports it, developers finally have a truly open, interoperable .NET PaaS solution that can be run inside and outside the firewall. And because you can run your own instances of Iron Foundry, it’s easy to have a full test, QA, and staging environment before pushing to production.
In addition, operations teams now have the freedom to choose among various service providers that meet their needs in areas such as security, compliance, availability, location, etc. For developers who are interested in trying Iron Foundry, we have put together a “try it now” test bed package on IronFoundry.org that offers the compute resources needed to run one web and one database instance per developer free for 90 days on CenturyLink Cloud’s Enterprise Cloud Platform. Iron Foundry is Cloud Foundry + .Net. This means developers have access to standard tools—enabling them to write .Net code against a MySQL backend, for example, or just write against a simple name-value pair datastore like Redis. Another advantage that Iron Foundry inherits is the ability to add instances to an application on the fly with the app being pushed automatically each new node. The core source code will be available on GitHub under an Apache 2.0 license. You can also download and install Iron Foundry with Cloud Foundry from our web site at www.ironfoundry.org. Read the full press release here.
Iron Foundry Video Demo