Process or Principle: Which is More Important for Software Development?

June 18th, 2010 No comments

While reading Who Says Elephants Can’t Dance by Lou Gerstner, the following paragraph caught my attention and made me think about it in the context of software development.

We started with a statement of principals. Why principals? Because I believe all high-performance companies are led and managed by principles, not by process. Decisions need to be made by leaders who understand the key drivers of success in the enterprise and then apply those principles to a given situation with practical wisdom, skill, and a sense of relevancy to the current environment.

Although managing a company and managing a software project are two different things, I believe above paragraph is perfectly true for software development as well. Let’s paraphrase it:

We started with a statement of principals. Why principals? Because I believe all high-performance software development teams are led and managed by principles, not by process. Decisions need to be made by leaders who understand the key drivers of success in the software development and then apply those principles to a given situation with practical wisdom, skill, and a sense of relevancy to the current project.

Sounds true? For your curiosity, the principles Mr. Gerstner wrote for IBM in 1993 were:

How to Notify All the Active vSphere Users?

June 16th, 2010 No comments

As system administrators, you may have used the feature that sends a message to all users. It’s very helpful when you want to change something that might affect others, or ask for particular attention from new users who log in later.

It’s simply 3 steps as described vSphere Client Help:

  1. From the Home page of the vSphere Client, click Sessions.
  2. Type the message in the Message of the day box.
  3. Click Change.

The message is sent to all the currently login users, and until the message is changed, any new users see the message upon logining to the vCenter.

Now, how to do with the API?

Categories: vSphere API Tags: ,

Web-Based Datastore Browser in vSphere

June 14th, 2010 2 comments

Most of us are familiar with MOB, the Web based managed object browser.I’ve discussed the little known secret of it, and built a tiny yet powerful API on top of it.

There is yet another useful tool in vSphere you can leverage: Web based datastore browser. This tool allows you to use a standard Web browser to browse the datastores. You can access it using the following URL:

The Cloud of 2002 and Earlier: More Than a History

June 9th, 2010 1 comment

I read the book Who Says Elephants Can’t Dance by former IBM CEO Lou Gerstner several years ago. For people don’t know the author, Lou Gerstner became IBM CEO in 1993 when the company was on its way to losing $16 billion. The book is about his insider story of IBM’s historic turn around. Unlike other books by top executives, the book was really written by the author himself.

The book is just great with insightful observations and thoughts. So when I saw it in library weeks ago, I borrowed it back home again. This time I found something new or something that I didn’t pay enough attention the first time. Lou actually had the buzzword “cloud” in his book of 2002. Let’s see what he had to say about the cloud:

It had to be in one of these early discussions with Dennie that I was introduced to “the cloud” – a graphic much loved and used on IBM charts showing how networks were going to change computing, communications, and all manner of business and human interaction. The cloud would be shown in the middle. To one side there would be little icons representing people using PCs, cell phones, and other kinds of network-connected devices. On the other side of the cloud were businesses, governments, universities, and institutions also connected to the network. The idea was that the cloud – the network – would enable and support incredible amounts of communications and transactions among people and businesses and institutions.

Comment: The meaning of the cloud seems limited to networking, and quite different from what’s known today. Networking is still important today in the new cloud because the connectivity is a must for accessing cloud services.

Categories: Cloud Computing Tags: ,

Which Web Framework is the Best?

June 8th, 2010 6 comments

Web based applications become more and more popular. Not only normal Web sites but also enterprise management systems are adopting this to deliver the functionalities due to the benefit of zero installation on the user’s side.

There are a lot of Web Frameworks today, probably more than anyone can grasp. For each programming language, there is one or more Web frameworks that help you to create Web based applications. Choices are definitely good but may give you a hard time to decide which one is best for your project. More often than not, there is no single best one that suits all your need. In other words, you have to decide the best in the context of your problem.

What should be in the thought process to a decision?

  1. Programming language. You have to decide what programming language to use for your Web applications. With the preferred language in place, you can only use the frameworks supported by the language. This usually limits much fewer options to your list. The most popular programming languages for Web applications are PHP, Java, C#.
    The choice of your programming language is not a choice sometimes. The most rational choice is to use a programming language you and your team are already familiar with. If that happens to be C, you then want to go down your list. Learning a new programming language and a new framework can be daunting. Not long ago, I tried to learn the Lift framework based on Scala language, and found it’s not that easy at all.
    If it’s a team project, you have to find one language that all or most people are comfortable with and at least one person are good at.

Standardizing On Oracle is IT Cure? Testimonial for Cloud Computing

June 7th, 2010 No comments

In the May 3rd issue of InformationWeek, Bob Evans wrote an article “Oracle’s Phillips: Standardizing On Oracle Is IT Cure.” I am sure most IT companies won’t agree with it even though Oracle is now a full stack company after grabbing Sun MicroSystem not long ago. The big players probably want to claim the same for themselves, for example, standardizing on IBM is the IT Cure.

Digging further into the article, we can find some interesting arguments by Phillips:

What CIOs are struggling with right now is trying to find a way to get the opportunity and ability to manage the entire stack with a single management tool that’s predictive about that stack’s going to behave, how the change management around it is more prescriptive and planned, and where they really know how to upgrade and patch the entire stack.

All the dependencies between these layers – the middleware, database, storage, software, systems — they’re all related but unpredictable. And that’s the cycle they’re trying to get out of it — all that need to constantly provision and manage — it’s a huge cost, and it’s kinda boring and takes lots of people to do it, and it’s risky.

Categories: Cloud Computing Tags: ,

Securing Your Applications with Apache Shiro

June 2nd, 2010 No comments

Security is a very important aspect of application development. Tonight I learned a new security framework called Apache Shiro, the successor to the JSecurity project.

It’s a great talk given by the founder and lead of the project, Les Hazlewood, who relocated to Bay area not long ago for starting his company katasoft. The presentation ran over for one hour but still got most people seated.

Really Easy Way to Find out What’s New in vSphere API

June 1st, 2010 1 comment

I am probably one of a few persons who read the VMware vSphere API reference extensively because of my book. When I read it, I normally quickly click the Managed Object Types link in navigation pane on the left side, and then choose one type for the details on the right side.

Categories: vSphere API Tags:

Continuous Deployment With Virtualization and Cloud: An Idea for Startups

May 28th, 2010 2 comments

If you have a new hire, do you want him/her to push code into production system on the very first day? You may be OK with this sometimes. What if it’s a trading system with real money involved? More often than not, you come up with a different answer.

On Wednesday night, I attended a seminar organized by SDForum SAM SIG at LinkedIn headquarter. Pascal-Louis Perez and David Fortunato from Kaching.com engineering team gave a great talk on how they streamlined their software development process to the extent that they normally release 20 times a day to their production system. It’s quite a safe process that it’s OK for a new hire to push code on day one.

VMware SDK Support Program: It’s Available to Everyone

May 25th, 2010 2 comments

Many people know VMware offers support on products, but not many know VMware actually started to support SDKs. I occasionally got questions on the SDK support. So I think a blog should help here.

A little history first. VMware used to provide support to partners who are part of Technical Alliance Program (TAP), but not to others including customer. VMware partners can also propose integration projects which may get people like me to provide architectual guidance. After SpringSource coming on board, Marty Messer took over the support program and expanded it to everyone as a paid service recently.

What You Can Buy?

The paid support is available in two levels:

Categories: vSphere API Tags: ,

VMware vSphere Fault Model and Common Faults

May 24th, 2010 No comments

A fault is like an exception in Java or another modern programming language. It’s a data structure that holds information about an exceptional situation. Most of the faults are raised by the server; you can normally determine the cause from their fault names.

Close to 300 fault types are defined in the vSphere API. Let’s look at the top level hierarchy shown as follows.

 

The supertype for all faults is MethodFault. It is extended by InvalidCollectorVersion, InvalidProperty, RuntimeFault, and VimFault. The first two faults are not further extended to any other fault types.

Categories: vSphere API Tags: ,

Innovation, Openness, Community: Celebrating 2nd Anniversary of vSphere Java API

May 21st, 2010 No comments

It’s been two years since the first release of VI Java API on May 22, 2008. As of today, this VMware sponsored open source API has been downloaded more than 8,200 times including 1,000+ direct access to the source code from SVN. More importantly, the API has been widely adopted by VMware Community including partners and customers in their products and operation environment. I was amazed to hear success stories from companies which use this API to manage 10,000 servers.

Besides Java, people also started to use JVM languages such as Jython and Groovy to leverage the API. I think that is the direction for the API to be used by system administrators who look for an alternative to vSphere PowerCLI which is a great product with no choice but on Windows only.

How Was It Started?

The API was started because of my personal experience while helping VMware strategic partners. I found the Web Services SDK hard to use, and related samples hard to follow because of the procedural nature of Web Services. So I started to think how to solve the problem. During March and April 2008, I wrote code every night on my old Compaq notebook after helping my kid to sleep at night.

Categories: vSphere API Tags:

Why Google Needs VMware?

May 20th, 2010 1 comment

If you think Google is a superman and doesn’t need anyone, think twice. Yesterday in its Google I/O developer conference, it announced its Google App Engine for business. The notable features include centralized administration, a 99.9% uptime SLA and heightened security. It also announced the partnership with VMware on cloud portability.

Why does Google need VMware?

In short, it’s about Enterprise. As the “for business” in the name explains, the new service is targeted for enterprises which are not really Google’s strength.

Categories: Cloud Computing Tags: ,

Building Do-It-Yourself PaaS: My VMworld Session Proposals

May 19th, 2010 No comments

Most people who are interested in VMworld already know the public voting for the proposal is now open till 26th. If you would like to hear about specific topics, it’s high time to cast your votes.

For each track, all the presentation proposals are listed together in one page. To quickly locate a particular proposal, you can use find feature of your browser. Once you login, I would suggest to browse all the proposals and vote for those you find useful. Casting a vote is just two mouse clicks: one for voting and the other to close the confirmation message box.

Two More Jython Samples Managing VMware vSphere

May 18th, 2010 2 comments

Yesterday I posted an article introducing the virtual appliance Timo created last week. I am sure some of you have given it a try. I hope you liked it. If you haven’t done so, you can download it from Timo’s post.

The virtual appliance ships with only two samples. Definitely not enough. That is why the community needs to work together so that we can match the functionalities of vSphere PowerCLI.

The following are two samples by David Rousseau who is an independent consultant living in Paris. Thanks for his permission to publish his code here. He owns the copyright of the code. If you want to use it, you can contact him or leave a message in this post.

  1. jython_rest.py: This code shows how to use the tiny Client REST API I created. Check out this article for more details of the API itself.
  2. jython_test.py: list all the hosts, resource pools, virtual machines and vApps that are found at the server.

To help you understand the code, I added a little comment before each file.

VMware vSphere PowerCLI Alternative on Linux?

May 17th, 2010 3 comments

After creating a light virtual appliance last year, Timo Sugliani continued with a full fledged version of virtual appliance with all you need for vSphere development with Java and Jython. This is what Timo called “my linux powershell toolkit.” The biggest advantage is that you are no longer limited by Windows as your development platform.

BigDog: Next Big Thing After Cloud?

May 14th, 2010 No comments

This week I attended an exciting seminar by Marc Raibert. He is a former MIT Professor who founded the Boston Dynamics Corporation in 1992 as a spin-off from MIT. The company develops a quadruped robot called BigDog among other types of innovative robots, including PETMAN, an anthropomorphic robot for testing equipment, RISE, a robot that climbs vertical surfaces, SquishBot, a shape-changing chemical robot that moves through tight space, and etc.

The BigDog is different from other robots in that it’s designed to operate in rough terrain like rocky, muddy, sandy and snowy surfaces. It can walk, trot, jog, climb a slope, follow a person, and even dance. Marc showed several cool videos, some of which are actually available on Youtube as well.

As you may have known, robots have many real world use cases. For example, it can help to carry weapons in battlefields, move heavy logistics for exploring wild areas, etc. In daily life, it can be a house maid who can help to handle house chores, take care of your kids; it can be a replacement for the Segway.

Real-time Communication Cloud: Can You Take Advantage of It?

May 13th, 2010 1 comment

Like it or not, many technologies in IT industry have a new tag called “cloud” these days. Tonight I came across yet another one at a SDForum emerging technology SIG meeting. It’s a great presentation Tropo & Moho: Disrupting telco with simple cloud-based communications by Jason Goecke, VP of Innovation of Voxeo Labs.

The company was started at Silicon Valley in late 1990s’ and almost went belly up in the Internet Bubble. It then relocated to Orlando FL and became profitable slowly thereafter. Now it’s emerging again with some cool technologies, mainly the communication cloud service.

Their cloud service is quite different from what most cloud companies offer in that it helps to build voice, IM related applications. To do that, the computing cloud has to connect to the telephone system, and be able to handle voice in real-time. This sets a high bar for most start-up companies. If we have to put the service into one of the IaaS, PaaS and SaaS, it fits in the PaaS where the platform is for real-time communication applications.

How to Enable ESX Server Logs for Troubleshooting

May 12th, 2010 6 comments

Examining logs is an important way for debugging and troubleshooting a system. There are about ten log files in the ESX server for the hostd agent, which listens API calls, with the same naming pattern as hostd-?.log under the /var/log/vmware directory. The hostd-index file has the number of currently used log files.

The log entry has a similar format to that of VC server logs. Following is a quick sample:

[2008-06-21 07:24:40.769 ‘SOAP’ 64834480 trivia] Received soap request from []: checkForUpdates

The log level can be configured in the /etc/vmware/vpxa.cfg file. Just look for a section like the following. The possible levels are the same as those of VC logs: none, error, warning,info, verbose, or trivia, in an order from less to more detailed messages.

How to Fix Task Timeout in vSphere?

May 11th, 2010 No comments

Task management is an important part of vSphere API. It enables asynchronous calls by returning a Task back before the work is actually done at the server side. If a task takes too long (for example, more than 15 minutes to create a virtualmachine snapshot from VirtualCenter), however, it can time out before it finishes. It means you lose tracking of the task.

You can easily fix this issue by changing the configurations. On the ESX server, add the following to the /etc/opt/vmware/vpxa/vpxa.cfg file:

<task>
<timeout>7200</timeout>
</task>

and

<vmomi>
<soapStubAdapter>
<blockingTimeoutSeconds>7200</blockingTimeoutSeconds>
</soapStubAdapter>
</vmomi>

Remember to restart the service:

Categories: vSphere API Tags: , ,