By Jan Wahlin, BTP Chief Architect at JDC Group
I often encounter confusion around what “clean core” means. More often than not, I hear people refer to it simply as being synonymous with BTP. We are often told that BTP is the only way to extend an SAP solution while keeping the core clean. This of course is not the case. SAP has several extensibility options, but they do vary by solution which adds to the confusion.
What exactly is clean core, then? In a nutshell, clean core is an extension methodology that helps you achieve operational stability, reliability, and agility through decoupling customizations from the core solution. It may or may not even include BTP. In fact, clean core is more about SAP’s Intelligent Suite (S/4HANA, SuccessFactors, Ariba, etc.) than it is about BTP!
Some Historical Context
Since the early 2010s, SAP has been transitioning to a cloud company with the acquisitions of Ariba, SuccessFactors, and Concur and the release of S/4HANA Cloud in 2016. In order to fully realize the goal of becoming a cloud company and move closer to a SaaS model, SAP had to come up with a way for customers to also make that transition. Key to that was to make extension development cloud friendly and agile in nature. Clean core formalizes the approach to extension development.
Why do I need a clean core?
Quite simply, it’s to future-proof your business and make it cloud ready. Even if you have no plans to move to the cloud it makes upgrades easier, faster, and less costly. Who doesn’t want that?
There are a few ways you can extend an SAP system. Understanding the available extensibility models is important. Clean core is all about how you extend the solution, and to a lesser degree, where you extend it. Conceptually speaking, there are two primary mechanisms to extending SAP S/4HANA: In-App and Side by Side.
In-App extensibility provides various mechanisms to develop extensions within the core solution (e.g., S/4HANA) and it can be realized through either Key User or On-Stack/Developer extensibility.
Key User extensibility is done primarily through configuration (with
some exceptions) and does not require any external tooling. It’s meant to be used by power users, although it certainly helps to have a developer. It can be used for things like adding custom fields or business objects, customizing Fiori UIs, and exposing business objects and data through CDS Views.
On-Stack, on the other hand, involves ABAP development but it differs significantly from classic ABAP extensibility. On-Stack leverages a cloud-optimized version of ABAP and white-listed APIs to ensure a clean core.
Classic extensibility is the legacy In-App model which allows you to modify the core. It’s extremely flexible but is no longer recommended by SAP as it’s not cloud friendly and has significant long-term implications including costs. It’s also not available in some versions of S/4HANA. Keep in mind, development using this model may require re-platforming in the future as SAP’s cloud transition progresses. In short, it does not comply with clean core.
Side-by-Side extensibility, in contrast to In-App, is realized outside of the core system in a platform such as BTP. Its primary purpose is to develop solutions that can be seamlessly integrated with the core in a decoupled way. You might infer that it is possible to develop side-by-side extensions using a non-SAP platform and you would be correct. However, BTP makes it considerably easier because it provides a complete toolset to extend and integrate with both SAP and non-SAP solutions. It additionally provides out-of-the-box prepackaged content to not only accelerate implementations but to provide quality and embedded best practices. Prepackaged content provides the business-centric nature of the platform. It’s what sets it apart from other cloud platforms.
As you can see, clean core is more than just BTP. It’s a concept that is critical to the cloud journey of any enterprise. Extending your core solutions incorrectly can have negative downstream effects to your business. As you design your architecture you need to take into consideration the various extensibility models and select the right one for the use case(s) at hand. Keep in mind, it might even be a combination of models! Clean core methodology should be part of your cloud strategy.