Monthly Archives: May 2016

Why I work for VMware

Today, I completed 8 years at VMware. Time certainly flies when you are having fun. A lot of things have changed, and even more things will change, so I thought I jotted down my thought.

This post was inspired by sharing by Heath Johnson. He shared why he joined VMware here, and what’s it like working for VMware. It’s heartwarming, so I thought I complimented it by covering additional things.

Working as an SE in VMware is like watching movie and getting paid to do so.

I’ve worked for almost 22 years in IT, starting as a Mainframe programmer. I think we’re witnessing a once in a life time changes in IT. It used to be about getting faster, cheaper and smaller. And that’s basically it. But now fundamentals are changing. Cloud computing, container, IoT, big data, SDDC, mobility, quantum computing, AI, are just a handful of innovation moving in parallel.

What that end state will be, it’s hard to be sure. While we can project for the next 5 years, predicting 25 years is impossible. For what we know, human becomes the battery 🙂 I wrote a light hearted article saying that I’m not sure if I want my kids to follow my path.

All the “IT Prediction for Next Year” articles should actually be called IT Projection. There is a trajectory, and the authors simply move along the trajectory. Within the next few years, it’s easy to see trends that benefits VMware. I wrote some of them here.

VMware is a player in this industry. It is both affecting and being affected by the industry. I’m fascinated by how my customers, partners, colleagues adapt to this ever changing industry. I’m enjoying the conversation and exchange of knowledge. It is interesting that different companies/individual react differently to the same thing.

Technology aside, I’m privileged to be working for an organisation that cares about the less fortunate. This year, I’m working with our user community VMUG to host our first ever charity + team building event. We are helping River Kids. They work with children in Cambodia who are really, really hard to help. Families that no other NGOs could help. Traffickers look for the worst families because their children are the easiest to prey on. River Kids look for families that are complex and incredibly difficult, families hurting their children or planning to sell them, families with generations of abuse. We listen to them, we help them to recover and we protect their children.


While I look forward to see the ending of the movie, I enjoy the scenes as it’s being played out. Have fun in the virtual world!

Tenant Utilization Report

A common request from Tenant of IaaS business is Utilization Report. If a Tenant or Customer has 100 VMs, she wants to see the summary of the VMs utilization. You need to sum up the utilization amount.

Be careful not to bill based on Utilization. A tenant in SDDC or Private Cloud looks at things from different view. She does not care about the infrastructure as it’s a service to her. From a business viewpoint, she pays either based on Utilization or Configuration.

I encourage based on Configuration as Utilization can lead to argument.

  • She may question why you are charging her more when her application is hardly doing any business transactions. You end up digging into the VM Utilization even though you have no access to the VM, nor understand the application behaviour.
  • Utilization varies per minute. It can even spike within a minute. Do  you bill per second, minute, hour, day, month…? Where do you draw the line for fair charging without spending a lot of money calculating the bill? 1 month has 30 days or 720 hours. If you do hourly charge, you perform the calculation 720x in a month.

Ok, enough about money. Money can certainly give headache 🙂 Let’s talk something technical instead 🙂

We will discuss how to report Total VM utilization. This is a common requirements. Money aside, a Tenant Management certainly wants to know how much work is done. That’s a fair request.

High Level Requirement: Show Total Utilization across all VMs every month.

To present a monthly chart that strikes a balance between accuracy and usability, you need to roll up the data. 1 month has 720 hours. A data at 5-minute average will be way too details and unreadable. Hourly is in fact relatively very accurate. On the other hand, averaging at hourly means a 10 minute spike will not appear. In the example below, the 2 peak will be lost when you average all the numbers.

roll up hourly not daily

When it comes to utilization, Peak is important. So what you should do is roll the 5-minute peak into each hour.

Overall Steps

The steps are not straightforward, so I’ll give a summary first.

  1. Create a group per Tenant
    1. The group simply has all the VMs of 1 tenant. If you have a proper naming convention, you can create a dynamic group.  Any VM that you add/remove from the group will automatically be included/excluded from the calculation.
  2. Create summary values
    1. The value you want are:
      1. The total CPU Utilization for all VMs.
      2. The total RAM Utilization for all VMs
    2. Create super metric for each.
      • For CPU, you need to take into account the number of vCPU. A 16-vCPU VM running at 10% consumes more CPU than a 1-vCPU VM running at 100%.
      • Since what you want is a %, not GHz, you need to divide with the Total Capacity.
  3. Create a View widget
    1. The View widget allows data transformation. The metric chart does not allow that.
    2. Roll up the data every hour. This makes the chart readable.
    3. Default the View to monthly data
  4. Create a Dashboard
    1. Ideally, you want this to be a report so it can be automatically sent for each Tenant.

Detail Steps

To create a group, use the screenshot below as your guide. You can mix the dynamic members and static members. Create 1 per tenant.


Once you created the groups, you end up with something like this. You can park the group under any group type. It does not have to be Environment as shown below. You should create a group type called Tenant.


Create the super metrics, using the screenshot as a guide. You should create the following:

  1. Sum of all VM vCPU. The unit is no of vCPU.
  2. Sum of all VM CPU Demand. The unit is MHz
  3. Sum of all VM CPU Configured. The unit is MHz.
  4. Sum of all VM CPU Demand / Sum of all VM CPU Configured. This gets you a %, which is what you want to report.


The last super metric is derived from super metric no 3 and 4. I’ve shown the formula below.


When a Tenant has a lot of VM, the sum can be a big number. If you want to assure yourself that you got the right sum, you can use the View widget to show you the expected total. As you can see from the following screenshot, it can do a summation.


Now that you have the super metric, time to plot into a chart. Here is where you do the roll up in the View widget.


The roll up smoothens the chart, which makes it easier to read. The example below shows how an hourly roll up makes the chart more readable. I could only show 1 day data, not 1 month, as it’s too dense without the roll up.


Once the line chart is done, it’s a matter of putting into a dashboard. There are many guides in creating dashboards, so I will just provide a simple screenshot below.


Hope you find it useful!

Before you buy that ultra light notebook

[17 Jan 2017 update: glad my choice of laptop was one of the laptop of the year. I ordered another one, a newer model for my high school kid]

I bought a notebook in April 2016 as the one issued by IT does not need my need anymore. Even in the same role, your need can change. Since it’s my own money, I had the freedom to choose and budget to live with. I waited for Intel Skylake to be available and 256 GB SSD price to drop.

Summary: It's been worth it!

If you want to know details, read on….

First, there weren’t many choice of light laptop below US$ 600 in April 2016. The situation will change dramatically in 2017. LG Gram is definitely a good alternative.

I cap at US$600. I hope to change every 2 years, not 4 years. So the cost is $300 per year for me.

My requirements:

  • Weight near 1 kg. I ended up at 1.2 kg, which is still okay but I cannot put a case. A case adds weight 🙂
  • 13 – 14″ screen. 12″ is too small for me as I deal with long documents, spreadsheet, diagram, slides, etc.
  • Full HD. If it is not, the pixels can be seen. Full HD makes it sharper.
  • Small size. A thin bezel is a must as it’s hard to work in cattle class when passenger in front recline.
  • 256 GB SSD. 128 GB is too small.
  • 8 GB RAM.
  • Fast. This is relative. I’m just using Office, not heavy duty. Intel Core m3 at 0.9 GHz turned out to be fast for my need. Yup, just a low end CPU works wonder when complemented by SSD.
  • Fanless. I don’t like it hot nor noisy. A quiet place helps in concentrating.
  • Windows 10 or Mac. I actually don’t find major difference in terms of productivity. In fact, Windows 7 suits me better.

BTW, if you need a smaller and cheaper one, here is a review by Ariel.

What I could not find at $600 price point in April 2016:

  • Touch Screen. I could not even find it at $800 price point.
  • Hybrid mode. I love hybrid like Microsoft Surface and Lenovo Yoga. I think by 2018, all notebook will be hybrid.
  • 512 GB SSD.
  • Thin bezel, like Dell.

After some search, I found that Asus UX305CA was the best for the above requirement. There are many reviews on it, so I will just add complementary details.

What I find good:

  • Fast.
  • Quiet
  • Light. My Dell Latitude E7440 laptop is less than 2 kg. It’s amazing a few hundreds grams make a whole world of a difference.
  • Thin. My Dell is just a few mm thicker. I’m surprised a few mm makes a huge difference.
  • Battery last long enough.

What I find bad

  • No wired network. Not even with adapter. The wireless at office is not on Intranet network.
  • The lid is not easy to open, as it’s too thin. It’s a surprise since Asus has this model for a while now. It makes me wonder if Asus even tested it.
  • Surface is slippery. It’s a solid build with brushed metal. Asus should have carved it a little deeper.
  • No protection from minor dent. The 4 rubber buttons at the base barely protrude. Asus should provide larger and more buttons. I think a skin cover will fix it, although I have not tried one.
  • Sound is soft. In some cases, it’s hard to hear when the source quality was poor.
  • Screen cannot be open 180 degree. In fact, it’s only 135%.
  • It uses micro HDMI, not mini HDMI. Did not come with adapter for projector.
  • Confusing models. Asus produces many UX305 models, and they are not the same! As a result, it’s hard to buy case or skin as they don’t fit.
  • It came with outdated softwares. Lots of Windows updates have to be done as it has last year Windows.
  • Windows ecosystem. Be careful in updating drivers. I updated the Intel HD Graphic adapter to the latest (not the beta) from Apparently it resulted in black screen from sleeping! I had to get the the driver from Asus, which is several versions older.
  • Windows 10 settings assumed touch screen. Some can be easily configured, others you have to live with it. There is no Recent Document in Windows 10, and you have to get 3rd party.