Achieving High Availability in the Cloud: Part 1 - Provisioning Storage

Does running your application in the cloud mean that it’s suddenly able to survive any problem that arises? Alas, no. Even while some foundational services of distributed systems are built for high availability, a high performing cloud application needs to be explicitly architected for fault-tolerance. In this multi-part blog series, we will walk through the various application layers and example how to build a resilient system in the CenturyLink Cloud cloud. Over the course of the next few posts, we will define what’s needed to build a complete, highly available system. The reference architecture below illustrates the components needed for a fictitious eCommerce web application.

HA Application Architecture

In this first post, we look at a core aspect of every software system: storage. What type of storage is typically offered by cloud vendors?

  • Temporary VM storage. Some cloud providers offer gobs of storage with each VM instance, but with the caveat that the storage isn’t durable and does not survive server shutdown or server failure. While this type of cheap and easy accessible block storage is useful in some situations, it’s not as familiar to enterprise IT staff who are used to storage that’s durable by default.
  • Persistent VM storage. This sort of block storage is attached to a VM as durable volumes. It can survive reboots, resets, and can even get detached from one server and reattached to another. Multiple servers cannot access the same volume, but this is ideal for database servers and other server types that need reliable, durable, high-performing storage.
  • Object storage. What happens if you want to share data between consumers? Object storage offers HTTP access to a highly available repository that can hold virtually any file type. This is a great option for storing business documents, software, server backups, media files, and more. It is also a useful alternative for secure file transfer.

At CenturyLink Cloud, we offer customers two options: persistent block storage and object storage.

Provisioning Persistent Block Storage

Each virtual server launched in the CenturyLink Cloud cloud is backed by one or more persistent storage volumes. Product details:

  • Block storage volumes can be of any size up to 1 TB apiece. Why does this matter? Instead of over-provisioning durable storage – which can happen with cloud providers that offer fixed “instance sizes” – CenturyLink Cloud volumes can be any size you want. Only pay for what you need, and resize the drive as necessary.
  • The volumes are attached as ISCSI or NFS and offer at least 2500 IOPS. Why does this matter? Run IO-intensive workloads with confidence and get reliable performance thanks to an architecture that minimizes latency and network hops.
  • Block storage is backed by SANs using RAID 10 which provides the best combination of write performance and data protection. Why does this matter? We’ve architected highly available storage for you. Data is striped across drives and mirrored within RAID sets. This means you that you won’t lose your data even if multiple underlying disks failed.
  • We take daily snapshots of each storage volume automatically. Standard storage volumes have 5 days of rolling backups, and Premium storage volumes have 14 days of rolling backups with the 5 most recent ones replicated to a remote data center. Why does this matter? This gives you a built-in disaster recovery solution! While it may not be the only DR strategy you employ, it provides a baseline RPO/RTO to build around.

The way that CenturyLink Cloud has architected its block storage means that you do not need to specifically architect for highly available storage unless you are doing multi-site replication.

For our reference solution, provisioning persistent block storage is easy. Our web servers – based on Windows Server 2012 Data Center Edition – have 42 GB of durable storage built-in, and I’ve added another 100 GB volume to store the web root directory and server logs.

Configure block storage

There are multiple ways to layout the disks for a database server, and in this case, we’re splitting the databases and transaction logs onto separate persistent volumes.

Configure block storage

Here, we have running servers backed by reliable, high-performing storage. What happens if you find out later that you need more storage? The CenturyLink Cloud platform makes it easily to instantly add more capacity to existing volumes, or add entirely new volumes that are immediately accessible within the virtual machine.

Provisioning Object Storage

Object Storage is a relatively recent addition to the CenturyLink Cloud cloud and gives customers the chance to store diverse digital assets in a highly available, secure shared repository. Some details:

  • Object Storage has multiple levels of redundancy built in. Within a given data center, your data is replicated across multiple machines, and all data is instantly replicated to a sister cluster located within the same country. Why does this matter? Customers can trust that data added to Object Storage will be readily available even when faced with unlikely node or data center failures.
  • Store objects up to 5 GB in size. Why does this matter? Object Storage is a great fit for large files that need to be shared. For example, use Object Storage for media files used by a public website. Or upload massive marketing proofs to share with a graphics design partner.
  • The Object Storage API is Amazon S3-compliant. Why does this matter? CenturyLink Cloud customers can use any of the popular tools built for interacting with Amazon S3 storage.

Customers of CenturyLink Cloud Object Storage do not need to explicitly architect for high availability since the service itself takes care of it.

In our reference solution, Object Storage is the place where website content like product images are stored. We added a new Object Storage “bucket” for all the website content.

CenturyLink Cloud Object Storage buckets

Once the bucket was created and permissions applied, we used the popular S3 Browser tool to add CSS files and images to bucket.

Files in CenturyLink Cloud Object Storage


A highly available system in the cloud is often a combination of vendor-provided and customer-architected components. In this first post of the blog series, we saw how the CenturyLink Cloud platform natively provides the core high availability needed by cloud systems. Block storage is inherently fault tolerant and the customer doesn’t have to explicitly ask for persistent storage. Object storage provides easy shared access to binary objects and is geo-redundant by default.

Storage provides the foundation for a software system, and at this point we have the necessary pieces to configure the next major component: the database!

Five Things I Learned From Attendees at the Microsoft WPC Conference

Last week, CenturyLink Cloud attended the Microsoft Worldwide Partner Conference in Houston, TX and hosted a booth where hundreds of attendees stopped by to talk about the cloud. Besides seeking what one attendee called “the best t-shirt from any conference, ever”, most people wanted to have a discussion about how the cloud could positively impact their business. With over 15,000 attendees from over 150 countries represented, this conference offered us a prime opportunity to hear about the interests and needs of a diverse audience.

Over the course of four days, I noticed a theme among the conversations I had with software vendors, Managed Service Providers, consulting companies, and even Microsoft themselves!

#1 - We’re past the “cloud 101” discussion

It appears that a vast majority of technical staff now understand the basics of the cloud value proposition. There was no “what is this cloud thing people are talkin’ about?” types of questions from any of the attendees. Rather, the questions and conversations were more nuanced as Microsoft partners were trying to figure out how they could capitalize on the cloud, and where the cloud was forcing them to change their existing set of products and services. Most people understood that the cloud brings agility, and that it may not result in an explicit cost savings. It was fun to brainstorm and debate the merits of cloud computing for specific scenarios and workloads and help people find the right uses for cloud platforms.

#2 – The market seems interested in much more than CPU cost and massive scale

Price drops and eye-popping case studies dominate the tech press, but these conference attendees were more focused on looking at the whole picture. Cheap CPUs and storage are nice, but there’s a lot more to running applications in the cloud than that. Likewise, the stories of customers running 50,000 core clusters or scaling to thousands of machines are fantastic, but those represent a small fraction of the daily workloads being run by small and large businesses. Instead, I heard again and again that organizations are looking for all-up value in a maintainable package. Many were asking about flexible provisioning options (i.e. locations, VM sizes, application services), enterprise-class management options, and a monthly bill they could understand.

The partners and users we talked wanted solutions, not just components.

#3 - The reseller market is a huge, unaddressed space

CenturyLink Cloud was at the show to tout our Reseller Edition capabilities that let customers rebrand and white label our cloud for their own needs. A handful of other cloud providers offer some type of reseller program, but few offer a comprehensive – and lucrative – set of services for offering someone else’s cloud as their own. I spoke to many software vendors who have to send their potential customers elsewhere to get temporary infrastructure to try their software. These vendors were very interested in being able to offer software AND a globally distributed set of infrastructure to run it on.

I also heard numerous consulting companies complain about the challenges of migrating the infrastructure of small customers to the cloud. They loved the idea of being able to offer “their” cloud to their customers and centrally manage and maintain modern and legacy systems – including those running Microsoft software –  using the CenturyLink Cloud platform. Managed Service Providers were also looking to complement their existing product portfolio’s with cloud services and I saw that many of them are shopping around for a partner to collaborate with.

Building clouds is hard. Many smart companies have failed doing it. However, being able to rapidly white label someone else’s world-class cloud infrastructure is compelling and I heard that over and over again at the conference.

#4 - Usability matters

Cloud providers aren’t selling services, they’re selling an experience. Just about every cloud infrastructure provider is offering the same base capability to provision virtual servers. There are differences to be sure, but most providers are selling an experience delivered through programmatic APIs, web-based management tools, professional services, and a support organization. For the self-service options like APIs and web-based tools, usability is an enormous factor in the long-term success of the customer.

The easiest way for me to get people to stop at our booth was to do a demonstration of our platform. We are still one of the only cloud providers who features our software on our company home page. Why? Because we spend a significant amount of time crafting and optimizing a user experience that helps our customers quickly and efficiently provision and manage cloud assets. Organizations are asking their existing staff to maintain more (transient) infrastructure without adding new headcount, and we think it’s important to introduce thoughtful design and usability-focused enhancements wherever possible. The WPC attendees really responded positively to time-saving CenturyLink Cloud features like Group-based server management, server environment orchestration, server scheduling, global search, simple billing, and much more.

#5 - Cloud race is FAR from over

Some have said that we’re in the first inning of a nine inning game, and I agree. Cloud computing is in its infancy and while leaders are emerging, the market is constantly expanding. CenturyLink Cloud was attending a Microsoft conference where Windows Azure and Office 365 were front and center, and we STILL had hundreds of people approach us about partnering with us on their cloud efforts. That’s not an indictment of Microsoft’s cloud, but rather a fantastic example of the diversity of customer needs and the ability of cloud providers like CenturyLink Cloud to address unmet demand.  I talked to VERY few people who had a fully committed cloud strategy and found that scores of attendees had workloads spread around different clouds, or were simply trying things out.

Want to partner with a successful, globally available cloud provider that delivers a well-engineered and easy to use platform? Give CenturyLink Cloud a try!

Enterprise CMDBs and the Cloud: APIs will Keep Us Together

While the cloud has become a welcome channel for companies refining their server footprint, it’s still rare to find an established business that is running *solely* in the cloud. Rather, many companies leverage the cloud for specific workloads and new cloud-first applications, while keeping other servers and applications in-house. But are you tracking your cloud servers the same way you track on-premises ones? Do you have a single place to see a list of ALL your servers and when they last changed? Configuration management databases (CMDBs) are a popular way to store information about IT assets such as who owns them, where they physically are, and their change history. How can you take advantage of the cloud while retaining a complete, up-to-date CMDB? One option is to programmatically link cloud servers to your CMDB through the use of cloud APIs. In this blog post, we’ll see an example of that process in action.

Step 1: Link Cloud Servers to CMDB Entries

Let us first consider the “IT-as-a-Service” scenario where an internal customer portal serves as the launching pad for new cloud servers. Using the CenturyLink Cloud API, customers can easily provision and manage their cloud servers without ever logging into our Control Portal.

Linking CMDB to CenturyLink Cloud Cloud Servers

Here, the customer’s own portal gives internal employees the opportunity to quickly spin up a cloud server. After adding a record to the CMDB and getting back the CMDB record locator, the CenturyLink Cloud CreateServer API operation is called. CenturyLink Cloud servers can have user-defined metadata attached to them, and in this case, that metadata consists of the CMDB record ID.  The server build request is queued by the CenturyLink Cloud engine and the name of the new server is returned by calls to the GetDeploymentStatus API operation. The name of the CenturyLink Cloud server can optionally be added to the CMDB configuration item in order to create a bi-directional link between the systems. At this point, the internal CMDB has a list of servers built internally or in the CenturyLink Cloud cloud.

Step 2: Synchronize Updates

A wonderful aspect of the cloud is the ease by which someone can create, modify, and destroy servers on demand. This means that you do not want to get stuck manually maintaining records of cloud servers that are constantly in flux. Inevitably, the effort to keep the CMDB up to date will fail and it becomes an unreliable record of IT asset configurations. How can you easily synchronize your CMDB with CenturyLink Cloud? Use the APIs!

Synchronizing Changes from CenturyLink Cloud to Local CMDB

CenturyLink Cloud’s Engineering team just added new API operations that make it simple to retrieve a list of all servers that have changed within a certain period of time. Customers can run a simple application every evening and invoke the GetAllServersByModifiedDate API operation to pull back a list of all CenturyLink Cloud servers that have experienced the following events:

  • Created or deleted
  • Paused/powered on/powered off/reset/rebooted/shut down
  • CPU count, RAM amount, storage amount changed
  • Public IP added or released
  • Snapshot created/restored/deleted
  • Archived or restored from archive
  • Custom (metadata) field added, or value changed
  • Software installed or script executed (via Blueprint)

Most of these changes are extremely relevant to a configuration database and provide critical context about the cloud server’s lifecycle. By automating these changes with the API, you can save significant administration time and effort.

CMDBs are a critical component for many enterprises, and your cloud servers should be a visible part of your IT asset management strategy. CenturyLink Cloud is constantly working to deliver a powerful API that provide the glue to connect your on-premises systems and cloud resources. Existing customers have instant access to our API today and new customers can get started by signing up for an account today!

Look Beyond the Sticker Price: What It REALLY Costs to Run a Cloud App

Companies embrace the cloud because it offers agility, speed to market, self-service, rapid innovation, and yes, cost savings. There are plenty of cases where organizations can save money by using cloud resources, but it’s easy to focus on vendor compute and storage pricing, and forget about all the other financial components of a cloud application. See Joe Weinman’s Cloudonomics for an excellent analysis of how to assess the economic impact of using the cloud. An application can very easily cost MORE in the cloud – but that might still be just fine, since it helps the business shed some CapEx and remove servers from corporate data centers. In this post, we’ll talk about the full scope of pricing cloud applications and give you a useful perspective for assessing the overall cost.

Example application

Businesses deploy applications, not servers. A typical application is comprised of multiple servers that perform different roles. For instance, let’s consider an existing, commercial website that receives a healthy amount of traffic. It uses a load balancer to route traffic to one of multiple web servers, leverages a series of application servers for caching and business services, and uses a relational database for persistent storage.

n-tier web application

To maximize revenue and customer satisfaction, the application is replicated in another geography for availability reasons and traffic can be quickly steered to the alternate site in the case of a disaster or prolonged outage.

Cost breakdown

“Hidden costs” often bite cloud users. This is especially true for those who buy from a cloud that offers “cheap virtual cores!” but also require you to buy countless other services to assemble an enterprise-class infrastructure landscape. Let’s look at each area where it’s possible – and likely – that you will incur a charge from your cloud provider.

  • Application migration. If you are doing greenfield development in the cloud, then this won’t apply. But if you have existing applications that are moving to the cloud, there are a few migration-related costs. First, there can be a labor cost with doing virtual machine imports. Some cloud providers let you import for free, others charge you. In most cases, there is also a bandwidth charge for the transfer of virtual machine images. Finally, there’s likely a cost for storing the virtual machine image during the import process.
  • Server CPU processor. This – along with RAM –  is the number most frequently bandied about when talking about the costs of running a cloud application. Some providers let you provision the exact number of virtual CPU cores desired; others provide fixed “instance sizes” that come with a pre-defined allocation of CPUs and memory.
  • Server memory. Cloud providers are ratcheting up the amount of RAM they offer to address memory-hungry applications, caching products, and in-memory databases.
  • Server storage. There are many different types of storage (e.g. block storage, object storage, vSAN storage) and costs vary with each. Don’t forget to include the cost of storing data backups, virtual machine templates, and persistent disks that survive even after servers have been deleted.
  • Bandwidth. It’s easy to forget about bandwidth, but it’s a charge that can bite you if you’re not expecting it! You may need to factor in public bandwidth, intra-data center bandwidth, inter-data center bandwidth, CDN bandwidth, and load balancer bandwidth. Not all of these may apply, and some may not be charged by your cloud provider, but it’s important to check ahead of time. Most cloud providers use the “GB transfer” model, charging for all data transferred – and penalizing customers for bursting above their commitments. CenturyLink Cloud utilizes the 95th percentile billing method, preventing surges in traffic from grossly affecting costs.
  • Public IP addresses. Nearly every cloud provider offers a way to expose servers to the public Internet, and some charge for the use of public IP addresses. This is usually a nominal monthly charge, but one to consider for scenarios where there are dozens of Internet-facing servers.
  • Load balancing. There is often a charge to not only use a load balancer, but also for the traffic that passes through it.
  • VPN and Direct Connect. Cloud users are looking for ways to connect cloud environments to on-premises infrastructure, and vendors now offer a rich set of connectivity options. However, those options come at a cost. Depending on the choice, you could be subjected to fees for setup, operations, and bandwidth associated with these connections.
  • Firewalls. This is usually baked into each cloud provider’s native offering, but you will want to check and make sure that sophisticated firewall rules don’t come with an additional charge.
  • Server monitoring. Even those cloud servers aren’t in your data center, it doesn’t mean that you don’t need to monitor them! Depending on your monitoring needs, there can be a range of charges associated with standard and advanced monitors for each cloud server.
  • Intrusion detection.  Given that cloud servers are often accessible through the public Internet, it’s important to use a defense-in-depth approach that includes screening incoming traffic for potential attacks. CenturyLink Cloud is a bit unique in that we offer this at no cost, but you can still get this sort of protection from other vendors – but rarely for free.
  • Labor for integrating with on-premises assets. You don’t want to create silos in the cloud, and you will likely spend a non-trivial amount of time integrating with your critical applications, data, identity provider, and network. If this effort requires assistance from the cloud provider themselves, there could be a charge for that time and effort.
  • Distributed, disaster recovery environments. Applications fail, and clouds fail. If you require very high availability, you may need to duplicate your application in other geographically-dispersed cloud data centers. You could choose to keep that environment “warm” by synchronizing a data repository while keeping web/application servers offline. Or, you may choose to build a truly distributed system that leverages active infrastructure across geographies. Either way, it’s possible that you’ll incur noticeable charges for establishing replica environments.
  • Development / QA environments. Applications may run differently in the cloud than in your local data center. Hence, you could choose to provision pre-production environments in the cloud for building and running your applications.
  • System administrator labor costs. One of the wonderful things about the cloud is the widespread automation that makes it possible to provision and maintain massive server clusters without adding to your pool of system administrators. However, there are still activities that require administration. This may involve server patching and software updates, deploying new applications, and scaling the environments. Some of those activities can be automated as well, but you should factor in human costs to your cloud budget.

Places to save money

Given the various charges you may incur by moving to the cloud, how can you optimize your spend and take full advantage of what the cloud has to offer? Here are five tips:

  1. Don’t over-provision.  Gone are the days when you have to request a massive server from an internal IT department because you MAY need the extra resources in the future and don’t want to deal with the hassle of upgrading the server later. CenturyLink Cloud makes it simple to change the number of virtual CPUs, amount of RAM, or amount of storage in seconds. Only spend money on what you need right now, and only pay more when you have to scale up. In addition, don’t settle for cloud providers who force you into fixed “instance sizes” that don’t deliver the mix of vCPU/RAM/storage that your application needs. CenturyLink Cloud encourages you provision whatever combination of vCPU/RAM/storage that you want! In fact, we usually tell customers to under-provision to start with, and ratchet up resources as needed.
  3. Turn off idle servers. If you decide to create development or QA environments in the cloud, it’s likely that those environments will be fairly quiet over weekends. By shutting those down – and doing it automatically – you can potentially save hundreds or thousands of dollars per year.
  5. Automate mundane server management tasks. Running maintenance scripts or installing software on a cluster of servers is time consuming and tedious. CenturyLink Cloud provides an innovative Group capability that makes it possible to issue power commands, install software, and run scripts against large batches of servers.
  7. Add resource limits to prevent runaway provisioning. Elasticity is a foundational aspect of cloud computing, but it’s not a bad idea to establish resource caps. With CenturyLink Cloud for example, customers can define the maximum amount of vCPUs, memory, and storage that any one Group can consume.
  9. Carefully consider uptime requirements and disaster recovery needs. Even though the cloud makes it easier, it’s still not cheap or simple to build a globally distributed, highly available application. Evaluate whether you need cross-data center availability, or, a defined disaster recovery plan. The simplest solution for CenturyLink Cloud customers is to provision Premium block storage which provides daily snapshots and replication to an in-country data center. In the event of a disaster, CenturyLink Cloud brings up your server in an alternate data center and gets you back in business. If you want to avoid nearly any downtime, then you can architect a solution that operates across multiple data centers. To save money, you could choose to keep the alternate location offline but synchronized so that it could quickly activated if needed.


When considering all the services you need to deploy and operate enterprise-level business applications, the “cheap virtual cores!” pitch is less compelling. It’s about finding a cloud provider that offers an all-up, integrated offering that gives you the set of services you need to deploy and maintain a robust, connected infrastructure. Give CenturyLink Cloud a try and see if our innovative platform is exactly what you’re looking for!

The Simplest Way to Build and Deploy Web Applications to the Cloud? Use PaaS and Cloud IDEs!

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.

Platform as a Service Overview

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:

  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 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!
  3. 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.
  5. 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.
  7. 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.
  9. 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 IDE

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.

Creating an application in Codenvy

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!

Updating an application in Codenvy and publishing to Platform as a Service

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.

Managing Platform as a Service in Codenvy

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!