The old System Administrator is now a developer, an Infrastructure Developer.
Our main expertise in the IT world is in the infrastructure side. We’ve been providing consulting as system administrators (or sysadmins), and we’re sure that the sysadmin role as we knew it has definitely changed.
It’s not possible to manage the infrastructure in the same way we did in the past. The new demands and dynamics of today’s business world, the new volumes of users and data are impossible to administer it in the traditional way.
Systems Administrators operating an infrastructure are in a very special position.
They are in the middle of everything:
Is not about installing and configuring services manually anymore. It is about being ready to replicate, scale, rebuild, be ready to move faster!. It is about managing infrastructure in a similar way developers create software: by writing code.
To put it in simple words: the new systems administrator, the “Infrastructure Developer”, needs to have programming skills and manage scripting languages like Python, Ruby, and many more.
Writing infrastructure in text files and using version control systems gives the possibility to track changes, to rollback, to branch it, to test new ideas and do everything the developers are used to do with software.
In the future, automation and orchestration will be part of daily activities. This new set of possibilities creates a flow to move in a agile way, to be prepared to the next challenges.
Developers upload their code to the repository, usually a version control system like Git, Mercurial, SVN, etc. This code to be usable needs to be compiled and mixed with external dependencies like libraries, modules, etc. This process should be done continuously to be sure that the software is never broken. Or if it’s broken, to notify to the involved people to fix it.
Once all the pieces to build the software are integrated they should be tested. Developers should write tests to verify the code and DevOps engineers could write additional tests (like functional tests) to verify that everything works smoothly. The result of this process is a notification of the current status via email, a web page, etc
When the software integration works properly, and the test passes, we should be able to deliver the code to the servers to be visible to all the members of the team: developers, project managers, testers, end users and others.
If all this process works as expected, this exercise gives us the ability to deploy code to production in a painless way.