Tag: continuous integration

  • CircleCI Adds Release Orchestration Capability to CI/CD Platform

    CircleCI Adds Release Orchestration Capability to CI/CD Platform

    CircleCI today added a release orchestration capability to its namesake continuous integration/ continuous delivery (CI/CD) platform to give developers more control over application deployments.

    CircleCI CTO Rob Zuber said a CircleCI releases capability provides development teams with the ability to release a controlled subset of their code in a live production environment in a way that provides immediate feedback on how that code is performing. That level of visibility can then be used to determine whether that code might need to be rolled back using automation tools embedded in the CircleCI CI/CD platform, he added.

    In the absence of that capability, noted Zuber, it takes DevOps teams, on average, 45 minutes to an hour to manually roll back an application.

    Initial platforms supported by CircleCI releases are Kubernetes and Amazon SageMaker. CircleCI releases is also compatible with the open source Argo CD platform that CircleCI integrated its platform with last year.

    CircleCI also plans to add support for blue-green deployments later this year, enabling DevOps teams to deploy one application version more gradually to replace another.

    The way CD is managed often varies widely from one organization to another. In highly regulated industries, CD is typically managed by a central team to ensure compliance requirements are met. In other instances, developers are directly responsible for building and deploying their code. Regardless of approach, CircleCI enables organizations to define a set of guardrails to ensure best practices are observed, noted Zuber. In effect, each organization can implement a set of checks and balances that are aligned to their specific needs, he added.

    As DevOps continues to evolve, more organizations want the ability to control deployments at a more granular level by, for example, only making a new application or an update available to a select number of users. Once deployed, developers need a more holistic view into not just how that application is performing but also how it impacted the business, said Zuber. If, for example, the number of logins declines after an update, a developer needs the information to determine whether that update should be rolled back as quickly as possible, he added.

    It’s not clear how many organizations are managing the entire CI/CD workflow on an end-to-end basis. While most DevOps teams make extensive use of CI to build an application, the deployment of applications is still often managed manually. However, as CD capabilities become simpler to employ across platforms with standard interfaces, the number of organizations automating CD should steadily increase. In fact, that capability will soon prove essential as, thanks to the rise of generative artificial intelligence (AI), the pace at which applications are being built only continues to accelerate.

    In the meantime, each organization will need to determine how closely it wishes to integrate CI and CD workflows. However, the more tightly integrated these processes become, the simpler it becomes for developers to assume full responsibility for building and maintaining the software they create.

  • Is it Time to Reconsider CI?

    Is it Time to Reconsider CI?

    DevOps is old, in technology terms, at this point. Many of you have never developed under a waterfall and have no idea what tools like Visual Test were, and that’s actually very cool. While knowing other processes and tools does help make informed decisions, being immersed in the tools that matter today is more important. We have entire DevOps stacks built up that allow for the development, building, testing and, increasingly, deployment of apps in an agile environment.

    As always happens, market leaders and those who compete with them, complement them or serve a subset of the market have grown up and become standards. Indeed, application release orchestration (ARO) was a phrase coined in the early days of DevOps that fell away completely; I heard it recently and thought, “Oh, are we bringing that name back?” Vendors have come and gone; some merged into other products, and some are just plain gone. Again, that is a good thing as the market, its needs and the customer base are all mature. While it is terribly painful to be the user of a product that just goes away one day, the prevalence of open source in the CI/CD landscape does buffer that pain a bit. And the market gets better as tools fall away and new ones take their place.

    But sometimes, the movement is slow, just simply due to inertia. Most of us – and by us, I mean IT shops, and by most I mean a lot – use Jenkins. The number seems to be on a steady downward trend, and the tool’s maintainers have definitely taken steps to improve the parts that make organizations consider other solutions, but the trend is there.

    And I, personally, think that is a good thing. Stagnation is what made waterfall such a weakness in enterprise IT. Everyone did it, so that makes it good. Same is true for the old phrases we’ve all heard at least one variant of – “No one ever got fired for buying IBM”, or “No one ever got fired for buying Oracle”, “…Cisco”, etc. The obvious answer to those statements then, as now, was, “Well, maybe they should have.”

    The same is true for Jenkins. It is a great system that can do everything. And that’s part of the problem. If you have small projects or are a team using it standalone with light requirements that all revolve around getting a quality product out the door quickly, Jenkins just might be too much for you. In the early days, Jenkins wasn’t, but the plug-in architecture and years of competition and changing market needs have made it huge. And while there is arguably better documentation than any other CI, and inarguably the largest user base to ask questions of, it’s still weighty to use in place of a SaaS that comes pre-configured and you can just hand it a repository with build files in it.

    There are a lot of enterprises that need what Jenkins has grown into–it did not expand in a vacuum. But there are many, particularly new, small, agile orgs or standalone teams that just don’t.

    There are a lot of options out there, and it is worth taking stock of what you are trying to do with your build/test process, and build a list of things required, then look seriously at what’s available. For some, lightweight is good.

    Of course, as much as one can be in our technological age, I am a minimalist. I like my D&D to be a rules-light variant, my dev tools to have enough functionality but not bury me in extraneous stuff, laugh at Excel for including abstract functions and then selling to consumers, etc.

    At my company that does development, we do indeed use Jenkins. But our projects range from simple knock-it-out one-offs to complex systems with multiple servers and clients, so we feel it is best for that range of variation. And like many others, the investment to move old projects would be questionable without a driving need. Not that I get to do much development these days myself, but I do stay in it just enough to be dangerous. But we have asked the question and determined the answer. For now.

    If you have issues with Jenkins, look around. There are options. They are not for everyone, but your org isn’t everyone. Find the best tool, not the most convenient, and keep kicking rear.

  • How New Tech Elevates Release Management’s Quality Standards

    How New Tech Elevates Release Management’s Quality Standards

    Release management is a critical discipline within software development and IT operations that focuses on the planning, scheduling, coordination and deployment of software releases. It includes the procedures, plans and methods employed to guarantee that software updates or items are sent to customers in a secure and effective way. Release management’s main objective is to make it possible for software releases to be delivered reliably and smoothly while causing as little disturbance as possible for the company and its users. This entails overseeing a release’s whole lifespan, from preliminary planning through testing, deployment and post-release support.

    Challenges in Traditional Release Management

    Traditional release management approaches often face several challenges that can hinder the efficient and effective delivery of software releases. These include manual and time-consuming processes, lack of visibility and traceability, complex and fragmented environments, limited collaboration and communication and a lack of effective communication channels and collaboration tools. Manual processes can be time-consuming, error-prone and lead to delays in release cycles. Lack of visibility and traceability can make it difficult to track the status of releases, identify bottlenecks and troubleshoot issues effectively. Fragmented environments can be complex and differ widely from one another, making managing and synchronizing these environments manually challenging and prone to errors.

    Limited collaboration and communication can lead to miscommunication, delays and misunderstandings. Traditional release management can lead to silos between development, operations and other stakeholders, hindering efficient coordination. Inconsistent release practices can lead to variations in processes, documentation and quality standards, making it difficult to establish a standardized and repeatable release process. Lack of automation and continuous integration can slow down the release process, increase the chances of human errors and inhibit the ability to deliver frequent, small and reliable releases. Limited scale and adaptability can be addressed by adopting new technology and modernizing release management practices. Automation, continuous integration, deployment pipelines, collaboration tools and standardized processes can help overcome these hurdles and enable more efficient, reliable and quality-driven release management.

    Benefits of New Technology in Release Management

    Advanced Testing Techniques for Improved Quality Assurance

    1. Enhanced speed and efficiency
    2. Improved interaction and collaboration
    3. Improved stability and quality of software
    4. Reduced risk and downtime

    Using New Technology: Implementation Techniques

    1. Organizational readiness assessment
    2. Choosing the correct technologies and tools
    3. Developing an all-inclusive release management strategy
    4. Embracing the DevOps and Agile principles

    The Impact of New Technology on Release Management Quality

    Automation: Accelerating Release Cycles and Ensuring Consistency

    Automation plays a pivotal role in release management by significantly accelerating release cycles. It reduces manual effort and expedites the delivery of software releases, leading to a faster time-to-market. Automated workflows enforce standardized practices, configurations and environments, resulting in more reliable and predictable releases. Automated testing frameworks and tools enable faster and more comprehensive testing, while continuous integration and automated build processes facilitate seamless integration of code changes. Automation also enables better visibility and traceability, allowing release management teams to track the progress of releases, identify bottlenecks and analyze performance metrics.

    Continuous Integration: Early Detection of Issues and Improved Collaboration

    Continuous integration has revolutionized software development practices by emphasizing early issue detection and enhanced collaboration. By regularly integrating their code, businesses can spot problems early and fix them, decreasing the possibility of significant issues later in the development cycle. Additionally, increased developer collaboration encourages better coordination, communication, and information sharing, which results in a more effective and unified development process.

    Organizations can profit from continuous integration by utilizing automated build processes, extensive test suites and a collaborative development environment. Early problem identification and enhanced teamwork not only lead to better software quality but also enable development teams to build applications more quickly and consistently. Organizations can achieve improved efficiency, productivity and success in the dynamic world of software development by adopting continuous integration as a core practice.

    The Role of Innovation in Breaking Barriers: Future Outlook and Trends

    Machine Learning and Artificial Intelligence in Release Management

    Release management is not an exception to the way that machine learning (ML) and artificial intelligence (AI) are transforming numerous sectors. Technologies based on machine learning and artificial intelligence (ML and AI) provide useful capabilities that can significantly improve release management procedures, increase effectiveness, and promote improved software quality. The function of ML and AI in release management is described in more detail below:

    Automated Testing and Quality Assurance:
    In release management, ML and AI may automate and enhance testing and quality assurance procedures. Intelligent algorithms can examine enormous amounts of data to find trends, anomalies and potential issues in brand-new software releases. To cut down on testing time and effort while maintaining high standards, ML models can be trained to anticipate and prioritize test cases. AI-driven testing solutions can also suggest the right test coverage and offer insights into the effects of code modifications.

    Predictive Analytics for Release Planning
    ML and AI approaches can be used to create prediction models for release planning using past release data, such as metrics, logs and performance statistics. These models are able to predict potential dangers, predict release dates, and allocate resources more efficiently. Release managers may prioritize important tasks, make data-driven decisions and improve the planning process for software releases by employing AI-driven insights.

    Anomaly Detection and Continuous Monitoring
    ML and AI algorithms can continuously monitor the production environment, analyzing real-time data to spot anomalies and potential problems. Release management teams can proactively identify and respond to performance bottlenecks, security breaches, and other key occurrences by putting in place sophisticated monitoring solutions. A faster and more reliable reaction to production issues can be achieved with the use of ML-powered anomaly detection, which can decrease the mean time to detect (MTTD) and mean time to resolve (MTTR).

    Impact Analysis and Risk Assessment for Releases
    ML and AI approaches can be used to evaluate the hazards that may be involved in a release. ML models can estimate the effect of a release on several areas like performance, stability and user experience by assessing historical data, code modifications, dependencies, and environmental factors. Release managers can prepare mitigation methods, make educated decisions, and reduce the likelihood of unforeseen problems throughout the release process thanks to these risk assessment skills.

    Intelligent Release Deployment and Rollback
    ML and AI technology can help with intelligently choosing when to deploy and roll back a release. In order to recommend deployment tactics, machine learning (ML) models can learn from previous deployment experiences, including success rates, user input and mistake patterns. In order to ensure a more dependable and error-resistant deployment process, AI algorithms can track the deployment process, evaluate the system’s health and initiate automated rollbacks if anomalies or severe concerns are discovered.

    In general, ML and AI provide valuable capabilities to release management, boosting testing and quality assurance, streamlining release planning, enabling continuous monitoring, analyzing release risks and simplifying wise deployment decisions. Utilizing these technologies enables businesses to improve software quality, streamline release management procedures, and deliver high-performing applications more effectively and reliably.

    Microservices Architecture and Cloud-Native Technologies
    With the advent of cloud-native technologies and the adoption of microservices architecture, release management has been transformed, enabling organizations to leverage the benefits of scalability, agility, and flexibility. Let’s explore how cloud-native technologies and microservices architecture enhance release management:

    Containerization and Orchestration
    Release management has a solid foundation thanks to cloud-native technologies like containerization (like Docker) and orchestration frameworks (like Kubernetes). Application components are encapsulated in containers, which makes them very portable and independent of the underlying infrastructure. Release management can use containerization to streamline application packaging and distribution while ensuring consistent application deployment across a variety of environments. Frameworks for orchestration allow for automated container deployment, scaling and administration, speeding up release management procedures.

    Scalability and Elasticity
    Applications can use cloud-native technologies’ inherent scalability and elasticity to dynamically modify resources in response to demand. The modular and independent services of the microservices architecture make granular scalability possible. Release management can use these features to scale individual services or components on their own, ensuring optimal resource usage and effective handling of increasing user loads. This adaptability reduces downtime and enhances the application’s general performance during releases.

    Fault Isolation and Resilience
    Failures in one service do not affect the entire system, thanks to the fault isolation and resilience that the microservices architecture fosters. Release management can use this resilience to lessen the impact of any potential issues during releases. It is possible to roll back or replace a specific service if it develops issues without affecting other services. Release management may efficiently manage errors, improve fault tolerance and maintain service availability during the release process by implementing cloud-native technologies and microservices.

    Observability and Monitoring
    The enhanced observability and monitoring capabilities made possible by cloud-native technology allow for release management. Platforms for container orchestration include integrated monitoring and logging capabilities that give information on the efficiency of an application’s use of resources and the state of the system overall. With the use of this information, release management teams can proactively monitor releases, spot abnormalities and quickly resolve problems. Observability and real-time monitoring support the release process by ensuring the dependability and stability of programs.

    Release management greatly benefits from cloud-native technologies and microservice architecture. Organizations can improve their dependability, achieve faster and more frequent releases, achieve scalability, fault isolation, and observability, and produce high-quality software applications by leveraging containerization, orchestration, CI/CD methods and many other technologies. Organizations are better equipped to manage complex release cycles and adjust to the changing needs of the software industry when they adopt these cutting-edge methods.

    Conclusion

    In this article, we have explored new technology’s role in raising the bar for release management quality standards. Organizations may increase communication, optimize processes, and more quickly produce high-quality software by adopting automation, continuous integration and DevOps approaches. The advantages and revolutionary potential of new technology in release management are apparent, notwithstanding the risks and difficulties that may arise. Organizations may promote continuous improvement, adjust to market demands and succeed in today’s changing business environment by tearing down barriers and embracing innovation.

  • Monitor Toolchain Health, Too

    Monitor Toolchain Health, Too

    A funny thing happened on the way to being agile. We adopted a ton of tools to make us more responsive. They really do help us deliver software quickly and efficiently, and they have improved IT processes along with our specific process improvements.

    They also created a toolchain that resembles areas of responsibility of old. That makes perfect sense; we still need to store source code, build applications, deploy somewhere, worry about security, etc. And we need to do all of that faster, which is where automation and the toolchain really shine.

    But you need to keep in mind the overall impact of the toolchain upon the development process. Now the organization is dependent upon those tools. We went from slow and steady to fast and with a large series of steps along the toolchain. Things are better, we’re delivering quality software at a faster pace, but in some ways, the process risks becoming more fragile. If a tool in the chain shows signs of trouble, you need to be aware of it and on top of the issue almost immediately. The price of ignoring issues in the process can be catastrophic disruptions in software delivery. Losing a CI tool is akin to shutting down customs at an international airport: The source of the problem is big, and the downstream problems are show-stopping.

    So while you are tooling your applications, make certain you are tooling the build chain, also. Know when a build that always takes ten minutes suddenly spikes to triple that. Know when a test suite delivers non-breaking errors at an increased rate. Know when space is low on a shared drive that the build tools use. Tool everything, because the software delivery toolchain is now the core of application development and deployment.

    Tooling these systems can also offer a warning of problems in a given application. It is possible that the increase in build time is because there are a lot of previously unused libraries being included … and that those libraries have not been properly vetted by security. It is possible that the disk space on that shared drive has PII test data that needs to be cleansed. There is a lot of good that can come from over-tooling the build chain, and unless you have a bit of tooling that slows the process, there is no downside. It won’t take too long to build a list of what to watch, and modern DevOps tools have enough reporting and APIs that it won’t take long to begin watching those items, either.

    That is where the people part comes in. Don’t ignore the tooling once it is in place. Build a process to regularly review results and take action when necessary. No tooling is useful if the results are ignored; sadly, we have a long history of spectacular failures that started with, “We saw indications, but didn’t think it was important at the time …” So act on results, even if that just means flagging them for review in the next reporting cycle—just don’t ignore them.

    And keep rocking it. The organization thrives on the software you build, deploy and support. It is a massively complex system that has IT staff at its heart, so keep it thriving and watch for indicators of illness in the core toolchain.

  • Harness Brings Generative AI Capabilities to DevOps Workflows

    Harness Brings Generative AI Capabilities to DevOps Workflows

    Harness today added a raft of generative artificial intelligence (AI) capabilities to its continuous integration/continuous delivery (CI/CD) platform as part of a larger effort to reduce the level of manual toil that today conspires to create DevOps bottlenecks.

    The added generative AI capabilities include an AI Development Assistant (AIDA), which analyzes log files and correlates error messages with known issues. It also includes the ability to use natural language to define policies for governing cloud assets and costs and an ability to automatically identify security vulnerabilities and generate code fixes.

    Other generative AI capabilities that will be added to AIDA over the next three to six months include automated code reviews along with tools for creating pipelines and launching chaos engineering experiments.

    Harness CEO Jyoti Bansal said these are the first of a series of generative AI capabilities that will be applied across the entire software development life cycle (SDLC) using large language models (LLMs) that the company has trained using publicly available sources. AIDA, at its core, provides a tool for creating custom prompts for launching queries against LLMs and a vector database that Harness has incorporated into its platform.

    That approach means no customer data was used to create the model and none of the data used will find its way into a generative AI platform that is available to anyone, said Bansal. As a result, organizations don’t need to be concerned they light run afoul of licensing issues because proprietary code was inadvertently included in an LLM, he added.

    Most of the existing generative AI capabilities that have been brought to market thus far are designed primarily to improve developer productivity, noted Bansal. Harness is now bringing the benefit of generative AI to DevOps teams that today rely on too many manual processes to manage the automations they build on behalf of application development teams, he added.

    Harness is making AIDA available at no extra charge at a time when many DevOps teams will soon be evaluating the AI capabilities provided to them. Most DevOps teams are not going to want to manage workflows without being able to rely on AI to reduce toil and eliminate bottlenecks. Overall, Harness is forecasting generative AI will drive a 30% to 50% increase in DevOps productivity. In addition, Harness is forecasting there will be a 50% to 75% reduction in the time spent remediating vulnerabilities.

    Bansal said that as that process occurs, Harness is betting more organizations will move to replace legacy CI/CD platform with more modern alternatives.

    Previously, Harness has invested in machine learning algorithms to automate a range of DevOps tasks. Generative AI, in combination with machine learning, will transform DevOps workflows in ways that will ultimately improve both the rate at which applications can be built and their overall quality.

    It’s not clear whether organizations might be willing to replace CI/CD platforms that they have been customizing for decades, but at the very least, that option is now more widely considered than ever.

  • Mastering DevOps Automation for Modern Software Delivery

    Mastering DevOps Automation for Modern Software Delivery

    DevOps automation services are a crucial aspect of modern software development that helps organizations to improve their software delivery processes and keep up with the pace of innovation. With DevOps automation, developers can automate repetitive and time-consuming tasks, enabling them to focus on writing code and delivering features faster and with higher quality. By automating processes such as continuous integration, continuous delivery and infrastructure-as-code, organizations can reduce costs, improve collaboration between teams and respond quickly to changing business needs and customer requirements.

    In this article, we will discuss the basics of getting started with DevOps automation services, including popular tools and best practices that organizations can use to implement a successful automation strategy.

    Agility and Efficiency for Smart Digitalization

    Emerging technologies like multi-cloud, IaC, AI/ML and IoT have only increased the importance of DevOps automation, as they bring new challenges demanding agility, flexibility and efficiency in software delivery processes. Multi-cloud and hybrid cloud environments, for example, can benefit from automating the deployment and management of software across multiple cloud environments. Similarly, AI/ML and IoT require organizations to collect and process large amounts of data in real-time, which can be challenging without automation. DevOps automation can help organizations automate data pipelines and analytics, enabling them to process data faster and more accurately.

    Here are some benefits of DevOps automation:

    ● Speed and Efficiency: DevOps automation enables organizations to deliver software faster and with higher quality. By automating repetitive and time-consuming tasks, developers can focus on writing code and delivering features.
    ● Agility and Flexibility: DevOps automation provides organizations with the agility and flexibility to adapt to changing business needs and customer requirements. Automated processes make it easier to release software updates and respond quickly to market demands.
    ● Cost-Effectiveness: DevOps automation reduces the costs associated with software development by reducing manual labor and minimizing errors. It also enables organizations to use cloud resources more efficiently, which can result in cost savings.
    ● Improved Collaboration: Bringing the different stakeholders along with devs and operations, DevOps fosters a collaborative approach toward enhanced CI/CD. By automating processes, teams can work together more effectively and share knowledge and feedback in real-time.
    ● Scalability: DevOps automation enables organizations to scale their software delivery processes quickly and efficiently. Automated processes make it easier to deploy software across multiple environments and platforms, which is essential for organizations that need to scale rapidly.

    Getting Started With Efficient DevOps Automation

    Implementing DevOps automation requires a well-planned strategy, best practices and the right set of tools. In this section, we will discuss how to successfully implement DevOps automation in your organization.

    Understanding DevOps
    Before you begin with automation, it is essential to understand the principles and practices of DevOps. DevOps is a culture that emphasizes collaboration and communication between software development and IT operations teams to build, test and release software more quickly and reliably. There are some common tools that DevOps teams use for their work, collaboration and communication:
    ● GitHub: The Git repository hosting service used for version control and source code management functionality, especially for distributed projects.
    ● JIRA: A project management tool that helps teams plan, track and manage software development projects.
    ● Slack: A communication platform that enables real-time messaging, file sharing and collaboration.

    Choose the Right Tools
    Automation is at the heart of DevOps, and selecting the right tools is crucial. Choose tools that fit your requirements, budget and infrastructure. Some popular DevOps automation tools include:

    ● Jenkins: An open-source automation server that enables continuous integration and continuous delivery (CI/CD) pipelines.
    ● GitLab: A web-based Git repository manager that provides CI/CD capabilities, project management, and collaboration tools.
    ● Puppet: An open-source configuration management tool that automates the deployment and management of software across multiple environments.
    ● Chef: A configuration management tool that automates the deployment and management of software across multiple environments.
    ● Ansible: Open source tools for automating software provisioning, deployment and configuration management

    Identifying Processes for Automation

    First, list all the critical processes within your organization that can be enhanced with automation. Start with the repetitive and time-consuming tasks that can be automated, such as code testing, deployment and monitoring. There are a number of popular tools that can help with such automation:

    ● Selenium: An open source testing framework that enables automated testing of web applications.
    ● Docker: A containerization platform that enables the creation, deployment and management of containerized applications.
    ● Kubernetes: The open source container orchestration tool is essential in the DevOps pipeline for orchestration and automation of the deployment, scaling and management of containerized applications.

    Creating a Plan

    Once you have identified targets for automation and selected tools, create a plan for automation that includes a roadmap and milestones. Start with small projects and gradually expand the automation to cover all aspects of the software development life cycle. Some popular tools for strategizing these life cycles are:

    ● Trello: A project management tool that enables teams to organize and prioritize tasks using Kanban-style boards.
    ● Asana: A project management tool that enables teams to track and manage tasks using to-do lists, calendars and timelines.

    Training The Team

    Automation requires new skills, so it is essential to train your team to use the tools and processes effectively. Provide training and resources to help your team learn new skills and techniques. Some popular education and training resources include:

    ● Udemy: An online learning platform that provides courses on DevOps automation tools and techniques.
    ● Coursera: An online learning platform that provides courses on DevOps and related topics.
    ● Pluralsight: An online learning platform that provides courses on DevOps automation tools and techniques.

    Implementing Continuous Improvement

    A continuous feedback loop is essential for DevOps’ iterative process and continuous improvement. Integrate mechanisms for evaluating your automation processes, identify areas for improvement and make necessary changes. Here are two common tools used to do this:

    ● New Relic: An application performance monitoring tool that provides real-time visibility into the performance of software applications.
    ● Splunk: An operational intelligence tool that enables organizations to analyze and visualize machine data in real-time.

  • GitLab Adds More AI and Cybersecurity Capabilities to CI/CD Platform

    GitLab Adds More AI and Cybersecurity Capabilities to CI/CD Platform

    GitLab this week delivered an update to its continuous integration/continuous delivery (CI/CD) platform that adds additional generative artificial intelligence (AI) and cybersecurity capabilities.

    The GitLab 16 release included cybersecurity capabilities such as centralized policy management, expanded compliance reports and controls, compliance dashboards and default Level 3 attestation for the supply-chain levels for software artifacts (SLSA) framework.

    At the same time, GitLab this week also made available an emergency patch for two modules that have a path traversal flaw, tracked as CVE-2023-2825, that could allow unauthenticated users to read arbitrary files on the server under certain circumstances.

    In terms of generative AI, GitLab 16 added a value stream forecasting capability that automatically generates workflow summaries for senior managers. GitLab is also adding a code refactoring capability and the ability to automatically resolve vulnerabilities to an update to GitLab 16. Previously, GitLab made available a ‘suggested reviewers’ features, an ‘explain this code’ and an ‘explain this vulnerability’ capability that are all enabled by large language models (LLMs) developed by Google. GitLab has also partnered with Oracle to provide additional AI capabilities enabled by machine learning algorithms. In 2021, GitLab acquired UnReview, a provider of a tool that uses AI to identify which expert code reviewers to assign to a project based on the quality of their previous efforts and current workloads.

    David DeSanto, chief product officer at GitLab, said with 10 AI capabilities GitLab is providing more of these types of capabilities than any other DevOps platform provider. In addition, those capabilities are distributed across the entire software development life cycle rather than being focused solely on making developers more productive, he noted.

    That’s critical, because if AI capabilities are only focused on developer productivity, an imbalance is created; DevOps workflows will not be able to absorb the increased amount of code that will soon be moving simultaneously through pipelines, DeSanto added.

    AI will also further fuel adoption of platform engineering as a means for centralizing DevOps management. It’s becoming more apparent that infusing these types of capabilities into DevOps platforms built and maintained by an internal IT team is going to be a major challenge, he added.

    There is no doubt that generative AI capabilities will soon become widely integrated across DevOps workflows. That will enable developers to build more secure code faster while at the same time making it simpler for software engineers to maintain large codebases. Just about every job function imaginable will be impacted to varying degrees. In the case of DevOps teams, the ultimate impact should involve less drudgery as many of the manual tasks that conspire to make managing DevOps workflows tedious are eliminated. In fact, AI may ultimately make DevOps, as a methodology for managing IT, more accessible to a much wider range of organizations.

    As AI advances, there should still be plenty of demand for human expertise. For better or worse, the nature of the expertise required, however, will undoubtedly be at a much higher level than it has previously been as more low-level tasks are automated. The challenge is determining how and where to refocus the efforts of the DevOps teams to add higher value.

  • CDF Report Reveals Lack of DevOps Maturity

    CDF Report Reveals Lack of DevOps Maturity

    A global survey of nearly 26,000 DevOps professionals published today by the Continuous Delivery Foundation (CDF) at the cdCon + GitOpsCon event found 84% of respondents are involved in some type of DevOps activity. However, the report also found just under half 49% are using a continuous integration (CI) or continuous delivery (CD) platform and only 22% are using CI and CD approaches to automate all building, testing and deployment of code in a production environment.

    The report, conducted in collaboration with SlashData, found the number of developers using CI or CD platforms only increased two percentage points year-over-year, with the use of self-hosted CI/CD tools dropping from 32% in the first quarter of 2022 to 23% in the same period this year.

    The survey also noted that only 7% of respondents this year described themselves as a DevOps engineer or specialist.

    Overall, medium-sized businesses have the highest involvement in DevOps practices (94%), followed by small businesses and large enterprises at just over 90%. More than three-quarters of developers (79%) are now using DevOps practices.

    The most common DevOps activity is monitoring software or infrastructure performance (47%), followed by application security testing and using CI to build and test code, tied at 37% each, and approving code deployments into production environments at 36%, the survey found.

    The average number of DevOps-related technologies used by developers (4.5) has, meanwhile, remained stable over the last year. The most widely used tools address issue tracking (39%), source code management (38%), test automation management (34%), collaboration and knowledge-sharing tools (32%) and application performance management/observability and agile project management tools tied at 31%.

    The survey also noted that the percentage of top performers—defined as those with lead times of less than one day—now stands at 15%. Survey results for top performers over the years continue to fluctuate between 13% and 17% of the survey total. On the plus side, 40% of developers have lead time changes of less than one week, the second-highest ranking for this survey.

    More than a third of all DevOps practitioners (34%), however, take longer than a week to restore service. Only 12% of DevOps practitioners take less than an hour to restore service.

    In general, the survey finds that organizations that use 10 or more DevOps tools are twice as likely to be high performers.

    Fatih Degirmenci, executive director for the CDF, told conference attendees the consortium, which now oversees nine projects, including the open source Jenkins CI/CD platform, continues to make progress as additional projects are added.

    However, while it’s clear that many organizations have adopted multiple DevOps tools and platforms, far too many of them still have a long DevOps journey ahead. Each organization will need to decide whether DevOps workflows need to be adopted to fit their needs, even as the pressure to build and deliver software faster continues to mount. In fact, at a time when more organizations than ever are dependent on software to drive mission-critical digital business transformation initiatives, time may be running out to adopt DevOps workflows at a deeper level if organizations hope to stay competitive.