Saturday, June 20, 2009

Hiatus

The blog break will continue for a while. I'll be back once "desktop delivered from the datacenter" goes mainstream. Let's say when it goes big.

Monday, April 09, 2007

Startup Watch

Atto Devices

Trigence

Sunday, March 04, 2007

Innovation -- Open, Closed, whatever makes you happy

I have been recently hanging out/spending more time with budding entrepreneurs near menlo park joints. The bad thing about sand hill road is the fact that it highlights a false sense of triumph. Time is skewed to entice young kids to believe that good grad school education, good java script skills and a thousand 2nd degree friends is what it takes. Successful ventures are compressed for showing pure gravy efficiency and failures are expanded to make the big picture look rosy.

B-School kids are very fond of delivering fancy quotes. *To develop and sustain business excellence, a company must continuously innovate in the very way it creates business value in the marketplace* is a line i recently heard from a friend who hired 3 business folks and 3 engineers for his first venture. With passing time i have started appreciating the words of wisdom from old, accented and *came to states with little money* successful old timers in the valley. *People who produce/innovate/create are the most respected individuals in any industry* tops my list. The crux of the last `unrelated to the subject` 13 lines is that innovation is a relative term.

Let me list down some of the notable innovations in the virtualization market:

-- BT based x86 virtualization
-- x86 hypervisor
-- V-Motion
-- VSMP
-- DRS
-- P2V
-- Transparent memory sharing
-- Virtual Rights Management/ACE
-- Dev/Test Lifecycle Management/Akimbi
-- Para-virtualization
-- Seamless windows apps on Mac (Coherence)
-- Hot memory, processor, IO device addition to a VM
-- KVM

I can't really list down everything but this is a fair attempt to show that there has been good innovation in the market. The thing to note is that there are companies/projects other than VMware who have brought innovation to the market. Competition is good for the customer. I respect engineers -- people who innovate and bring freshness to the market. I don't care if they are settled in bellevue or drive 45 mins every morning through 280 or 101. As long as the market is fair and people running the business have GPA > 3.0 and have taken at least 3 CS courses it should be a game. *Computers in modern society* credits do not count.

For folks who follow my blog i promise to be more active. Have been busy stretching the long tail. Every veteran knows that to defeat the house one has to be really good with the poker face.

Favorites of the month:

Blog -- The Leveraged Sellout
Book -- Naked (funniest book i have read in years)
Startup -- BladeTop

Sunday, October 01, 2006

The long tail




Chris Anderson delivered a bestseller by calling pareto distribution a long tail.

Here is an attempt to apply the long tail concept to the desktop/app delivery market.

PC is an application container. A desktop under your desk, a thin client backed up by a blade PC in the datacenter, a thin client backed up by terminal services or Citrix based applications, application streaming to a real or virtual desktop and virtual desktop infrastructure are some of the ways to access applications.

With VDI, the tail in the desktop market has to get longer. Some startups are also going to stretch the tail.


Pardon my paint skills.

Friday, August 25, 2006

VDI Server Sizing and Scaling

This will be useful for customers who believe that the future is thin.

Note: Like other SBC products the best test for VDI server sizing is with your own workload, since the consolidation ratio depends on load, as this paper/study has shown.

Sunday, August 06, 2006

Separation of Concerns

Dijkstra, a famous computer scientist (Turing Award recipient), described his thoughts about Separation of Concerns in a seminal paper titled "On the role of scientific thought". The 10k feet idea (courtesy - wikipedia) is to *Design systems so that functions can be optimized independently of other functions, so that failure of one function does not cause other functions to fail, and in general to make it easier to understand, design and manage complex interdependent systems.*

If you have ever taken a software engineering course or have worked on a project with more than five developers, you have to accept that SoC is the holy grail of software development. In recent years SoC has been reinvented in different forms for application development for web. Call it Model Driven Architecture or the latest and greatest Aspect Oriented Programming model - the fundamental idea is to cleanly segregate different vertical aspects of the application.

Gang of four sold over a million copies -- selling the idea of common patterns for designing reusable API's and SoC. Seperate logic from presentation is the de facto standard for every enterprise application. Web is the only successful platform that works by mixing procedural and declarative languages. It is bad but without Design Patterns it is not even science. Describe MVC; Decorator; Factory; Adapter pattern are common phone screen questions in the bay area.

SoC has been a successful model for writing user applications. Can SoC be applied to Operating Systems?

I am not arguing about microkernel vs monolithic kernel debate. I am asking for separation of concerns in operating system services. I am thinking loudly about how virtualization and multicore technologies can be applied to simplify Operating Systems. Bloat-free, robust and enterprise ready.

The only possibility is to offload some vertical aspects of the system to secondary partitions. Security, backup, mgmt agents to name a few.

VPro is the first step towards SoC on the desktop OS side of the world. Virtual Appliances on the server side is the beginning of SoC. Virtual Appliances need help from hypervisors to handle vertical aspects of the system - and that rosy panorama is still far away.

I for one, would like to run Mac as my eye-candy + browsing OS (primary), remote the windows apps i care about from the company server and run Symantec as the security partition.

With multicore and virtualization - it should be possible in a few years.

Thursday, June 15, 2006

Enterprise Grids using Virtual Infrastructure


If you look at the progress of Virtualization in the last few years one thing you will realize is that not all the ideas are new. A lot of them are borrowed from the old mainframes era. What matters most is the ability to extend the old ideas to solve new problems. For example - mainframes partitioning models do not address the new problems of present day data centers. IT infrastructure needs to manage itself. The keywords are automated, self healing and embarrasingly reliable.

Therefore the message from palo alto is to move beyond partitioning !

Grid Computing has really advanced in the last few years and commercialization of a lot of academic projects has sparked interest in new ways to find idling resources in the data center.

Even the grid computing model is borrowed from the mainframes era . Specifically enterprise grid computing which is different from the community service desktop cycle sharing projects. Enterprise Grids are more focussed and are more or less the old school mainframes era *batch jobs* rejuvenated with present day middleware.



A naive classification of grid jobs :

1) High Compute Jobs - Low Volume : Employees need to run prediction models for the next day. They submit jobs to the company web interface with the new data and some inputs.

2) High Compute Jobs - Parallel Jobs : MPI/PVM jobs. The applications are written using multiprocessor message passing interfaces. Jobs can leverage parallesism. Some jobs are sensitive to interconnect speeds. Video rendering etc.

3) Low Compute Jobs - Very high volume. EDI jobs. Convert transaction from data format A to data format B. Million transactions/minute. Also called high throughput jobs.

So does present grid computing products like Platform LSF, United Devices Synergy, Sun SGE
etc work on virtual end points ?

A grid infrastrcture usually consists of several different components. For example, a typical grid middleware will have:

  • Gatekeeper/Management Server: To manage what nodes and users are part of each Virtual Organization.

  • Resource Discovery and Monitoring : So applications on the grid can discover resources that suit their needs, and then manage them. Also called match-making.

  • Job Management: So users can submit tasks (in the form of "jobs") to the Grid. Results notification and end to end glue.

  • Security, data management, etc.

Existing grid solutions on virtual end points should just work if every Virtual Machine in the grid is treated like a Physical Machine. One fundamental difference between present grids and future grids is the added value virtualization will bring to the table. Any application. Any Operating System. Bettter monitoring. Compute Cluster is not a segregated part of the organization. It can co-exist with other services like IT and production workloads. Think Resource Pools !

My friendly neighbour developer also wants to know if virtualization can change the way applications are written. Here is an attempt to show the possibilities :

High throughput jobs like EDI don't work and scale with push based job scheduling. The monitoring approach in distributed systems usually work when the monitoring interval is more than a minute. Pull based approach where every node pulls the next job works better for high throughput.

So how about a new primitive for grid programming : VM-SPACE.
All nodes in the grid have access to a centralized single space provided by the virtualized infrastructure. Any application. Any OS. Any language !
High bandwidth on local box. NUMA semantics on local network and overlay topology over WAN.

So the app writer uses something like :

import com.vmware.VMSpace ;

class WallStreetGridApp {
// Init and the other voodoo goes here.
while (!armageddon) {
// the space abstraction is *any //language* semantic
IJob job = (IJob) getNextJob (VMSpace space) ;
processJob(job);
}
}

I am not really suggesting something new. If you were a server-side enthusiast in the last decade you must have heard about jini or java spaces. Gigaspaces is still around. I am only suggesting lowering the abstraction from JVM to the VM layer.

Which brings me to the question - How much of innovation is optimization ?


Monday, June 05, 2006

Self-optimizing IT infrastructure

Self optimizing IT infrastructure delivered. Initiatives are passe.

In engineering terms VMware has delivered the autonomic nervous system of the data center. Hats off to the VI 3 team !

Friday, May 19, 2006

Application Virtualization, Quad Cores and beyond

May 18, 2006
Rumor : Microsoft to buy the 2nd largest application virtualization vendor

2003
Microsoft promises to end the DLL hell

2005
Windows Vista to end the need for reinstalling due to "WinRot?"

2005-2006
Application Virtualization matures. Altiris, Softricity, Appstream and IBM are some of the players.

Application virtualization climbs higher in the value chain. Application packaging and deployment is easier, OS installation and deployment across 1000's of hosts is possible, checkpointing and moving applications across hosts is commercial, network based instant application provisioning is available, Virtualized file and registry sandbox works and licensing compliance makes sense.

2005
Citrix unveils big plans

2003
Rumor : Citrix to buy Softricity

2008
Quad core enters the market

1974
As per Goldberg & Popek x86 is not virtualizable.
Sensitive instructions should be a subset of privileged instructions.

1998
VMware virtualizes x86.

2009
Major hardware vendor declares the new 8 way (quad core) machine as the modern *mainframe*.

2009
Customers enjoy instant OS provisioning + application provisioning +
a lot more (i really mean a lot more) from a single dashboard.

2011
Microsoft releases *bare-metal* partitioning software.

You don't have to be a rocket scientist to guess which z/OS will run x86 mainframes in year 2009.

Sunday, May 07, 2006

FireEye & Avinti

Another exciting use of Virtualization. Network Access Control.

"FireEye technology uses virtual machines as a sort of crash test dummy for network security. Potentially damaging network traffic is sent into the virtual machines where the impact can be analyzed. If suspicious traffic is revealed, a responsible course of action can be taken to stop the network infection. No actual machines are harmed in this process and the damaged virtual machine is fully restored for reuse."

More details at Fireye website.

Avinti iSolation Server is trying to do the same for email protection.


Nice to see that naive ideas like VM honeypots are maturing into commercial products.

Tuesday, May 02, 2006

Internet Operating System

There has been some hype lately around executable internet applications. Some folks also call it Internet/Web Operating System. So what is new ? Don't we have java applet, java webstart and active-x binaries that are downloaded from the server in real time.

No. This time the story is different. There are two different cases :

1) Any application can be streamed to an execution engine installed at the client from the server. Internet access to real thick applications. The application has to be written in a special way. For this new web platform or as the founders call it the Web OS. The developer has to separate the client and server pieces. The beauty is that the developer will not have to worry about the network. He will write the application for the local machine and the application server (the innovation) will take care of the delivery across the wire. The communication is actually objects and not XML. For the more curious here is a startup trying to create Executable Internet.

Finally the browser will run a new protocol something like ek to access the application.
ek://ek.ektasis.com/jchessboard.JChessBoard (you will need to install the client framework to access this application)

2) Browser based Application Delivery : I heard Srini's concept at the startup school event i attended last week at Stanford. They are trying to create a framework for writing applications that can be deployed easily on the browser. We have seen applications like calender, writely and iRows that move thick applications to the browser. YouOS is trying to make this process easy.

Browser is the new desktop. All applications run inside the browser. There is a new interface to create such applications provided by YouOS. Since the application is written for YouOS it can run on any OS. Some examples. The idea of compiling programs online and in a browser is interesting.

I laughed at this new notion of Operating Systems. Especially because i work for a company that really knows about Operating Systems.

People are really high on the software stack these days !

Saturday, April 29, 2006

Startup School

I attended this crazy one-day Startup School event organized by YCombinator guys at Stanford today. It was fun. Lot of different views. It is always nice to see 300 geeks in a single room.

Here are my notes :

Mark Fletcher of bloglines fame mentioned that they keep a lot of stuff as flat files. Everyone wants to provide google like quick response. Memcached is good but it doesn't work and scale for new Web 2.0 based solutions. So cache the flat file and dispatch it ASAP is the new trick. Replication is also easy with flat files. Databases are good if data is huge and only a subset is required at the client but for new use-cases like CMS, Wikis and Blogs flat files are better.

Ann Winblad mentioned that the point to consider while going for the kill is to decide
whether your technology is a pain killer or a vitamin.

Caterina Fake described the story behind Flickr. Caterina and others were trying to create a multi-player game under the ludicorp banner and the backend team was slow to match the front end development speed. The front end team had a lot of extra cycles so they went ahead and created Flickr. Flickr turned out to be a hit so they decided to pursue it full time. Talk about clear ideas !

Om Malik
said people in the tech community should thank the cubicle culture. Companies like youtube are getting extra traffic during the after lunch (1:00 - 2:30) hours because people don't like to work after lunch.

Chris Sacca used the opportunity for another google recruiting pitch.
Yes we know that free food fosters creativity. People can have food and discuss new ideas.
I wish he had touched the Google float controversy !

The moment of Zen was a new founders answer to the question
"What would you like to correct if you get to start again"
He said : "I would like to use LISP"

30% of the crowd got the joke. This can only happen in Silicon Valley !

Monday, April 24, 2006

VDI : A case for better security and manageability in the flat world

Here is an introduction.

Someone with more wisdom not so recently said "The playing field is being leveled. Several technological and political forces have converged, and that has produced a global, web-enabled playing field that allows for multiple forms of collaboration without regard to geography or distance - or soon, even language".

My friendly neighbour CIO likes to swear at the notion of flat world. He claims that the flat world is only the people side of the picture. What about the data? Business works on information and even though people are mobile and spread all across the park the problem is that the data is still at the headquarters. He also claims that things will remain the same for quite some time to come.

Does the classic terminal server model solve the new problems of the flat world?

Can WAN acceleration technologies solve the data and applications proximity problem for all the cases. Do you still live in the world of legacy applications that run into problems with the classical server side application publishing model.

Are you worried about this.

Do you belive that new technologies can help dev/test teams across the different corners of the globe to work more efficiently? Can people working across different shifts in an offshore call center share the same hardware resources? Can servers in the finance market be used for hosting desktops in the day and for number crunching at night?

Manageability is an overused term but how do you plan to manage the 10k desktops in your enterprise. Are you trying to address the issues of application diversity, licensing, quick desktop provisioniong demands from the top of the hierarchy, application upgrades, patch management, internationalization and help desk calls.

How much time does it take to increase the resources (cpu, memory) assigned to a desktop in the real world. Do you think virtualization can help. Does current terminal server technologies allow server abuse. Do you want to have more control over the computing resources used by each user in your department?

We all know that G: is coming. How many people in your organization will survive on stateless desktops? I should rephrase that. How many problems will be solved if the desktops are stateless.

Next time the sales guy visits you ask him to do away with the old school application publishing ppt !


Saturday, April 08, 2006

Genesis : The new box in town is Virtualization

It is imperative for all of us in the tech community to separate vaporware from real technology that will change our future. Thanks to millions of dollars spent by big vendors we come across new buzzwords every now and then. Some of them are promising, some of them are new wrappers around old candies and a lot of them are an unremarkable display of marketing trash.

Let me try to focus on the utility computing side of the tech world.

Wikipedia/SearchCIO says :

"Utility computing is a business model whereby a service provider makes available computer resources to their clients and charges them for the usage rather than the hardware. Like you pay the gas company or the electric company for its service based on usage, computing resources are metered and the user charged on that basis."

"
On Demand computing is an increasingly popular enterprise model in which computing resources are made available to the user as needed. The resources may be maintained within the user's enterprise, or made available by a service provider "

"
Grid computing is an emerging computing model that provides the ability to perform higher throughput computing by taking advantage of many networked computers to model a virtual computer architecture that is able to distribute process execution across a parallel infrastructure. Grids use the resources of many separate computers connected by a network (usually the Internet)
to solve large-scale computation problems. Grids provide the ability to perform computations on large data sets, by breaking them down into many smaller ones, or provide the ability to perform many more computations at once than would be possible on a single computer, by modeling a parallel division of labour between processes."

"Autonomic Computing's aim is to create self managing computer systems to overcome their rapidly growing complexity and to enable their further growth."

Distributed Computing
Model has over the years evolved from client server computing to multi-tier computing, the end to end connection model has evolved into peer to peer discovery, the web services loosely coupled model has evolved into syndicated feeds based client assembled mashups. Is it time for Utility Computing to evolve ?

I tend to disagree with marketing folks who separate utility-computing from on-demand model or grid computing paradigm. The essense of the technology is to overcome the challenge of enterprises, universities and collaborating organizations to efficiently use resources. It is therefore by definition a way to provision/find new resources to meet the fluctuating demands of the business. So utility computing in my book is not buying computing like power from a service provider. Utility Computing in my book is the infrastructure support to enable the convergence of autonomic, grid and on-demand computing. It is about satisfying the application in real time with the changing requirements on the wire, on the disk, in the socket and on the DIMM.

Where are we heading ? Is this a new paradigm in distributed computing. A model where computing resources, the peripheral fabric and the causality of service composition is created on the fly to satisfy the changing demands. A model where the business rules of the company are dictated by an adaptive resource broker that can allocate/deallocate resources to different services in the organization. A model where the resource allocation is based on network intelligence. The resource ownership is not the issue here. The issue is the flexibility in determining the demands and provisioning the services with the computing container (hardware, operating system, applications, customizations, network/storage fabric) on the fly.

Have we made enough progress to effectively determine the changing demands of the
applications ? Can we efficiently grab/create new resources in real time ? There is still a long way to go. Most of the challenging problems in computer science have been solved using some sort of indirection. This time, for this problem, i for one belive that virtualization is the indirection.

Software industry has been plagued with diversity for good and bad. Big vendors have big ego's and it has taken quite a long time for computer scientists to break the walls so that all kinds of software can interact. The next obstacle is breaking the one service in one *will work for the next 2 years* and *will not need to expand or shrink* box problem. Software running on the box will never be able to grow the box with the changing requirements on its own. Operating Systems are designed to control the hardware. They are not designed to satisfy the fluctuating demands of the service.

The new box has to sit below the old box. The new box has to promise that it will focus on new problems. The new box is not constrained. The new box offers mobility. The new box is not only Systems. The new box is the Application. The new box is Utility Computing.

The new box in town is Virtualization !