The reunification of development and operation teams, or DevOps movement, brings agility, automation and information sharing. The servers are then treated like easily replaceable cattle, and no longer like pets we take all our care. This is just like the instances on the cloud or containers.
Of course, individual server configuration and debugging is still relevant. But system administrators must now apply their skills on code-configured and managed information systems. They need to learn how to manage cloud services. Also, they learn continuous deployment tools and repositories, as well as share their expertise with others.
In this article we will see how system administrators can adapt in an increasingly development-oriented industry.
Debugging on large clusters
The debugging ability of system administrators still counts today, as developers can automate only what they understand. A thorough knowledge of how operating systems work, and how they interact with each other, is therefore always necessary.
What changes is the scale and complexity, and the need to adapt the server to the code it runs, even though this source code is often updated.
In DevOps, system administrators must also learn to focus their attention on the infrastructure they control. This is because in the cloud they have no information, no access to hardware.
Indeed at the level of the OS we can very well see if we have unnecessary processes that consume in memory, while it is no longer possible to change the configuration of the kernel on instances on the cloud or on containers.
Influence of resources on decisions
When in a continuous deployment logic, if one instance suffers from performance issues, it is often removed and replaced by another healthy instance from the same image, rather than debugging.
If the newly deployed instance is running smoothly, the problem may have been with the service provider, or with the corruption of the image during the creation of the instance. If the problem persists, we must go further back to the source, which is often the image from which the instances are deployed.
The only area where system administrators will see little change is the support of applications that are too expensive and difficult to migrate to the cloud. They always require individual configurations and debugging.
These applications are still creating demand for administrators accustomed to evolving in rigid infrastructures. In addition, it takes great knowledge when it comes to configuring new servers, automating new tasks or solving problems on bare-metal systems.
Application: New skills
To become part of the DevOps movement, system administrators must use their skills acquired for years, but especially learn to use new tools.
- Languages: Most administrators, for example, already use bash/powershell scripts to automate repetitive tasks, or to automatically correct possible errors, which is a key element today. However, mastering a server-oriented language such as Python or Perl makes it possible to develop more robust scripts more quickly.
- Cloud Services: Many DevOps-oriented systems are on the cloud. Learning to use the IaaS management interfaces such as LetsCloud is necessary to stay competitive in the job market. Any administrator accustomed to scripting can easily adapt to the management consoles provided on different cloud platforms.
- Server Configuration Manager: Mastering tools like Puppet, Chef or Ansible will help system administrators automate systems with many nodes, workers, to provide a DevOps platform. Knowing the languages used by these tools will make it possible to develop modules that meet the specific needs of an organization.
- Other tools: We also recommend mastering inventory management tools like PuppetDB to know which resources are necessary to quickly adapt an infrastructure that will change often. For monitoring, mastering Nagios and other solutions should also be considered. This helps to understand the behavior of an infrastructure, which is important on a large scale.
The next step is to provide developers with a seamless integration platform like Jenkins. These tools will help administrators deliver agility promised to developers. It is also necessary to master the tools of versioning (Github, Gitlab …). They maintain the code describing the infrastructure of an organization.
Time to adjust
In addition to skills of different technologies and products, administrators must make the effort to generalize their knowledge to communicate. This is in order to optimize organizational processes or correct problems.
It is necessary to share one’s knowledge and not keep it for oneself, thinking of keeping one’s status and position. For example, while a software engineer writes a Puppet module, administrators help them implement best practices for better log escalation. This will improve monitoring and make everyone’s work easier.
Before, developers created applications without knowledge of the underlying systems. Now, the role of administrators is not to do what they do. But to help others make better use of deployed systems. Administrators who make this leap can add real value to a company’s business.