In this blog post, we’ll explore the end-to-end DevOps scenario for an SAP S/4HANA system, which demonstrates how DevOps can be applied to an SAP landscape.
SAP S/4HANA is the enterprise resource planning (ERP) software suite developed by SAP and is the digital core platform for the SAP ecosystem. SAP S/4HANA offers a range of features and functions for finance, accounting, procurement, sales, marketing, manufacturing, supply chain management, and other business processes. SAP S/4HANA is built on SAP's in-memory database, SAP HANA, which enables real-time data processing and analytics.
Let’s discuss what the end-to-end DevOps process for this scenario would look like. On a broad level, this will be applicable for other scenarios in SAP S/4HANA as well. To implement DevOps for such a scenario, you must perform several steps, which we’ll discuss in the following sections.
The planning phase of DevOps for an SAP Fiori app development in SAP S/4HANA is critical to ensure the success of the project. It involves defining the goals and scope, analyzing the requirements, planning the development process, defining the development environment, identifying the testing requirements, defining the deployment process, and planning for monitoring and maintenance. By following a structured approach to planning, organizations can improve the speed, quality, and reliability of their SAP Fiori app development projects. The approach is as follows:
- Define the goals and scope: The first step is to define the goals and scope of the project. This involves identifying the business needs and objectives, as well as the requirements for the SAP Fiori apps. The goals should be specific, measurable, achievable, relevant, and time-bound (SMART).
- Analyze the requirements: The next step is to analyze the requirements for the SAP Fiori apps. This involves working with stakeholders to identify the features and functions required, as well as the user interface and user experience (UI/UX) design. The requirements should be documented and prioritized.
- Plan the development process: Once the requirements are analyzed, the development process should be planned. This involves breaking down the project into smaller, manageable tasks and defining the resources required, timelines, and milestones. The development process should follow an Agile methodology, with regular sprints and reviews.
- Define the development environment: The next step is to define the development environment. This includes selecting the tools and technologies to be used, such as ABAP development tools, source code management tools, and so on.
- Identify the testing requirements: Testing is a critical part of the DevOps process. The testing requirements should be identified, including the types of testing to be performed, such as unit testing, integration testing, and user acceptance testing (UAT).
- Define the deployment process: The deployment process should be defined, including the process for migrating the SAP Fiori apps from the development environment to the production environment. This should include the necessary approvals and controls, such as change management and release management. CTS, CTS+, and other tools play a major role here.
- Plan for monitoring and maintenance: Finally, the plan should include provisions for monitoring and maintenance. This includes monitoring the performance and availability of the SAP Fiori apps, as well as addressing any issues that arise through maintenance activities, such as bug fixes and upgrades.
Develop, Build, and Test Phases
In the develop, build, and test phases, developers gear up to do the magic of coding and build the full application. ABAP development tools, abapGit, and CI/CD tools play major roles in these phases. These tools and services have been discussed in previous sections.
ABAP developers create and modify the ABAP code in the development environment using abapGit. This helps track changes made to the code, revert to previous versions, and collaborate with other developers. Once the code changes are committed, the build process begins, and abapGit can be used to export the code from the Git repository as a transport request. The transport request can then be imported into the QA system for testing.
ABAP development tools is an Eclipse-based toolset for developing ABAP applications and can be used in the development, build, and test phases of ABAP on-premise solutions to manage the development and deployment of ABAP code. ABAP developers create and modify the ABAP code in the Eclipse environment using ABAP development tools. They can use features like syntax highlighting, code completion, and debugging to write efficient and error-free code. For the build phase, ABAP development tools provides tools like the ABAP test cockpit, which can be used to run unit tests to verify the functionality of the code. The ABAP test cockpit also generates test reports, which can be used to identify defects and issues.
The development team may use agile development methodologies to create the SAP Fiori app for SAP S/4HANA. They break down the work into small, manageable tasks and prioritize them based on business value. The development team uses version control tools like abapGit to manage the code and collaborate with other team members.
In the build and test phases, tools like Jenkins, Selenium, SAP Continuous Integration and Delivery, and the like can be used to automate the build process and testing. Automated testing helps to speed up the entire process.
Release and Deploy Phases
The release and deploy phases come after the application development and testing is completed. Developers have done their magic and testers have made sure that all the business and technical requirements have been fulfilled and the solution is ready to be released. To implement the release and deploy phases of DevOps for SAP S/4HANA onp-remise applications, CTS, CTS+, gCTS, and other such tools can be used. You can also use the CI/CD pipeline configured using various options.
CTS can be used to move changes from the development system to the QA and production systems. For non-ABAP code, you can use CTS+, which also provides features like automatic transport sequencing, parallel processing, and so on. cCTS can be used to manage the transport of changes across complex landscapes. If developers need to manage code changes in Git and transport them to SAP systems using CTS, gCTS can be used. All these tools were discussed in detail in previous sections.
Operate and Monitor Phases
Here comes the most important phases of DevOps: operate and monitor. After the solution is deployed, it is monitored for performance, availability, and security. Any issues that arise are addressed through maintenance activities, including bug fixes and upgrades. To implement the operate and monitor phases for SAP S/4HANA applications, you can use a combination of tools like SAP Solution Manager, SAP Focused Run, SAP Cloud ALM, and so on, depending on your requirements and the complexity of the landscape. For example, you can use SAP Solution Manager or SAP Focused Run to monitor the performance of SAP Fiori applications, SAP Cloud ALM to manage incidents, and application performance monitoring (APM) or log monitoring tools to diagnose issues. Log monitoring tools like ELK stack (refers to Elasticsearch, Logstash, and Kibana) or Splunk can also be used to monitor the logs generated by SAP Fiori applications. They can help identify errors, exceptions, and other issues that may impact the application's performance.
Editor’s note: This post has been adapted from a section of the book DevOps with SAP by Raja Gupta and Sandip Jha.