Continuously Optimizing your DevOps Processes

Objective

After completing this lesson, you will be able to Detail at least one optimization approach for each of the DevOps lifecycle phases along the CALMS principle.

Continuous Optimisation of DevOps Processes

As mentioned before, DevOps is a journey. As previously demonstrated, you can establish agile development operations and provide the first versions of your application on SAP BTP. Here, we'll think about how to foster continuous optimization as part of your DevOps approach.

Motivation

Continuous optimization should be part of our agile activities throughout the lifecycle of our application.

The following section gives several examples of how you can plan and implement best practices in your approach to DevOps. Each example deals with a phase from the DevOps workflow.

Plan

Investigate if the process from gathered feedback to concrete backlog items can be enhanced, and how to provide transparency along the complete lifecycle, which initial requirements an increment addresses. Ideas might include looking into tools for agile project management and changing documentation capabilities, such as those offered by SAP Cloud ALM.

Code

Continuously investigate options to extend and evolve your development approaches, such as by approaches that foster clean code, test-driven, or behavior-driven development.

Build

Consider defining KPIs for your pipelines and constantly investigate those to identify optimization potential. For example, do all your changes get qualified by pipelines? How long do they run? Would it make sense to split long-running pipelines, as not all automated tests have to be performed for every change, but test results for certain aspects might suffice once a day?

Test

Increase your overall test coverage. Check what issues came up in later stages or production and consider avoiding such late surprises by adding other tests.

Continuously check for new or updated compliance requirements and see if they can be reflected in corresponding tests executed automatically.

Deploy

For your transports, investigate if there would be further use cases that should be handled by having a hand-over into transport management – for example, as additional content types have been enabled for transports by SAP Cloud Transport Management service.

For existing transports, evaluate the need to automate deployments into specific landscapes (such as via scheduling transports into QA and TEST accounts – or by performing direct deployments using SAP Continuous Integration and Delivery service for development scenarios where no additional control is required).

Regularly evaluate and update configured permissions for critical target landscapes.

Release

Evaluate the need for additional change management – such as for quality gates or for handling strict interdependencies of cloud and on-premise changes.

Think about introducing feature toggles to handle the release process of deployed changes.

Operate

Implement broader monitoring so that you can check out the health status of your apps – and get notified in case of upcoming potential issues or failures, using SAP Alert Notification service for SAP BTP.

Investigate recent tasks you had to perform to operate your app: what actions were required? Could regular manual tasks be automated (for example, to onboard new development teams), such as using the SAP Automation Pilot service?

Also, include manual tasks you had to perform to remediate recent issues in this investigation to identify automation potential. Would it make sense to come up with additional recommended actions?

Get inspiration from the latest automation content and example use cases (from SAP or other teams) to foster automation.

Feedback

Do you have transparency on how your software is used? Add feedback channels and questionnaires to your product. Think about how to reach out to your end users (such as via communities, events, and direct exchange to get into direct contact with them).

DevOps Principles – CALMS

Remember the CALMS acronym? It comes from Culture, Automation, Lean, Measurement and Sharing.

From time to time, take two steps back to evaluate overarching processes and other CALMS principles. For example, is there enough room for a regular exchange with different teams (within your company and with external parties)? Are there additional blockers concerning your cultural transformation? Where are other areas standing, and how does this affect your team? How does the onboarding of new teams work today? Might a platform team make sense?

Your Company

How is your team doing in terms of its DevOps approach? Would KPIs help to identify further optimization potential – such as DORA KPIs? Is there enough room for retrospectives and exchanges with other teams? Are there other ideas on how to optimize?

Business Scenario - How to Use DevOps to Increase the Reliability of your SAP BTP App

For the end of this course, let’s visit our friends from Rotating Bananas one more time and discover how they optimized their DevOps approach.

The DevOps team from Rotating Banana has lived the Agile methodology using the DevOps services on SAP BTP for some time. While they are pleased with the approach and the agility it offers in enterprise environments, they sometimes stumble over issues with one of the applications running on SAP BTP. These issues often come by surprise and put much stress on the team. Also, they must spend a large portion of their time to get these issues fixed.

Therefore, the cross-functional team discusses different action items to mitigate the situation as part of the ongoing feedback and optimization process.

Check their proposals below and think if a similar approach might help you in retrospectives held in your organization.

1. Number of Test Cases

To start, one of the proposed ideas was to reduce the number of test cases so that changes can propagate faster.

What do you think, is this a good idea?

Time to delivery is not the root cause for the issues faced here, but the quality of thechanges. Therefore, the team will investigate if the number of automated test cases could be increased. For every issue that comes up, the team will investigate if the root cause could be identified during development with automated test runs. For new code, they will consider test- or behavior-driven development approaches.

Also, they will evaluate how much code is automatically tested. With this, more issues can be identified and fixed before being propagated towards the runtime, which reduces the number of issues that arise in the production environment.

2. Improve Monitoring

Another proposed idea is that the team should focus on increasing manual monitoring efforts to quickly become more aware of issues. Have you imagined a similar or an alternative solution before?

Instead of increasing efforts for manual monitoring, the team decided otherwise:

  1. Subscribe to all events that are relevant to the app on SAP BTP, such as:
    • events from used SAP BTP services,
    • events from the infrastructure provider on which the SAP BTP account runs,
    • events from the used SAP BTP runtime environment.
    Here, you can check, for example, events offered by SAP Cloud ALM and SAP Alert Notification service for SAP BTP.
  2. Create additional custom alerts from the app.
  3. Ensure the relevant alerts reach the DevOps team via the proper channels.

This means establishing a reactive way of working, reducing the time needed to become aware and fix issues. It will also free up resources that otherwise would have to be spent for active monitoring.

3. Reduce Manual Operations Efforts

Next, they discussed whether the team looks for optimization potential around manual operation tasks. What is your take on this topic?

As you may have presumed, the team decided to investigate which manual tasks were required to find the root cause and fix those issues.

Then, they will select the manual tasks that could be automated so that automated remediation can be automatically executed the next time such an issue arises – triggered from SAP Cloud ALM or by other events.

Also, recommended actions will be created that could get triggered from SAP Cloud ALM or manually whenever the corresponding tasks must be performed, with less effort and with repeatable results.

For Rotating Banana, all these decisions and actions ultimately led to much higher satisfaction for the DevOps team and appreciation from its customers!

Summary

You now should have gained inspiration how to optimize your DevOps approach – along this never-ending journey, in the spirit of Confucius’ saying that the way is the goal.

Further Reading

DevOps | SAP Community

Log in to track your progress & complete quizzes