After establishing the monitoring and notification aspects of a DevOps cycle in SAP, the next important step is to establish automated actions to resolve the alerts and events notified by the Alert Notification service.
When an application failure occurs, which can be any kind of unexpected downtimes of either microservice, database, dependent service, or network, re-configurations of solution, it is critical to execute various commands, scripts, service calls, or even application restarts. However, traditional approach driven by manual intervention makes the process of repetitive DevOps tasks slower and can delay pursuing the right action.
The SAP Automation Pilot service can come into picture to automate multiple DevOps-related tasks with ease. According to SAP’s official definition, the primary goal of SAP Automation Pilot is to simplify and automate complex manual processes to minimize the operational effort behind any cloud solution in SAP Business Technology Platform (SAP BTP). On SAP BTP, SAP Automation Pilot, especially when combined with the Alert Notification service, can easily scale up your application management for your business-critical cloud functionalities.
In this blog post, we’ll cover SAP Automation Pilot concepts and provide an overview of how it works.
SAP Automation Pilot Concepts
SAP Automation Pilot comes with predelivered content that covers the broad area of DevOps tasks for SAP BTP, Neo environment, and SAP BTP, Cloud Foundry environment. Let’s briefly introduce some key components for SAP Automation Pilot, such as the following.
The service supports the typical data types (i.e., Boolean, number, string, JSON object, and JSON array) as required for defining the data type of value parameters inside key-value pair combinations.
This component represents the required input data for commands in the form of a key-value pair.
Commands and Catalogs
As shown in the figure below, the system comes with predefined, ready-to-use automation content (known as commands), organized in catalogs, that can handle any scenario, including, for example, an SAP HANA database update, full application stack restart, or even a simpler operation like invoking a REST API or triggering a script. You can even build your own custom commands without any coding. Also, when you subscribe to the service, by default, you’ll receive two catalogs out-of-the-box— Welcome (welcome-TXXXXXXRY) and Recommended Actions (RA-TXXXXXXRY).
The Welcome catalog contains example inputs and commands that explain all of the basic SAP Automation Pilot mechanisms, and the Recommended Actions catalog contains commands that showcase example application and database system recovery procedures. Interestingly, all these commands are derived from the most-common customer use cases.
This component represents the execution state of a command and can be in various states like “Running,” “Paused,” “Failed,” “Finished,” “Aborted,” “Suspended,” and so on. At a maximum, any execution can run no more than 21 days and 3 MB memory each.
Autopilot executions can be scheduled to be executed at different times (i.e., once, yearly, monthly, weekly, daily, hourly, etc.).
How SAP Automation Pilot Works
To understand the applicability of SAP Automation Pilot in combination with the Alert Notification service, let’s discuss a possible scenario in context of Java applications deployed in SAP BTP, Neo environment. In this scenario, the Java application is running in an SAP BTP, Neo environment, subaccount and that the SAP BTP cockpit provides a nice overview of the latest application state (i.e., running instances, process metrics, etc.). In the monitoring section, you’ll see listed metrics with default warning and critical thresholds for each instance. But let’s say, all of sudden, our deployed Java application reports a high CPU spike in the SAP BTP application monitoring screen. After some time, this spike exceeds the upper boundaries set for the memory and CPU allocated to the deployed instance and thus needs immediate attention.
As shown in the figure below, SAP BTP’s monitoring services spring into action and immediately sends an error alert to the Alert Notification service instance, which then further triggers a preconfigured action in SAP Automation Pilot, which scales up the application instances and monitors performance over ? predefined period. When the application’s CPU load stabilizes for a certain period, SAP Automation Pilot scales down the instances. In between, the Alert Notification service also sends a notification via a defined Slack channel to notify the team responsible. In the course of this scenario, note that no manual input is required from the operator’s side.
Editor’s note: This post has been adapted from a section of the book Application Development with SAP Business Technology Platform by Gairik Acharya, Govind Bajaj, Avijit Dhar, Anup Ghosh, and Asidhara Lahiri.