 Hello everyone hope everybody's having a good summit so far With the fidget spinners and beer mugs what in swag, but what more do you want from a tech conference, right? This fidget spinners. Yeah, I didn't see them yet Find out on the booth crawl. All right, welcome to a session on monetizing your applications using CF abacus and Billing engines. I am punkage Kumar part of SAP cloud platform. I'm joined by my colleague Nick Hi, Nick Milani VP of strategy and solution management for the SAP hybrid revenue solutions Which consists of hybrid spilling and hybrid revenue cloud? So this session is all about converting API's or bits to dollars right or if our Bitcoin friends or ethereum friends have their way bits to bits bits to bitcoins When Nick and I were planning for this session and we came out like what should we use to monetize? API I mean if we look at It's really easy to give like hello world examples or we could have chosen something like Monetizing storage or monetizing compute which is really cloud foundry is about Or we we are from SAP the enterprise company. We could have chosen Monetizing create sales order or hire employees, but that's that's kind of you know, okay We do that for work. So let's take and if you have attended a Becariant's Session yesterday. She talked about the number four point was think big. So we went with sci-fi as a theme of our Monetizing API's there's this really beautiful if you like sci-fi a sitcom called the expense anybody has seen it. It's a it's it's a very Set up in the two two hundred years from now where Interplanetary, okay, we didn't go into a galactic We just went interplanetary travel is easy and so our setup is that I am Ship of captain ship of interplanetary ship and then I need to use certain API's from Let's say a travel organization where I let's say I'm going from earth to Mars and I need to reserve our space trip or I want to get pricing maybe you know, there are search pricing involved where If I do certain ways maybe stop at a asteroid in the middle The pricing is different. So there's another API that we want to monetize and then there are space ship API's like get imagery That the spaceship is using so those are the API's that we will monetize and that's that's the background We will be working on to set up further context. I'll I'll have Nick speak on Thanks, Pankaj and I love the I love the setup for this So, you know API is everywhere. Everything is a service and we are 200 years in the future here But all of us are trying to make this reality now as you know But in this ecosystem that Pankaj just described there are a number of different actors and for the purpose of this talk We've identified three major groups here. So you have your platform providers, right? These are the guys with the big spaceship Quite ironic. There's a big guy with a big platform down the road there That's already working out of a spaceship. So maybe this is not so futuristic anyway but these guys have services and products on their platform, they charge end customers and You know, they're the central point offering all these different types of services Also in this ecosystem, you have external developers, right? They're the guys that are the platform providers are trying to get on onto the platform They're selling things as well via the platform And when it comes to market services, and this is one of the things we're focusing on today They may have to actually pay for some other services. They're using from other teams or other groups Thirdly and perhaps most importantly one we've seen internally at SAP here already is that there's an Internal development component as soon as you have this garden of micro services You need to find a way to keep all the different actors in the ecosystem adequately compensated and it could be monetary it could be non-monetary, right? But either any in the end they're all gonna have their own different objectives and KPIs and then they're going to be needly They're going to need to be adequately compensated for this ecosystem to work We are seeing some examples of this out there already. Perhaps some of you have already seen them I mean Netflix have talked a lot about their Microservice journey and some of the challenges they're faced particularly when it comes to dealing with microservice created by many different groups Twitter have some great content out there, too They actually went out and specifically build a system for the charge bank mechanisms is a really great presentation We've got link there very very detailed But one I've had I guess hands-on experience with is is that SAP when we launched our harvest as a service platform Which is our microservice marketplace based on the SAP cloud platform. It's all cloud foundry underneath and We have hundreds of development teams at SAP, right? And we needed to figure out a way to adequately compensate all of them and it's it's not so simple All right, so so what we are going to use for this is CF Africa's I hope anybody uses CF Africa's or contributes code to it over here good, so CF Africa's is It's a building. It's a metering and aggregation engine So when when you have an application that needs to be metered So maybe you are calling certain APIs. Maybe you want to store how much this How much of the compute has been used or how much of the Persistent storage has been used then you can measure that Using CF Africa's you essentially send certain calls to CF Africa's so it's a really neat solution that That has been developed in an open-source way IBM And SAP has contributed quite a lot of code to it. It's a set of About six microservices one for metering one for collecting collect as a collector then accumulation and aggregation But why is CF Africa's important if you you follow cloud foundry, there's Bosch So Bosch is famous for Helping you with day one and day two problems day one problem being how to get the system deployed Properly with all the dependencies and then day two keeping it live So I call it CF Africa's as that solving the day 30 problem meaning I need to build my customers Maybe these are external customers like SAP operates their platform IBM has their platform Google AWS So they need to build their customers at the end of the month or quarter. So that's the day 30 problem It could also be that let's say you are Comcast Comcast had a great session yesterday. You are Comcast and then Lot of internal teams are using your APIs or you're using your Applications and you want to charge back that internal allocation. So that's those are the problems where CF abacus will come into meter API is and various basic primitives what CF abacus has Certain limitation and these were the constraints that they designed the system with that it's not an invoicing or billing system that You cannot send an invoice to a customer for internal allocation. It's fine like Comcast charging their internal developers or internal organizations, but when it's a SAP or Google or AWS or you know or pivotal They need to send invoices to their customers. So that part is not covered by CF abacus. So then there are these billing engines and We do our own dog food at SAP. So we have a commercial solution called revenue cloud Which is kind of the cloud native baby of our much bigger solution called hybrid billing So we use revenue cloud and we I will demonstrate revenue cloud in our demo So one thing we need to understand the difference between let's say when we are doing cloud foundry like scenarios Subscription billing usage billing and when you buy, let's say a product from Amazon There the difference is the continued relationship when I buy Something from Costco I buy and the transaction is over at that time, right? That's the buying a discreet product in case of when I have When I buy a subscription from a provider and subscriptions are not new I mean everybody has had newspaper subscriptions, I guess from the time of Gutenberg probably But so subscription is not new But the subscriptions are different from buying discreet products in the sense that you have a continued relationship that The as you you go along with the relationship. You keep paying for the product So there's the concept of continued relationship. That's not there in abacus. It's a it's it's there in billing engines or revenue cloud and then Cf abacus acts as a calculator. It's a big calculator like it it does not have a state in that sense that I did this Transaction and now I need to move to another transaction. It will It will price the transaction like I am going to do this API and this is how much it's going to charge But what about all the different kinds of API is that I call and now I need a Consolidated invoice or a bill at the end of the month So that's those were the constraint around with CF abacus was designed. It is metering Accumulation and aggregation. It's not billing engines. So that's what revenue cloud provides. So we have two sides CF abacus and revenue cloud If we look at what this architecture looks like what we have is a very simple I guess fairly standard billing architecture where you have a user Consuming services on the end and it could could be users. It could be applications could be anything It goes up in the cloud and then is meted by CF abacus in this case then after that the billing engine kicks in right and It's calculating things. It knows the contract terms the pricing all those type of things And of course then it had you know creates the correspondence with the customer Chargers credit cards other payment methods whatever it is also follows up if they decide not to pay a campaign or things like that What's perhaps different here in this type of ecosystem with all these different parties in the billing engines doing a lot of different things It's taking a single transaction in and potentially creating five or ten transactions behind depending on who needs to get paid What based on what the end user is doing and they don't necessarily see that part. It's all happened behind It's all managed behind the scenes So to solve this we decided to build a new solution based on our cloud foundry Cloud platform on micro services. It was a very tough decision SAP we know we've been around a long time. We have a lot of assets in this space already But we decided we needed to sort of make this sort of dramatic shift to get to where we need to be and to sort of lay the ground that the foundation And we also re-looked at what the scope means in in you know in this era for for a billing solution We decided on the quote-to-cash scope. So it's everything from order configuration So when we're talking about API's and you know subscribing to API's or buying API's It's quite basic but consider the fact that many of our customers bundling physical products digital products API's themselves all things together and we have to manage the pricing and the discounting and the rebates and all those type of things together So that's the quoting process quite complex also the order management, right? So activating Things in provisioning systems setting up tenants what depending on whatever is being sold There's obviously a lot of other things that need to happen there shipping out Physical goods in some cases and then of course all the downstream billing processes which we're focusing on In enterprise scenarios, there's also a lot of integration to other other systems. So we've got a few examples on the screen It's not an exhaustive list Commerce interfaces, so commerce systems so to allow customers where it's B2B or B2C to go and buy and subscribe to your services Like any marketplace as one example Us in SAP we do a lot of B2B as well. So we need to cook into CRM So when our direct sales go out there and do business Service reps and also back-end systems. So if you are sending out physical products, you do need to You know connect into your fulfillment systems and of course finance rights because not much in the enterprise gets past a CFO unless you have a nice story so we designed this to Cater to a broad base of our customers So I'm trying to build something for thousands of our customers not just you know a single digit number You can go out and build this thing for your cost your Specific problem and like Twitter and some others have gone out and done that what we're trying to do is build something more generic That can be applicable to many of our customers. What do we go to market in 25 industries now? I don't know always lose count, but you know trying to build this to a for a very broad base of customers All right So now let's the demo time So the way we have structured the demo is that I have a because running locally on my notebook I could have run it in the you know in a Cloud Foundry instance. I will generate certain Usages meaning some some applications are calling certain APIs So I will generate that in postman and send it to CFA because from there it will be picked by some kind of a integration platform and that Usage will be picked at the end of the month or whatever frequency we define and send to revenue cloud In the revenue cloud we have the concept of the customer and generation of invoices So let's let's hope the demo gods are smiling today So let me So see if a big abacus is really really Small I mean in the sense that you can run it in a small footprint or a larger footprint and it can scale in large profiles So what I have over here is just a clone of CF repository CFA because repository from here. I mean all I did was get clone and Then I've already done the Dependency install over here. So you don't have to see it downloading the internet, but now I can just say npm start and it starts a all the six microservices that CF abacus has one for metering one for collection one for Cumulation etc. So now that it started. Let's send some Usage so In real life this usage will be sent by your applications like your application is either calling this API or it creates If you do it synchronous, then it will be a blocking call. So your application might Stay there for some milliseconds if you want to make it really scalable then you Put these metering API calls in some kind of a queue so that your application keeps Going on I have these case it's a little small so Let me put into the current time in this So when did the transaction happen milliseconds? You can see certain things like which which identify the call Which organization is calling this and what kind of a resource it is what kind of plan it is and then the three API is that I talked earlier that I am going to call Three API calls with quantity 10 for reserve then hundred for query The pricing API calls and then another hundred for imagery. Okay, so when I send this it It creates a usage record inside abacus's Persistent storage in in production you typically use MongoDB over here. I'm using something called pouch server, which is similar concept and If I go over here and see so I just sent one right I can see there is one record So for example, I can send like two more and this will update and So let's say I'll just do this so That's another so that is second usage being sent and just for fun. Let's send one more I'm changing the time the transaction is happening because if I send it with the same time the Abacus has a logic where it will say it's a duplicate usage record See I tried to send the third usage again, and it's a duplicate record. So let's see if I got all the three Usages over here. You can see it's for fourth one was a duplicate which will not be counted Okay, so now we have this usage sitting in our metering engine, which is CF abacus Now we need to actually send it as a so that it generates an advice. This could keep happening over the month, right? Let's log in into revenue cloud now, which is our Production instance so I go to revenue cloud at SAP and again the we are SAP we use our own Dog food actually, this is not awkward. This is a production application champagne champagne. Okay, better So let's let me show you a little bit What's over here? So The same API is that I had so I we as an let's say this Travel agency of our travel organization operates in two markets, which is US West and US East. I have these rate The rate elements over here. So remember there were three apis that we are trying to monetize All those are set up as attributes to be measured on revenue cloud itself. All right, and I Can't sell this as a product. So what I do is I actually create a product. So you can see over here That there is this product called space trip basic. This is what is sold. So think of this as a package that That is being sold and I can even look at details like Yeah, I'm gonna charge first time any customer signs up. I'll charge $5 and then These are the various Attributes in in like pricing for example Reserve space API 10 API calls are included the block size is one I could increase in increase block size to hundred or thousand or whatever and then here's the pricing in USD This is something in CF abacus. You can do it at a primitive level But when you are talking with let's say the business side of guys, they like this kind of UI Let's so that's the product that I'm gonna sell. So who do I sell my product to I sell it to customers So I will sell this customer to this guy James Holden This guy is the protagonist or the hero in that expense. So anyway So James Holden so when I sell this it becomes so these are the things that I've already set up and It becomes a subscription. So this is where I have already sold this product to James Holden and it is Here that I see that yeah, this is the stuff that I have sold. So now let's So all of our back-end data is set up this all the accounting stuff is already set up now. I will again do these Calls from here if I can find my like that. So now what has happened is that I have Metered the usage in CF abacus. I need to send it to Revenue cloud so that we can generate a bill, right? That's that's what we are interested in that we need to send this so typically you would do this O of to authentication where it's It generates some kind of a credential so that I can send my API calls in a secure way I already did at 1130 because the token is valid for One hour so I Will do the first so this is the first Call that I'm doing and if you look over here So this is abacus to revenue cloud now. Yeah abacus to revenue cloud. So this is the call that I'm making right now So remember they were Three times I made that call. So this is 10 10 10 30 and I send this and It it gets created. So all in real life. This will happen using some kind of our integration tools So I'm I'm doing it over here. So I sent my calls for Reserving the trip now I'll send 300 quantity for this which is the Space price so that's being sent and Another one is the last call is get space imagery and again, that's also I send that and Now hopefully what has happened is that this all these three different API calls have been created as a billing document That can be sent to the customer actually in voice is sent to the customer. So there are a lot of downstream processes I will not bore you with that. Let's go back to our system over here so billing data and I see that there is something done on June our customer was James Holden and you can see that in this there are 10 calls for reserve space API and then you will see that It's only $20 the call was $1 up API call, but it's only $20 in the final bill because 10 calls were already included in the in the space trip product that I bought for the others for example over here only Nothing is included over here. So you can see that this is probably a 3 cent call and then or More than that, but it's 300 multiplied by some number so 30 USD and then over here 10 was included So 290 so all of this is accumulated as a one single number 5290 that we can send to the customer So that's what happens. That's your day 30 problem being solved by using CF abacus and then sending it to revenue cloud any questions Okay, if if if no questions, then I would Let's go back So Check check CF abacus. It's a pretty cool project It's not just for cloud foundry by the way, it's you can measure whatever you want I mean it could be anything that you are doing inside I Have seen on if you read hacker news is a lot of discussion going on over there in various Ask etch and post where they talk about hey I got this giant bill from Amazon or whoever and I want to allocate you can do those kind of things you get a giant Bill from somebody and you want to validate it. You can use CF abacus for that On the billings on the invoicing side. There is revenue cloud. There are other solutions. So With these you can monetize your API's or apps Any concluding thoughts from you? Yeah What we showed today was a very fairly simple B2C example We didn't yet show because revenue cloud version one doesn't yet do it We didn't yet show that very complex ecosystem and where we would configure the way the different fees get split up We do currently do it with our hybrid spilling and we are bringing that capability to revenue cloud So it's very exciting that platform model is applicable to so many of our customers now. So Yeah, thanks for your time. Yep. Thank you for your time. We have one more question down there We are doing it It's not it's internal use only we haven't yet brought it to the public release of revenue cloud Yeah, but it was like Priority it was a very top-five priority for the internal development they recognize luckily for us the issue quite Quickly without us having to prompt them because it's it's quite obvious for this ecosystem work. You need to have that in place It it has so It has to come from the top the chargeback model. I mean if you go from there, you know, I'm a I'm a Platform operator for my internal folks and then I go to like hey, you guys are using this much pay me this or the internal allocations Right, it doesn't work from the bottom up. It's always has to be like Senior VP of the platform talks to the senior VP of apps saying hey you guys have been using platform now, you know Now it's no longer a skunk box project start being Yeah, in short, yes, I think internal even if it's internal funny money I think for many companies that's been a long-standing Opaque kind of process and this makes it very transparent. So yeah, there is some level of transparency And also if I'm building an app and this is the problem we face a lot I Need to know what my cost is going to be because it affects my floor price It affects my go-to-market and my pricing and all those type of things. So there is a Path to getting maturity around that whole thing I would say It's it has affected in the sense that what is the most effective way to do it? Should I can should I use VMs which are expensive to operate or should I try to allocate more? Compute into containers So it when you start seeing if I make a call or if I do this is cost me this then you start taking those decisions Yeah, I mean the opportunity here is that you prevent your development from Multiple groups developing the same thing over and over right and this is the opportunity here But you need to make that ecosystem work and it's it's ongoing I wouldn't say we've solved all the issues there But Pankaj is right because it's got to come from the top and you got to think about it up front So some companies are building their own thing what we're doing for revenue cloud and it's not just for API monetization It's for any SAS or any any product you want We're trying to solve those problems for a broad base of our customers because we've been through it We've seen it first-hand. I think we're out of time. All right. Thank you. Thanks everyone. Thank you