
For decades IT operations has been viewed as something of a back-office technology function; the IT engine room. That’s not wrong since the applications under control have generally been large monolithic systems of record designed to automate internal business processes. These systems have been inherently complex and tightly-coupled, so changing them has been difficult, time consuming and costly. As such, our operational mindset has remained firmly focused on maintaining reliability and avoiding risk at all costs – even if that means holding back releases and ticking off our colleagues in development.
Not anymore.
Now, business success is not only dependent on assuring the reliability of internal business processes, but also by leveraging mobile computing and the cloud for more ‘experience-centric’ customer engagement. Now, software has the potential to forge new business models and disrupt markets, meaning change intolerance and aversion makes way to experimentation and innovation. The net-net of course is faster more iterative application development, newer highly scalable architectures, and a far more diverse set of applications – some of which will be standalone, while others will be integrated within our existing business process fabric.
So against this backdrop, what are main reasons the IT operations discipline must adapt to support the application-driven imperatives of the business and what characterizes a successful agile operations transformation? It boils down to delivering on three essential requirements – speed, quality and scale.
In Pursuit of Quality
Since the applications now being developed are far more customer-centric, service quality will be assessed at many more points of engagement. Consider a web/mobile airline booking system for example. This might be comprised of ten or more discrete services (e.g. booking flight, checking baggage, choosing seats, ordering meal, scanning boarding pass, car rental etc.). Every one of which constitutes a point of interaction where quality in the form of an optimum experience has a direct correlation to customer retention and business gain.
The traditional approach would be to wait for each of these applications to reach production and then initiate monitoring. Yet this is problematic since any problems now have a significantly greater impact on the business and in all likelihood will require developers to fix them. The result – greater conflict, more technical debt and lost business.
A far more agile approach is to incorporate monitoring earlier in the software development lifecycle. This involves collaborating with development to replicate the deep analytics and traceability insights normally gained in production and applying them in a development and testing context. Through this, the immediate gain is stopping defects leaking into production, but there are more lasting benefits too.
Firstly, development has much earlier visibility into quality requirements before the system goes live and can enact any necessary refactoring strategies.
Secondly, key insights gained through transaction monitoring can be shared with the operations team, so they can immediately establish metrics and performance KPI’s against which the production environment can be measured.
Finally, and in true DevOps fashion, this approach creates tighter feedback loops so that everyone knows who the app is serving, what experience is expected, and where changes impact performance – continuously.
The Need for Speed
With business now being driven by a complex mix of highly experiential software services, it’s essential that any problems are detected and resolved at a pace that matches the speed of delivery. This however is difficult because monitoring systems generally lack the ability to provide uninterrupted transaction level visibility.
Some toolsets for example provide rich mobile analytics (usage, behavior, crashes) which is all great. But what happens when the success of a new national mobile app based sales promotion depends on the successful recording against a backend database and requires no network latency at peak times. Without end-to-end visibility that can follow transactions across all apps and infrastructure and that provides insight into the underlying causes for failure, no realistic service levels can be established with the business.
Scaling the Summit
Embracing newer horizontally scalable architectures is the way leading innovators are future proofing their businesses. Combined with microservice style development these architectures facilitate more rapid deployment of independent business services. Services that truly harness the cloud by dynamically scaling resources.
Taking advantage of this means monitoring must become equally future proof by scaling in tandem. However attractive from an architectural perspective, these applications will introduce greater complexity, more interdependencies, newer tech like NoSQL and document-based data stores (e.g. Cassandra and MongoDB) and initiate complex system behaviors due to their highly distributed nature.
The old approach of teams maintaining their own sets of specialized diagnostic tools over infrastructure that falls within their own silo is no longer sustainable. Now, more unified monitoring approaches must provide cross-functional teams with fast visual comprehension to reveal what matters versus what can and should be ignored. Additionally, change analysis to more rapidly isolate problems increases in importance, since the resources underpinning cloud-native applications will unexpectedly shift based on demand, cost and lifecycle.
New applications and architectures supporting more transformative digital business demand IT operations must become as agile as development.