While at EMC World and RSA Conference this last month, I realized something very interesting. The same people I normally see at these shows have moved on to something new and shiny, and as such they were not at the shows. However, what was at the shows was really interesting. There was much more talk about DevOps, scripting, and things code related. This is all for the good and gets more peopled involved in the technology at a deeper level. But how did this happen?
Many developers are like myself, trained as something other than a developer, with a background in engineering, science, or something else completely. Programming was a way to complete our assignments. We found it was easy, and so we continued. Many older developers and programmers were trained in systems engineering if they went the route of high-performance computing development, as we had to consider a massively scaled distributed system, not just a finite aspect of the application.
Agile Cloud DeveloperBut now, I am seeing a wonderful technical arc from the virtualization community, one that is not surprising on the one hand, but very surprising when considering who is involved: marketing folks, photographers, etc. These are people who are technical, but not deeply technical. Nevertheless, when they finish this arc, they are considered some of the most technical people in the field.
In the arc to the right, we see that many started as lowly Windows system administrators, the people who had to worry about hardware, drivers, and keeping the lights on for mission-critical applications. These early adopters of virtualization became the virtualization administrators. The abstraction of the hardware became the first step in their technical arc. Some people have stayed comfortably in this realm for years, while others started to script their actions so that they could repeat them without needing to remember everything all the time. When PowerShell arrived, they adopted that shell scripting language as their language of choice. These are skills that UNIX and Linux administrators already had been using, but in very different ways. PowerShell has enabled the growth of many more administrators in the virtualization and cloud world.
That growth has allowed them to develop automation script libraries of their common actions, including deployment of virtual machines within clouds. This has led us to where we are today, deploying applications within clouds in an automated way. The people who write this code today are what I would call “agile cloud developers.” Granted, it is scripted code within several different languages (Puppet, Chef, Ansible, Vagrant, etc.), but it is code.
These folks have started to share their scripts via code repositories such as GitHub, which is also the sign of a developer. They are not the traditional developers, but they are the ones who have been involved with operational issues the most. Hence, the need for DevOps: a common lexicon through which to discuss development and operational issues easily, to further their goals of a fully automated cloud deployment.
As a technologist, developer, high-performance computing and high-performance graphics developer, engineer, and virtualization and cloud architect, I have watched the growth of many people in the field of virtualization with joy and pride. We early adopters of virtualization have produced a community that is vibrant and ever changing, one that is growing with the technology. This is a community of which I am proud to be a member. It is one that has also shifted focus. Nevertheless, it is a community that, I hope, does not lose sight of its roots.
At EMC World, I spoke to the EMC{code} team. They have been talking more about applications and containers than about virtual machines and virtualization systems used by clouds today where containers will run. I am enough of a systems engineer to realize that we cannot forget where things run and the interesting problems caused by how clouds are designed: problems that containers just will not solve. One day, I hope we can forget this. We have abstracted ourselves to the point that we just worry about the application. Yet, the hardware and hypervisor in use still rule the environment, and they impact those containers in ways we do not yet know yet. Thus, we can not forget where things run.
EMC has released to the public several products that are ideally unrelated to the underlying hardware: CoprHD via Github, virtual VNX binaries, and ScaleIO binaries. This is a direction I see many companies taking as they try to build the platform of the future. The ones building it are the developers of today, with help from the developers of yesterday. But today’s developers are more invested in the community than ever. They are more open, share more, and have grown the most. They are also pulling many of us into the future with them.
I do not know where this arc will end, but I have seen amazing growth by individuals and technology. I hope to see much more.