Before I start this post I want to put it into perspective. Up until now I have been working in infrastructure roles for a number of years, specialising in virtualization (mostly VMware), servers, storage and networking. A lot has changed recently and we can’t go a day without hearing or reading about “DevOps”. I don’t want to get into what DevOps is and isn’t as there is plenty on Google for that but what is clear is that the role of the system admin / virtual engineer / [insert infrastructure role here] is changing and fast.
I had actually planned for this to be just two paragraphs long and the post was meant to have a slightly different focus. However, that didn’t quite go as planned, so happy reading!
We are now at the age of ‘Cloud Computing’ and the need for applications that are cloud native and can be moved around cloud providers with ease. As we’re in a state of transition and it may take some time to get there but until then everything is moving towards a ‘hybrid’ cloud model. As part of this, as infrastructure engineers, we need to be able to deliver infrastructure and services quickly and efficiently. Doing things manually, following a run book or similar is no longer desirable and we need to find a way to automate the end to end delivery of these services. As engineers we need to bridge the gap between operations and development. I’m not suggesting that we need to be developers but we need to be more closely aligned and have a much better understanding of the development life cycle and delivery model.
The Virtualization model allowed us to deliver Infrastructure as a Service (Iaas), Platform as a Service (PaaS), Software as a Service (SaaS) and so on. In the cloud model this has been extended to Everything as a Service (XaaS) and even serverless architectures! Now, the possibilities are endless and we need to start delivering hybrid IT services under this new model. Here are some examples (and no where near limited to):
- Database as a Service;
- Email as a Service;
- Security as a Service;
- Docker as a Service;
- Operation services (user creation, mailbox creation, 3rd party application authorisation);
- Enhancing IaaS and PaaS delivery with tighter integration into IPAM software (i.e. SolarWinds IPAM), ITSM CMDB (i.e. ServiceNow) and monitoring systems;
There are also a lot of tools out there today, typically referred to as ‘Continuous Delivery’ applications that can help us on our journey, such as (again not limited to):
- Puppet
- Chef
- Ansible
- Salt
These applications allow us to treat our infrastructure as code and automate the delivery of IT infrastructure with a touch of a button. Whilst these applications are extremely powerful and useful they do not by themselves solve all the problems of delivering hybrid IT services.
To be able to make all this possible and for the magic to happen there has to be some way to integrate these technologies and bring them all together in a cohesive way so that they can be easily consumed by IT. Well, the answer to that is via a provided API, most likely the Restful API.
Almost all software out there today provides an API endpoint and is becoming the standard method of interfacing and interacting with the software. So what does this all mean for us engineers? Well, think of your new role as the Infrastructure Developer, which is one title that has been coined. It is now your job to learn and understand how to interface with and consume these APIs and write scripts that will integrate these applications together as part of your IT delivery strategy.
VMware are very aware of this and all of their flagship products can be fully consumed and managed via an API (vSphere, NSX, vRA). Even VMware’s new Photon Platform will be completely API driven (Yup, no GUI) and you really have to wonder just how long will it be until we consider the vSphere platform legacy (some already do!). This is a very scary prospect for vAdmins like myself and it’s time to adapt quickly or face becoming irrelevant in the industry. But fear not because it’s not all as gloomy as it sounds.
There is also a need to provide visibility back to the business, such as what has been provisioned, what capacity looks like and the costs associated with these provisioned IT services.
Our experience to date has provided us with a holistic view of infrastructure. We have a good understanding of the core components that make up a complex environment, we understand security, governance, life cycle management, change management and dozens more. We can use this knowledge to help us on our journey of delivering hybrid cloud infrastructure and IT services and applying a DevOps methodology.
VMware believe that they have the answer to this complex problem with their vRealize Automation product. As VMware put it:
“The goal of automation is to allow existing investments to be leveraged while enforcing a policy-based model of lifecycle and governance to ensure they can be consumed in a repeatable fashion.”
vRealize Automation I believe has huge potential. It provides us vAdmins with a platform in which to deliver hybrid IT services with powerful integration that allows the full life cycle to be managed, whilst simply providing a self-service catalogue to end users. vRA is also fully extensible and provides XaaS services through vRealize Orchestrator (formerly vCenter Orchestrator and has been around for quite some time, although seldom used). By itself, vRA provides a ton of really awesome features such as the Event Broker and can provision to multiple different endpoints (vSphere, AWS, Azure, OpenStack). But it’s the extensibility that really brings vRA to life and without it there really isn’t much to offer. This is especially true if you want to integrate with tools like Puppet, Ansible or ServiceNow.
The biggest challenge however, is that vRA (and vRO) is very complicated and has a steep learning curve, one which I am still getting to grips with. Unfortunately this means that some new skills will need to be picked up along the way (hint: JavaScript). I am going to be focusing a lot of this blog on my journey as I transition from a traditional infrastructure/virtualization admin to an automotron. Along the way I am going to share my findings and the things that I create, whether they be vRA blueprints, vRO workflows or Puppet Manifests in the hope that I can contribute and help others like me out there.
Likewise, if you have anything you feel that could assist me in my journey, then please post in the comments.