So let’s get one thing straight – HCP is for custom developed applications it is not for transactional systems like ABAP stacks (eg ECC or Solution Manager) – there is no ABAP engine in HCP and there are currently no plans to offer it. HCP is like Heroku, Engine Yard, Google Compute and Azure, technically it should be possible to take a Java application and deploy it on any of the above platforms and it will just run – try doing that with a transactional application. Although this is an over-simplification of the PaaS vision, there are of course challenges to doing this and these have been identified in Matthias Steiner’s blog “Spring Cloud Connectors”.Below is an example architecture for a simple custom application running in HCP and connected to a back end system.
HCP as I see it is a great opportunity for customers in the following ways:
A good example is the ability to use quality/testing framework components like Cucumber, Git, Jenkins, Gerritt and Selenium which can be combined into a solid testing platform. Imagine this, a developer pushes a commit to Github, this triggers Cucumber to run a suite of tests in Selenium against the applications WebUI. The diagram below shows an example of a development of code in an environment with automated testing capability,
As a result the developer is able to run a battery of tests against their application – perhaps executing as much as 80% of the testing before a human tester had even seen the application. What is even better is that those tests are now stored and able to be executed again and again for that code to ensure it still functions. There are pre-built images in Azure and Amazon Web Services with these testing architectures, all the user has to do is point the testing components at the application to be tested and populate with the tests.
2. Regression testing – one of the biggest pain points for customers which reduces the number of deployments they do in year is regression testing. The impact on the business for SAP heavy customers is massive – I know a retail company who spends 6 weeks every quarter doing business and regression testing for a release.
If you develop your custom application in HCP with most of the business logic inside it (instead of in the back end) and use OData services exposed through NW Gateway to push data back into the on-premise transactional engine, then you will be minimising the customization in the back end.
As a result, the burden of testing reduces as well, simply because you are changing very little in the back end – as we saw above – the testing HCP applications is much more flexible than traditional ABAP testing using tools which also do not carry as high a license cost against them. This is not a hard and fast statement but I believe that it is possible to reduce regression testing effort by pushing more of the customisations into the HCP layer and into automated quality testing frameworks.
3. Unused/obsolete applications – in HCP when you no longer need applications you just turn them off. If you had a custom application in ABAP, that code would have to be backed out using transports (how often does that happen?).
Application lifespans are much shorter now than they used to be, as a result applications get replaced more often as business processes change.
The great thing about this is that if you are building customisations in HCP and not in your transactional engine then patching and upgrades are much easier as it reduces the amount of new customisations to be dealt with during software updates.
4. Cadence of change – above I discussed a retail customer who had quarterly release cycles due to testing effort by the business. If the previous points hold true and overall testing effort is reduced in the ABAP stack due to moving customisations out of the back end and the ability to use automated testing; then it follows that customers can deploy new applications, changes and updates faster than previously possible. It should be possible to have an HCP application which can be updated every two weeks whilst just using OData services to connect to the back-end, whilst the main back end system still uses quarterly release cycles. As most of the customisations and/or business logic is in the HCP application then and required changes can be made in the ABAP stack as small change with limited testing. This would be a massive cultural shift for a lot of organisations who are used to slower change life cycles – but it will enable them to drive faster projects to unlock better business value, provided they are targeting the right opportunities and using the right development methodologies. We have seen these opportunities with companies like Etsy or Netflix being able to deploy code on both IaaS and PaaS platforms with ease and high frequency. This will also drive changes in Ops on how they deal with change, for example,approval processes will need to accelerate. Developers will have to take greater responsibility for their handovers and the life cycle of their applications in helping the wider team resolve issues.
5. Consistent UI – I love the promise of UI5 and the mobile application services in HCP, it really provides the opportunity of “build once, run anywhere”. This has the ability to vastly reduce the workload on development teams to create a great application quickly, effectively and across multiple platforms to a large section of the user population. It really becomes a force multiplier for application deployment of quick and lightweight apps.
These 5 points I feel combine to make HCP a compelling platform for customers to start taking advantage of in order to accelerate their development plans.
As SAP offers more SaaS solutions to customers (Concur, Successfactors, Ariba) which have limited customisations, customers will have to use a combination of their SaaS application and HCP to create customised/extended applications. This will hopefully encourage developers to develop in HCP, thus centralising customisations for the SaaS products and also enabling customers to develop applications connected to their back-end systems rather than directly creating custom applications in their backend system.