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 Public Cloud solution.

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!