UpGuard Blog

Configuration Tests as Automation Requirements

Written by Sam Lee | Mar 8, 2013 9:26:00 PM

While there are many benefits to cloud computing, one of the major difficulties is migrating from the in-house servers to a cloud computing platform. Configuration issues can develop when a company does not have the right tools, and when it lacks clear communication.

The issue of communication has become the focal point of the DevOps Movement. DevOps is the idea that IT professionals should take a multidisciplinary approach to mastering their profession. DevOps also places a major emphasis on the importance of communications. When the right tools and the right communication methods are implemented to perform effective configuration tests, cloud-based applications can be integrated seamlessly.

Benefits of IT Automation

One of the most effective ways to increase business productivity is to automate as many IT processes as possible. Process automation allows for companies to perform routine business processes, such as scheduled backups, maintenance, and communications functions, without the need for a human input. This not only saves on labor, but also minimizes delays.

Benefits of Cloud Computing

Cloud computing has allowed for businesses to store large amounts of data on an offsite server, making it possible for businesses to access data from anywhere. Cloud technology has also made it easier to reduce paperwork and lower the costs of transactions. Cloud-based computing is cheaper and faster than traditional systems.

Given the benefits of cloud computing, many businesses are considering migrating processes to the cloud. This requires the coordination of IT professionals from several disciplines, which will require that the IT staff take a DevOps approach.

Cloud Migration

When managing the cloud migration, one of the first things to consider is the value of hardware; what does a particular piece of hardware add to the business process? Among the best processes and applications to migrate to cloud computing are those that the company is not specialized in doing. For example, if the company does not have a strong billing component to its operations, the billing operations can be more easily moved to the cloud.

The Problem of Legacy Systems

Many businesses have hardware that is not currently backed up by the vendor. The process of transferring data from a legacy system to an updated system can be very time-consuming and can seriously interrupt business operations. Another issue with legacy systems is the need to understand them in order to successfully port into the cloud.

The first features that should be migrated are those that are the simplest to migrate. Most businesses will manage cloud migration in a very incremental way, choosing one application at a time. With each change, the staff members will have time to adjust to the new technology. Another factor to consider is to what extent the application affects business-critical processes. Moving less critical business processes first will be less disruptive.

However, some applications found on legacy systems do not seamlessly port to cloud-based systems. The business will often need to understand their legacy systems to the extent where they can re-engineer their legacy applications. One way to ensure that customer service and business productivity is not negatively impacted by the cloud system is to maintain the legacy system for now and compare the results of the previous system with that of the cloud-based system. This can make it possible to determine whether there are any shortcomings in the cloud.

In the process of cloud migration automation, configuration tests are one of the most important processes. One important factor to consider is if the current configurations will support business operations, while another concern is whether or not the process of automatically migrating data from legacy systems to the cloud will encounter problems, especially in the event of a glitch in the automation code.

One way to overcome concerns over automation configuration errors is the use of a unit test for infrastructure. A unit test can create a virtual machine test harness. The automation code can be tested against the virtual machine to identify problems. However, a major concern is that the new cloud applications will appear to work, but will not function properly when deployed. One way to avoid problems with application cloud deployment is to analyze the configurations of the server to ensure that the new applications will not malfunction on the company servers.

The Benefits of Chef and Puppet Labs

Two applications that can ease the automation of a migration from legacy systems to cloud computing are Chef and Puppet Labs. These applications are designed to help businesses control data center computers in an automated way. They are similar tools to the ones used by Google and Amazon, which are used to coordinate hundreds of thousands of servers. These applications consist of code designed to automate the multitude of steps needed to install the correct software and correctly configure networks. These applications can solve many problems with communication that the DevOps Movement sought to address.

One of the main benefits of using applications such as Chef and Puppet Labs is that the number of employees needed to maintain vast servers can be cut in half. Chef claims that it has a larger developer base, leading to a greater amount of support and more new features. Puppet Labs is considered easier to use and can collect more data on what is occurring on the server, allowing for better communication and a DevOps atmosphere. One useful application offered by Chef is the Chef Server, which is a MERB web software application.

Issues With Configuration Drift

Over time, servers will begin to experience problems with configuration drift. This is the phenomenon where configurations on different pieces of hardware and software become different from one another. Configurations between hardware and software assets must be the same in certain areas, in case of the event of a disaster or a failure in production. Severe cases of configuration drift can lead to data loss and outages.

A major concern of is whether or not IT systems comply with desired configuration states. Doing this manually is time-consuming and prone to error. Therefore, this process is best carried out with a configuration manager that can constantly assess server configurations and determine which configurations will be the most optimal. Configuration states can be set up in a way that maximizes security, performance and availability.

One way to manage configurations and minimize the risk of configuration drift is to use a Configuration Management Database. These databases not only store configurations, but also manage and control them. Configuration Management Databases make it easier for IT to identify and prevent problems before they become severe enough to cause outages.

Another concern is ITIL change and release management, which depends on developing an understanding of processes associated with ITIL. A process is a series of actions that produces an expected outcome. The best way to conceptualize a process and improve communication in a DevOps manner is with a flow diagram, this makes it easier for staff members with different areas of expertise to visualize a particular process. ITIL change and release management is also more effective when it is carried out from a certain starting point.

Improving DevOps Communication With the Enterprise Continuum

When discussing changes that are made to an architecture, the Enterprise Continuum (TOGAF) is very helpful. Those discussing an architecture often have a difficult time understanding which aspects of the architecture they are actually discussing. This can lead to a lack of cohesion among the technical staff, an issue that the DevOps Movement is particularly concerned with.

Enterprise Continuum (TOGAF) is a collection of all of the assets that exist in the entire IT industry that can be used in the construction of an architecture. The Architecture Continuum is used to understand relationships, representations, and rules within an information system. The Solutions Continuum serves as a standardized way to understand the processes which are used to implement the architecture continuum.

Starting the Application Lifecycle Management Process

When deciding to integrate cloud computing into the business, Application Lifecycle Management (ALM) is a key consideration. A company must consider exactly what it wants to accomplish by integrating cloud computing into its business so that the company can assess the progress it intends to create.

When the business first decides to integrate cloud computing, the first step is the idea. Once the idea has been conceived of and steps are taken to develop the idea, the next step is deployment, the point at which the new innovation is finally put into action. For deployment to be successful and for cloud computing applications to not die prematurely, the automation process must be properly configured, which requires that several configuration tests are performed throughout the cycle.

Understanding IT Enterprise Concerns

Understanding the core needs of the business are paramount when a company attempts to take enterprise software solutions developed in-house, and tries to migrate these solutions to a cloud-based server. A business might choose to migrate a portion of or all of its enterprise servers from an in-house server to a cloud-based server. Some of the most common enterprise software solutions migrated to the cloud include customer service, billing, and human resources management applications. While migration to these cloud-based applications can hold many benefits, improper configurations can lead to lost customers and billing errors that can cost the company money.

Security Concerns

Companies might also be concerned over whether or not the new cloud-based applications can effectively handle security and policy management issues. One of the major concerns that businesses might have is whether the cloud computing applications will adequately protect data from security breaches. Cloud-based applications vary in the extent to where they can encrypt and store data.

While cloud computing holds numerous benefits, the process of migrating to the cloud can be difficult and time-consuming. Many of these difficulties stem from configuration issues and a lack of communication. Those within the DevOps movement understand that a balance must be struck between the need for change and the need for stability. In order to ensure that cloud computing operations remain stable and functional, the automated cloud migration process must always have its configurations tested.