DevOps more than a buzzword

DevOps isn’t just a buzz word. Ok it’s a little buzz wordy, DevOpsCatbut the movement is real and Enterprises need to look at it. That’s a bit of a stretch many enterprises are looking at DevOps already. It’s a part of a strategy which is key, you have to have a strategy to be successful otherwise it’s just dumb luck and guessing. Those will only take you so far.

Enterprises need to avoid lock-in, that means having multiple concurrent solutions, with contingencies. A VMware strategy, an OpenStack strategy, a PaaS and an IaaS, various public clouds, etc; all of that is necessary as businesses grow and expand. Beyond the infrastructure or cloud play there is a need to determine how application development should be performed, waterfall and agile approaches are each needed depending on the application you are trying to deliver.

Yet, there are more than just technical drivers for incorporating DevOps into your environment. From a business perspective, DevOps have proven to provide faster time to market, higher new customer capture, larger revenue gains, and better user adoption. These are key metrics to make the C levels happy and to help drive IT as a critical cog in the gears of the business.

So while as engineers we too often hear buzzwords bounce around conference rooms, social networks, and corporate emails, take the time to look into DevOps. It’s worth your time, even if it doesn’t apply to every project you are working on.

EVC, Patios, & Oh My!

Ever walk into a datacenter where they have vSphere clusters defined by the processor types? It happens more than you would think, this is because there is a misconception. Recently I saw one where they couldn’t live vMotion between two vSphere 6 clusters because the processors were different generations.

“Umm, turn on Enhanced vMotion Compatibility (EVC)?”, I asked.

The answer was that they didn’t want to limit the capabilities of the cluster. Their initial plan was the newer hardware cluster would handle all of the heavy workload VMs and keep all of the light VMs on the older hardware. They also believed that EVC would drop everything down to the lowest common denominator and limit the faster procs to the slowest speed.

So I showed them the actual vSphere Documentation.

You can use the Enhanced vMotion Compatibility (EVC) feature to help ensure vMotion compatibility for the hosts in a cluster. EVC ensures that all hosts in a cluster present the same CPU feature set to virtual machines, even if the actual CPUs on the hosts differ. Using EVC prevents migrations with vMotion from failing because of incompatible CPUs.

EVC masks only those processor features that affect vMotion compatibility. Enabling EVC does not prevent a virtual machine from taking advantage of faster processor speeds, increased numbers of CPU cores, or hardware virtualization support that might be available on newer hosts.

EVC cannot prevent virtual machines from accessing hidden CPU features in all circumstances. Applications that do not follow CPU vendor recommended methods of feature detection might behave unexpectedly in an EVC environment. VMware EVC cannot be supported with ill-behaved applications that do not follow the CPU vendor recommendations. For more information about creating well-behaved applications, search the VMware Knowledge Base for the article Detecting and Using New Features in CPUs.

Imagine it this way, you are invited to an orgy and there are a mix of folks, old, young, good looking, and ugly. Some of these folks may be left out when it’s time to pair up. But if they all wear masks you limit the impact of bias based on at least one category. EVC also doesn’t restrict the capabilities and instead allows for a everyone to appear to perform the same to the VM’s so it’s like giving the old guys at the party Viagra.

Next I set about tackling the concern of mixed workload environments. Have you ever laid down base rock for a patio? It takes a mix of stone sizes, so that when they compact they interlock and form a smooth, solid surface from which you can build your patio. VMware workloads are very similar, it’s not that there aren’t reasons to restrict workloads to specific hosts, but it’s better if you have a mix to have better utilization. It also ensures that there is a more solid foundation for the entire virtual environment.

So Ya See Timmy

As promised I will now talk about containers vs micro services. UGH ok where to start … Maybe it’s best if I do this in a dialog I recently had. Customer will be C I will be M. Also incase you haven’t read these sorts of things before <> will indicate internal dialog or though in my brains.

C: “ I am looking at Docker or VMware Photon to manage a bunch of web sites deployed in containers.”

M: <Ok I thought.>

C: “The web sites are currently deployed and we want to migrate them off of a unix server that they are sitting on today.”

M: <Hmmm, ok weird but if they rebuilt them …. >

C: “We just need to get them off the box as is today”

M: <But but that’s not what containers ….. ok. >

Here is my problem I am no good at keeping my mouth shut, like no good at all. I keep repeating to myself, Mike just stay quiet and people won’t think you are an ass. But then I open my mouth and well words fall out. 

M: “No sir, that’s a bad use case for Docker or Photon. You see a container is great if you have an application and want to deploy multiples of it. Scale it out, not so great for existing web services, better if you were to rebuild them and need multiple instances”

C: “Right like we have a lot of web sites, plus containers provide isolation and security.”

I could actually feel my eye twitch a little here. You know like the eye lid and the side of my face. Maybe it was a stroke?

M: “No see if you wanted to move them off of their existing hardware, just a straight virtual migration would be good, or you could use a code release software to layer them onto a micro kernel vm. But for what it sounds like you want, containers would be tricky. You see you need to have a host OS arguments here can be made that, that OS can be virtualized or bare metal. Then you have your container technology, your containers, and some orchestration methodology that maps them together. Containers are way different than the virtual environments you are used to managing and deploying today.”

Ok so at this point the conversation trailed into other things, and I won’t bore you with those I am just going to use my imagination to finish this conversation as I believe it would have gone.

C: “Yes but I was saw at VMworld …”

M: “I am not saying that container strategies are wrong, nor that you shouldn’t invest time and energy into having one. Quite the contrary I think there is a place for containers in environments where application management is difficult and the concept of micro services isn’t possible to adopt. But containers while they do provide another layer of abstraction are not natively more secure. In fact containers provide the app dev or owner all the more control over the application they are packaging and deploying.”

C: “But it’s isolated so that means any vulnerabilities they expose in their container can’t impact my infrastructure.”

M: “Have you ever watched Lassie?”

C: “What?”

M: “Lassie you know the dog that always saved people?”

C: “ … Yes”

M: “At the end of ever episode Timmy, the boy who owned Lassie learned a lesson in the form of a speech that his dad gave him. South Park uses this in all of their episodes where Stan and Kyle reminisce on the lessons of the episode. We call this a ‘SoYaSeeTimmy’. The point is no one learns the lesson while they are going through the adventure, they learn after the fact.”

C: <blank stare>

M: “So you see Timmy, mind if I call you Timmy? Good. So you see Timmy, you surely can run your web services in a container, or believe your container is actually not going to impact or open you up to security vulnerabilities, but just like when you fell down the well while trying to walk across a board like a balance beam, and Lassie came a running barking, and spinning in circles to get me to follow her back to you, you will learn that just because you can doesn’t mean you should.”

If I am incorrect or you feel differently let’s discuss it, I am still learning and could use a conversation on this that isn’t in my head. 🙂