Fishworks: A Brief Introduction
By cindi on Nov 09, 2008
Fishworks is the name of a team of engineers at Sun Microsystems. The FISH in Fishworks is an acronym for Fully Integrated Software and Hardware and is the underlying software that unites operating system functionality, a pleasing user interface,
and hardware capabilities to create a plug-it-in-and-it-just-works
experience for appliances such as that found in the new Sun Storage 7XXX product line.
In some sense, Fishworks was born some 8 years ago with some key innovations that went into Solaris 10 for storage (ZFS), observability (DTrace), management (SMF), and RAS (FMA). These technologies delivered the right set of abstractions and capabilities necessary to build our appliance software. The Fishworks software stack uses these technologies and other operating system libraries to create the environment in which users and administrators interact via the UI. The control point for appliance operation, configuration, and management is not the operating system but rather the Fishworks appliance software. The operating system can be thought of as the "micro-code" in our software stack and the appliance software controls base operating system functions and hardware for a simple, just-works experience.
As an example, all distinct functionality is expressed as a SMF service in Solaris 10. The appliance software uses SMF libraries to monitor, configure and restart all services in a system when changes are directed from our UI. The appliance software also permits other information to be integrated with SMF manifest and methods for a fully integrated experience. The NFS service, for example, is controlled by traditional SMF methods for starting and stopping NFS daemons but we also integrate NFS specific configuration properties that may be update on-the-fly. The Fishworks software takes care of updating the new configuration properties and restarting the NFS service. In Solaris, this task would require the contents of /etc/defaults/nfs to be modified and the NFS SMF service to be restarted in a multi-step process. In a Fishworks appliance, the same set of tasks are accomplished from a single UI dialog. SMF is but one of the Solaris 10 technologies we leveraged for the Fishworks appliance software. ZFS, DTrace, and FMA play key roles in storage, analytics, and system health monitoring.
The Fishworks software is designed to be extensible and applicable to other types of appliances. New appliance prototypes may be created by simply adding a new "class"
and the necessary metadata to describe features and purpose. Over the last few months, I've prototyped a couple of non-storage appliances. I was amazed by how quickly I had a functioning appliance up and running. You can imagine how powerful this is going forward. We now have the foundation to rapidly build new fully integrated systems and I'm really excited to continue work on some new prototypes and look for ways to build on the current developer environment. If that wasn't enough, I get to work with an incredibly talented bunch of people.