Is “Private Cloud” an oxymoron ?
Cloud computing is all the rage these days and there is no shortage of content on the definition of a cloud. While the concept of a “Public Cloud” is fairly well defined and widely accepted, the concept of a “Private Cloud” seems to be up for debate. I have been part of few conversations where the term “private cloud” is reduced to a meaning less mnemonic and an oxymoron. There have been numerous arguments in the blogosphere about the validity of private clouds and some has gone to the extent of saying that no such thing called private cloud.
These arguments have merits depending on how one looks at the definition of private cloud. I think most of these arguments against the private cloud really miss the mark on what really makes a cloud, well, a cloud. Accordingly to NIST:
Cloud computing is a model for enabling ubiquitous, convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications, and services) that can be rapidly provisioned and released with minimal management effort or service provider interaction
Keeping that definition in perspective, a private cloud is really just a cloud deployed inside an organization’s boundary (within the firewall) and is managed by internal employees. This refers to cloud computing where an organization virtualizes and utilizes its own IT infrastructure in a managed services model to deliver IT resources to internal application owners over the internal private network. I would argue that a cloud is a cloud, irrespective of its deployment model and whether it is available for public use or private use. The characteristics and benefits inherent to a cloud still apply to a private cloud as much as they do to a public cloud.
Private Vs. Public Clouds
Let’s look at some of the essential list of attributes that define a cloud and compare public and private clouds based on these attributes.
- Elasticity: The ability to dynamically provision and de-provision the computing capacity as needed
- Virtualization: The ability of applications to be de-coupled to from the underlying hardware
- Metered Usage: The ability to automatically control and optimize resource use through the use of a metering capability appropriate to the type of service
- On-demand Self Service: Ability for a consumer to unilaterally provision computing capabilities, such as server time and network storage, as needed automatically without requiring human interaction with each service’s provider.
- Resource Pooling: Ability of the provider’s computing resources to be pooled to serve multiple consumers using a multi-tenant model, with different physical and virtual resources dynamically assigned and reassigned according to consumer demand.
- Security: The ability to secure the data within the cloud and access to the cloud itself
- Manageability: The ability to effectively manage (start/stop/migrate/expand/shrink/etc) the different server and application instances in the cloud
As can be noted from the comparison above, there is not much difference between a private cloud and a public cloud from the perspective of the cloud attributes, other than a private cloud theoretically be more secure than a public cloud. As a result, private clouds provide the same (sometimes more) benefits as a public cloud but for the economies of scale that is inherent to public clouds (more on this later). In addition to inheriting all the benefits of a public cloud, private clouds also make the IT department of an organization more agile and responsive to business needs. Business units no longer need to ask for more servers and wait six months to get them procured, installed and configured. A private cloud, whether it is built in internal data center or built and hosted by a third-party, provides an organization with a dedicated pool of IT resources. This pool will no longer be thought of in terms of number of servers, but rather in terms of capacity – the number of virtual servers, virtual workloads or applications it can support. Basically, it allows IT departments to deliver infrastructure, platforms and applications in an easily managed, easily scaled and easily billed service architecture. In addition, this architecture will not be siloed to different departments or divisions, but instead can be managed as a holistic resource across the entire organization.
Challenges of a Private Cloud
Having said that, a private cloud is not the right solution for every organization. There are a few constraints and challenges that would make the public cloud model more appealing to a lot of organizations. There are inherent challenges with private cloud that need to be addressed before an organization can venture down the path of building one.
- Upfront Capital Cost: One of the drawbacks of private clouds is that organizations still need to buy, build and manage the cloud infrastructure, which defeats the primary premise of cloud computing. One of the key value propositions of cloud computing is that it drastically reduces the upfront capital cost of in-house infrastructure, while providing the same or better service for a simple recurring operational cost. This benefit cannot be realized with private cloud infrastructures.
- Time and Resources: Not all organizations have the time or resources with in-house expertise to build the infrastructure and automation required to stand up and operate a private cloud. Case studies show that it involves much up-front investment in time and resources compared to simply going with a public cloud. However, there are many up and coming startups that are offering private cloud related services and products that organizations can use in their internal data center. While these products still need time to mature and become mainstream, this represents a significant shift towards the availability of the technology required to install and manage private cloud computing infrastructures. These product and service offerings could mitigate some of the risks and challenges and blur the line between a private and public cloud.
- Size of the organization: Not all organizations can afford to build a private cloud for the two reasons listed above. Crafting a business case for building a private cloud for a smaller organization is difficult, since building the in-house infrastructure for the private cloud does not provide as much of a return on investment as larger cloud deployments do. The public cloud provides impressive benefits related to economies of scale, and smaller organizations will find it difficult to build a private cloud solution that can match that.
So, what’s an organization to do? The answer to that question depends on the size, resources and needs of the organization, and will be answered differently for every organization. Private clouds are driven as much by what CIOs don’t like about public clouds – concerns about data security, corporate governance, and reliability will affect the decisions made by organizations. Private clouds theoretically can deliver some benefits of cloud computing without the pitfalls. Additionally, cost will be a major factor to tilt the scale either ways — Wikibon argues in this excellent post that a private cloud is more effective for organizations over $1 billion. As a result, it can also be argued that there is higher probability of organizations experimenting with private clouds prior to dipping their toes into the waters of public clouds.
Summary
Private cloud is not an oxymoron and is a perfectly valid model for the right organization. Neither the public cloud or private cloud is an ideal solution for every organization. For some organizations, a private cloud will be a stepping stone to a fully public model, and for others it will be the ideal solution. Organizations like the federal government with stringent data security needs or organizations with the right size/scale might pursue a private cloud model. Availability, security, compliance etc. may drive other companies to look at a private cloud model as well. In any case, cloud computing represents an exciting evolutionary step in computing and organizations will be able to choose between private, public or hybrid cloud offerings based on their unique needs and concerns.
Related articles
- What Type of Cloud is Right for your Small Company? (blogs.cisco.com)
- Top 5 Questions CIOs Should Ask Private Cloud Vendors (blogs.forbes.com)
Batch Processing in a Service-Oriented Architecture
Batch processing has traditionally been used in many organizations to perform non real-time, data intensive tasks that are executed at specific frequencies and within predefined time periods. For example, loading bulk customer data into a Customer database, creating summary records for a data warehouse, etc. The processing and performance requirements of these batch processes tend to differ from those of real-time, interactive processes. In order to address these specific requirements, organizations have invested in creating custom, homegrown batch processing solutions and this resulted in a heterogeneous mix of technologies with no standardization. Applying the concepts of Service Oriented Architecture to batch processing enables organizations to not only standardize on implementation technologies/approaches but also leverages the many benefits offered by an enterprise wide SOA.
As Ronald Schmelzer of ZapThink puts it aptly in his note,
Service-Oriented Architecture (SOA) presents enterprises with the opportunity to expose information and processes as self-contained Services that can communicate and interoperate with each other in a standard, loosely coupled fashion. Although the common impression is that Services expose business processes, data processes, or application functionality, they are also well-suited for exposing the very processes that drive batch-oriented workloads. SOA enables the business to build flexible compositions of Services that implement either business or IT processes in a loosely coupled manner, which has important ramifications for IT service delivery, and the batch processes that are part of it.
However, there seems to be a common misconception in many enterprises regarding the applicability of service orientation to batch processes. I have heard at least twice in the past week from someone that batch processes do not really lend themselves well to Service-Oriented Architecture (SOA) and that SOA is best suited for building dynamic, interactive, transactional applications. While batch processing remains a critical component in many data intensive environments in today’s real-time enterprises for various reasons, I think the role and potential applications of batch processes has changed with the advent of SOA. Batch processes are evolving from static, stand-alone processes invoked at specific frequencies and time windows to essential, dynamic components of business driven process flows that can be invoked on-demand.
The following are some of the ways batch processes can be first class citizens in enterprise wide service oriented architecture.
- Batch Processes as Service Providers
- Batch processes can be built and exposed as reusable services to be consumed on-demand by other batch and/or real-time business processes and services.
- Batch Processes as Service Consumers
- Batch processes can consume other enterprise services that provide business and/or utility functions as part of the core processing logic. For example, an ETL process that is bulk loading new customer data into an operational database can use a service that returns a unique customer ID for each customer from an authoritative data source.
- Batch Processes as Policy–driven, Configurable Work Flows
- Modern batch processes can be designed, managed and executed very similar to their real-time counter parts using configurable process flows and meta data to control the behavior, frequency, time window and sequence of execution.
- Event Driven invocation of batch processes
- Batch processes do not need to be invoked on a fixed schedule by job schedulers and cron jobs anymore – they can be part of a dynamic, event-driven SOA by responding to business events in addition to scheduled timer events. For example, the same batch process that creates summary records in a data warehouse can be invoked in response to a real-time change by the business users or in response to the arrival of a new batch feed.
- Separation of business logic, rules as reusable components
- Traditionally the processing logic and rules are embedded in batch processes with very little reuse across the processes, let alone across the enterprise. There is tremendous value in extracting the business rules and reusable business logic out of the batch processes and exposing them as reusable components or services at the enterprise level so that real-time and batch processes alike can utilize the same components or services irrespective of the mode of invocation.
However, introducing batch processes into SOA has its limitations and challenges. Not all batch processes may be the best candidates to become service providers or consume services as part of their processing logic. The biggest potential downside of applying service orientation to batch processes is decrease in performance. Batch processes have historically processed large volumes of data in pre-defined time windows overnight and introducing service calls into these processes could affect performance. Hence, the benefits of applying SOA to batch processes such as increased reuse and increased agility must be carefully weighed against the potential implications on performance. However, these concerns can be addressed and mitigated by laying a solid technical foundation that meets the rigorous performance requirements of batch processes and by utilizing work load automation frameworks that enable an organization adapt to changing processing needs without affecting the core functionality of batch processes. For example, batch frameworks such as Spring Batch, written in Java, provide the required abstraction to introduce fault tolerance and sclability into batch processes for high volume processing. In addition, depending on the performance requirements of an organization, other advanced options such as integration with grid computing solutions to partition the batch job over a large number of processors can be considered to ensure high speed processing.
As I mentioned earlier, batch processing is a critical part of standard business operations for many organizations and that will not change any time soon. As organizations move toward modern architectures from legacy systems and processes, batch processing must be looked at from a new perspective and must be treated as an integral part of SOA and Enterprise Architecture in order to realize the true potential of an integrated, agile enterprise.
Why Do We Need Visual Models ? (Part 2)
In my previous post “Why Do We Need Visual Models ?” I talked about how visual models help simplify complexity in technical problems and various applications of visual models in software development. In this post, I would like to explore alternate uses of visual models and the application of visual modeling to solve complex non-technical problems in business and life.
Visual Thinking
Visual thinking is our brain’s natural way of solving problems by picturing the problem and it’s various outcomes visually in our mind. It enables us to abstract out the complexity in a complex problem or information and present the same in a much simpler and more meaningful way that is easy to comprehend. Going back to the map example, it’s far easier and natural for us to visualize the route from point A to point B instead of remembering the textual directions in a list form. We use visual thinking consciously or unconsciously quite often in our daily life – whether it is a sketch of an idea we drew up in a coffee shop or a brainstorming session using a white board or a more fancy presentation for the board. In business world, power point presentations with fancy graphics, excel spreadsheets with charts and executive dashboards with all kinds of visual gadgets remain the most popular way to present complex business concepts and information. Here is an excellent example of using visual thinking to describe the concept of Twitter.
Another excellent source of information on visual thinking is this video of David Armano, VP of Experience Design with Critical Mass, speaking at a conference on thinking visually. According to David Armano, thinking visually may one of the most sought after abilities of the 12st century.
Effective communication is everyone’s job—whether you are trying to sell in a concept or convince a client. Visual Thinking can help us take in complex information and synthesize it into something meaningful. In an increasingly fragmented and cluttered world, simple imagery, metaphors and mindmaps can get people to understand the abstract and make your ideas tangible.
Click here to see some excellent visual thinking artifacts from David Armano.
Mind Maps
A mind map uses visual thinking to create a visual representation of the problem and the possible solutions in a diagram that mirrors the way our mind naturally processes information. It is a diagram used to represent words, ideas, tasks, or other items linked to and arranged around a central key word or idea. Mind maps are used to generate, visualize, structure, and classify ideas, and as an aid in study, organization, problem solving, decision making, and writing. By presenting ideas in a radial, graphical, non-linear manner, mind maps encourage a brainstorming approach to planning and organizational tasks (Source: Wikipedia).
For example, if we wanted to draw a mind map for capturing all the activities surrounding starting a business – we can start with a central idea called “Start a Business”. Radiating from this central idea, we can add branches for “Business Objectives”, “Business Plan”, “Market Research”, “Project Plan”, etc. Each of these branches will now become the central idea for the creation it it’s own mind map thus enabling us to create a high level view and a detail view of what’s involved in starting our business.
Mind maps can be used to capture and solve complex problems in personal life or in business – for example, you can use a mind map to capture ideas during a brainstorming session or take notes during a lecture or create a non-liner to-do list, etc. Mind maps enable us to start with a bird’s eye view of the problem and drill down into specific areas that require further exploration. In addition, each area or branch within a mind map can be enhanced by attaching an artifact that is relevant to that branch — for example, a spread sheet with budget numbers or an email received from a customer, etc. Mind maps can be drawn by hand or by using any of the several commercial and open source software available in the market. Here are a some resources to explore the concept of mind maps a bit more:
- Mind Mapping Software Blog, By Chuck Frey
- The Mind map Blog, by Chance Brown
- Idea Mapping Blog, by Jamie Nast
- The MindJet Blog: 20+ Mind Mapping Resources, By MindJet
- 30+ Mind Mapping Tools, By Mashable
Visual Modeling for Complex Business Problems
Visual modeling is also used to model and solve complex business problems that are non-technical such as, business strategy, vision, business models, communication models, knowledge integration, etc. During one of my recent online explorations about visual modeling, I ran into a company called Idiagram owned by Mr. Marshall Clemens, that uses visual modeling based approach to solve complex business problems such as strategic planning & decision making, product innovation & design, dialog facilitation, knowledge management, creative thinking and marketing strategy. I was very impressed with Idiagram’s approach and the way Mr.Clemens described the art of complex problem solving. I also loved the fact that Mr.Clemens used visual models and his own technique to describe all concepts on the company’s web site — which not only makes it very easy to understand but also provides a great example of using visual models to abstract and simplify complexity in any domain.
Mr.Clemens does not define what a “visual model” should look like — instead uses any diagram or style (diagrams, maps, charts, pictures, etc.) that represents the concept under consideration effectively. Here are a few samples of Mr.Clemens’s work and more samples of his work can be found here.
In essence, irrespective of the target domain and the potential application of visual modeling within that domain, the underlying premise of using visual models remains the same — minimize complexity, visualize concepts, facilitate communication and increase collaboration to realize a common goal.




![Reblog this post [with Zemanta]](http://img.zemanta.com/reblog_e.png?x-id=7ad5fb0b-19d5-4f57-929a-e8f669183d8d)













