Common Pitfalls When Developing Virtual Appliances

April 25th, 2012 No comments

A virtual appliance is a virtual machine preinstalled with operating system, middleware, and applications. It’s ready to run after a few configurations after powering up.

The benefit of delivering a virtual appliance is obvious – it offers better out of box experience due to simplified installation/configuration and complete isolation from other applications. The disadvantage is also obvious in that it potentially uses much more system resources than sharing a virtual machine with other applications. Like any solution, it’s all about when and how you use it with what for best results. This can be a long discussion by itself.

Cisco Nexus 1000V in VMware vSphere API

April 23rd, 2012 4 comments

While working at VMware, I always wondered what Cisco Nexus 1000V looked like from VMware vSphere API. Because I didn’t have access to such a system, I had no way to investigate further. This remained a myth to me until I joined VCE where I found many Vblock systems with Cisco Nexus 1000V as part of standard configuration.

Within VMware vSphere API, there are two managed object types defined related to distributed virtual switch:  DistributedVirtualSwitch, and VmwareDistributedVirtualSwitch. As you can guess, the latter type is a subtype of the first one.

Random Thoughts on Software Design

April 16th, 2012 No comments

Three months ago, I wrote an article Random Thoughts on IT Automation. I think it’s a pretty good style for capturing ideas without worrying much about content organization and flow. So I decide to use it again on software design which I have been practicing and thinking for many years.

Process

Recent Hot Topics in Software Development

April 15th, 2012 No comments

InfoQ, one of my favorite sites on software, recently posted an article Key Takeaway Points and Lessons Learned from QCon London 2012. If you missed the conference but are still interested in recent trends of software development, it’s definitely a great read.

I browsed through the article, and found several interesting points there including the comments on Spring framework that VMware bought in 2009. In the following, I just list a few interesting or surprising comments and tweets from the article. If you are interested who made the comments based on which session, just check the original article.

IT Infrastructure: A Software Perspective

April 8th, 2012 No comments

Weeks ago, ThoughtWorks published a new issue of Technology Radar compiled by its senior tech leaders. It has done a great job to track latest technology and market trends since 2010 (for archives, scroll to the bottom of this page).

Learning Netbeans Platform For Building Java Applications

April 2nd, 2012 3 comments

Recently I started to build a stand-alone Java application. The first thing I thought of was to use Eclipse, which I have been using since 2000. As you may know, the Eclipse family has a framework called Eclipse RCP (Rich Client Platform) for building standalone application. In fact, Eclipse IDE is now built on top of the Eclipse RCP framework.

Hypervisor is Containership

March 27th, 2012 4 comments

There are a few metaphors that help explain what virtualization is. Some suggested virtualization is like people (virtual machines) sharing a bus (physical machine) for efficiency and consolidation.

While the bus sample well explains the benefit of consolidation. It does not explain well isolation. Here I make up a new one: a hypervisor is like a containership, and a virtual machine is like a container that is stacked on the ship.

Virtualization Matters Except When It Doesn’t

March 26th, 2012 No comments

In my previous post “Physical is New Virtual,” I mentioned that I would talk about when you will need virtualization and when you don’t. This topic could be a little controversial as we at virtualization community all assume that virtualization is the way to go, which is true in general.

There are however use cases in which virtualization doesn’t make much sense. In the following, I will detail some of these use cases and explain why it doesn’t make much sense to use virtualization. Like everything else, virtualization doesn’t fit all.

Easy Switching RDP and PCoIP Protocol with VMware View

March 23rd, 2012 1 comment

I recently use quite a lot of VMware View because my development environment is a VDI desktop. By default, the PCoIP protocol is used and things just work as expected.

As a power user, I didn’t find PCoIP convenient sometimes, especially when copying files between my physical desktop and my virtual desktop. I ended up using a FTP server instead of drag and drop. It worked but not as quite convenient as I expected it to be.

Categories: Virtualization Tags: , , ,

vSphere APIs for Guest Operating System Management: What’s Special and When to Use It?

March 19th, 2012 13 comments

This is a wrap-up post of recent series on vSphere guest operating system management APIs. If you missed them, here are a few links to related posts: [Note: these are not related to the vSphere Guest API.]

How to Upload File to Guest Operating System on VMware

March 12th, 2012 31 comments

My last post explained how to download file from a guest operating system. Naturally this post is about how to upload file. After a quick sample code, I will discuss how to extend the capability of existing APIs that run program inside guest operating system. My next post will wrap up this series of guest related APIs in vSphere API.

Let’s take a look at a sample code: (To run it, first check out the simple prerequisites in a previous post)

How to Download File from Guest Operating System on VMware

March 11th, 2012 22 comments

In my last few posts I discussed how to use the Guest Operating System Management API to run program, set/read environment variables. From this post, I will talk about how to move files to and from a Guest Operating System, and advanced features like moving whole directory only implemented in the Guest Operating System Management API.

Set Environment Variables in Guest Operating System on VMware

March 7th, 2012 No comments

While reading my last post on reading environment variables from a guest operating system, you may wonder how to set environment variables. Don’t be disappointed if I tell you that there is NO direct support for setting an environment variable.

However, you have a workaround – use a command directly. Unlike reading variables, there is no standard ways to do it for different operating systems. You have to first figure out what type of operating system and then run different commands. For example, if you are targeting Windows family of operating systems, you simply run the following:

Read Environment Variables in Guest Operating System on VMware

March 6th, 2012 12 comments

My last post explained how to run, kill, and list programs in guest operating system on VMware. In that post, I mentioned that you can actually use the same API, GuestProgramDirector in particular, to read environment variables. I think the explanation is detailed enough for an implementation.

Still, a good sample provides more details. That is why I decided to write a quick sample just to show how to read environment variables. While trying the sample by myself, I did find more that I will discuss after the sample code.

Run, Kill, and List Programs in Guest Operating System on VMware

March 5th, 2012 25 comments

In my last article, I announced the Guest Operating System Management API for vSphere. As promised, I will write samples to show how to use the APIs. This post explains the GuestProgramDirector type with an example.

Let’s take a quick look at the following sample:

Announcing Guest Operating System Management API for vSphere

March 5th, 2012 13 comments

Having created a sample to run a program in guest operating system using GuestProgramManager, I started to write a similar one to show how to use the GuestFileManager. Compared with the GuestProgramManager, the GuestFileManager is much more complicated to use.

Java Code Style and Formatter

March 2nd, 2012 No comments

While writing samples for my book VMware VI and vSphere SDK, I developed a Java code formatter within Eclipse. Although there are several built-in formatters like Java conventions, Eclipse, and Eclipse 2.1, I still decided to create my own partially due to the special requirements by Prentice Hall, but mostly due to my personal flavor for Java code.

Run Program in Guest Operating System on VMware

February 27th, 2012 51 comments

Integrating VIX API into vSphere API is a great decision VMware made for its vSphere 5.0 release. Instead of working on two separate APIs, you now have one to deal with. It also solves the portability issue of VIX APIs which is tied to a specific platform – VIX has three versions for Windows, 32-bit Linux, and 64-bit Linux.

VMware Developer Community: Time to Update Contents

February 21st, 2012 No comments

Thanks to John Troyer and VMware community managers, I successfully changed my email for login with the community recently. During this long weekend I spent a little time checking out the developer community.

I found that the static contents out there are largely outdated. In my estimation, it hasn’t been actively maintained for more than one year. Listing outdated contents not only confuses the community, but also lets go a great opportunity to educate and influence developers.

Categories: Virtualization Tags: ,

VMware Partner Exchange 2012: Day Three

February 16th, 2012 1 comment

Today is the last day of VMware Partner Exchange 2012. There’s no keynote, therefore I went directly to breakout sessions.
The first one I attended was “SRM 5.0 and vSphere Replication – Understanding the Use Cases and Implementation Options.” The SRM used to manage the storage array that actually replicate LUNs to pair arrays in remote sites. This results in a restriction that the storage arrays must be compatible, which means they must come from same vendor and probably same model. When I was at VMware, I helped several partners with their storage array adapters for SRM. With vSphere replication, the replication happens at higher level thus the restriction goes away. Coming with the flexibility is slightly slower performance. Like anything else, you simply cannot have all the best but you can apply right technology for certain use case, for example, use vSphere replication for ROBO (remote office, branch office) use case.

Categories: News & Events, Virtualization Tags: ,