Victoria - Fotolia


Use GitHub for open source data center automation ideas

GitHub, a bastion of software developers, also offers automation scripts and open source collaboration for data center administrators.

Primarily associated with traditional software development, GitHub has proven useful within the context of the data center.

The Git repository known as GitHub gives developers access to a centralized location that allows for highly intuitive change management functionality along with several other features that help simplify the collaborative coding process. A central repository holds the source code for an overarching project. Data center administrators can use GitHub for a similar purpose, creating open source data center automation projects that other administrators globally may improve or use as a jumping off point for more specific implementations in their own infrastructure.

These examples show some areas where data center ops teams can use GitHub for help either internally from a defined team or from the greater IT and data center community.

Improve automation quality: Asset management

Asset management is profoundly important to the modern data center. Often over simplified to the mere tracking of what is and is not there, proper asset management tracks even the most minute detail of every component within the data center. Often, IT teams perform asset tracking within a VMware vCenter Server, and most data center administrators are familiar with the vCenter platform.

The prudent administrator monitors activity within the data center without becoming an obstacle to productivity.

A data center administrator can use GitHub as a resource to tailor her vCenter environment to meet specific needs. For example, the admin wants to receive an email alert every time CPU utilization reaches a certain threshold. She writes a PowerShell script to do just that, but then uses GitHub as a way to open the floor to other ideas from other administrators. The admin submits her code for this alert and then tells her peers to add scripts, make comments or make edits as they see fit. Consequently, another data center administrator notices an error within the original code and makes changes to fix it. Before any of the new contributor's changes become permanent, the original developer can submit the "corrected" code for further peer review. The original developer can then choose to accept or reject said changes. Collaboration is suddenly improved, and code more accurately written.

Fine tune automation: Network monitoring

The term network monitoring means different things to different individuals. Within the context of the data center, this ambiguity can lead data center administrators to script their network monitoring duties as a means of whittling down overall responsibilities into specific tasks.

For example, a data center administrator tasked with monitoring network throughput writes a script to send an alert whenever certain systems in the data center meet a certain throughput threshold. By submitting the code to GitHub, the admin opens the page up to the rest of her team at the company. Another administrator, after examining the code, decides to improve upon it by tailoring the script to send alerts when the certain throughput thresholds are met at certain times. Through collaboration, the data center team gains more accurate, specifically tailored code.

How software developers use GitHub

A software developer, responsible for a certain module within a larger project, uses several files containing Python code, text, JavaScript and HTML. After the developer completes his portion of the project, he submits the files to the GitHub repository, where other developers have access to his source code. If the code contains errors or inconsistencies, the development team edits the files and resubmits the code as needed -- all while GitHub tracks each change submitted by each individual. Prior to the establishment of Git repositories, the only way to examine and edit another developer's code was to download each of his files to a workstation, make changes then send the edited files back to the original developer. One can imagine the amount of confusion created when several iterations were necessary to complete a project.

Pinpoint threats and problems: IT security

Security within the data center IT infrastructure can prove daunting. When different portions of the data center are not properly partitioned from one another, or if firewall rules are not properly set up, malicious code can propagate through vast segments of the IT environment or sensitive data leaks occur. A paranoid administrator may lock the data center down to draconian levels, a move strongly discouraged by end users. The prudent administrator monitors activity within the data center without becoming an obstacle to productivity.

Here too, data center operators and admins can use GitHub as a resource to improve security without wasting time or efforts. For example, a Windows server administrator learns of a new piece of malware associated with the SMsvchost.exe process, and the IT organization's current antivirus software does not have a signature for it yet. The admin could write a PowerShell script on a vCenter server to send an alert every time the SMsvchost.exe process spawns from any virtual machine within a cluster, allowing her to monitor for any security threat until the antivirus sufficiently protects servers. The data center administrator submits the script to GitHub, and allows her peers to read, edit and make additions to her code. Another administrator decides to tailor the script so that it only sends alerts when the SMsvchost.exe process is located outside of the C:\Windows\Microsoft.NET directory. Once again, utilizing GitHub allows for more effective collaboration and more accurate coding.

The expanding use of GitHub has a profound effect on the software industry, but data center administrators might not have considered its possibilities in their realm. The creation of accurate code at a faster rate proves useful, in specific cases, to the data center. Check out a vSphere daily report script on GitHub here to see these ideas in action and start working on your own.

Dig Deeper on Systems automation and orchestration

Software Quality
App Architecture
Cloud Computing
Data Center