Category: Enterprise DevOps

  • Steady On. We Still Have a Job to Do

    Steady On. We Still Have a Job to Do

    It is all the rage to talk about how significantly large language models (LLMs) and generative AI will change every niche and corner of IT. And change IT it will. But the hype cycle is at its highest right now, and I’d caution against getting too worked up about it. We’re in for a few interesting years, and the spaces I cover (DevOps and security—with a more application-centric perspective but with ops experience) are definitely going to benefit from the various AI bits being worked in. All testing—including AppSec, but all testing—will benefit both in test generation and results analysis/filtering. In fact, I’ll go ahead and say that the question in testing will no longer be, “How much time to we have to devote to it?” and will rapidly become “How many systems’ resources do we have to dedicate to it?” It will still be a long process—AI isn’t speeding up the cumulative time it takes to run thorough testing (be it functional or security). It will make that the bottleneck though, because test generation will at least be LLM-assisted, and will eventually become completely generative AI-created while at the same time, results will get more and more filtering and analysis. A minor result here plus a minor result there will automatically be detected as an extended vulnerability. There are a ton of other possibilities, but these two seem pretty obvious when I look across the testing technology space. More testing and better results analysis are on the horizon—without requiring more staff. Of course, you can do so much more, which would require the organization to add staff to follow up on results, but that’s nothing new; testing finds issues that are interruptive and take man-hours to fix—we all know of bits in the application portfolio that we should probably fix but that aren’t high enough priority to do so, for example. But fixing is different than finding. I have seen demos in security scanners that offer auto-fix options for developers. Run the test during CI, create a ticket and let the developer see suggested code rework right in the IDE. It is early days for this, but if you look, you can find vendors doing it. And that’s really rather cool.

    But we’ve all heard the “this changes everything” storyline over and over. 4GLs, XML, Java and JavaScript were all going to eliminate developers. In fact, they all created more developers. AI has a better chance of actually removing parts of our workload than any of these technologies did, but we’re still in “watch and wait” mode. It seems obvious that grunt coding will fall to LLMs … And aside from keeping staff trained to manage source, that is a good thing. We use open source, modules and libraries to do much the same thing today. I see this as equivalent to entry-level writing jobs. We’ll have to transform from the current model, but the current entry level development model wasn’t ideal anyway, so lets make a better one. Testing capabilities will be greatly enhanced, but testing of all kinds was so far behind new code generation at most orgs that the impact will be all positive as testing catches up. AI-based test generation today can generate thousands of permutations for a given piece of code, and analyze the results to just have analysts look at the truly disconcerting or confusing test results. And the question will become, “How many servers do we want to dedicate to run this?” Which is different, but just means we have more tests running to make a more solid and/or secure product and environment.

    So, in summary, is change coming? Yes. And that is not significantly different than the last couple decades where change has become IT’s constant companion. For most of you, the way you do your job today is not the same as the way you did it even two years ago. ML/GAI/LLMs are just another iteration. The apps still have to be built, deployed and maintained. So until HAL comes along, keep kicking it. You’re keeping it together, and who knows what the future brings.

  • Five Great DevOps Job Opportunities

    Five Great DevOps Job Opportunities

    devopsy.kinsta.cloud is now providing a weekly DevOps jobs report through which opportunities for DevOps professionals will be highlighted to better serve our audience.

    Our goal in these challenging economic times is to make it easier for DevOps professionals to advance their careers.

    Of course, the pool of available DevOps talent is still relatively constrained, so when one DevOps professional takes on a new role it tends to create an opportunity for others.

    The five job postings shared this week are selected based on the company looking to hire, the vertical industry segment and, naturally, the pay scale being offered.

    We’re also committed to providing additional insights into the state of the DevOps job market. In the meantime, for your consideration:

    LinkedIn

    Icertis
    Phoenix, Arizona
    Principal Azure DevOps Engineer
    $132,000 to $199,000

    SimplyHired.com

    Decision Sciences International
    Remote
    DevOps Engineer
    $130,000+

    Indeed.com

    Hewlett-Packard Enterprise
    Durham, North Carolina
    DevOps Engineer
    $124,500 to $286,300

    CareerBuilder.com

    CACI
    Oklahoma City, Oklahoma
    DevOps Platform Engineer
    $104,200 to $229,200

    Dice.com

    SPECTRUM
    Greenwood Village, Colorado
    DevOps Engineer
    $78,900 to $139,500

  • Broadcom Survey Surfaces Drive to Consolidate Automation Platforms

    Broadcom Survey Surfaces Drive to Consolidate Automation Platforms

    Broadcom this week published a global survey of 535 IT leaders that found more than three-quarters (78%) are moving to consolidate cloud automation tools and platforms. However, thus far, only 8% of respondents said they had completed that effort.

    Overall, the survey also found more than 81% already have multiple cloud automation solutions in place, and 70% noted this issue had created significant challenges, including increasing time to automate (59%), time to report (52%) and time to remediation (52%) and higher costs (49%). In addition, 46% noted it’s more difficult to troubleshoot IT environments, while 41% noted multiple tools increase compliance risks.

    IT teams also find that having multiple automation tools slows down software delivery (37%) and contributes to the over-provisioning of IT environments (32%).

    Aline Gerew, head of automation for the Agile Operations Division at Broadcom, said the multiple islands of automation that have evolved on various cloud computing platforms now need to be centralized to reduce the current level of friction in the cloud. Those efforts need to start with platforms capable of unifying observability across all the platforms employed, she added.

    The amount of consolidation that any IT organization can implement depends on the amount of political capital they have. In many cases, the applications and associated automation tools running in any given environment have been adopted by a department or business unit that exercises a lot of autonomy regarding IT. The issue that creates is multiple tools and platforms increase the total cost of IT. At a time when many organizations are experiencing economic headwinds, the need to reduce the total cost of IT naturally becomes a more pressing concern.

    Rather than consolidate automation tools and platforms, the simpler option is to deploy an automation framework that is designed to be integrated with the various tools and platforms that are already in place, noted Gerew. That approach enables automation to be applied at much higher levels of scale to reduce costs without forcing every arm of an organization to standardize on the same tools and platform, she noted.

    The survey found that, when it comes to cloud automation, the most important consideration factors are operational costs (62%), performance (53%) and operational efficiency (49%).

    Responsibility for cloud automation will naturally vary from one organization to the next, but the survey noted that 67% of respondents currently have a cloud architect on staff and another 33% are planning to hire one.

    That role is increasingly required as organizations find themselves managing a wide range of cloud computing environments, including software-as-a-service applications (57%), legacy applications that have been lifted into the cloud (56%), new cloud-native applications (46%) and legacy applications that have been refactored for the cloud (41%).

    It’s apparent that cloud computing environments are becoming more complex with each passing day. There may come a day when artificial intelligence (AI) helps reduce the level of complexity; in the meantime, IT organizations need to find ways to streamline the management of cloud computing environments. Today, those environments are made up of applications based on a wide range of increasingly divergent architectures as the rate of application deployments exceeds the retirement of legacy apps.

  • Embracing Chaos With AI: Reinventing SRE’s Anti-Fragility Practices

    Embracing Chaos With AI: Reinventing SRE’s Anti-Fragility Practices

    In my recent blog, Revolutionizing the Nine Pillars of SRE with AI-Engineered Tools, I indicated that AI can contribute to the development of more resilient systems by analyzing system behavior under stress and identifying vulnerabilities. In this blog, I explain, in more detail, how AI-engineered tools can improve the SRE anti-fragility pillar of practice.

    AI Use Cases for SRE Anti-Fragility

    Fire Drills: AI can assist in creating more effective and dynamic fire drills by predicting potential failures based on patterns and anomalies in data. Tools like Gremlin and ChaosIQ can be used to design, schedule and manage chaos experiments. However, resistance from team members may be a challenge due to the potential for disruption. To overcome this, it’s important to communicate the benefits and ensure there are safeguards in place to prevent unnecessary disruption.

    Chaos Engineering – Infrastructure: By introducing controlled failures in the infrastructure, AI can learn and identify weaknesses that would not be apparent under normal conditions. Tools like Chaos Monkey and Netflix’s Simian Army can be helpful here. A significant challenge could be to deal with the resulting chaos and anomalies. Adequate training and support are required to ensure the teams can handle the chaos experiments and learn from them.

    Chaos Engineering – Applications: AI can introduce failures at the application level to understand how the system behaves and recovers. Tools like Litmus can help conduct these experiments. Challenges could include resistance from developers and potential impacts on the user experience. Having a well-defined scope and process and conducting these experiments in pre-production environments can help mitigate these risks.

    Chaos Engineering – Security of Production Environments: By simulating attacks and breaches, AI can help understand vulnerabilities in the security architecture. Tools like Game of Hacks and AttackIQ can simulate different types of attacks. The main challenge could be the potential exposure of vulnerabilities, making it essential to have robust security measures in place and conduct these exercises in a controlled environment.

    Identifying Reliability Weaknesses in Production Logs: AI can analyze vast amounts of log data to identify patterns or anomalies that may indicate reliability issues. Tools like Splunk and Logz.io can help here. However, the sheer volume and complexity of log data can pose a challenge. To overcome this, robust data management strategies and powerful AI-driven analytics tools should be deployed.

    Predicting System Failures: AI can analyze system usage and performance data to predict potential system failures before they occur. Tools like Dynatrace and New Relic can be useful in this scenario. A major challenge here is the accuracy of predictions, which can be addressed by training the AI model with quality data and continuously refining it.

    Automated Rollbacks: AI can help in the automated rollback of deployments if chaos experiments or real-time monitoring reveal major issues. Spinnaker is one tool that can help in this aspect. The challenge is to ensure accurate triggers for rollbacks without causing unnecessary disruption. This can be mitigated by proper testing and calibration of the AI system.

    RoadMap for SREs to Transform Incident Response to Using AI

    Here is a practical roadmap for organizations that want to transform to using AI tools for SRE anti-fragility.

    Define Anti-Fragility Goals: Define what you want to achieve with your AI-driven anti-fragility measures. Is it to reduce system downtime, improve security or enhance overall system resilience? Defining these goals upfront will help guide the selection and implementation of AI tools.

    Identify Use Cases: As per the use cases listed above, identify those that are most relevant to your organization and your specific infrastructure and applications. Prioritize them based on your anti-fragility goals.

    Evaluate AI Tools: Assess various AI tools available in the market, such as Gremlin, ChaosIQ, Chaos Monkey, Litmus, Game of Hacks, AttackIQ, Splunk, Logz.io, Dynatrace, New Relic and Spinnaker. Look for those that align best with your defined use cases and overall goals.

    Pilot and Learn: Select one or two tools and use cases to start. Run pilot programs to understand the effectiveness of these tools and to gain valuable insights. This step also includes training your team to use these tools effectively.

    Integrate with SRE Practices: Once you have gained sufficient confidence in the chosen tools, integrate them with your existing SRE practices. Ensure that these tools can interact with your current monitoring, incident management and deployment tools.

    Iterate and Improve: Continually measure the impact of these AI tools on your systems’ anti-fragility. Use this feedback to refine your approach, re-adjust your goals, and explore other use cases or tools.

    Expand Scope: As your team becomes more comfortable with AI tools and chaos engineering practices, you can gradually expand the scope of AI-driven anti-fragility measures across more applications, systems and use cases.

    Summary

    The rising complexity of digital systems and increasing customer expectations necessitate a shift towards a more resilient and adaptive approach to system reliability. SRE’s anti-fragility pillar embraces this challenge, allowing systems not just to resist stress but to thrive under it. The incorporation of AI tools in the realm of anti-fragility brings this dynamic resilience to a new level, enhancing capabilities from conducting fire drills and chaos engineering to identifying reliability weaknesses in production logs. With AI-driven tools like Gremlin, ChaosIQ, and Splunk, SREs can effectively simulate failures, analyze intricate system patterns, and proactively fix potential issues to build stronger, more reliable systems.

    Embarking on a journey to harness AI for anti-fragility is an exciting endeavor that promises profound benefits. An achievable roadmap begins with setting clear goals, selecting relevant use cases, evaluating suitable AI tools, and running pilot programs. The key is to integrate these tools into existing SRE practices gradually and iteratively, continually assessing their impact and refining the approach based on the insights gained. This journey is a continuous process of learning, adapting, and expanding, fostering an environment where systems can thrive amidst chaos and uncertainty. The future of SRE is here, and it’s more robust and resilient than ever.

  • VS Code for Mainframe: The Enterprise Developer Tipping Point

    VS Code for Mainframe: The Enterprise Developer Tipping Point

    Optics matter. At a recent industry conference, a university lecturer reconfirmed what many in attendance already knew, “3270 [green screens] scare off the young generation of developers.” No matter how state-of-the-art the platform or mission-critical the applications, perceptions are formed largely based on optics, and green screens are not a good look.

    Beyond optics, though, a new option offers the promise of a more normalized developer experience (DevX) and DevOps productivity across platforms, along with the staffing flexibility it brings. In short, Visual Studio Code (VS Code) is a big step toward breaking down the mainframe silo.

    VS Code’s extensible, ‘any language, any platform’ design makes it the perfect tool for mainframe developers and with the free and open Code4z extension pack, VS Code is mainframe-ready. Developers are now using VS Code for mainframe AppDev just like their peers, taking advantage of the extraordinary ecosystem and the other many benefits that have made it a runaway success.

    Per my previous article, Git for Mainframe: Back to the Future, combining VS Code with Git (i.e., editor and source interfaces) makes the experience complete.

    So how does Code4z make VS Code mainframe-ready?  Let’s explore the answers from a functional perspective.

    Editing & Debugging

    Mainframe is closely associated with core languages like COBOL, Assembler and JCL, which are often ignored in the world of modern tooling. With VS Code’s extensible framework, however, incorporating these languages is simple and seamless.

    The Language Server Protocol (LSP), which was developed for VS Code, is now an open standard also used by the next generation of browser-based editors, providing a degree of future-proofing. LSP extensions provide a rich editing experience with a wide range of popular features including IntelliSense, which offers capabilities like syntax checking, verb formatting suggestions and variable name completion.

    Code4z offers LSP extensions for COBOL and High Level Assembler (HLASM) while additional extensions are available for languages like JCL, REXX, Db2, and Easytrieve. The extensibility of this technology has already been used to extend syntax awareness to specific language dialects.

    Similar to LSP, the Debug Adapter Protocol (DAP) provides a native interface and layer of abstraction for debug services. Code4z’s debugger extension facilitates the debugging of CICS and batch COBOL programs, an integral part of the end-to-end experience.

    Access & Security

    Mainframe applications, the lifeblood of many businesses, require rock-solid security throughout the entire SDLC. Code4z leverages Zowe, the award-winning open source framework that extends mainframe security and access controls to tools like VS Code. The Zowe Explorer extension, built on the Zowe CLI, provides access to data sets, jobs and USS files and developers also use it to issue TSO and MVS commands and to submit JCL. Zowe Explorer is packaged with Code4z as is a data editor for mainframe data sets including VSAM. This extension is built on Zowe Explorer, again leveraging the extraordinary extensibility.  A Zowe Explorer for CICS is also available.

    Similarly, developers can access a rich and growing set of conformant Zowe CLI extensions via the terminal and scripting.

    Access to SCMs tools is also supported. In addition to VS Code’s native Git integration, there are extensions for Endevor, ChangeMan ZMF, and related tools.

    DevOps Automation

    Since my introductory article a few years ago, Z is for Zowe – the Open Path to Mainframe DevOps, Zowe has enjoyed wide adoption with 69% of surveyed sites either currently using or planning to use it within the year.

    With mainframe teams now using Zowe to adopt modern shift-left practices, scripts for scanning, building, deploying and testing can be run manually by developers from VS Code, in addition to automatic triggers from code commits. This flexibility further empowers developers to own their code throughout the SDLC and beyond.

    With VS Code, mainframe developers can be equipped with more self-service capabilities like Db2 schema provisioning to accelerate the testing process. With capabilities like these, developers can remain in the VS Code experience focused on editing rather than being distracted by low-value infrastructure activities, like requesting and waiting for DBA action.

    Playing the Long Game

    While VS Code is the dominant tool today—almost 3 times as popular as its closest competitor according to Stack Overflow with the lead growing—what is the long-term opportunity?

    Demand for a modern, enterprise-aligned experience spans many domains, from increasing productivity to backfilling retiring staff. Elevating team morale and future-proofing vital mainframe assets ensure this adoption trend will only increase.

    But tools change. Browser-based editors and in-the-cloud collaboration are gaining greater acceptance and the AI-assist excitement is palpable. Bringing mainframe developers onto an enterprise platform ensures mainframe teams will be able to benefit from the same advances as distributed peers. Enabling VS Code and its cloud equivalents demonstrates a commitment to the long-term success of these applications and by reducing the idea-to-production cycle, product owners become champions.

    While not all mainframe developers will embrace VS Code, especially those close to retirement, the vast majority will, as we have experienced within our Broadcom engineering organization. The bottom line is that VS Code makes them even more productive, as illustrated in Confessions of a Career ISPF Programmer.

    Many of today’s developers are proficient with multiple languages (i.e., polyglot) so picking up an additional language like COBOL becomes less daunting if everything else—editor, repo, DevOps processes, etc.—is familiar.

    Getting Started

    For a closer look at the many free and open Code4z extensions, check out the Developer Cockpit, which simulates a COBOL/Db2/CICS developer configuration. And read From VS Code to Mainframe Developer Cockpit for more detailed use cases.

    Most importantly, try it! Code4z is available on the VS Code Marketplace.

    And stay tuned for additional Code4z extensions in the pipeline. There’s never been a more exciting time to be a mainframe developer!

  • Convert COBOL Easily? Yes, Please!

    Convert COBOL Easily? Yes, Please!

    I was reading Mike Vizard’s article about IBM previewing an AI tool to convert COBOL to Java and mentally cheered this move. No, seriously—massively cheered this move.

    There are a lot of uses of large language models (LLM) right now, and many of them are not all that exciting, in my opinion. This one, though? This is huge. In the course of my career, I have been involved in three projects to convert COBOL and one to convert FORTRAN, with some projects that required interfacing with RPG III systems. In all of these cases, the costs were prohibitive. Two of the three COBOL projects never made it past estimates because the cost of resources who know both COBOL and Java were prohibitive, as is the complexity of most mainframe applications as they were modified over the years. The Fortran project never got past resourcing, and the RPG III interfaces were just that. We had to pull the data as it was presented by RPG III systems and only act on our copy, with a separate process used to update the core systems. Why? Because modifying the RPG was impractical, but we could be agile. It was … painful, to put it mildly.

    What all of these projects shared was the lack of a skilled workforce. And what IBM is offering is an LLM that acts as that workforce. If you get the application into Java, there is a large pool of developers that can then troubleshoot it. While the environment issues will still exist and people skilled in tools like JCL are increasingly hard to find, that part can be rebuilt in the new environment. (One question I have about IBM’s project is, “Can it convert to Java for a Linux LPAR/VM?” I suspect that this iteration converts within z/OS, but it would be cool to see increased options in the future.)

    Honestly, this trend will only increase. While IBM’s use of LLM is aimed at moving COBOL to Java, there are an incredible number of lines of Java out there to train on, so soon enough, there will be other conversions in and out of Java. And that’s all good news. We recreate the wheel a lot. The longer-term implication of AI-assisted conversion is that we won’t have to. Think about it: We could feed in a mathematical routine in Fortran and get the language of our choice out the other side.

    Way back in the day, a collection of compilers named TopSpeed let you develop in any of several languages, even mixing and matching to create applications that used each language (and developer) for their strengths. This is the TopSpeed dream writ large. (Disclaimer: I was a huge TopSpeed fan. Bought their intro kit and wrote systems mixing C/Pascal/ASM without having to mess with things like parameter sequences. Yeah, I was cool.)

    We have had too few developers for a very long time. Now, we are about to have a world where developers can focus on truly unique functionality, and the rest is generated based on the mass of implementations we already have. Think in terms of sorting algorithms—99% of the sorting problems out there were mastered decades ago, and yet we frequently see people re-implementing, even today. Now we can tell a system, “Generate a tree sort,” and just make calls. Every time we implement a new language, this type of thing has to be re-implemented, and often it is re-implemented because we don’t know about the available solutions. In the future, we will have solutions at our fingertips.

    And as with the other benefits of automation, we’ll do less busy work and add more business value. While there will be some pain, I think in the long term that is a huge benefit. And you’ll still be there, making things go zoom.

  • IBM Previews Generative AI Tool for Converting COBOL to Java

    IBM Previews Generative AI Tool for Converting COBOL to Java

    IBM this week announced it will preview a generative artificial intelligence (AI) tool for converting COBOL code running on mainframes into Java. The preview will be available next month during IBM’s TechXchange learning event, IBM said.

    Kyle Charlet, CTO for Z software at IBM, said watsonx Code Assistant for Z makes use of large language models (LLMs) that IBM has trained to both convert and optimize Java code for z/OS running on IBM mainframes.

    Rather than converting COBOL into Java code line for line, the watsonx Code Assistant for Z improves the syntax of Java code generated using object-oriented techniques, he noted.

    IBM’s watsonx.ai code model, which will have knowledge of 115 coding languages, is based on 20 billion parameters that will eventually be applied to other programming languages such as PL/1, added Charlet.

    That model is the same core LLM that IBM used to create Red Hat Ansible Lightspeed, a tool to generate code for an IT automation framework that is scheduled for release later this year. In the future, IBM will also most likely employ generative AI to convert REXX code into Ansible code, said Charlet.

    IBM expects the final offering will combine generative AI tools with its existing Application Discovery and Delivery Intelligence (ADDI) inventory and analysis tool to streamline the modernization of legacy mainframe applications.

    The goal, however, is not to move COBOL applications off the mainframe. Java applications created using watsonx Code Assistant for Z will still call the same data sources, such as an IMS database or CICS transaction processing system, as the original COBOL application.

    That approach will make mainframes more accessible to a wider pool of developers that know Java, which should increase the overall pace of innovation for application development, noted Charlet.

    There are billions of lines of COBOL code currently running on mainframes that, in one way or another, need to be modernized as the pool of developers that know COBOL continues to shrink. Generative AI will make it easier to quickly assess, update, validate and test code, which should accelerate code conversion efforts that otherwise would take years to complete, said Charlet.

    It’s not clear how quickly organizations might move to modernize COBOL applications, but as the time and effort to do so decreases, so should the cost of modernizing legacy code. Most organizations still running z/OS on mainframes are committed to the platform, but if they can transition to Java, the overall cost of building and maintaining mainframe applications should decline.

    In the meantime, it’s not likely that AI will replace developers. IBM recommends that developers further optimize the Java code generated by watsonx Code Assistant for Z.

    Most developers are already using some form of AI to accelerate application development. The next wave of AI will see more widespread use of LLMs that are optimized for specific tasks and that generate more reliable results. After all, the quality of any output from an AI model is always directly related to the quality of the data used to train it. The narrower the set of vetted data, the more trustworthy the AI becomes—the opportunity for erroneous data to create AI hallucinations is a whole lot less than any general-purpose AI model could achieve with customization.

  • VMware Previews Spring AI to Accelerate Java Development

    VMware Previews Spring AI to Accelerate Java Development

    At a SpringOne at VMware Explore event this week, VMware demonstrated a tool that uses abstractions to make it simpler to build Java applications that invoke multiple artificial intelligence (AI) components with minimal changes to code.

    The goal for the open source Spring AI project is to, for example, make it simpler to swap out AI models using an AiClient interface for invoking OpenAI and Azure OpenAI services. It also adds capabilities that promise to make it simpler for developers to query documentation using generative AI enabled by large language models (LLMs). An additional goal is to extend those capabilities to other Spring projects, including Spring Integration, Spring Batch and Spring Data.

    In addition, the Spring command line interface (CLI) has been extended to support Spring AI and the Spring Boot framework has been extended to help set up dependencies and classes more easily.

    The AI capabilities are part of several additions made to the widely used framework for building Java applications that address everything from automatically turning off instances of Spring running in a container, also known as scaling to zero, to using virtual threads to call external services in a way that reduces memory consumption.

    Those additional capabilities promise to make it more efficient to run Java applications in, for example, a cloud computing environment.

    Betty Junod, vice president of product marketing for modern applications and the Management Business Group at VMware, said generative AI capabilities should serve to make Spring more accessible by not having to click around as much to gain answers to questions.

    In general, VMware is betting that a larger percentage of the Java applications built using Spring will be deployed on the Tanzu platform the company has built on top of Kubernetes. That platform streamlines the application development process in a way that reduces the cognitive load on developers by eliminating the need to know how to work with YAML files or use Docker Compose to create containers.

    Despite the proliferation of alternatives to Java, it remains the primary programming language used by developers to build applications. The challenges involved with learning additional programming languages are high, so most developers would prefer to continue to use Java to build both monolithic and emerging cloud-native applications.

    In the meantime, AI is already widely employed to help developers write code faster. AI isn’t going to replace the need for developers, but it will increase the pace at which applications are being developed. As such, DevOps teams will soon see a significant increase in the amount of code moving through DevOps pipelines. The hope is that AI will be applied in a way that enables those DevOps teams to manage increasingly larger codebases.

    In fact, the way applications are built and deployed will drastically change now that the AI genie is out of the proverbial bottle. But it remains to be seen how quickly those advances will change the way DevOps is managed at a level of unprecedented scale.

  • Strategic Roadmap for SREs: Software Deployments With AI

    Strategic Roadmap for SREs: Software Deployments With AI

    In my recent blog Revolutionizing the Nine Pillars of SRE with AI-Engineered Tools, I indicated that SREs can use AI and machine learning to optimize deployment strategies and minimize risks. In this blog, I explain, in more detail, how AI-engineered tools can be used to improve the pillar that I call deployments.

    SRE Use Cases for AI-Assisted Deployments

    Here are use cases for SREs to use AI to assist with software deployments.

    Pre-Deployment Preparation Activities: AI can analyze the deployment package to assess dependencies, predict potential conflicts and evaluate the readiness of the package for deployment. AI can also assist in configuration management, ensuring the correct configurations are applied based on the deployment environment. Tools like Harness Continuous Delivery use machine learning to predict the success of deployments based on previous patterns and trends.

    Deployment Decision Process Automation: AI can use data from past deployments, current system status and predictive analytics to decide the best time and method for deployment. It can assess the risk associated with the deployment and help in decision-making. Tools like IBM’s UrbanCode Deploy leverage AI to optimize deployment processes based on historical data.

    Deployment Orchestration Using Blue-Green: AI can help orchestrate Blue-Green deployments by managing the routing rules, monitoring the performance of the new environment and deciding when to switch traffic. Tools like Spinnaker, integrated with AI capabilities, can automate this process more effectively.

    Deployment Orchestration Using Canary: In Canary deployments, AI can analyze the performance of the canary instances in real-time, compare it with the baseline and make data-driven decisions about whether to proceed with the full deployment. Canary deployments can benefit from AI tools like Flagger, which automatically advance or roll back deployments based on key metrics.

    Deployment Orchestration Using Feature-Flag Rollouts: AI can help manage complex feature-flag rollouts, analyzing user behavior and system performance to optimize the rollout strategy. Tools like LaunchDarkly provide feature flag management and integrate machine learning for more sophisticated flag controls.

    In-Production Testing: AI can enable more effective testing in production by identifying unusual system behavior, predicting potential issues and recommending areas for focused testing. Chaos engineering tools like Gremlin integrate AI to automate the identification of system weaknesses.

    Decision-Making and Orchestration of Rollbacks: AI can monitor the health of the system post-deployment, making data-driven decisions about when a rollback is necessary. AI can also help orchestrate the rollback process to minimize disruption. Harness Continuous Delivery provides AI-driven rollback capabilities.

    Monitoring Performance of Deployed Artifacts: AI can analyze the performance of deployed artifacts, compare it with baseline performance, and predict potential performance issues. Tools like Dynatrace use AI to provide real-time performance monitoring and anomaly detection.

    RoadMap for SREs to Transform Deployments to Using AI

    Here is a practical roadmap for SREs to transition to using AI tools for deployment.

    Needs Assessment: Begin by understanding the current state of your deployment processes and identify areas where AI can bring the most benefits. This could be in deployment decision automation, deployment orchestration, in-production testing, rollback decision-making or performance monitoring.
    Tool Selection: Research AI-enabled tools that are available in the market that could fulfill your specific needs identified in step one. Some of these tools could include Harness Continuous Delivery, IBM’s UrbanCode Deploy, Spinnaker, Flagger, LaunchDarkly or Gremlin. Remember to evaluate these tools based on their features, scalability, compatibility with your existing systems and cost.
    Pilot Program: Implement a pilot program with the selected AI tools on a small scale or in a non-critical environment. This will allow you to evaluate the tool’s effectiveness, understand its strengths and weaknesses and refine its configuration and usage in your environment.
    Training: Ensure your SRE team is adequately trained to use the selected AI tools. This could involve formal training sessions, self-guided learning resources or hands-on practice in a sandbox environment. Remember, the tool is only as good as the person using it.
    Gradual Rollout: Once you’re confident in the tool’s effectiveness and your team’s ability to use it, begin a phased rollout of the tool in your production environment. Monitor closely and be ready to adjust as necessary.
    Continuous Improvement: Regularly review the tool’s effectiveness and look for ways to further optimize its usage. Stay informed about updates to the tool and industry best practices, and continually adjust your processes to stay ahead of the curve.

    Summary

    AI’s role in enhancing SRE practices, specifically software deployments, is revolutionizing the efficiency and reliability of deployment processes. From pre-deployment preparation to monitoring the performance of deployed artifacts, AI tools can automate complex tasks, make more informed decisions and improve the speed and reliability of deployments. Whether you’re using Blue-Green, Canary or feature-flag rollouts or you’re navigating decision-making for rollbacks, AI tools like Harness Continuous Delivery, UrbanCode Deploy, Spinnaker, Flagger, LaunchDarkly and Gremlin can be game-changers.

    However, transitioning to AI-driven deployments isn’t an overnight switch; it’s a journey that requires strategic planning and execution. Starting with a thorough needs assessment, choosing the right tools and implementing them via a pilot program is the first leg of this journey. Training your SRE team on these tools and rolling them out gradually in your production environment will ensure a smooth transition. And the journey doesn’t end there. Regular tool effectiveness reviews and staying up-to-date with the latest in the tool’s features and best industry practices will ensure that you’re getting the most out of AI in your deployment processes. Embrace the AI revolution in SRE to stay ahead of the curve in the fast-paced world of continuous software deployments.

  • IBM to Provide Hybrid Cloud Service Based on VMware Cloud

    IBM to Provide Hybrid Cloud Service Based on VMware Cloud

    At the VMware Explore 2023 conference this week, IBM announced that it will soon provide a fully managed service based on a streamlined edition of VMware Cloud.

    Brendan Kinkade, vice president for independent software vendors, technology and hybrid cloud partnerships for IBM Global Sales, said VMware is now making available editions of VMware Cloud that are both easier to deploy and manage and, just as importantly, migrate between cloud platforms and on-premises environments as IT teams see fit.

    IBM is committed to using that platform to deliver a managed VMware Cloud service that will span hybrid cloud computing environments aligned to an NIST-validated framework, he added. That approach is critical because it will enable IT teams to apply VMware license credits to any instance of VMware Cloud no matter where it is deployed, noted Kinkade.

    In addition, the streamlined edition of VMware Cloud doesn’t use proprietary application programming interfaces (APIs) to make it simpler to port IT environments to another cloud service or back to an on-premises IT environment whenever necessary, he added.

    At the foundation of the hybrid cloud service will be an instance of a multi-tenant vCloud Director console residing on the IBM Cloud. Through the console, IT teams will be able to work with IBM to co-manage application environments.

    In addition, IBM is providing a managed IBM Cloud Cyber Recovery (ICCR) Service to better secure cloud computing environments.

    It’s not clear how much of IT is now being consumed as a managed service, but the COVID-19 pandemic has certainly increased that number. Many IT organizations are also finding it simpler to rely on a managed services provider (MSP) to manage infrastructure so they can focus more of their time and effort on application development, noted Kinkade.

    MSPs are also in a better position to aggregate all the telemetry data needed to train artificial intelligence (AI) models that will be used to automate workflows, he added.

    Exactly how DevOps workflows will evolve as organizations rely more on external service providers to manage IT infrastructure is, naturally, a work in progress within many organizations. The main challenge is aligning a unique set of continuous delivery (CD) practices for deploying and updating applications with a provider that has already defined its own workflows.

    Nevertheless, given the complexity of those environments, many organizations are not able to hire and retain the IT expertise required to manage it, so the only option may be to rely on an MSP.

    Each IT organization will need to decide whether to rely on an MSP, given the total cost of a service. Many organizations often wind up having a mix of workloads managed by internal IT teams and external service providers. The one thing that is certain is that as the pace at which workloads are being deployed in the cloud increases, many internal IT teams are overwhelmed by a level of complexity that will only increase.