The term DevOps is thrown around with such frequency and verve among IT professionals that it seems like a magic...
elixir for every operational challenge in the era of agile applications and virtual infrastructure. Bring developers and IT together, add in some code and automation tools and voila: The IT org runs as efficiently and swiftly as a cloud-native startup.
The hard reality of execution collides with the idealistic conception; there's more to modern service management than banishing organizational silos and a culture of cross-functional collaboration.
It is wise to empower autonomous project teams and standardize processes and configurations as executable code, but only if these principles are embedded in concrete activities. Modern system management requires teams to translate these broad precepts into specific actions, a process which occurs slightly differently at every organization.
Modern service management envelops essential elements of IT service delivery processes in the cloud era:
- respond rapidly to changing business requirements;
- accommodate hybrid IT environments that bridge on-premises data centers with third-party cloud services, both IaaS and SaaS;
- incorporate multiple resources, including infrastructure -- servers, storage, networks -- applications and assets; and
- involve several subprocesses, such as IT operations, help desk and security.
Agile, automated management processes create strong dependencies between infrastructure and applications, which DevOps practices address.
Principles of modern systems management
The cloud decentralizes the traditional IT structure, insofar as line-of-business managers and individual developers can procure services without even notifying IT gatekeepers. As cloud commodifies IT resources and certain management functions, IT gets to focus on innovation, agility and cost control, each of which is either enabled or affected by extreme automation. The three primary tenets of modern service management, as laid out in a white paper from Microsoft Azure, are to intervene as little as possible, design to handle failure instead of reparability and increase customer value.
Zero-touch automation minimizes manual activities, particularly routine tasks that use standard configurations that can be codified and systematically performed with perfect fidelity and repeatability.
The ease with which virtual services can be deployed and reconstituted and the inevitability of system failures -- whether due to software bugs or hardware problems -- mean that modern systems must be redundant. When paired with zero-touch automation practices, the processes of resource redeployment and scaling can be done reliably and rapidly, with minimal manual involvement and no downtime.
IT organizations must respond rapidly to new service and application requests to stay valuable to the business and should enable self-service opportunities whenever and wherever possible.
The four A's of modern service management
These broad principles boil down to four concrete steps for IT organizations to take: automation, accumulated and aggregated data, analytics and AI.
Automate every routine task via code and software development formalisms, such as source repositories and version control systems.
Accumulate and aggregate data from system telemetry, log files, monitoring probes, configuration files and performance monitors. From rigorous IT operations data analysis, teams can draw correlations, identify patterns and anomalies and make predictions.
Rely on analytics in software tools to filter, correlate and summarize the accumulated data from IT operations. Both statistical and adaptive, self-optimizing techniques provide value to optimize IT.
AI builds on those traditional analytics methods, adding machine learning and deep learning to discover hidden patterns, reduce data noise and flag anomalies, while continually adapting to new conditions.
Combined, these four principles are the foundation for a software-controlled cycle in which infrastructure is both constructed and conducted via repeatable code and continually improving algorithms. As the infrastructure gets more powerful, it enables more granular data collection, which feeds more capable management software.
From concepts to execution
The core tenet of modern service management -- automation -- comes with a significant warning label: You can't automate what you don't understand. The first step on the road to the omniautomated, service-centric IT department is to assess current tasks, define the desired end state and design an automation framework that can incorporate IT and, if possible, development processes in an end-to-end toolchain.
Turn to the examples of hyperscale cloud vendors and online services, from AWS and Azure to Google and Facebook. These businesses would not be possible on a massive global scale without the combination of distributed systems and endemic automation.
One such example set by these companies is Google's reliance on the APIs it exposes for every service and the concurrent automation that gives the search and web services giant. APIs, whether for a cloud service or local virtual infrastructure, are a way to replace manual keystrokes and mouse clicks with programmatic execution. Google Cloud provides API libraries for seven languages -- from low-level, all-purpose languages, like C# and Java, to scripting languages, such as Python and Go.
Tools for modern service management
Few companies have the scale and technical resources seen at the cloud builders; however, traditional enterprise IT can exploit software developed for cloud-era businesses that incorporate elements of the four A's. While far from an exhaustive list, the examples below illustrate the point of adding intelligence and automation to IT.
Google Stackdriver is a sophisticated cloud monitoring package for AWS and Google Cloud Platform that consolidates logs, metrics, traces and application-specific management measures across platforms and uses sophisticated visualizations to identify problems and indicate solutions.
Splunk is a quintessential enterprise log analytics software that consolidates data from multiple private and cloud environments. It offers a machine learning module that adapts resource and performance thresholds as conditions in the deployment change and identifies anomalies and security threats.
AWS developer services, such as CodeBuild and CodeDeploy, are a set of DevOps tools that automate the complete cloud development pipeline from code repository and build integration to testing and deployment.
HashiCorp Terraform is a sophisticated infrastructure-as-code platform used by IT organizations to define infrastructure deployments and configurations as structured code, map resource dependencies, create shareable infrastructure models or templates and automate infrastructure deployments and updates.
Open source Jenkins is a CI/CD pipeline tool that automates the processes to build, test and deploy applications. It acts as the application counterpart to Terraform and similar tools, for a fully automated application and infrastructure pipeline.
Balbix is a security management stack that automatically scans, inventories and collects data from all devices in a data center. It uses the aggregated data and various AI-led models to create a risk profile for various device categories, predict breaches and attack vectors and offer remediation steps to minimize the exposure.
YotaScale, a startup, determines the appropriate size for various AWS resources based on its statistical regression and various machine learning models. It updates configurations based on changing demands.
Modern service management has evolved from the days of configuration spreadsheets and Perl scripts to a host of tools that enable the exhaustive collection of configuration and usage data; automated code development and infrastructure deployment processes; and AI-assisted analysis of trends, anomalies and potential risks. The fully automated data center or cloud environment is still a dream for most organizations, but these pieces are in place to make it a reality.