[While cleaning up my journal logs, found some of these notes. Sharing with the hope that this may provoke some challenging ideas/innovations]
We entered 2010 asking where will Cloud take enterprises in 2010? Still the debate on whether Cloud is ready for enterprise adoption is picking up the steam. 2010 going to be a year for emergence of many new applications that would run in the Cloud. But, wide adoption of cloud needs both technical issues to be addressed as well as organizational cultural issues.
Today most of the business applications run on dedicated hardware. Challenge is to accurately determine the proper sizing of resources for stable operation of traditional applications. Moving away from dedicated resources to shared computing pools requires more diligent management of available computing resources. While it helps to consolidate the unused resources, it leads to new challenges where more applications compete for these computing resources. Need more sophisticated automation and deployment tools to balance these workload demands.
The overwhelming challenge for data center operations is managing complex application environments. Service Engineering & Operations (SE&O) teams constantly deploy many third-party applications as well as homegrown applications, upgrades, and patches. They make application configuration changes for security and performance tuning frequently. In addition to deploying and constantly monitoring for any security breaches and performances issues, SE&O folks need to track and analyze the configuration and state of deployed applications on a regular basis.
Moving these applications into Cloud is going to pose many operational challenges. Any technology designed to address these issues to configure and deploy their applications must be infrastructure, application, and demand aware. For these applications to work in the cloud, application packaging and deployment need to capture knowledge about an application, such as its configuration methods and dependency requirements. More importantly, end-to-end automation of the deployment process is possible only when a technology understands that infrastructure elements such as Web servers, application servers, databases, and application elements — such as custom code and content — must all work together to make a functioning application.
“It will take many years for the utility computing system to mature. Like Edison and Insull before them, the pioneers of new industry will face difficult business and technical challenges. They’ll need to figure out the best ways to meter and set prices for different kinds of services. They’ll need to become more adept at balancing loads and managing diversity factors as demand grows. They’ll need to work with governments to establish effective regulatory regimes. They’ll need to achieve new levels of security, reliability, and efficiency. Most daunting of all, they’ll need to convince big companies to give up control over their private systems and begin to dismantle he data centers into which they’ve plowed so much money. But these challenges will be met just as they were met before”, Nicholas Carr, in “The Big Switch”.
James Urquhart in his Cloud computing and the big rethink series described how cloud computing will change the way we build and deploy applications.
Cloud Computing: Innovation Edge
Enterprise networks are large and run wide variety of applications and typically operate under strict reliability and security constrains. Normally, these applications, networks, and security represent challenging environment for management and operations control. Stakes are high when enterprises move their applications or burst into the Cloud capacities, as productivity can be severely hampered by any SLA degradations or security compromises. Andi Mann quoted in his tweet that 76% of downtime comes from human-error and Yankee group reported that 80% of IT budgets are spent on maintenance and operations.
Many applications in today’s enterprises are multi-party services and demands different levels of isolation, security, assurance and auditability with very different characteristics. At the same time, we see the emergence of wide variety of value added services composed from shared services with different levels of SLAs. Services will range from low-level services that transport bit streams over the cloud infrastructure to value-added services such as integration services, data analytics, data mining. Complex services will demand access to large amounts of data, real time data streams, and distributed computing tasks. Supporting this service model and this emerging class of complex services requires innovation in a number of areas.
Dynamic Resource Allocation Based on Application Demands: In some cases applications and services have advance knowledge of changes in resource requirements, and in many cases services have no knowledge of resources demands due to variability in user demands. Mechanisms are needed to dynamically scale services to optimize performance, which demands end-to-end service delivery guarantees. Virtualization came to rescue this challenging IT infrastructure to provide consolidation, flexibility, and resource management. Virtualization technologies evolved to abstract compute, network, and storage resources to separate physical resource from their of way of consumption. Sounds good. This enabled Service Engineering & Operations (SE&O) teams to assign computing resources as needed to virtual machines and quickly respond to fluctuating loads. While this simplified the complexity in the computing infrastructure, virtual machine sprawl added another layer of complexity. Now enterprise need to manage two different sets of computing resources, physical infrastructure and virtual infrastructure, to keep their applications running to meet their customer Service Level Agreements (SLA). To some extent, virtual infrastructure provided mechanisms to eliminate the need for provisioning for the peak. Thanks to virtualization for redefining the relationship between the application and physical deployments.
Though server virtualization enables dynamic workload (for clarity, workload means any demand for performing an unit of work) management. However, current models of VM live migrations induce significant overheads on hypervisors and network bandwidth.
Virtual Networking: Setting up and operating logical networks across participating enterprise networks to provide network isolation, security, confidentiality (Note: current dependence of complex VLANS and tunnels needs specialization to setup, management, and tear down these networks. For enterprises to leverage the power of Cloud Computing, new class of network services required to provide the assurances required). As explained in my introduction, most of the operational overhead in today’s enterprise private data centers is coming from the lack of consistent and integrated operation, administration and management plane.
Application-aware Networks: As more and more businesses use Cloud, conditions in the network (inter/intra Cloud communications) and at the endpoints will change continuously, and mechanisms are needed that allow the network and services to adjust quickly depending on service specific demands. Also, different services demand different levels of data transferability and latency needs. Cloud should be able to handle traffic streams both in terms of the ability to share resources between co-operating traffic streams and the quality of service for individual streams. Hence the need for systematic methods for balancing the constraints and priorities of services competing for resources – computing, storage, and network services including the security, perimeter control, auditability, service assurance, SLA enforcement etc.
Customization vs. Configuration: Many companies still believe that customized business processes are their competitive advantage. Enterprises spent huge sums of capital in undertaking multi-million dollar customization projects coupled with 6-12 months of upgrade/deployment cycles. That is one of the reasons traditional SaaS offerings didn’t take off as it inherently restrict the customer’s ability to customize the solution, require co-mingling of sensitive data from various customers, and force all customers to comply with upgrade and downtime schedules dictated by the vendor. Customers demanded greater freedom. SaaS advocated one solution for all.
Then comes the Cloud computing with low cost mantra and re-instating the freedom to customize and deploy applications/business processes. Customers can gain back the control over its own IT infrastructure at a very low cost combined with an ability to scale up and down. In addition, cloud can offer them complete freedom to customize the solution as it sees fit and complete control over upgrade/deployment cycles.
”A man who carries a cat by the tail learns something he can learn in no other way” – Mark Twain
“All generalizations are false, including this one” – Mark Twain
“Don’t preserve the past – find the future”
“Too much attention is focused on technology innovation and not enough on business innovation. When that happens, we add functionality, but also complexity. The technology innovations with real impact are those that reduce complexity”
Private v. Public Cloud Debate
In Public Vs. Private Clouds: Which Cloud Wins? Vanessa Alvarez writes, “The concept of private cloud on the other hand, is of course, more appealing to enterprises. Because of the very nature of its name, it gives enterprises that comfy feeling that their data is safe and secure. It’s the age-old enterprise mentality that if you lose control of your data, it’s not safe”.
Transformation from traditional silos to more responsive networks of operations centers – combination of private and public clouds.
- shared infrastructure in local corporate data centers
- application of virtualization to simplify the infrastructure automation
- manage resource pools vs. dedicated silos
- cloud burst of resources based on seasonal demands or need based to virtual networks
Cloud and Governance
Governance is all about helping IT get to the expected business benefits of their IT services. Governance helps IT do is to more broadly foster trust across those distributed domains. It’s going to help become a catalyst for communication and collaboration, and it’s going to help jump-start that non-expert staff. The thing that’s key about governance is that it helps integrate those silos of IT. It helps integrate the folks who are responsible for designing services with those who actually have to develop the back end implementations and with those who are doing the testing of performance and functionality. Alternately, it integrates them with the organizations that are responsible for both deploying the services and the policies and integration logic that will support accessing those services.
In Governance: Service Catalogs and the Cloud Lori Macvittie says,
“The use of SOA governance solutions never truly took the world by storm, and that may be in part that the metadata it carried wasn’t “meta” enough given the level of abstraction used by SOA. Virtualization and cloud computing take that abstraction far enough to be useful both in invocation and management. SOA, too, was hampered by the fact that automation of processes – while nice – was not a necessary piece of the value equation. For cloud computing (on-demand) automation is one of the key variables in the benefit equation, making abstraction of management a necessity.”
Keeping a perspective on lifecycle governance, your organization can be primed and ready to handle Cloud, as it scales, as more and more services go into production, and more and more services are deemed to be ready for consumption and reuse into new composite applications. The key is to keep a service lifecycle governance perspective in mind, as you go about your governance program, and automation is key. … Automating policy compliance can bring a huge pay off.,/p>
What we are finding more and more now is that organizations are actually investing in a role known as service manager, someone who oversees the implication of not only delivering a service over time, but those that are consuming it. I see this as a best practice that can be supported by Cloud governance, and which helps empower them by giving them a foundation to set up policies and have visibility in terms of how this service is meeting its objective and who is consuming the service.
Intelligent Application Delivery
Application delivery is so complex and overwhelmed with way too many complexities. There is no push-button deployment of services. It takes way too many manual steps, scripts, and configurations to make these services/applications work even in the small deployments. Imagine them deploying to Clouds. THis gets way to complex when it comes to deploying enterprise applications/services. Chris Hoff very crisply articulated the vision of intelligent application delivery in his post Application Delivery Control: More Hardware Or Function Of the Hypervisor? Chris Hoff writes,
” there’s the real meat: contextual networking. That’s the ability of a solution to take into consideration context when applying policies and rules and functions to traffic and data. Understanding the context of a request and response – location of the client, type of client, type of response data, network over which a client is connecting, etc… – makes it possible to apply application delivery functions like optimization and acceleration and security more efficiently. In order to understand the client, you’ve absolutely got to have visibility into the client-side of the equation as well as the server-side. If you’re nothing more than a service in the fabric, you aren’t going to have that visibility – some other device or solution will. Without that visibility you can’t easily obtain the context, and thus you aren’t capable of adapting to what’s going on right now – on demand.”
Vision sounds great. Who is delivering these solutions. There are some solutions exist today. They are way over engineered again to make then unusable by SE&O folks. That leads to one more layer of strip down and dress-up to meet their needs. That in turn leads to versioning and patching challenges. So, if we need realize the value of cloud, it is time for us to define mechanisms to define application/service packaging and delivery mechanisms in a vendor or service provider agnostic manner.
Cloud: Strategy
If we want to get the cloud right, we need put aside the technology discussion and start thinking about how the Super Corp of 21st century going to work – who their partners are, who their customers are, and then think about how we can support customer, suppliers, partners, and collaborators better than ever before. Too many people look at the cloud as a technology phenomenon when they should look at it as a business opportunity and an accelerator for innovation. The cloud is an environment for creating ways of doing business that are radically different from monolithic ERP-based processes. The age of command-and-control in business technology is over. You empower the knowledge worker through collaboration.
What this is telling us is that we have reached another stage of maturity, and that in order to move forward organization will need to think about Cloud as an overall program, and how it impacts both technology and people dimensions within the organization. We are indeed moving from project- and application-level Cloud to more of a system and enterprise scale. We need to look at how Cloud’s success is actually defined, and what factors and practices in these organizations that are successful have the most impact. While you may think that technologies are key enablers, but what I found was organizational and program dynamics are the key contributors to success. If you’re able to handle trust, you’re able to influence organizational change management effectiveness. If you’re able to address business alignment, then you’ll have much more success in understanding the impact on architecture and vice versa.
Companies should adopt cause-effect strategies for private/public cloud, finding appropriate applications, integration mechanisms, and exploiting the economies of scale of Cloud to boost the bottom-line performance of the companies.