8-10 years ago, scripting paved the way for engineers to automate and get things done faster. There was a considerable push even on development in the delivery ecosystem to shift left. We saw that with the rise of Agile methodologies. If we were to use a custom bash script to build our applications today, we could do it, but it’d be strange, considering build tools exist for all sorts of language run times and technology solutions.
Organizations today use Continuous Integration solutions to manage rapid feature development alongside the growing ecosystem of development tools (e,g: IDEs, version control systems, frameworks, and language runtimes). The same is true for Continuous Delivery, and how we quickly, safely, and sustainably deliver our software to the hands of a customer. With Jenkins, engineers and developers need to create and maintain coded pipelines to orchestrate their entire continuous delivery process. Plugins can help, but organizations are left to build their CD processes manually.
Here are three reasons why you should ditch your CI/CD scripts in 2021 and how to improve your CI/CD process.
You don’t have to build custom scripts that don’t scale.
Scripted pipelines lack the integration and capability for organizations to quickly adapt to changing ecosystems and new software delivery methods. Reduce the pipeline scripting, plugins, dependencies, swearing, and late nights. It’s TOIL for engineers to maintain and design custom pipelines that don’t have the capabilities to manage cloud resources, generalize for other software applications, and execute deployment strategies. Many software delivery platforms offer these capabilities out of the box and templatize most CD requirements, abilities, and integrations.
In 2021, value stream management will play an increasingly important role in how organizations can meet customers’ demands. When considering software delivery platforms consider solutions that offer end-to-end visibility and insight. This allows organizations to enable the flow of business value better and eliminate waste within any particular value stream.
Consider the following capabilities within your process, which may help any organization achieve better DevOps capabilities.
- Agile methodologies, any product or program management tools or features such as backlogs or kanban boards
- Developer collaboration tools, source code control solutions, and artifact repositories
- Support for Infrastructure Provisioning practices such as Infrastructure as Code (IaC) practices or GitOps
- Feature flag management and other progressive delivery strategies (blue-green and canary release strategies)
- Metrics to measure the flow of value, reliability, and quality (e.g., lead time, change failure rate, and mean time to restore)
- Support for automated static code analysis, security testing, vulnerability scanning, and remediation of these risks
- Support for secrets management, access management, and user authorization
- APIs for extensibility which exposes pipeline related data
- Webhooks provide a method for a third party or additional solutions to subscribe to events within your software delivery platform.
The future is ready for intelligence.
Time to market is one of the most significant differentiators for organizations today. Yet increased deployments result in higher failure rates, lowered quality, and the risk of failure. Deployments don’t always correlate to increased verification and testing. Operations work and responsibilities are starting to shift left, giving engineers less time and effort to focus on feature and innovation work.
The cost of software failures in 2017 involved 606 cases, 3.6 billion people, and $1.7 trillion in financial losses. Of the software failures in 2018, 80 percent of unplanned outages were caused by developers or administrators, 60 percent of availability and performance errors were caused by misconfigurations. AIOps utilizes data, machine learning, and other advanced analytics technologies to, directly and indirectly, enhance IT operations (monitoring, automation, and service desk) functions. AI and ML Ops give engineers the scale and automation needed to deliver value at an accelerated rate with confidence and sustainability.
In 2021, the most immediate need for AI in software delivery is for additional governance and automation. Scripted pipelines can be an antipattern for enabling AIOps, offering little to no support for applying and scaling AIOps.
There are three components associated with an AIOps process, the data and tools used to collect data points, the model which utilizes AI and ML, and the resulting actions taken based on the output of the model. Therefore the tools that we use to gather data and take action are integral for achieving the most of our AI and ML use cases.
We can all expect to continue seeing the introduction of Artificial Intelligence and Machine Learning capabilities within the technology industry. AIOps and MLOps enable organizations to move away from siloed operations management, provide intelligent insights, and drive automation and collaboration. Enabling Site Reliability Engineering tools and practices is a great first step for organizations trying to capture data metrics and better understand their organizations’ applications and systems.
Security and governance are more important than ever.
Managing resources in the cloud is a challenge that organizations continue to experience while adopting, delivering, and innovating with container and cloud technologies. With this continued growth for software and services comes new ways of understanding, managing, and controlling risk. CI/CD pipelines help answer essential questions business stakeholders are asking, such as:
- What services are we running in the cloud?
- How do we prove cloud, data, and infrastructure compliance?
- How do we control and mitigate risks?
- Who is ensuring that our controls are in place and effective?
In 2021, how organizations govern their software will be very important as the demand for software increases. Security solutions like Secrets as a service and container scanning solutions are now widely adopted across organizations.
Today CI/CD platforms provide integrations for these tools, helping to ensure our software is secure. Secret management, role-based access control, deployment visibility, and pipeline audit all help organizations achieve automated cloud governance.
A solution for anyone
CI/CD platforms exist to make software delivery accessible to all kinds of organizations that own software. Automation, intelligence, and integrations play a major role in maturing the software delivery space for anyone, not only for the top 1 percent of engineering organizations. This post showcases the potential business outcomes of ditching scripts as the primary solution for CI/CD.
Tiffany Jachja, Developer Advocate, Harness