It’s not just about engineering a system. It is about the expertise to make the most of it.
In my last post I have discussed Oracle Exalogic as the emperor who has no clothes. In that post I have discussed what Oracle Exalogic was not. That was easy. But the more interesting question is this – what should the next generation of systems really be? What do enterprises need from their systems today? Oracle talks about engineered systems, “optimized for performance levels that are unmatched in the industry”. Having worked with hundreds of large and small clients over the years I think what is needed today goes further than that. It goes well beyond merely engineering a fast system to run a vendor’s software stack. Performance is important, but it is not even the most important factor. Enterprises I work with are yearning for a whole new approach to computing.
Most IT departments today employ general-purpose systems, but they expend a lot of time and expertise in the process. General-purpose systems provide a lot of flexibility, but that flexibility requires a variety of advanced skills to make the system work. The alternative approach is to take advantage of the simplicity of purpose-built hardware appliances. But those do not always fit the need and so manual optimization goes on. Ideally companies are looking for the best of both worlds: the flexibility of a general purpose system, and the simplicity of an appliance. The question then becomes, can IT department get the best of all these options in one system? The complexity of today’s IT environment requires knowledge and proficiency that may not even reside in internal teams. Thus, the computer industry must go well beyond delivery of components, or even integrating components and engineering systems. I think vendors need to deliver integrated expertise, right into the systems they build and sell.
Yes, systems with integrated expertise. Think about all the time and effort required today to design, specify, procure, integrate, and deploy not only the server but also all the software on it. Just to get it up and running. Then think what it takes to configure the development, test, and production environments and how long it takes to provision new workloads onto your system, no matter how fast is the software running on it. Then, of course, there is the ongoing effort to customize and keep the system tuned, scale as demands grow, maintain and upgrade the various software and hardware components involved. You need experts for all that. Now imagine all that expertise built right into your system. When IT operational expertise is integrated right in your systems, “out of the box”, the economics of IT will change for better. IT operations staff productivity will improve. You could deploy new business solutions in hours, instead of months. You could upgrade capacity and deliver system-wide lifecycle maintenance with less downtime.
That’s what I am talking about – a new breed of systems that deliver integrated expertise for the average user to leverage right away. I can see the following core capabilities being required to fulfill this promise:
- Built-in expertise.
New breed of systems needs to have embedded expertise and proven best practices built into the system and made easily available with a click of a button to an average user, not after reading a 300 page manual and typing hundreds of commands in the terminal, having a team of PhDs spending weeks in deployment planning sessions and writing thousands of lines of custom shell scripts.
- Reduced time to production.
Traditional hardware and software systems require extensive training, planning, skills and coordination between many different departments – the hardware team, networking team, security team, database team, OS team, JDK and App Server team, application team, etc. Planning may well be the most difficult task – with so many moving parts, how do you make it work and manage it? How long does it take to go to production from scratch? I know of companies where it takes months to do so.
- Simplified experience.
Single streamlined ordering and installation with simple setup, e.g. pull it out of the box, and get it up and running with no experts required. Integrated on-going management across system with single point of contact for support. Ability to upgrade with zero downtime based on integrated patches.
- Service Level Agreements enforcement and workload prioritization.
SLA management is critical to the business, yet traditional systems rarely provide such capability. The new breed of systems must provide SLA enforcement and workload prioritization out of the box with reporting and usage tracking capability for chargeback.
Vast majority of business computing systems today have static resource allocation model. In case of Java, Administrator must define a cluster in terms of number of nodes or JVMs and that is cast in stone, regardless of the actual workload on the system. The new breed of systems must provide a dynamic resource provisioning and de-provisioning model based on the business policies (SLAs) of the given application. For example, in case of a private cloud, the system must be able to automatically grow or shrink cluster size according to the load on the application and relative priority of that application compared to other workload that competes for the computing resources. What if you run out of capacity in a private cloud? The system must be able to expand the workload into the public cloud automatically to maintain the SLA.
- Empower the end user – turn computing into utility.
With traditional systems, not only does it take IT department weeks or months to install and configure, but even after the initial setup is done, it takes hours or days to deploy new workloads into the system. Business users must file a formal request and IT boards will review, approve and provision the system. This takes way too long. Why not give end users a self-service utility so that they can deploy business function they need when they need it and be billed for the usage – in a true private or public cloud way? New workloads must be deployed and ready in a matter of minutes.
- Workload consolidation and isolation.
Traditional systems often are deployed in isolated silos and result in low utilization rates of below 20%. This means that the business has paid for 100% of the system, but only uses a fraction of that investment. When you buy a house, you want to use all of its space and don’t just lock two thirds of the rooms in it. The new system must be able to run many concurrent workloads, hence it must provide strong virtualization and partitioning capability.
- Integration, openness and reliability by design.
The system must be backwards compatible with the applications that enterprises already have in production. Vendors cannot force a rip and replace approach with revolutionary never before seen Operating Systems and infrastructure. Legacy applications as well as 3rd COTS applications must be able to run on a system naturally, with qualities of services applied to those applications. IT departments have built significant assets over years and cannot throw all of that away overnight. Ideally these new systems should be based on a proven platform, not only to avoid debugging version 1.0 of the vendor product, but for existing skills and intellectual capital to be reused.
It’s not just about engineering a “fast system” anymore. It is all about the expertise and time to value. The expertise required to turn that pile of silicone and metal and electricity into something useful and fully utilize your investment. It is that expertise which my clients would love to arrive integrated right into their systems. In other words, let computers configure and manage themselves!