By Rajat Bhargava Posted April 29, 2014
Among other areas of Directory-as-a-Service®, we have been focusing on server user management recently and wanted to include a short piece on the server lifecycle. In order to understand the server management process, it’s critical to walk through the entire server lifecycle. The server lifecycle process has changed dramatically over the past few years with the automation of a number of different areas. In the four lifecycle steps, two are effectively one-time tasks: provisioning and configuration. The last two – monitoring and management – are on-going tasks that require a great deal of effort. Executing crisply in all four of these areas is critical to driving a stable, scalable, and available IT infrastructure. Each area is described in detail below.
The start of the server lifecycle is the provisioning of a system. Historically this used to be an extended process where IT admins needed to procure the hardware – often a lengthy process through finance, install the server in the data center (often called racking and stacking), and ensuring that it was functional and even sometimes performing “burn-in” tests. Fortunately, with the advent of the cloud, hosting providers, and virtualization, provisioning a server is as simple as an API call now. Organizations now have capacity available to them ‘on demand’. Scaling up and down is simple and straightforward. As part of the entire server management lifecycle, this critical step has been largely automated and provides companies with significant flexibility and time savings.
The next step in the server lifecycle is installing and configuring the various pieces of software and applications on the server. Previously, this was an arduous task where individual pieces of software were manually installed on each server. First the operating system, second the key applications, and then third, the process of configuring everything to make sure that it worked correctly together. Inevitably there would be conflicts and issues and then the troubleshooting process would begin. Because the process was so time consuming, it was done only one or two times a year for complex systems. However, that meant that other parts of the configuration could change in the interim. This lead to many bugs and issues that took awhile to identify and fix, manually. Virtualization introduced a different way to automate these tasks. Once you took the time to setup a machine exactly as you wanted, then you could take a snapshot or image of the machine and replicate that. Of course, if there were unique variables you would need to ensure that those were indeed unique and not a copy. Then, as the cloud picked up steam, solutions appeared that automated the step of configuration. Many of these open source solutions required you to use another scripting language, but you could automate the installation of software and configuration on a new server. Today, the state of the art has largely automated this task as well.
Once a server has been configured and deployed, the tasks largely shift from one-time startup tasks to on-going tasks. One critical on-going task is monitoring the server. Critical performance indicators need to be watched, including availability, speed, and health. The first step in this area is largely about generating enough telemetry to have a sense for the server’s status. Organizations used to write scripts or purchase pieces of software that would sit on servers and provide this data stream. Many organizations setup SNMP or syslog systems to share this data. The data could be ingested into network management solutions or logging solutions. Alerts and thresholds would be created to notify admins when servers started to operate outside of normal operating parameters. Over time, solutions started to become more predictive, trying to sense whether a problem was imminent. While not always accurate, this also pushed server manufacturers to produce more pieces of data sharing the underlying hardware’s health. Server monitoring was a core staple of these large network management suites. They were expensive to deploy and run, but would provide visibility into the entire IT infrastructure stack. With cloud providers, the networking pieces of the infrastructure have changed and that telemetry is largely provided by them. Server monitoring, as a result, became more critical and solutions to go deeper in this category appeared. Now, these solutions are staples in any infrastructure and ensure that the servers are operating correctly. The telemetry continues to improve with more specificity and data to pinpoint problems. Monitoring of servers is a time consuming, on-going task, but a critical one.
Perhaps the most time consuming part of the server lifecycle process is management and maintenance. Server maintenance and management tasks include patching, creating and managing users, security tasks, compliance activities, reviewing logging activity, and many others. DevOps and IT admins spend their days executing a variety of tasks to ensure that their servers are operating at peak performance, are resilient, and stable. These tasks have largely been done manually in the past. Often, common tasks are scripted on servers, but this is often done on an ad hoc, as-needed basis, sometimes without any integration into a formal engineering process, nor any documentation. One challenge is that these scripts are just one step in a multi-step maintenance process. Many of the management tasks are common across organizations, but many are custom to each organization, their environment, and their servers.
JumpCloud and Server Lifecycle
Earlier this week, we talked about how JumpCloud approaches server management via server orchestration, user management, security, and reporting. We’re striving to smooth out the entire server management process for DevOps and IT folks so we can all spend more time building and creating. Try out JumpCloud here, and let us know if you have any questions or comments!