VMware Home Lab 2015

Well it’s about time I post about my home lab 2015 edition.  Last year I was running a happy home lab on HP workstations using Operton 2xxx processors.   This year VMware releases vSphere 6 and I loose support for Operton 2xxx processors.   So I had to start over again.   I am a very cheap man so I want the cheapest thing that will reasonably work.  This time I wanted to get three nodes for possible vsan so here is my home lab.

Compute

After pricing out all kinds of stuff I stuck with the HP workstations.   They are normally server class hardware with great life and lightly used.   They also don’t sound like a Jet engine when running.   The HP version of ESXi installs out of the box without any problems and does not require any modification which is a huge win.    I wanted to make sure the processor was on the HCL (I don’t care about the server being on the HCL because I am cheap) so I browsed options and found the E5404 was on the HCL for ESXi 6.   Searching ebay I found some great deals on the HP xw6600 workstations with a single quad-core E5404 processor.    Normally they ship with two broadcom 1GB nic’s and 4GB of RAM.   They max out at 32GB of RAM with a single processor.   The only real downside is you only get four cores, but it’s $79.99 each right now.   You add some RAM – 32GB for $88.99 and you get 4 cores and 32GB of RAM for $167 per node.   This forms a very solid cluster with three nodes.

 

Storage

Shared storage is critical to a good cluster.  You have a few options:

  1. VMware vSAN
  2. Additional PC providing NFS or iSCSI
  3. Some type of NAS (Synology)

 

vSAN requires at least one SSD and one spinning disk per node.   So you are looking at roughly $300 total to go this way.   It also requires a license from VMware.

 

Additional PC providing NFS or iSCSI – use FreeNAS or something similar.   It’s cheap and easy if you have hard drives and PC’s sitting around.

 

Synology – These sell for cheap on ebay and rock so much.   I love them… you can buy with drives on ebay for around $150 if you are lucky.

 

I personally have vSAN and a synology nas in place.

 

Networking

You really need a Gigi-Managed Switch for VMware implementation.  Buy one for $120 or so or find one on ebay.

 

Licenses

Here is the sticky bit… you need licenses.  There are two options available at this time for low-cost:

  • VMware vExpert – This program provides great access to licenses and is not hard to get into at this point
  • VMUG Advantage program – for $200 a year you get licenses and lots of other benefits

 

Let me know if you have any questions.

Journey to an Automated Cloud Part 1

Are you ready to automate everything?  Does you boss want some of that cloud?   Well everywhere I turn people want to get into the cloud.  They all want a vendor product to provide the cloud.   Every vendor show I to go to has hundreds of products to solve that problem.   In my experience it is not a product problem that limits our journey to the cloud.   In these series of articles I will explore some of my thoughts on your journey to the cloud.

 

Part 1 – Where am I and what do I want?

My thoughts for this part are best explained by an exchange from Alice in Wonderland:

 

“Would you tell me, please, which way I ought to go from here?”
“That depends a good deal on where you want to get to,” said the Cat.
“I don’t much care where–” said Alice.
“Then it doesn’t matter which way you go,” said the Cat.
“–so long as I get SOMEWHERE,” Alice added as an explanation.
“Oh, you’re sure to do that,” said the Cat, “if you only walk long enough.”

The cat completely covers my feelings if you don’t know what you want it does not matter which way you go.  Most engineers are stuck with the problem of lack of definition.   We want to get into cloud provisioning.  We want to get to 20 minute deployments of servers.   We need to be more like Amazon.

 

Let examine these statements a little:

We want to get into cloud provisioning.

  • Does this mean you want to use public cloud for servers?
  • Does this mean you want a web portal for provisioning servers?
  • What does this mean?  It’s like me telling you I want to enforce family values… We all want family values but every family has a different definition

We want to get to 20 minute deployments of servers.

  • What type of server do you want deployed in 20 minutes?  OS, Application, three-tier?
  • What does deployment mean?  Powered on?  Able to talk on the network?  Internet facing?

We need to be more like Amazon.

  • You want to deploy unsecured operating systems without backup quickly?
  • You want to have pay as you go for our customers?

 

I want to be fair and emphasize that all these statements are valid but without definition and that every one of these offerings have positive sizes as well.  What they lack is business definition.   In almost every cloud situation the business wants IT to be more agile.   They want processes to go more quickly.    Universally they cannot understand why provisioning a server takes so long and is so complex.  Honestly nether can I.   I have made a career out of complex servers and it has to stop.    So before you start down some unknown paths with the cat ask some critical business questions (no engineer likes them but you need to ask them).

For example:

  • What pain point are we trying to solve with the cloud
  • What specific expectations do you have for the cloud
  • What is the timeline for the cloud

If during any of this conversation products come out know it’s normal.    Business people explain technology in terms of products.   (For example I want it to be like an ipad with dropbox) These statements are not locking you into a product they are helping you define requirements.    Ask questions about the product to help define requirements.   It is critical that you translate their products into requirements and constraints.    Once you have translated their needs into requirements statements get them to sign off on it.

 

Where am I?

In almost all cloud deployments it’s really about adding automation to all aspects of the service.   This allows you to be more agile to change.   Before you can begin your transformation you need to define your starting point.

Picture1

Is your current environment like the above picture?  Do you have many hands touching the configuration of your servers and applications.   Have you provided some basic automation like server cloning or configuration management?   This approach is common and really a growth of the virtualization era.   Let me give an example of this process:

  • Server request is provided to server team
  • Server team clones an operating system
  • Firewall team does firewall rules
  • Server team deploys application
  • Developers deploy code
  • Security team reviews server and approves
  • Server team release to production

 

This process seems simple and should be easy.    This is where the people problems start.   The development team has a project.  The server,firewall and security team have tasks.   They do their tasks without knowledge of the development teams project.  Which means that bolts will not be where they are expected and in the end something will require rework.   There is tons of room for human error and mistakes.    Each project built this way will be unique because people are executing the steps.    It gets worse as you scale up.   Assume that the normal firewall worker is out sick, now we have a stand-in who cannot do the job as well.   More errors and problems are introduced.   So to review:

  • Each team treats a project as a task
  • Each team executes the tasks with different priorities causing delays
  • There is lots of room for human error and mistakes hurting the timeline
  • It does not scale it’s mostly human capital

The fun part is this process is pretty good.   At least they have a defined process.

Do you have a process and is it followed?

It’s simple individuals have processes they natively follow.  We naturally assume that other people think and act just like us so naturally they will follow the same process right?  Wrong.  Everyone is different and does it a little differently.   So many IT shops have poorly defined processes and even when they do they are rarely followed.    In order to make it into the cloud you have to define your manual processes.   Get them on paper with the following details:

  • What information is required to work this process
  • What information is expected to return from this process
  • Who can work this process
  • What choices need to be made as part of this process
  • What happens if a process fails in an unexpected way

 

Does this sound like software development to anyone else?  Well it’s is.  Welcome to the rest of your career as a software developer or what I like to call a process engineer.   Once you have defined the process management needs to enforce the manual process to find out where it breaks… this is the hard part.  You can write down a process… you can send people to training on the process but you cannot make them drink.   All manual processes will be slower and worse at first.   Change is hard (That’s part two).   You have to practice the process to find the holes.    Here is a logical outline to define your process:

  • Have a subject matter expert define the process on paper (electronic or otherwise)
  • Have the SME train others on the process
  • Have management encourage others to do the process
  • Have people other than SME do the process and report back problems
  • Improve the process until it works in all situations encountered

 

Does it seem simple?  Yep it is..  Does it seem common sense… right again.   I should change the names of everything to something like points or teeshirt sizes so I can sell it but that not me.   It is simple to understand hard to implement.