Continuous integration/continuous delivery (CI/CD) is a methodology which helps technology teams deliver higher-quality software faster through automation. At OpsRamp, we have embarked on the journey of CI/CD transformation and have seen tremendous change in the way we build and release our products. Michael Fisher, Group Product Manager, OpsRamp explained the journey and lessons learned in this process during a recent webinar.
The OpsRamp CI/CD journey
OpsRamp has a global engineering team collaborating across several different geographical locations. Most of our development effort comes out of India which has close to 150 developers. The existing OpsRamp model of software development is a hybrid between an agile and waterfall approach with large platform releases done every quarter. With increasing clientele and a need to move faster, we decided to embark on the transition to CI/CD process.
Our goals while embarking on this journey were two-fold:
- How can we eliminate the quarterly release?
- How can we do that incrementally while showing progress?
We have introduced a modern, automated approach to software development. This includes weekly hot-fix sessions aimed at implementing typically smaller changes which do not affect the UI. The idea is to test the features in phases instead of doing it all at once at the end. This also helps us understand how each feature works with one another
A few top challenges of CI/CD
The transition to a CI/CD approach is a constant learning process. Here are the areas we’ve had to focus on improving:
Implementing the CI/CD process requires cross-functional engagement from different teams, whether that’s SaaS Ops, marketing, product management or customer success. This is important because teams which are used to a much slower process in software development will struggle to cope with the pace of iteration and changes.
Always start small with CI/CD transition; for example, starting with one organization or one product line, and then spreading outwards. The best way to evangelize a concept is to show positive results, which in turn, achieve buy-in from your teams
Selecting the right tools for CI/CD transformation
The CI/CD pipeline involves four components: Build, Test, Deploy and Monitor. Each area requires a specific set of tools. Enabling self-service is a top criteria when selecting new tools. We also use tools like Pendo to understand how users engage with different features.
Current state of our CI/CD pipeline
It’s early days in our CI/CD transition. Like many companies which have undergone this process, we have a rough idea of what a CI/CD timeline should look like after some research, internal discussions, and more importantly, trial and error. Although there are some schemas available to use, transitioning to a modern CI/CD pipeline involves not only technology changes, but also cultural changes.
Beyond making several technology changes to facilitate a more expedient and automated deployment process (complete with automation tests), we are rolling out a new process for running managed beta programs. This allows us to validate new features with customers, test with non-lab equipment, and get feedback on where to go next.
Lessons learned in the process
- Start small by selecting one component of your product or project. Use it to test, iterate and show results, from which you can build momentum and best practices;
- Have empathy for the users and teams. This is a big transition and some people might not be comfortable with the change. Strive to introduce change carefully and not break existing workflows which have been built for years.
- Understand and convey the value of the transformation from both a development and business perspective. The result is that end users get better products, faster and more consistently and product teams work more efficiently.
- Mirco Hering on Getting Past DevOps Inertia
- An IT Ops Exec Discusses DevOps Collaboration
- The DevOps Metrics That Matter Most