Author: Matthew Clemente

  • Irreconcilable Differences: DevOps Grapples With Issues

    Irreconcilable Differences: DevOps Grapples With Issues

    DevOps issues can be a thorny subject. The coming together in harmony of Dev (developer) and Ops (operations) represents an arranged marriage of sorts that, for some, will never have a ‘happily ever after’ ending as both parties ultimately grapple with irreconcilable differences.

    But despite the naysayers, the very existence of DevOps as a portmanteau (and perhaps sister labels like DevSecOps, to form a security sandwich) is, in many ways, a validation of the need to form a bond of tighter unity and harmony between two factions that have often been at odds with each other over the years.

    Even with the popularization, extrapolation and democratization that DevOps has enjoyed through the last decade, not everyone will be convinced of its worth and/or its effectiveness—some even doubt its very existence. Some say that DevOps already existed without a formalized label if you look at the software development practices IBM championed a quarter-century ago.

    One thing we can be certain of is that DevOps almost always throws up a few meaty bones of contention. Let’s take a closer look at these issues in the hope that we can harness some of the angst and turn it into positive energy for a DevOps-enriched future. If we are to analyze the most contentious and sensitive DevOps issues in this space, what should we be aware of and how do the big issues break down?

    Is it a Bird? Is it a Plane?

    Arguably, the biggest problem DevOps faces is categorizing it. Some call it a methodology for software application development. Proponents of ‘classic’ software methodologies disagree with this idea as, for the purists, a software methodology can only be Agile, waterfall, extreme, rapid, joint or Scrum.

    These semantics mean that many people would prefer DevOps to be classified as a culture, a workplace ethic, a technique, a culture and/or a mindset or, perhaps in the vaguest terms, an approach. To be truly successful with DevOps you must take a holistic approach and look at the entire development cycle from beginning to end. Closely evaluate the processes that go into development to find bottlenecks and roadblocks to productivity. By finding the areas where your current processes come up short, you will be able to identify the areas to emphasize when implementing a strong DevOps strategy.

    Cloud-Native DevOps

    Anyone who hasn’t been living in a cave since the turn of the millennium will know that cloud computing has grown, faltered occasionally and, ultimately, blossomed to become a new standard barometer for all organizations on their journey toward so-called digital transformation.

    That’s the good news. The not-quite-so-good news is that cloud (and the contemporary drive to go cloud-native) is still complex from initial deployment to ongoing maintenance, management and reporting.

    Taking DevOps into the world of cloud-native will ultimately pay off, but first, there will be challenges as teams get used to the new shape, form and function of the altogether more abstracted and virtualized software toolsets.

    The key to getting cloud-native DevOps right will be a prudent approach to monitoring and observability. As cloud-centric DevOps teams ingest the logs, metrics and traces they need to perform solid and dependable system observability, they will need a consistent set of tools to monitor and observe systems in the long term. Within this practice, it will also be important to remember that monitoring shows you lower-level granular information related to system performance. Observability includes all the information gleaned from monitoring and also includes higher-level tools, some of which will be data visualizations for DevOps practitioners to use. When the two are combined for cloud-native DevOps, system health can be optimized, preserved and maintained while any debugging or root cause analysis is executed at the lower level.

    Machines in the Application Loop

    With machine-to-machine events now happening more prevalently inside the internet of things (IoT), the need to capture, integrate and analyze the event streams that go on outside of the human loop and bring those log metrics back closer to the sphere of ‘human’ software engineering is not a plug-and-play quick fix.

    Getting machines to play nicely and be a part of expansive and progressive DevOps teams should be a given. After all, they’re just machines. In reality, there will be specific skills needed and human DevOps personnel will be required to get used to updates and other alerts that they have not considered before.

    AIOps and Automation Limits

    Related to our last point on machine events, we need to think about AIOps. When we build AI-driven DevOps and create AIOps, we will need to stop and question where we set limits on process automation and where the wider elements of automation hit the limiter/restrictors. To know just how far we should build out our AIOps practice, exhaustive auditing and analysis must to be carried out; the whole technology proposition here is no simple point-and-click affair. Even when we do establish workable AIOps, know that there will be perimeters.

    Add all that to the fact that some AIOps implementations will require what we like to call ‘human handoff’ support when the AI intelligence engine doesn’t know what to do next and needs additional data and training—only then can we start to appreciate that AIOps itself is no simple plug-and-play affair.

    Lift and Shift Doesn’t Scale

    One of the unfortunate truths in too many real-world IT shops today is that, where the cloud is used, it is used poorly. Too many technologies are unceremoniously lifted and shifted to cloud instances that an organization procured. This makes cloud-centric DevOps harder to achieve. But why?

    Because what happens back down in terrestrial (i.e., non-cloud) programming is the development of individual cross-functional software teams. This silo-based approach happens due to corporate legacy structures, company management systems and, sometimes, for personal, parochial or cultural reasons. When different teams are all reinventing wheels (running diagnostics tests, setting up CI/CD pipelines, delivering upgrades and so on) that should be shared and accessible to all, a natural level of inefficiency surfaces.

    DevOps Issues: Conclusion

    These are the five most contentious DevOps issues in the near term, and it would, of course, not be too hard to find and categorize even more. In the future, we might even need to argue over which developers should be categorized as core devs and which core members of the operations department to include.

    For software developers, software architects—really, all the software engineering professionals who work in systems administration, database admin, testing, security and all other forms of operations—there’s quite a lot at stake and quite a lot to fight over. And if you ask me, that’s what makes DevOps great.

  • How Continuous Transformation Can Deliver More Value

    How Continuous Transformation Can Deliver More Value

    Continuous transformation in IT operations is more than just an industry buzzphrase. In fact, continuous transformation is a critical survival tool for any cloud and IT solution landscapes today. To achieve continuous transformation, innovation must continue well beyond a migration to the cloud. This continuous innovation during day-to-day IT operations is the most critical aspect to achieving month-over-month best-in-class operational benefits.

    Simply “lifting and shifting” systems to the cloud without modernizing precludes most of the key benefits that your systems can potentially deliver over the long term. For example, some of the outcomes of this approach, including bug fixes and other common errors, cause downtime and delays that businesses cannot afford in these highly competitive environments. In addition, unplanned downtime and disruptions impact revenue and can damage brand reputations, both of which detract from a business’s ability to compete and win in their market.

    Proactive vs. Reactive 

    To stay ahead of the pack, companies must shift from a reactive to a very proactive posture. Error prevention is far more effective than fixing errors and resolving issues as they happen. To this end, companies should be leaning on service providers that proactively cover the entire application and infrastructure landscape, end to end, through customized, out-of-the-box solutions. For example, proactivity is rapidly enhanced by including predictive analytics and other fault-finding algorithms in software, such as:

    • Analytical anomaly detection.
    • Cloud-enhanced and optimized monitoring templates.
    • Self-healing automated reaction, from disk extensions, cluster and scaling groups to ensure an issue does not result in downtime, simply a post-event investigation.

    A company’s IT needs are also continually changing as business landscapes evolve. For example, being on the cloud and using service level agreement (SLA) measurement has now advanced to become mission-critical in two areas: bottom-up technical SLAs (as per usual) and now, more importantly, top-down business transactional SLAs.

    Here are some ways IT could streamline its operations and deliver the most value back to the business:

    • Operations Analytics – An operations analytics tool allows for capacity planning, monitoring usage trends and patterns over time. Should deviations from the anticipated usage occur, IT teams can react immediately, implementing remedies before the situation escalates to an incident. This early intervention could be done either manually or automated. Automated scripts, triggered by predictive alarms, can restart services and adjust virtual resource allocation or any other remedial action necessary.
    • Predictive Analytics – Future planning is essential to successful business operations. Predictive analytics improves on this by using precursor and antecedent information to predict system failure with an associated confidence level. IT teams know when resources operate outside their anticipated range and how likely they are to fail within the next period. System failure is usually associated with a surge in user activity. This is not easily predicted, driving the need for advanced predictive analytics. Armed with this information, IT teams can carry out preventative maintenance on data centers and associated systems, such as that done for manufacturing machines in industrial applications.
    • Automated Self-Healing Systems – By combining artificial intelligence and machine learning, digital innovation has made it possible for business systems to self-heal. Advanced, automated software packages monitor business systems, finding errors and fixing them without human intervention. These systems address performance variations and restore outages as well.

    Through self-learning algorithms, the software learns and understands the normal business operations and its reactions to irregularities and errors. Using this information, the software reacts appropriately when it detects errors, automatically restoring the business system to normal operations. These automated, exponential self-healing packs utilize innovative, continual logic learning as part of their standard software package. These systems also resolve issues in a fraction of the time it takes through traditional manual intervention. Typically, the end user doesn’t even realize that an error has occurred, improving the user experience dramatically.

    The implementation of self-healing systems is relatively quick and can be done in as little as four weeks. As a result, IT teams will have access to advanced troubleshooting and automated diagnostic, enabling fast, root-cause analysis of any errors that occur—implementing the solution through guided prompts, documents the resolution for future reference. And, if the same error occurs again, the solution will automatically be executed.

    Automated self-healing systems offer a range of benefits, including business and IT cost reduction, decreasing unplanned downtime and risk-free digital footprint expansion for continuous transformation. IT professionals can work strategically, delegating mundane and repetitive tasks to automated processes, freeing time and resources to carry out more advanced tasks aligned to business goals.