As Dr. Suess wisely said, “The more that you read, the more things you will know. The more that you learn, the more places you’ll go.”
There is no question, the 1000+ people attending CF Summit had journeyed there to learn.
Many felt the conference rocked and the “reciprocation of learning” was high. One of the most popular and tweeted-about talks was on the topic of micro-services by SAP’s René Welches. For many open source software engineers in attendance, the talk was also a major milestone because SAP opened the kimono, showing how important open source software is to their strategy and their future.
In the presentation, Commerce as a Service (CaaS) with Cloud Foundry, Welches started with a strong air of gratitude, “I was about to change the title to Commerce as a Micro-service (CaaMS) because we are using a lot of the micro-services concepts. I was really happy after the talk yesterday on micro-services because it really confirmed what we are planning to do.” He then went on to explain how they were in the process of developing against this architecture, how the architecture came about, how it works, what use cases drive it, and what open source projects are used.
SAP’s Microservices Architecture Overview with Cloud Foundry
Welches had not been with SAP for very long, and it was easy to see the architectural thinking came from an e-commerce background. In fact, Welches was with hybris, an SAP company, who runs e-commerce websites for Nikon, 3M, GE, Levis, H&M, and 500 others. In 2013, SAP bought this commerce platform industry leader, and Welches became the product owner for PaaS on Cloud Foundry.
While Welches covered APIs, mobile, REST, responsive GUIs and more, the architecture slide below was one of the most interesting. To find your center, orange is basically the business logic layer, and there are seven or so layers, starting from the bottom:
- At the bottom is the SAP IaaS, and this includes backing services, logging, and monitoring. Backing services include actual data stores for both documents and data in a distributed commit log. For logging, they use a few technologies, including Redis as a data store, to grab data right from the Cloud Foundry syslog. Monitoring provides GUI services via Riemann and Graphite.
- The Marketplace, Developer Portal, and set of core micro-services, noted in the larger, red, top box, will run on the SAP Hanna Cloud Platform where every interface is based on RESTful APIs.
- On the left is the Marketplace, a place for 3rd parties to promote and connect external services. Marketplace will run in Cloud Foundry, and applications will connect to the rest of the platform via APIs.
- On the right is the Developer Portal, and the team plans to manage the documentation in a continuous integration model, in sync with the code maintain matching explanations and APIs.
- In the middle of the stack are the micro-services. These are made up of Core Services at the bottom, CaaS Services, API Mashups, and CaaS Apps.
- Core Services are an abstraction layer over backing services and manage the data interfaces as an ORM or data plane. They are not using the Cloud Foundry broker model here, but their own service model to manage multi-tenancy.
- CaaS Services are the commerce services, and this layer is what you would normally refer to as the business logic layer.
- API Mashups are the primary method of composing and aggregating services. These services provide context or process to the CaaS services as well as device-specific info for the CaaS Apps. As with the other services, they will be available in the Marketplace.
- CaaS Apps provide the actual end user experience of the other services.
A Real-World Example of the Architecture
Right after the architecture overview, Welches gave a real-world example of how each part works:
- At the bottom, backing services are MongoDB and Apache Kafka. These will scale through BOSH.
- The SAP Hanna Platform, in the top, red box, is running on Cloud Foundry along with the Marketplace, which is executing BOSH.
- Core services, in the dark blue, are providing a document repository service via Mongo DB and a PubSubHubbub service on Apache Kafka. The MongoDB connection is for persistence and data loading. Kafka publishes events like order creation, email send, and order confirmation as well as streaming to an analytics data store for business intelligence.
- The orange CaaS Services are providing the business logic as a product service, cart service, and order service. By providing these as RESTful services, it is much easier for developers to use.
- An example of the API Mashup is a typical e-commerce check out process. End users would go through the steps to fill their shopping cart, and the Mashup would compose or aggregate (perhaps control) the necessary business services. Again, the Mashups provide context, process, and device-specific information.
- At the top, in green, end users would experience a storefront.
Use Cases for SAP’s Microservices Architecture
During the talk, Welches also described three fundamental use cases or customer scenarios driving this architecture. One, hybris believes existing websites will transition to full-blown commerce systems. In this case, hybris will help existing websites evolve through easy integration of add-on commerce services. Two, hybris will provide the same type of enriching, seamless services for existing commerce systems to expand. Three, hybris will allow companies to build game changing, consumer focused applications faster on the platform.
From another SAP talk at CF Summit, it was clear that Cloud Foundry wouldn’t just be powering hybris, it would be powering virtually all of SAP’s applications on the HANA Platform across their 200,000 customers in 170 countries, 26 industries, and 1500 SAP HANA partners.
SAP and Open Source Solutions like Cloud Foundry
While Welches covered many other things, there was an important list shown at the end. It was a list of all the open source software solutions used by SAP.
Cloud Foundry was at the top, along with BOSH, to offer the PaaS layer. The list included many other notable open projects all running with Cloud Foundry—Java, Groovy, REST, JSON, Node.js, OAuth2, Redis, MongoDB, Elastic Search, Apache Cassandra, Kafka, and ZooKeeper, Logstash, Twitter Bootstrap, and Spark.
- Watch this video and others from CF Summit
- See this slide deck and others from CF Summit
- Learn more about Cloud Foundry and Pivotal CF
About the Author