Tag: Continuous Deployments

  • 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.

  • Why Financial Companies Love Continuous Delivery

    Why Financial Companies Love Continuous Delivery

    The other day I was on the American Express website paying bills and browsing around the benefits and services afforded me when I ran across a “who we are” section. It read:

    “We’re a global services company that provides customers with access to products, insights and experiences that enrich lives and build business success.”

    Surprisingly, the term “financial” was missing from the description. This led me to wonder if other financial institutions are evolving how they think about themselves. Here are some other examples:

    • Bank of America: “Here to help connect you to what matters most.”
    • ING: “Empowering people to stay a step ahead in life and in business.”
    • MasterCard: “As a technology company, we connect individuals, businesses and organizations around the world, creating greater opportunities for all.”

    Financial Companies Love Their Customers

    My unscientific assessment of various financial services companies suggests that they are centered on delighting their customers. They are transforming who they are by altering their customer engagement models and essentially becoming better software companies. MasterCard has even reclassified itself as a “technology” company. These companies are transcending the role of transaction engine to offer seamless, intuitive digital experiences for their customers.

    And the proof is in the performance. According to Forrester’s Customer Experience (CX) Index, financial services firms, including retail banks, credit card companies, investment firms and auto and home insurers, are some of the top brands worldwide when it comes to CX.

    You might think that large financial institutions would be digital laggards because of legacy infrastructure, regulatory compliance pressures and overall risk-avoidance. But you’d be wrong.

    In another study, 81 percent of financial services firms said they are embracing digital to redefine their businesses, and 87 percent are on the DevOps bandwagon. Sixty-one percent even said they are disrupting their industry with advanced digital initiatives.

    To stay competitive and improve their customer experience aptitude, financial services firms are undergoing significant digital transformation.

    Getting the Pulse of Fintech Continuous Delivery Adoption

    But how progressive are these firms in terms of their application delivery practices? Working with CA, Gatepoint Research recently surveyed more than 100 IT executives from financial services companies to take the pulse of where they are in continuous delivery adoption. Results can be found in this report and infographic.

    First off, to see if these companies might be considered unicorns or stragglers, they were asked the total volume of monthly deployments in all environments. Forty percent fell at the low end with fewer than 50 deployments per month. Now, lower deployment numbers could mean that these are less agile organizations or that they have fewer applications in general. Somewhat correlative to lower deployment numbers, the survey found that 48 percent currently are not using an application release automation (ARA) solution. Without automation, it’s tough to scale release processes—particularly to keep up with agile development.

    Moving up the spectrum, 41 percent are moderately prolific at 50-500 deployments per month, and then 15 percent are what I would consider rock stars with more than 500 (7 percent of those over 1,000). Those doing hundreds of deployments a month often have agile development teams and more modular applications. They likely have continuous delivery practices in place that push more frequent, iterative deployments left, helping higher-quality applications to move through the pipeline to production.

    The primary application delivery goals for financial services firms for the next 12 months are to get better control of release processes, tools and environments; to reduce risk and failures; and to release applications more frequently. All of these needs typically stem from companies undergoing digital transformation—it feels more chaotic and disconnected, manual processes are breaking under the weight and there’s intense pressure to move faster.

    Compliance was not a top goal, and the majority (83 percent) claim that their current release process is adequate to meet regulatory requirements. However, they did acknowledge that they could improve in terms of knowledge safekeeping and auditability of the release process.

    The data certainly shows that financial services companies are adopting continuous delivery practices in some form and exploring solutions, including many open-source tools, to help them get the job done. They currently are focusing continuous delivery practices on tracking and reporting releases, planning and scheduling releases and automating test deployments. These practices ultimately help financial services companies to release high-quality applications anywhere at any time.

    How Continuous Delivery Helps Fintech Win

    Continuous delivery sits at the heart of many digital initiatives because of what it enables these companies to achieve for their customers:

    • Delivering features and updates that customers need when they need them
    • Delivering applications that meet performance and quality expectations of customers
    • Delivering secure, compliant applications (for external and internal customers)

    Continuous delivery enables continuous devotion to the customer experience.

    Continuous Release: Fast Customer Response

    With continuous delivery, you establish an application release workflow that automatically connects a developer’s update to parallel testing to staging and ultimately to production release. Because of the underlying end-to-end automation technology, these steps can happen quickly, seamlessly and with little to no manual intervention. Some might call it “push button release” or “zero-touch release.”

    It’s a controlled, tracked, governed, collaborative process. Application stakeholders stay aligned as application changes traverse the pipeline. Your customers can have access to fixes, updates and new innovations in days instead of weeks or months.

    Continuous Testing: Building in Quality

    In contrast to the significant time penalties and shortfalls that can happen with manual testing, in the continuous delivery pipeline, testing is shifting left and happening in parallel. Hand-offs and feedback loops are automated and efficient.

    Testing can happen earlier and without delay with the help of test environment simulation. Testing is on target through automatic test case creation, even from requirements. Testing is real-world with on-demand test data generation. And testing is rigorous with developers able to performance test apps at their end. The continuous testing that occurs as part of the process helps to build in quality and ensure top performance before reaching the customer.

    Continuous Compliance: Audit-Ready Processes

    Ensuring applications are compliant and secure is critical for your customers. It’s making sure customer information is safe and that application changes are tracked sufficiently for SOX or other reporting. It’s also about helping out those internal “customers” like auditors to prove compliancy and easily build reports.

    An automated continuous delivery pipeline can track releases, apply role-based governance, orchestrate proper data masking, deploy security policy updates and provide an audit trail for application releases—who did what, when and why. All this data can be collected and reported easily, which saves time and effort for auditors. You essentially stay compliant and secure all the time.

    Customer Satisfaction Through Automation

    Financial services companies are laser focused on using technology to delight and retain customers. And continuous delivery is the application delivery practice that’s underpinning these efforts. The companies that are exceptional at this, with thousands of deployments per month, are using automation tools such as Application Release Automation (ARA). These tools are the backbone of continuous delivery, providing the automated orchestration, governance, tracking and reporting for your pipeline—development through production.

    That’s why I’m not surprised that leading financial services companies make up a large portion of CA’s release automation customers, including Euroclear, GM Financial, ING, Jewelers Mutual and Western Union. Our customers put high value on delivering excellent customer experiences and are implementing modern software delivery methodologies, practices and associated tools to support their efforts. GM Financial recently said it is “the software company that does auto finance.”

    If you are serious about customer satisfaction and staying ahead of nimble competitive threats in the market, you must get serious about end-to-end automation. It’s time to truly embrace the practice of continuous delivery to be able to consistently release applications that are progressive, always compliant and completely customer-satisfying.

    — Patricia Johnson

  • A Ferrari and DevOps: More Similar Than You Might Think

    A Ferrari and DevOps: More Similar Than You Might Think

    In a world where customers aren’t short of options, all businesses are characterized by the need to achieve customer delight. From a technological standpoint, a large part of that hinges on fast-tracking the release of high-quality software. A release every quarter is being replaced by a release every week and sometimes even sooner. Expectations have skyrocketed while the timelines have shrunk even more. It is now imperative for all the different components to sync together effectively to create a competitive advantage for the business that can be sustained over a period of time.

    All the water-cooler talk around DevOps notwithstanding, it’s true identity still varies vastly based on the passionate opinions of participants with varied schools of thoughts. It also bears mentioning that while all of their varied opinions carry a sliver of truth, they also are significantly separated from the heart of the matter.

    To better understand the situation, let’s jump into a story: Once upon a time there was a monk who owned a Ferrari and had no interest in selling it. Every morning when the monk left to teach his mindfulness class, there were three blind men who were captivated by the sound of its engine and the smell of burning rubber. And, yet, they couldn’t see the very object that had captured their fancy. So, one fine day they decided to touch the Ferrari and exchange notes.

    The first man touched the broad wheels of the Ferrari and exclaimed that it was a large contraption made of soft rubber. The second man ran his hands across the exquisite curves of the car and said it was like an ancient Greek statue, while the third one placed his hand on the Ferrari’s windows and concluded it was a moving glass palace on wheels. Although each was right in his own way, none came even remotely close to capturing the essence of a Ferrari.

    By now, you don’t need a monk to tell you that the story of DevOps is very similar. For some, DevOps is all about inculcating the right culture so that different groups can work together seamlessly to achieve a unified goal. For others, it is about establishing the right processes and practices that are in sync with an organization’s business goals. And for those with an axe to grind or proprietary tools to sell, DevOps is all about achieving automated nirvana.

    However, the ground reality is that software development teams constantly are facing increased pressure from business leaders to deliver faster than ever before. The business leaders, in turn, are under the hammer of market forces that require them to accelerate or die. The need of the hour is to deliver high-quality software at the rate of knots, while untangling any that might impede the time to market.

    Continuous Everything

    We at Happiest Minds believe the simple approach to DevOps is one that is “continuous” and at its core has the agile mantra of “people over processes and processes over tools.” The idea of continuously evolving and adapting to changing requirements and demands has been captured in what we call the 7Cs of DevOps:

    picture1The main objective is to ensure agile delivery by embracing continuous planning, continuous development, continuous Integration, continuous deployments, continuous testing, continuous monitoring and continuous feedback.

    However, the cultural component of DevOps cannot be overemphasized. A large part of the success or failure of any DevOps engagement depends upon how willingly it is embraced within an organization and the kind of executive sponsorship it receives from the powers that be. The three widely recognized cultural models that most organizations come under are pathological, bureaucratic and generative. Needless to say, organizations that are riddled with a pathological or bureaucratic culture are likely to experience the least amount of success with DevOps because such organizations tend to cover up failures and eventually pin them on the most susceptible scapegoats.

    The breeding ground that DevOps needs to flourish is a generative culture where information is shared freely and openly, the leadership encourages employees to learn and experiment with new ideas and failure isn’t looked at as the end of the world but rather an opportunity to learn and grow.

    Eventually, organizations will have to embrace DevOps as an integral part of their strategy and not just as a liberal, forward-thinking experiment that scores them some brownie points. But it will take some doing, both at the grass roots and in the board rooms. One has to remember that a lot of people are easily attracted to a Ferrari, but perhaps not to the grind that goes into owning one.

    The idea of having a successful DevOps program is much the same—it’s not just about engaging the best vendor or choosing the right tools or paying lip service to creating the right culture; ultimately, it requires overcoming organizational inertia, resistance to change and making a long-term commitment to the philosophy that takes a larger view of how DevOps can help businesses stay one step ahead.

    About the Author / Arsalaan Kashif

    arsalaan-kashifArsalaan Kashif is associate director of Marketing, Product Engineering Services at Happiest Minds Technologies and has a keen interest in all emerging areas of technology and innovation. Having worked with Unisys, Oracle and HCL Technologies for over a decade, he has experience with taking to market products and services across areas as diverse as application services, cloud computing, DevOps and big data analytics to name a few. Outside of work, Arsalaan enjoys watching noir films and reading John Irving classics. Connect with him on LinkedIn.