The first blog in this seven part series (@ http://www.vamsitalkstech.com/?p=1833) introduced and discussed a reference architecture for Software Defined Data Centers (SDDC).The key runtime technology paradigm thatĀ enablesĀ Digital applications is the agility in the underlying datacenter infrastructure. Using a SDDC approach, complexĀ underlying infrastructure (primarily Compute, Storage and Network) isĀ abstracted away from the applications running on them. Ā This second blog post will discuss traditionalĀ datacenter challenges with running large scale Digital Applications.
Introduction
Every Enterprise in the middle of Digital reinventionĀ realizes that the transformationĀ component is critically based on technology – a mix of Big Data, Cloud, IoT, Predictive Analytics etc. It is stark from the above that the traditional IT assets & the enterprise datacenter is in need of a substantial refresh. Systems that dominate the legacy landscape such as mainframes, midrange servers, proprietary storage systems are slowly being phased out in favor of Cloud platforms running commodity x86 servers withĀ the Linux OS, Big Data workloads, Predictive Analytics etc.
Traditional datacenters were built with application specific workloads in mind with silos of monitoring tools whereas Digital implies a move to fluid applications with changing workload requirements and more unified monitoring across the different layers.
We have dwelt on how the Digital platforms are underpinned by Cloud, Big Data and Intelligent Middleware.
The Three Core Competencies of Digital – Cloud, Big Data & Intelligent Middleware
It comes as no surprise that according to Gartner Research, by 2020, the Software-Defined Datacenter (SDDC) will become the dominant architectureĀ in at least 75 percent of global data centers[1]. With the increasing adoption of APIs across the board and rapid increase in development of cloud-native digital applications using DevOps methodologies, the need for SDDC is only forecast to increase.
For those new to the concept of SDDC, attached is a link to the first blog in this series below where we discussed the overall technical concept along with a reference architecture.
Legacy Datacenter vs SDDC..
For the last two decades, the vast majority ofĀ enterprise software applications created were based onĀ monolithic architectures. These were typically created by dispersed teams who modeled the designs around organizational silos and the resulting inchoate patterns of communication. These applications were created by globally siloed developer teams who would then pass the deploymentĀ artifacts over to the operations team. These applications were then deployed in datacenters typically onĀ high endĀ servers using Vertical ScalingĀ where multiple instances of an application are run on a fewĀ high end servers. As load increases on the application, adding more CPU, RAM etc to theseĀ server increased it’s ability scale.These applications were typically deployed, managed and updated in silos.
Thus, much of what exists in the data centers across enterpriseĀ are antiquated technology stacks. These range from proprietary hardware platforms to network devices & switches to monolithic applications running on them. Other challenges surrounding these systems includeĀ inflexible, proprietary integrationĀ & data architectures.
The vast majority of Ā current workloads are focused around systems such as ERP and other back office applications. They are unsuited to running cloud native applications such as Digital Platforms which support large scale users and need real time insights around customer engagement.
Quite often these legacy applications have business & process logic tightly coupled with infrastructure code. This results in complex manual processes, monolithic applications, out of compliance systems with out of date on patch levels and tightly coupled systems integration. SomeĀ of these challenges have been termed – Technical Debt.
While it is critical for DatacentersĀ to operate in a manner that maximizes their efficiency. They also need to manage costs from an infrastructure, power and cooling standpoint while ultimately delivering the right business outcomes for the organization.
IDC forecasts that by 2018, 50% of new datacenter infrastructure investments will be for systems of engagement, insight, and action rather than maintaining existing systems of record.[2]
A great part of this transformation is also cultural. It is clear and apparent to me that the relationship lines of business (LOBs) have with their IT teams ā typically central & shared ā is completely broken at a majority of large organizations. Each side cannot seem to view either the perspective or theĀ passions of the other. This dangerous dysfunction usually leads to multiple complaints from the business. Examples of which include ā
- IT is perceived to be glacially slow in providing infrastructure needed to launch new business initiatives or to amend existing ones. This leads to the phenomenon of āShadow ITā where business applicationsĀ are Ā run on public clouds bypassing internalĀ IT
- Something seems to beĀ lost in translation while conveying requirements to different teams within IT
- IT is too focused on technological capabilities ā Virtualization, Middleware, Cloud, Containers, Hadoop et al without much emphasis on business value drivers
Rapid provisioning of IT resources is a huge bottleneck which frequently leads to lines of business adopting the public cloud to run their workloads. Ā According to Rakesh Kumar, managing vice president at Gartner ā āFor over 40 years, data centers have pretty much been a staple of the IT ecosystem,Despite changes in technology for power and cooling, and changes in the design and build of these structures, their basic function and core requirements have, by and large, remained constant. These are centered on high levels of availability and redundancy, strong, well-documented processes to manage change, traditional vendor management and segmented organizational structures. This approach, however, is no longer appropriate for the digital world.ā [1]
Further, Cloud-native applications are evolving into enterprise architectures builtĀ on granularĀ microservices. Each microservice runs its own linux container. Thus, DigitalĀ architectures are evolving to highly standardized stacks that can scale “horizontally”. Ā Horizontal Scaling refers to increasing the overall footprint of an application’s architecture by quickly adding more servers as opposed to increasing the capacity of existing servers.
The below illustration depicts the needs of a Digital datacenter as opposed to the traditionalĀ model.
The SDDC with it’s focus on software controllingĀ commodity hardware enables a range of flexibility and cost savings that were simply not possible before. In the next section,Ā we will consider what requirementsĀ Digital Applications impose on a traditional datacenter.
What Do Digital Applications RequireĀ From Data CenterĀ Infrastructure..
As oneĀ can see from the above, traditional approaches to architectingĀ data centers do not scale well from both a technology and from a cost standpoint as far asĀ Digital Applications are concerned. As the diagram below captures, there are five main datacenter challenges that are encountered while architecting and deploying large or medium scale digital applications.
#1ā Digital Applications Need Fast Delivery of Complex, Multivaried Application StacksĀ ā
Digital applications are a combination of several different technology disciplinesĀ – Big Data, Intelligent Middleware, Mobile applications etc. Thus, data centersĀ will need to run clusters of multi-varied applications at scale. Depending on the scope – a given application willĀ consist ofĀ web servers, application servers, Big Data processing clusters, message queues, business rules and process management engines et al.
In the typical datacenterĀ configuration, servers follow a vertical scaling model which limits their ability to host multi tenant applications. This is so as they are not inherentlyĀ multi tenant in that they cannot natively separate workloads of different kinds when they’re running on the same underlying hardware. The typical traditional approach to ameliorate thisĀ has been to invest in multiple sets of hardware (servers, storage arrays) to physically separate applications whichĀ resulting in increases in running cost, a higher personnel requirement and manual processes around system patch and maintenance etc.
#2ā Digital Applications Need Real Time Monitoring & Capacity Management of complex Architecturesā
Digital ApplicationsĀ also call for theĀ highest degrees of Infrastructure and Application reliability across the stack. This impliesĀ not only a high level of monitoring but also seamless deployment of large scale applications across large clusters. Digital Applications are data intensive. Data flows into them from various sources in realtime for processing. These applications are subject to spikes in usage and as a result the underlying infrastructureĀ hosting these can display issues with poor response times and availability.
Further, these applications areĀ owned by combined teams of Developers and Operations. Owing to microservice architectures, the number of failure points also increase. Thus, DatacenterĀ infrastructure is also shared between both teams with each area expected to understand the other discipline and even participate in it.
Traditional datacenters suffered from highĀ capacity and low utilization rates. Capacity ManagementĀ is critical across compute, network and storage. Sizing these resources (vCPU, vRAM, virtual Network etc) and dynamically managing their placement is a key requirement for digital application elasticity.
The other angle to this is the fact that Digital applications typically work on a chargeback model where Central IT needs to only charge the line of business for IT services consumed. This implies that IT can smartly manage capacity consumption on a real time basis using APIs. Thus, monitoring, capacity management and chargeback all need to be an integrated capability.
#3ā Digital Applications Call for Dynamic Workload Scheduling ā
The ability to provide policy driven application & workloadĀ scheduling is a key criteria for Digital Applications. These applications work best on a self service paradigm. The capability of leveragingĀ APIs to reconfigure & re provision infrastructure resources dynamically based on application workload needs. For instance, most Digital applications leverage linux containers which need to be dynamically scheduledĀ and migrated across different hosts. Digital Applications thus need to be fluid in terms of how they scale across multiple hosts.
#4āĀ Digital Applications Need SpeedyĀ Automation Across the LayersĀ ā
We discussed how one of the critical differentiators for Digital Enterprise applications is the standardization of architecturalĀ stacks. Depending on the scale, size and complexity of applications – choices of web development frameworks, libraries, application servers, databases and Big Data stacks need to be whittled down to a manageable few. This increases dependencies for applications across the infrastructure.Ā From a horizontal scalability perspective, thousands of instances of popular applications will need to run on large scale infrastructure. What is key is ensuring that a high degree of automation from a cloud system administration standpoint. Automation spans Ā a variety of topics- lines of business self service, server automation, dynamicĀ allocation of infrastructure, intelligent deployments, configuration of runtime elements using a template based approach, patching and workflowĀ management.Ā
#5ā SeamlessĀ Operations and Deployment ManagementĀ at Scale ā
Traditional datacenters typically take weeks to months to deliverĀ new applications. Digital Applications call for multiple weeklyĀ deployments and an ability to roll up or go down versions quickly. Application deployment and security patch management needs to include a range of use cases such as rolling deployments which ensure zero downtime, canary deployments to test functionality with a subset of users, sharded deployments et al. From an application maintenance standpoint, understanding where performance issues are occurring, such as delayed response times is of critical importance in ensuring customer satisfaction.
For instance, in the Retail industry, online shopping cart abandonment is as high as 70% when website response times are slow.
The lack of support for any of these operational features inĀ Digital Applications can be fatal to user acceptance. And this can ultimately resultĀ a range of issues – increased CapEx and OpEx, highĀ server to sysadmin ratios and unacceptably high downtimes.
The SDDC Technology Ecosystem
It is evident from the first postĀ (@ http://www.vamsitalkstech.com/?p=1833) that Software Defined Datacenters have evolved into large & complex ecosystems dominated by open source technology.
It has become increasingly difficult for enterprise CXOs and IT leadership to identify which projectsĀ do what and how they all fit together.
I believe, theĀ current SDDDCĀ technology ecosystem could be broken down into four complementaryĀ categoriesĀ –
- Cloud InfrastructureĀ – Includes IaaS providers (AWS, Azure, OpenStack etc) Ā and Service Management Platforms such asĀ ManageIQ
- Provisioning & Configuration Management – Tools like Puppet, Ansible and Chef.
- Serverless Infrastructure & DevOps –Ā Includes a range of technologies but primarily PaaS providers such as OpenShift and CloudFoundry who use Linux containers (such as Docker, Rocket) as the basic runtime unit
- Cloud OrchestrationĀ & Monitoring- Includes a range of projects such as ApacheĀ Mesos, Kubernetes
Readers will detect a distinct tilt in my thinking towards open source but it is generally accepted that open technology communities are the ones leadingĀ most of the innovation in this space – along with meaty contributions fromĀ public cloud providers especially Amazon and Google.
The Roadmap for the rest of the blogs in this series..
In thisĀ blog series, we use theseĀ highlight specific cloud projects that are leading market adoption in the aboveĀ categories.
The third and next post in this series will deep dive into Apache Mesos.
Subsequent posts in this series will cover best of breed projects – Docker & Kubernetes, ManageIQ, OpenStack, OpenShift in that order. The final post will round it all together with a sample real-world flow bringing all these projects together using a sample application provisioning flow.
Conclusion
Progressive enterprise IT teams have begun learning from the practices of the web-scale players and have adoptingĀ agile ways of developing applications. They have also begun slowly introducing disruptive technologiesĀ around Cloud Computing (IaaS & PaaS), Big Data, Agile developer toolsets, DevOps style development pipelines & Deployment Automation etc. Traditional datacenters are siloed in the sense that the core foundational componentsĀ servers, networking and storage are deployed, managed and monitored by separate teams. This is the antithesis of Digital where all these areas converge in a highly fluid manner.
The next post in this series will discuss Apache Mesos, an exciting new technology project that strives to provide a global cluster manager for the vast diversityĀ of applications found in Digital projects.
References
[1] Gartner ā ā Five Reasons Why a Modern Data Center Strategy Is Needed for the Digital Worldā ā http://www.gartner.com/newsroom/id/3029231
[2]Ā IDC Asia/Pacific Unveils its Top Datacenter Predictions for APeJ for 2017 and BeyondĀ –
http://www.idc.com/getdoc.jsp?containerId=prAP42063416