Need for changing the IT Operating Model in the Cloud Era
Every industry is being disrupted by digital transformation either from within or by niche technology start-ups. Cloud, machine learning, AI, analytics, IoT are key enablers for this transformation. These technologies change the way businesses are being conducted today and digital transformation is reshaping the way IT fulfills the needs of business. The entire lifecycle, processes, tools, and technology are changing, with the cloud as the core enabling technology.
IT serves Business in new ways
- Business and IT are converging as they define product strategy, it is no more projects.
- The technology stacks used to build applications are changing from the products built by large software vendors (like WebSphere, Oracle) to open source solutions (NodeJS, MongoDB), which are developed in an agile manner with features evolving rapidly.
- Platforms to run the applications have changed, with Cloud as the foundation and technologies from ‘Born-in-the-cloud’ companies and open source systems, such as KuberNetes and Mesosphere, being used to run the platform
- IT organizations are becoming Agile and DevOps is becoming a core part of the Systems Development Life Cycle (SDLC) and Scaled Agile Framework (SAFe), the methodology for development lifecycle management.
Businesses want to start small and grow big with fast fail and success
Business owners are experimenting with new ideas, they would like to start small and grow big as products mature, or fail fast. They also have a good understanding of new technological capabilities and aspire to leverage them to drive better customer experience and business growth.
With a customer-centric approach to product development and domain-driven design method to realize them with IT applications, the business and IT teams work in close collaboration in defining the product backlog, following an iterative development cycle and rolling out features regularly. Application development cannot wait for fully defined requirements that lead to long implementation projects. They need to work with continuously evolving user stories, define an architecture, and choose technology stacks that would allow them to adapt to evolving needs and growing volume.
Changing responsibilities of platform teams
In the traditional application development environment, the resiliency of applications was largely derived from infrastructure and platforms, hence the platform teams spent more effort and time on operations to ensure that their services were always available. However, with the new cloud-native architecture and technology stack, the resiliency of the application is largely derived from the application architecture and patterns (e.g. micro services, reactive programming, circuit breakers) and platform services (e.g. container management platform, PaaS).
In a traditional IT landscape, multiple applications are deployed on the middleware platforms (e.g. WebSphere Application Server), and so the resilience of applications was dependent on the application server. However, in cloud-native applications, light weight application runtimes are used to build applications like NodeJS, Spring-Boot, .NET Core and are deployed in individual containers as the overhead is very low. The container management platforms are largely self-managing and effectively manage reliability issues with underlying VM/ infrastructure as well.
In the new context, the responsibility of the platform teams would be:
- Build the underlying core platform and templates (Azure/ AWS foundation, Orchestration platform, Container management platform, monitoring)
- Automate infrastructure & platform provisioning (through CF/ ARM, Chef/Puppet) to be leveraged by application teams in DevOps pipeline
- Establish the tooling and platform for SDLC, DevOps
- Governance and management of the underlying platform, billing & chargeback
- License management, security, and compliance.
Application and platform teams working together
With agile ways of working and DevOps being an integral part of the software development lifecycle, the application team is now responsible for application development, building, deploying, and managing the application end-to-end. So, apart from programming languages and application frameworks, developers need to be skilled in DevOps tools scripting, test automation, packaging, and deployment automation.
The platform team delivers the entire infrastructure/ environment as code through automation, which the application development team leverages to provision and deploy the applications. Advanced tooling on the tracing, monitoring, and logging provides the ability to the DevOps team with limited platform skills to run the application in an efficient manner meeting all the defined SLAs.
With the responsibility for deployment and a large part of the operations moving to the application teams, they now handle application and platform support services, while the platform team focuses more on the engineering and automation of platforms.
For legacy enterprises, this change in the IT structure and operating model is major but necessary to remain competitive in the cloud-powered digital world. Baba Computers Cloud advisory services specifically focus on the various aspects of change management to ensure that the organization not only has a well-defined IT strategy, business case, and roadmap, but also has the right working model between business, application development, and platform teams.