Developing Microservices and APIs on Bluemix Acme Freight. IBM Code Tech Talk JULY 12,

Size: px
Start display at page:

Download "Developing Microservices and APIs on Bluemix Acme Freight. IBM Code Tech Talk JULY 12,"

Transcription

1 Developing Microservices and APIs on Bluemix Acme Freight IBM Code Tech Talk JULY 12, >> Good morning, good afternoon, wherever you may be. We want to welcome you to our series of tech talks. The series is taking a new direction with our IBM code tech talks, IBM journeys tech talk. This is a, IBM is about developer, IBM has taken seriously role of developers. The developers are the new king makers. Indeed you are, so IBM has been focusing lately on developers, have been creating a number of assets, number of resources for developers. One of them is our website, IBM code, which is a site that is presently written for developers, allowing you to solve problems quickly, providing you some code and things that will allow to respond quickly and the journeys are all about that. Today we have a great journey that we want to show you. It is about creating, using APIs to develop microservices, using BlueMix, and we call it the Acme Freight journey. We have on the presentation, we have Joe Sepi and Sai Vennam who created that journey. They will take you through that journey. It is our very first journey tech talk. And looking forward to hearing what they tell us. Without any further ado I turn it over to them. Joe and Sai you have the mic and camera. >> Great. Thank you. Hi, everyone. Thanks for joining us today on this webinar, talking about Acme Freight. My name is Joe Sepi, and I'm a developer advocate for the New York City team with IBM. Joining me today is Sai Vennam, Developer evangelist for the API connect team. Today we are going to walk through Acme Freight, a best practice sample application with a technology stack based entirely within BlueMix. The application is built around microservices and APIs. So we will explore what that means and why this approach is useful. Of course we will dive into the technologies that power the Acme freight application, including LoopBack, the open source Node.js API framework that was created by StrongLoop which is now part of IBM, as well as OpenWhisk which we will dive into, serverless framework API connect, cycle management tool and BlueMix. We will hit a couple other technologies along the way, but let's get this started since we only have an hour. Let me share with you where you can find the journey and how

2 it's broken up. As you can see the URL there, developer.ibm.com/code. This is one of the journeys that we have available. The Acme Freight application kind of overarches a couple of journeys. So this one here is the one unlocking enterprise APIs and the other one is for making apps smarter with serverless. With the sophisticated application like Acme Freight, important architectural decisions, the important architectural decision was to break it into these kind of different microservices, and the glue that pulls it all together is BlueMix. I'm going to turn it over to Sai to talk about microservices and BlueMix. >> SAI VENNAM: Hi, everyone. Thanks for the introduction, Joe. I'm Sai, developer advocate for the API connect team. I want to go ahead and get started by introducing microservices, the concept of microservices as well as BlueMix, why they are such a perfect fit. I'm sure you know what BlueMix is. A great many of you know what microservices are. To put it simply, it's an approach to app development where a larger app is made up of smaller services. This isn't something brand-new that is completely new to the landscape. Microservices is actually a subset of service-oriented architecture. I'm sure many of you may be familiar with this architecture. It is more of the legacy thing and IBM generally used to do this quite a bit. The big difference between microservices and service oriented architectures, service-oriented architecture generally in the past was monolithic applications, very large apps, they were still services that made up this monolithic app and they talked to each other through componentized structure. The difference was there was a lot of difficulties when you have such a monolithic application. For example, you might imagine one of the pieces of your application was responsible for serving the website, the static files. You know that your website is going to get a lot more traffic as an example. It would be very difficult to scale only the front end of your application, while keeping the other end. Basically, it would be nonsufficient and be much more expensive to actually scale up traditional service-oriented architecture applications. Microservices fixes those problems by having each one of the services that make up the broader application be individual and separate applications. I also want to quickly reference the 12 factor app. I don't want to go over all of the twelve factors right now. But whether you are a developer, manager or you just want to learn what a modern application should look like once

3 it's architected, I would definitely recommend checking out 12 factor.net. The twelve factor app approach goes over twelve factors of creating a modern application. To highlight one of them, processes, the processes twelve factor basically says your application should be made up of one or more stateless process. This is very important for microservices. Being able to rapidly upgrade certain piece of your application or having fault tolerance, if one of your applications were to crash to come back without having corrupted data, these are the kinds of considerations that you need to keep in mind when developing microservices. By having completely stateless processes, you can start achieving that. The reason why microservices and BlueMix is a great fit, one of the biggest things with microservices is you get to pick the right tool for the job. You wouldn't use a drill to push in a thumbtack. Just like that you wouldn't use something like a traditional WebSphere application deployment for a simple crud API application. Due to this with BlueMix we have chosen the right language and the right tools for the right applications. When we created Acme Freight we kept this in mind. As a polyglot platform BlueMix supports Node.js, Python and Java. In addition it supports multiple compute options. Traditional applications can be deployed on Cloud Foundry, Docker application or Docker container you can deploy as well. Finally the newest available feature on BlueMix is serverless actions via open Web. Basically OpenWhisk, being able to trigger code, trigger actions as a response to some sort of event. Acme Freight, I think as a best practice industry application, we wanted to use the best possible technology for each piece of the application. Now I want to pass it on to Joe who is going to quickly go over why APIs are important and specifically in the landscape with BlueMix and microservices. >> JOE SEPI: Thanks, Sai. Why are APIs important, specifically for microservices? There are a few reasons, many really. But I'll go over the three that we have here. One, there is a clear contract negotiated between the service itself and the consumers who will make use of it. This removes any ambiguity and complexity between the components allowing them each to focus on their area of concern, and providing a interface for them to interact. Of course this isn't one-to-one relationship, it can be many to many relationship. This clear contract allows these components to keep their complexity behind their interface, and as long as that contract isn't affected, work can take place behind the scenes without any consumers

4 needing to be aware of such changes to the underlying applications, this allows teams to be Agile in their development lifecycle. We can make use of third party APIs to enhance and enrich our applications, perhaps getting geo data or social connections or what have you. You may want to make your services available to the public as well. So as long as there is a well defined contract that remains consistent and reliable, changes can be made behind the facade of the API, without the consumers of your API ever knowing or ever needing to know that that work is going on. I want to share a couple of real world examples from my experience. When I was with New York Times we were replatforming the NYtimes.com website and were lucky to have a microservices style architecture in place. I say website but NYtimes.com is a conglomeration of many different applications coming together to deliver the content. Because of the separations we were able to, one replatform in stages and only replatform the pieces that were need of replatforming. Two, we were able to work in silo'd applications without disturbing the other components. Then another example I have is working at adobe on a green field application where we were able to start fresh from the outset, we had all the different areas of concerns separated and even though we were a small team, we were able to iterate on the different aspects of development independently of the rest of the work happening. As we continued on and brought on more team members, the work continued with speed and agility, knowing that the lines between the application components were clear and distinct. Back to you, Sai. >> SAI VENNAM: Okay. I want to introduce the industry that we are targeting with Acme Freight. The journeys that we are going to be going through, the content that we released and the demos that we are going to be doing today are all centered around the application Acme Freight. With it, we targeted the supply chain management industry. We did so because we didn't want to make a toy application. We wanted something to be like a real life scenario, when people came and checked out our code, we didn't want them to think this is just like a POC. We wanted to address a real problem. We chose the supply chain management industry. We are hoping that the technology that we showcase with Acme Freight could potentially one day disrupt the entire industry. To introduce some of the difficulties with traditional supply chain management software, it's complex. Even with a modern ERP system, standing for Enterprise Resource Planning, there is still a lot of complexity for designing an application for supply chain.

5 Lots of choke points and bottlenecks. There is variables that every single step of the way, truck drivers that are taking shipment, shipments that are delayed, inclement weather events. These are variables that you can't rely on, on a human control to address. Having a computer automatically or at least helping the end user figure out things would be ideal. A lot of those smart tech that is out there, lots of cognitive capabilities or cool IoT devices haven't made it into the space yet. We want to fix that. Let's imagine you are a retail company and you have got a supply chain management software. A massive storm hits. Thousands of people who put in their orders are not getting them in time. This leads to unhappy customers and losses for your company potentially. When we were developing the application we thought to ourselves, how can we plan for situations like this? Can we train our systems to prevent this happening in the future? That is exactly the kind of mind-set we had when we started developing Acme Freight. I'll pass it back to Joe who is going to quickly demo Acme Freight. >> JOE SEPI: Great, thanks, Sai. Acme Freight uses cognitive and Cloud to roll out a innovative solution to their traditionally complicated problem. I'll demo the application. But let me first intro the company and the app itself. Acme Freight is a logistics vendor who is responsible for the shipment of critical and time sensitive medicines. Their app can manage distribution centers, retail locations, trucks and partners as well as share realtime information about shipments to their customers. It ingests weather data from the weather channel API on IBM Cloud to detect disruptive weather events along planned delivery routes. The app uses cognitive APIs to suggest optimizations to Acme Freight's resource planning and routing. Let's check this out. I'm a logistics coordinator working with Acme Freight. I log into my dashboard. This is what I see here. You can see the retail locations which are the green map markers, I click on one. We can view some important information about that location, including shipments and weather forecasts and such. The distribution centers, the orangish stars, which show their outgoing shipments, and then the trucks which are the purple trucks there, obviously, they give a lot of valuable information there, including since this one in particular is IoT enabled, it can provide realtime data about the shipments. Okay. Let's simulate a storm and see the application respond. This is where things really come together. You can

6 see the circle there where the storm is affecting the area. These are the recommendations that the application has given back to us. I'll dive deeper into how this comes together. But I wanted to show you the application in action. We have a mobile app and that can onboard drivers, to help us reroute shipments and such. But for right now we are going to stay focused on what we see here. I'll turn it back over to Sai to talk about the key aspects of the architecture. >> SAI VENNAM: Thank you, Joe. I want to quickly highlight some pieces of the architecture. This is definitely simplified down for this talk. We want to really highlight the things that we are going to be talking about today. Starting at the right side, the end user, this is whoever is accessing the application, probably a logistics coordinator in the case of Acme Freight. The first thing they see when they hit the application is a Web Page served by the UI application. This is a status files application built using react frameworks. It is again all static files meaning HTML, JavaScript, CSS, no back end really. This is a pure front end application that is being accessed. It does use Node.js locally to help out with development. But once deployed it's purely static files. It is stacked by a Python controller. This is a microservices pattern called BSSA or back end, sorry, BSF, which is back end for front end. What that means is it's controller serves all the back end requests that the front end might need to make. As an example, when we first logged into the Acme Freight application, it shows a list of all the retail locations, shipment centers and everything like that. Obviously that isn't static files. It needs to be retrieved from somewhere. The front end application has to make the request to the controller, which figures out where to get that back end data from. It takes it and massages it in a way that the Web UI can present it. The Web UI outputs that to pointers on the map. The Python application, it talks to a API gateway you notice. This is new. In a previous architecture this API gateway was not here. The controller was directly speaking with the back end microservice. We found out that this wasn't a good way to do things. Any time that we updated one of the back end microservices we would have to go into the controller and redeploy it. It led to a lot of problems for us. In addition we have to manage multiple authentication tokens, one for the database, one for the OpenWhisk action. It wasn't cutting it. We inserted this API gateway layer. I'll stress about why this is important later. But for now to summarize, the API

7 gateway abstracts away all the back end logic into simple Web end points. All behind a single API key. It provides excellent documentation. As a controller developer, you can go to the developer portal and see all the endpoints that are available, subscribe to them and start getting them right away. I don't need to know anything about where the back end microservices are hosted. >> Quick question. Before the API gateway, was the controller exposing APIs through REST also, or was it something, some other protocol? >> SAI VENNAM: Even before using the API gateway, all communication between applications were still APIs. By introducing the API gateway layer, we added things like a single location for security, single key for security rather and single location for accessing API endpoints, a developer portal, additional advantages, data ops protection, date limiting, that kind of thing, but yeah. Hope that answers your question. >> Yeah. Thank you. >> SAI VENNAM: Moving on, we had just covered the API gateway. The API gateway actually needs to know how to access those back end microservices. This is all done in self-serve graphical interface, and we will demo that later today. But before I get too much into that, I want to introduce the two back end services that we have. We have ERP on the top, Enterprise Resource Planning, that is a LoopBack application. I know I haven't introduced LoopBack yet, but that will be the first demo today. You need to know this application exposes data source data as APIs. Basically imagine crud operations that you would do against the database create, read, update, deletion of entries. It exposes them as API endpoints. That is the ERP side. A quick side note, it actually can directly integrate with secure gateway to expose LoopBack data or database data from a OnPrem system. For the sake of the demo it's a post [inaudible] on the bottom side we have OpenWhisk. We will demo that today. The OpenWhisk side handles the intelligence recommendations, when we simulated the storm OpenWhisk gets kicked off, it says there is a storm, let me see if any of the shipments are going to be delayed. It finds out and then it suggests alternative shipments that would make it in time. All of this would have required slow human processing power. Instead it's done by lightning fast OpenWhisk algorithms that we have developed. Without further ado, after going over this architecture, I want to jump into code, some demos and show you guys how the technology works. To introduce, I'll start with the ERP application. The ERP

8 app is based on LoopBack which is a lightweight Node.js framework. It is completely open source. LoopBack is part of StrongLoop, a company that IBM acquired about a year and a half ago. Since then, we have been integrating it with API management solutions. We have created this new thing called API connect. LoopBack addresses one core part of the API connect platform, which is the creation of APIs. It allows you to quickly build out Node.js applications which you can connect to back end data sources, and then expose access to that data source as simple APIs. Enough talk about that. I'm going to actually jump into LoopBack and show you guys how easy it is to get started. The first thing you need to start working with LoopBack, I'm sharing my terminal here, let me make it a little bigger, okay, the first thing you need to work with LoopBack is Node.js. With every Node.js installation also comes MPM. MPM is the packaged manager for the Node.js programming language. With those installed and now we want to get LoopBack, if we went to the LoopBack website, it will probably tell me to do MPM install, use the package manager to install globally the LoopBack CLI. Personally I like CLI, it's great, but personally I like using GUI. API connect has a development toolkit which has LoopBack incorporated within it. Instead of installing the LoopBack CLI, I'm going to instead install API connect. API connect is a IBM offering that covers all the time management landscape but today we will focus on the create aspect of it. For that it's completely free. You don't need to worry about creating anything but a BlueMix account. I would run this command now but it takes five to ten minutes. I already have it installed. To prove it, I'll run API C-V and it should come back in a couple seconds, it tells me I'm running on 5071 which I believe is the latest version right now. Let's get started with creating a first LoopBack application. I'll create a directory called tech talk LoopBack. I'll change directories into it. I'll run the API C LoopBack command. What this is doing, it is going to scaffold out a basic LoopBack application for me. It has questions though. What do you want to call it? Call it tech talk LoopBack. I want to use the latest version of LoopBack. It gives me a few basic applications I can start with. But for the sake of this I'm going to start with a empty server. It created JavaScript files and JSON files. Now it's running MPM install. If you are familiar with node, you know that what this is doing is fetching all the dependencies that my Node.js app needs to actually run. This keeps my code small and my dependencies although large are not part of the actual build process; sorry, the deploy process. It looks like it installed dependencies. It tells me next

9 steps, change directory to your app. I've done that. You can create a model or you can compose it with API connect. I think I'll do that. I'll run the API edit command. It should launch a new window with local token. There we go. I'm going to give this a second. What we see here is a locally running Node.js application which allows me to develop a LoopBack application. Yes, I'm using Node.js app to create a Node.js app. (chuckles). Once you get over that, let's look at this UI. The first two tabs are products and APIs. That covers more of the API management side of things. Let's jump to models and data sources which is more of the create side. First thing I want to do, I want my LoopBack app to connect to a database. I'll say create a new LoopBack data source. We can see it's a number of connectors, I can connect to MongoDB, all these different options. For now I'm going to stick with in memory DB. Save that. I want to jump to models. Models is a LoopBack concept. Essentially it allows you to find the type of object that you want to store in the database. Jumping into the models tab, I want to start creating new types of objects I want to store. Let's keep this one simple. I won't make it complicated. Say I want to create a new LoopBack model called car. I hit new. Give it a second. We have a name car and it's connected to the database that I created. Down here is a list of properties. Let's start creating them. One of my properties, let's make it a mate and a string, make, model, string, one more for year, and that is the number. That is all I need to do. So far, this is a simple model. I don't want to make it too complicated. I'm going to go ahead and hit save. Believe it or not that is actually all I need to do for creating my LoopBack application. Let's see what got created for us. I'm going to go ahead and hit the run button down here which is going to start up my Node.js application, the LoopBack app locally. In a few seconds, it should say running. We will give it five or ten seconds. It started up the application. It says running. Great. It's running my application. Let's see what APIs are available for me to work with now. I'm going to hit the explore tab. This presents me documentation of all the APIs that just got generated for working with that database I specified and the model I created, car. We can see things like create a new instance of a car or find instances of cars. Let's start with find, to demonstrate. Within this UI I can execute a call, get on all the cars I stored in the database. You should expect to see nothing here

10 because I haven't stored anything yet. But yeah, we see a empty array. Scrolling back up, let's create a new car. Jumping down here, to car.create, this one is going to do a post request to the running LoopBack application I have locally. Scrolling down I'm going to hit generate. Say Lexus RC I don't need a password and ID, it will automatically generate it for me. I call operations. It looks like it stored that. Let's quickly make another one. Make a Toyota Camry Another 200 okay, it says it stored it. Let's go back to the car.find function that we called earlier and it came back with a empty array. Calling it one more time we should now see the two cars we stored in the database. There we go. Basically what we just demonstrated is that we can take a database and then very quickly demonstrate or generate crud APIs for working with that database. No longer do we need to work with SDK or anything. Imagine working with MongoDB we now have working API end points or connecting up to that DB and making, storing elements. To prove that really is a running app, I'm going to hit the application URL. There we go. We get that JSON of the two cars that I've stored in that database. Let's take a look at a more complicated LoopBack application. Let's look at the one that we use in Acme Freight. Going to the ERP app that we have for Acme Freight, cloned all the code, we can see it looks similar. It is still Node.js application, running API C edit on this one. We are going to see a more complex LoopBack app. Give it a second here. We will go to the models. Instead of a single car, that is all of these that Acme Freight application needs, looking at a shipment, we can see that there are a number of different properties that a shipment needs, things like shipments humidity, temperature, where is it coming from, where is it going to, when is it going to get there. All of these are important aspects of LoopBack application for Acme Freight. Obviously this is still running locally. But let's look at the one that is running in the Cloud. Here we see the Acme Freight ERP application running on BlueMix.net. We have a Swagger for it here, we can see all the different endpoints. I'm going to log into the set of endpoints using the user access control. I copied that JUIC. I'm rushing through but all I'm doing is logging in, so that I'm able to access my end points. I get a token. I accept the token up here. Now I'm able to actually access the shipments and so let's call this get shipments method. You can imagine that the Acme Freight front end application would call the same API to get the list of

11 shipments that are available. Try it out and there we go. We see all the shipments that are in the Acme Freight application. To show you what it looks like in the actual running Acme Freight demo, that Joe demonstrated earlier, we can see all the shipments that are available. You can see them in AS format which is basically the UI documentation. To summarize, we went over the LoopBack piece of the architecture, jumping back to aspects I'm going to show you guys, went over the LoopBack piece of the application which is responsible for pulling out all the things about shipments, retail locations, that kind of thing. We want to get through the number of different technologies that make up Acme Freight today. This is one of them. Now I want to pass it on to Joe who is going to cover the OpenWhisk side of things and how that is being used in Acme Freight. >> JOE SEPI: Great. Thanks, Sai. I'm sharing now. Hopefully you can see my screen. Thanks for the LoopBack demo. I'm a huge fan of LoopBack. I hope everyone was able to follow a long with that quick demo and see how awesome it is. I'm going to talk about OpenWhisk now, a events driven model for building apps that scale on demand. It's flexible and easily scalable. It's a polyglot application development, open sourced under the Apache Foundation, IBM created it along with Adobe and open source, it's deployable to any open stack environment. It is not just on BlueMix, you can run this anywhere you can run a open stack environment and in containers and such. Let's get into some of the details here. This slide I find very illustrative of how serverless works. I should caveat that term as well. Obviously, there are servers still involved, but you are only paying for the time that a server is running. So you have these small snippets of code that when a event happens, an instance is brought up, your code is run and that instance is immediately destroyed. You only end up paying for that small amount of time that your code is executed and that is where this surplus term comes from that you are not sitting there, you don't have a server sitting there waiting to execute the code. We will look at that in a little more detail in a minute. On the slide, you can see, on the top left, things start with packages and feeds. These packages provide integration with external event sources such as weather API which is what we use in Acme Freight, or there are great tutorials on connecting serverless... (audio breaking up). And of course Watson has great packages as well. Triggers associated with those feeds, fire when a event occurs, and

12 developers can map their actions or their functions, their small chunks of code to triggers using rules. Anyone can create a new package for others to use and developers can write their actions in any language. As you can see on the slide there, there is first class support for Python, Java, Swift, Node.js and JavaScripts and you know, other languages can be run within a Docker image. Of course, the open source runtime can be extended to support new first class languages as well. I wanted to bop through some screens here. I was going to do a live demo but I figure this would be the easiest way to get us through it quickly. This is OpenWhisk on the BlueMix platform. If you go to the OpenWhisk page this is what you will see. You will see that you can either start developing in the command line or you can start creating actions within the GUI which is what we are going to walk through right now. If you click start creating now, you are given these two actions that you can start to play with. I'm going to get into the hello world with params action here. This is the interface for interacting with it. I want to zoom in on the code here. As you can see, this is simple JavaScript, and this is typical for an action where you will pass in params and basically return from it. If I run this action. (audio breaking up). I'm given the option to customize my params, my inputs. If I run with this value, here I see the screen, resulting screen... (audio breaking up). What was invoked, the time, but I think the important thing here, and I know this is a small snippet of code, but you will see that it was completed in 657 milliseconds. We build for a hundred milliseconds. (audio breaking up). You are charged for, so but the important part is that you are not charged for the time spent bringing up the instance and tearing it down. You are only billed for the time your code is actually running. (audio breaking up). I grabbed the screen shot from another presentation that I have, to show you some of the rich monitoring that you can do with the BlueMix UI here. The other thing I want to, on the bottom right, the REST end point is live, just by using it in BlueMix. If we click into that, we can see some of the options that we can use to invoke [inaudible] (audio breaking up). Illustrates how you can get started here. If I use the curl example, and I deliberately cut off some of that, so nobody gets my tokens and such, but you can see the response...

13 (audio breaking up). What was sent in, and the time and success and all that stuff. I wanted to quickly highlight the important part of the actions within Acme Freight. This is, if you go through the GitHub this is the recommend action. This is what pulls all of the other, there are six or seven actions in there, and this file pulls them all together in this async Waterfall promise. As you can see here by comments at the top of each block, we clean up first. We get the list of retailers. We identify retailers that are affected by the weather events, and we retrieve their stock and their shipments and we recommend what we think would be a better route. Then we persist that recommendation. A lot of underlying logic is abstracted out into the other actions that are included in the repository. But I wanted to show you how that all comes together. Why do we use serverless for Acme Freight? The model of reacting to a weather event is perfect for serverless, in that it's a event driven model. Based on that without events OpenWhisk actions are kicked off, if this, then that, sort of model, where when the action, when the trigger happens, the actions are run and then we end up creating this recommendation, and then like I was saying before, when there are no storms happening, no costs are incurred. So when a heavy storm season happens, we are able to easily scale up in terms of cost and execution. It's really a great model for responding to weather events with an Acme Freight application. With that, I wanted to touch on API management, and why we would need it in our larger API Acme Freight application. I think that the list can actually be quite long, and I don't want to get into each bullet point here. But you can manage security, orchestration and routing, you can have a single interface or entry point. I know someone mentioned that is also, can be a single point of failure. But as long as you architect it with high availability and scaling, then that shouldn't be an issue. You get great analytics and logging, authentication, especially if you are going to open up your services to third party developers, be able to authenticate and weight limit and do all that enforcement is important. Also doing blue green deployments, canary releases, circuits breakers for error thresholds, things like that. API management is the smart way to implement a robust application. With that, I believe I turn it back over to Sai for BlueMix API management demo. >> SAI VENNAM: Okay. Definitely API gateway, such a core

14 part of our architecture, really clean things up. (audio breaking up). [inaudible] you may remember [inaudible] a little drawn out. (audio breaking up). Deploy the BlueMix, number of steps, you get the portal going and get the API key. I want to stress that this has been very very streamlined for BlueMix applications and APIs, particularly for OpenWhisk actions as well. When Joe was demonstrating the how easy it was to create a OpenWhisk action, we notice that when you create a new action, and you have the code there, an API is automatically very instantly created for you, for actually triggering that OpenWhisk action. So you have that single API, OpenWhisk provides a API key for accessing it. But that is not quite good enough for us. What if multiple people wanted to use our OpenWhisk actions, we wouldn't be able to separate API keys with specific users. What if we had a malicious user that keyed off our API. We would end up with massive charge on our account. Those are just two of the reasons of why we want to set up API management for our OpenWhisk actions. Without further ado, what I've got here is the OpenWhisk UI, within this we have got all the endpoints that OpenWhisk needs to actually, or rather Acme Freight needs to do the recommendation. What I'm going to do is switch over to the -- I'm already here, on the APIs tab, where I can take an existing OpenWhisk action and click a API gateway in front of it. First things first, it says create a OpenWhisk API. I'll hit that button. (typing). Here we go. It says create a API for OpenWhisk. API name, I'll say Acme demo API M, time management. We will put the base path, slash API. Now we can start creating operations. (typing). It says, which package contains the action [inaudible] there are five different actions. For Acme Freight now we are using only the recommend action. Sorry, actually it's a retrieve action. All I need to do is set up a path, set up the verb which is a post and set up a retrieve action. And hit save, and actually I'll set up one more for recommend. I can't remember whether application uses recommend or retrieve. I'll set up a API M for both. We have created the two operations that we want APIM to manage. Slash retrieve end point is going to trigger the retrieve action, same thing for recommend. Scrolling down here, yes, I want authentication, API [inaudible] I'll stick with API key only. Scrolling down, I

15 don't want to enable rate limiting yet but it's a flick of a switch. User authentication, I'm okay with API key, I don't need Google auth. Finally browser applications can call it, which is what we want, we want the Acme Freight browser to be able to call it. Go ahead and hit save. This experience is more streamlined than if you had used API connect before, I was able to set up API management for my OpenWhisk action. Scrolling down, we can see analytics, API indications that have happened, and even the security that has been enabled. When I hit the sharing tab and generate a new API key, I'll call it controller key because my controller application is what is going to be using this end point. Just like that I was able to create an API key. It even gives us an API portal link. Let me copy this key, open up the portal, and here we go. We see it's open API specification base explorer, very similar to what I showed you before in the LoopBack demo. We are going to go ahead and run a couple of these commands. Just to make sure that everything is wired up correctly, I know I'm supposed to put something in the body but I don't have all that information off the top of my head. I'm going to hit call operations, comes back empty, as expected. The other one, post recommend, I want to try this one as well, put in my API key. Supposed to be something in here, I'm going to call operations, and I [inaudible] it is expecting me to put something in the body but that is fine for now. Okay, we have ran through, set up the API for OpenWhisk actions, completely secured, other than the fact that 1,000 viewers can see my API key (chuckles). We have got the API key and we have also the URL that we need to configure in our controller application. The next step is going to be, we set up API in front of the application, meaning the previously working endpoints are now going to be broken. If I went to my Acme Freight application, and I hit simulate storm, it's going to hang and hang, or other, it should have -- let me try one more time. Log in back end, one second. Simulate storm. Well, maybe it hasn't secured those end points yet. That is okay. Regardless, we need to configure our controller application to use the new portal URL and API key. Actually I think it did break, I was expecting it to break. We see that the UI is unloading properly so that is good. Essentially we protected our previously unprotected OpenWhisk endpoints, and so now the application isn't working. What we need to do is basically configure our controller application, the one within Acme Freight, to use this new APIM browser. To do so, I'm going to switch context. This is my

16 build pipeline. I want to quickly talk through this in a second. I want to kick off this deploy state so it's running while I talk. Let me jump in to the configuration for the deploy. I'm going to add a couple of additional properties that my application is expecting to read, open API key. Yep. I should have made that a secure property. Let me try that one more time, secure property. OpenWhisk API key, then one more text property, OpenWhisk API URL, let me grab that real quick, this guy right here. Quickly ensure that I have the right key. Okay. I'm going to hit save. What I just did there was set up a couple of environment properties for my application to deploy. Once I hit save, I'm going to kick it off and quickly go over the new UI that I haven't talked about yet. That is kicked off. Taking a step back, while that is running, I want to quickly go over this UI that we have got here. This is a pipeline that is set up all through BlueMix and basically allows us to manage the deployments of Acme Freight. The way it works, we have a couple of code -- let me post that, there is four microservices, four different GitHub repos and each has a delivery pipeline. Controller code base has controller pipeline. Each of the microservices are deployed separately. It's easy to get this Toolchain set up for yourself. Go to the Acme Freight repository. Scrolling down to the GitHub read me, one click button deploy, if you click the create Toolchain button it will not only deploy all of Acme Freight in your own BlueMix organization, but it will set up this entire delivery pipeline. The power of this pipeline is cool, whenever I make a commit to any of the git repos it will figure out which has a commit and send off a event, the pipeline will get triggered and newly deployed application with my new changes. A couple notifications, that is telling me my controller pipeline has successfully completed. Essentially that means my controller app is now, instead of talking directly to the OpenWhisk action it's actually going through an API gateway, so it gets all the benefits like it has things like rate limiting, secured API keys, all those things in the list that Joe had mentioned. Actually it is not quite done with the build yet. The cool thing about the pipeline, I can hone in on any specific application, jump into the deploy process, and see exactly where it is within the status. It's running a little slow right now. Might be because I'm uploading my screen. This is 99 percent completed. Scrolling down, looks like it's just waiting for the application to get started. Give it a

17 few more minutes. It says the application has started. And done, all right. I'll jump back to the Acme Freight application, I'm going to log out. At this point everything should work smoothly. I'm going to hit log in. We see the UI, that is how we had gone through earlier, the shipments, distribution centers, retail locations, simulate storm. Give it a minute here. Of course, the second I hit log out it had finished. Try one more time. I'm getting a little impatient. I feel like five seconds feels like eternity. There we go. This time it was instant. We see the storm, we see the recommendations. Everything seems to be working well. To prove that our API indications are going through OpenWhisk, and management layer we set up, let's jump back to the view, scrolling down, this has a update. I'm going to refresh my OpenWhisk API's view, jump into here. We should see analytics from those recent indications from that application. Yeah, at 10:55 which is right now, we made two indications, basically when we hit simulate storm, we get analytics. It tells us there was a post at exactly this time, it took 278 milliseconds, so you can imagine in a more robust production application someone can monitor this and say someone had a request time of three seconds, they are probably not happy, we can dig into it and figure out not only who is actually accessing the app but also get some really introspective data and debug why it was taking so long. To overview, I'm getting towards the end of my time, we took the OpenWhisk actions responsible for -- let me pull up -- we took OpenWhisk actions that were responsible for generating recommendations. We put a API gateway in front of it. We went into our delivery and deployment pipeline and configured the controller to use the brand-new API gateway URL and API key, so that this became possible. Now at this point no one can access our back end OpenWhisk end point. Those are completely secured. Nobody knows about them. If they want to access them they have to go to the gateway, they have to come to me and say, I want to use those OpenWhisk gateways, do you mind creating a API key for me? I jump into the UI, create a API key for them and send it over. I give them a portal link. They can figure out all the APIs that are available and start working with them right away. Okay. I think definitely towards the end of our time here. I'm going to pass it back to Joe. >> JOE SEPI: Great. Yeah, to summarize here, we have gone over a couple aspects of the Acme Freight application. One of the key take-aways from this architecture and this webinar is to choose the right tool for the job. In our instance, as Sai was going over here, we use Node.js and LoopBack to expose our

18 enterprise resources behind an API connect gateway. We chose OpenWhisk for our cognitive serverless recommendations engine. BlueMix brings us all together for us very nicely a single platform to develop microservice-based applications. With that, we will kind of wrap things up. I hope you check out the journeys. They have been posting links in the chat. Check out the Acme Freight application. You can run it yourself as Sai showed with the one click Toolchain button, which is awesome and powerful. I suggest you click on that button and see it in action. We have great tutorials out there around all of this. Sai's Twitter and as well as mine are up on the screen. Feel free to reach out to both of us. Thank you very much. We appreciate it. >> SAI VENNAM: Thanks, everyone. I know that there are a lot of questions. I have a couple minutes. I'm going to try to answer as many as I can. Looking through the Q&A list at the top, I see, the UI is static file, it could have been deployed as any runtime like liberty or JS. Actually for static files you want to use the static file build text which is a engine X based build pack so you don't need a runtime, the advantage of that is it allows you to have a lightweight application. Next up we have got when will the controller be a bottleneck, is there a way to fail it with load. The great time about the applications is you can set them up with auto scaling. The controller, a hundred percent right, would be a bottleneck, but the great thing is you can set up auto scaling with BlueMix. When the memory is getting too high, it will automatically scale [inaudible] the way we have it set up as a gateway, it wouldn't cause any problems. >> Thank you very much, Joe, thank you, Sai, for that great presentation. It captures the imagination of the participants, it did mine. We want to continue those great tech talks. The next one is going to be on July 26, at the same time, and we are going to string two journeys about IoT, one about TJ Bot and the other about correlating slides and augmented reality. Those are going to be great presentations again, like today. Some people who are familiar with those presentations now you can see that we are going to the next level, because Joe and Sai talk about LoopBack and about serverless OpenWhisk. Those were individual tech talks that we had. We are putting them together in this new initiative that we are really going to show things working the way they should. I encourage you to join us and those series. We are going to have some open source tech talks but we are going to be focusing more on journey tech talks. The next ones are going to be the one on July 26. Thank you for your time and look forward to seeing you

19 next time. Thank you, Joe, thank you, Sai. Until the next time. Good-bye. (end of meeting at 11:01 a.m. CST)

mismatch between what is maybe possible today and what is going on in many of today's IDEs.

mismatch between what is maybe possible today and what is going on in many of today's IDEs. What will happen if we do very, very small and lightweight tools instead of heavyweight, integrated big IDEs? Lecturer: Martin Lippert, VMware and Eclispe tooling expert LIPPERT: Welcome, everybody, to

More information

Hello, and welcome to another episode of. Getting the Most Out of IBM U2. This is Kenny Brunel, and

Hello, and welcome to another episode of. Getting the Most Out of IBM U2. This is Kenny Brunel, and Hello, and welcome to another episode of Getting the Most Out of IBM U2. This is Kenny Brunel, and I'm your host for today's episode which introduces wintegrate version 6.1. First of all, I've got a guest

More information

Title: Episode 11 - Walking through the Rapid Business Warehouse at TOMS Shoes (Duration: 18:10)

Title: Episode 11 - Walking through the Rapid Business Warehouse at TOMS Shoes (Duration: 18:10) SAP HANA EFFECT Title: Episode 11 - Walking through the Rapid Business Warehouse at (Duration: 18:10) Publish Date: April 6, 2015 Description: Rita Lefler walks us through how has revolutionized their

More information

How to Improve Your Campaign Conversion Rates

How to Improve Your  Campaign Conversion Rates How to Improve Your Email Campaign Conversion Rates Chris Williams Author of 7 Figure Business Models How to Exponentially Increase Conversion Rates I'm going to teach you my system for optimizing an email

More information

Containers, Serverless and Functions in a nutshell. Eugene Fedorenko

Containers, Serverless and Functions in a nutshell. Eugene Fedorenko Containers, Serverless and Functions in a nutshell Eugene Fedorenko About me Eugene Fedorenko Senior Architect Flexagon adfpractice-fedor.blogspot.com @fisbudo Agenda Containers Microservices Docker Kubernetes

More information

Chrome if I want to. What that should do, is have my specifications run against four different instances of Chrome, in parallel.

Chrome if I want to. What that should do, is have my specifications run against four different instances of Chrome, in parallel. Hi. I'm Prateek Baheti. I'm a developer at ThoughtWorks. I'm currently the tech lead on Mingle, which is a project management tool that ThoughtWorks builds. I work in Balor, which is where India's best

More information

Out for Shopping-Understanding Linear Data Structures English

Out for Shopping-Understanding Linear Data Structures English Out for Shopping-Understanding Linear Data Structures English [MUSIC PLAYING] [MUSIC PLAYING] TANZEELA ALI: Hi, it's Tanzeela Ali. I'm a software engineer, and also a teacher at Superior University, which

More information

Digital Marketing Manager, Marketing Manager, Agency Owner. Bachelors in Marketing, Advertising, Communications, or equivalent experience

Digital Marketing Manager, Marketing Manager, Agency Owner. Bachelors in Marketing, Advertising, Communications, or equivalent experience Persona name Amanda Industry, geographic or other segments B2B Roles Digital Marketing Manager, Marketing Manager, Agency Owner Reports to VP Marketing or Agency Owner Education Bachelors in Marketing,

More information

Ruby on Rails Welcome. Using the exercise files

Ruby on Rails Welcome. Using the exercise files Ruby on Rails Welcome Welcome to Ruby on Rails Essential Training. In this course, we're going to learn the popular open source web development framework. We will walk through each part of the framework,

More information

Week - 01 Lecture - 04 Downloading and installing Python

Week - 01 Lecture - 04 Downloading and installing Python Programming, Data Structures and Algorithms in Python Prof. Madhavan Mukund Department of Computer Science and Engineering Indian Institute of Technology, Madras Week - 01 Lecture - 04 Downloading and

More information

Meet our Example Buyer Persona Adele Revella, CEO

Meet our Example Buyer Persona Adele Revella, CEO Meet our Example Buyer Persona Adele Revella, CEO 685 SPRING STREET, NO. 200 FRIDAY HARBOR, WA 98250 W WW.BUYERPERSONA.COM You need to hear your buyer s story Take me back to the day when you first started

More information

To Kill a Monolith: Slaying the Demons of a Monolith with Node.js Microservices on CloudFoundry. Tony Erwin,

To Kill a Monolith: Slaying the Demons of a Monolith with Node.js Microservices on CloudFoundry. Tony Erwin, To Kill a Monolith: Slaying the Demons of a Monolith with Node.js Microservices on CloudFoundry Tony Erwin, aerwin@us.ibm.com Agenda Origins of the Bluemix UI Demons of the Monolith Slaying Demons with

More information

Writing Cognitive Swift Apps developerworks Open Tech Talk March 8, 2017

Writing Cognitive Swift Apps developerworks Open Tech Talk March 8, 2017 Writing Cognitive Swift Apps developerworks Open Tech Talk March 8, 2017 https://developer.ibm.com/open/videos/writing-cognitive-swift-apps-tech-talk/ Question Can you please also compare Swift and Go?

More information

Applications orientées événements et traitement sans serveur ( serverless ) Catherine Ezvan Senior Certified IT Specialist IBM Cloud

Applications orientées événements et traitement sans serveur ( serverless ) Catherine Ezvan Senior Certified IT Specialist IBM Cloud Applications orientées événements et traitement sans serveur ( serverless ) Catherine Ezvan (@cezvan) Senior Certified IT Specialist IBM Cloud Let s talk about Why we need event-driven infrastructure Requirements

More information

Which compute option is designed for the above scenario? A. OpenWhisk B. Containers C. Virtual Servers D. Cloud Foundry

Which compute option is designed for the above scenario? A. OpenWhisk B. Containers C. Virtual Servers D. Cloud Foundry 1. A developer needs to create support for a workload that is stateless and short-living. The workload can be any one of the following: - API/microservice /web application implementation - Mobile backend

More information

The SD-WAN security guide

The SD-WAN security guide The SD-WAN security guide How a flexible, software-defined WAN can help protect your network, people and data SD-WAN security: Separating fact from fiction For many companies, the benefits of SD-WAN are

More information

Who am I? I m a python developer who has been working on OpenStack since I currently work for Aptira, who do OpenStack, SDN, and orchestration

Who am I? I m a python developer who has been working on OpenStack since I currently work for Aptira, who do OpenStack, SDN, and orchestration Who am I? I m a python developer who has been working on OpenStack since 2011. I currently work for Aptira, who do OpenStack, SDN, and orchestration consulting. I m here today to help you learn from my

More information

I'm Andy Glover and this is the Java Technical Series of. the developerworks podcasts. My guest is Brian Jakovich. He is the

I'm Andy Glover and this is the Java Technical Series of. the developerworks podcasts. My guest is Brian Jakovich. He is the I'm Andy Glover and this is the Java Technical Series of the developerworks podcasts. My guest is Brian Jakovich. He is the director of Elastic Operations for Stelligent. He and I are going to talk about

More information

IBM API Connect: Introduction to APIs, Microservices and IBM API Connect

IBM API Connect: Introduction to APIs, Microservices and IBM API Connect IBM API Connect: Introduction to APIs, Microservices and IBM API Connect Steve Lokam, Sr. Principal at OpenLogix @openlogix @stevelokam slokam@open-logix.com (248) 869-0083 What do these companies have

More information

Privacy and Security in Online Social Networks Department of Computer Science and Engineering Indian Institute of Technology, Madras

Privacy and Security in Online Social Networks Department of Computer Science and Engineering Indian Institute of Technology, Madras Privacy and Security in Online Social Networks Department of Computer Science and Engineering Indian Institute of Technology, Madras Lecture 07 Tutorial 2 Part 1 Facebook API Hi everyone, welcome to the

More information

Client Side JavaScript and AJAX

Client Side JavaScript and AJAX Client Side JavaScript and AJAX Client side javascript is JavaScript that runs in the browsers of people using your site. So far all the JavaScript code we've written runs on our node.js server. This is

More information

CFMG Training Modules Classified Ad Strategy Module

CFMG Training Modules Classified Ad Strategy Module CFMG Training Modules Classified Ad Strategy Module In This Module: 1. Introduction 2. Preliminary Set Up Create the Sequential Letterset for our Ad Strategy Set Up Your Vanity Responder Create Your Stealth

More information

Exploring the Nuxeo REST API

Exploring the Nuxeo REST API Exploring the Nuxeo REST API Enabling Rapid Content Application Craftsmanship Copyright 2018 Nuxeo. All rights reserved. Copyright 2017 Nuxeo. All rights reserved. Chapter 1 The Nuxeo REST API What do

More information

Scaling DreamFactory

Scaling DreamFactory Scaling DreamFactory This white paper is designed to provide information to enterprise customers about how to scale a DreamFactory Instance. The sections below talk about horizontal, vertical, and cloud

More information

PROFESSOR: Last time, we took a look at an explicit control evaluator for Lisp, and that bridged the gap between

PROFESSOR: Last time, we took a look at an explicit control evaluator for Lisp, and that bridged the gap between MITOCW Lecture 10A [MUSIC PLAYING] PROFESSOR: Last time, we took a look at an explicit control evaluator for Lisp, and that bridged the gap between all these high-level languages like Lisp and the query

More information

In today s video I'm going show you how you can set up your own online business using marketing and affiliate marketing.

In today s video I'm going show you how you can set up your own online business using  marketing and affiliate marketing. Hey guys, Diggy here with a summary of part two of the four part free video series. If you haven't watched the first video yet, please do so (https://sixfigureinc.com/intro), before continuing with this

More information

GETTING TO KNOW THE WEBINAR

GETTING TO KNOW THE WEBINAR WHAT IS A WEBINAR? GETTING TO KNOW THE WEBINAR When you hear the word webinar, what comes to mind? If you re picturing a clunky-looking online slideshow with a speaker calling in on a static-filled phone

More information

In our first lecture on sets and set theory, we introduced a bunch of new symbols and terminology.

In our first lecture on sets and set theory, we introduced a bunch of new symbols and terminology. Guide to and Hi everybody! In our first lecture on sets and set theory, we introduced a bunch of new symbols and terminology. This guide focuses on two of those symbols: and. These symbols represent concepts

More information

P1_L3 Operating Systems Security Page 1

P1_L3 Operating Systems Security Page 1 P1_L3 Operating Systems Security Page 1 that is done by the operating system. systems. The operating system plays a really critical role in protecting resources in a computer system. Resources such as

More information

Connect with Remedy: SmartIT: Social Event Manager Webinar Q&A

Connect with Remedy: SmartIT: Social Event Manager Webinar Q&A Connect with Remedy: SmartIT: Social Event Manager Webinar Q&A Q: Will Desktop/browser alerts be added to notification capabilities on SmartIT? A: In general we don't provide guidance on future capabilities.

More information

Azure DevOps. Randy Pagels Intelligent Cloud Technical Specialist Great Lakes Region

Azure DevOps. Randy Pagels Intelligent Cloud Technical Specialist Great Lakes Region Azure DevOps Randy Pagels Intelligent Cloud Technical Specialist Great Lakes Region What is DevOps? People. Process. Products. Build & Test Deploy DevOps is the union of people, process, and products to

More information

What is version control? (discuss) Who has used version control? Favorite VCS? Uses of version control (read)

What is version control? (discuss) Who has used version control? Favorite VCS? Uses of version control (read) 1 For the remainder of the class today, I want to introduce you to a topic we will spend one or two more classes discussing and that is source code control or version control. What is version control?

More information

MITOCW watch?v=0jljzrnhwoi

MITOCW watch?v=0jljzrnhwoi MITOCW watch?v=0jljzrnhwoi The following content is provided under a Creative Commons license. Your support will help MIT OpenCourseWare continue to offer high quality educational resources for free. To

More information

Grocery List: An Android Application

Grocery List: An Android Application The University of Akron IdeaExchange@UAkron Honors Research Projects The Dr. Gary B. and Pamela S. Williams Honors College Spring 2018 Grocery List: An Android Application Daniel McFadden djm188@zips.uakron.edu

More information

MITOCW watch?v=w_-sx4vr53m

MITOCW watch?v=w_-sx4vr53m MITOCW watch?v=w_-sx4vr53m The following content is provided under a Creative Commons license. Your support will help MIT OpenCourseWare continue to offer high-quality educational resources for free. To

More information

CODE MAROON TEST SEPT. 30, 2011 SURVEY RESULTS

CODE MAROON TEST SEPT. 30, 2011 SURVEY RESULTS CODE MAROON TEST SEPT. 30, 2011 SURVEY RESULTS SMS (text) Message 1. Respondents were asked if they received the Code Maroon test by SMS (text) message. The responses indicate that 93% of the respondents

More information

Manoj Kumar- From Call back's hell to using Async Await: Automated testing with JavaScript

Manoj Kumar- From Call back's hell to using Async Await: Automated testing with JavaScript Manoj Kumar- From Call back's hell to using Async Await: Automated testing with JavaScript ManojKumar: Welcome everyone again. We are here to see about a primer on Selenium WebDriver JavaScript and Protractor

More information

(Refer Slide Time: 02.06)

(Refer Slide Time: 02.06) Data Structures and Algorithms Dr. Naveen Garg Department of Computer Science and Engineering Indian Institute of Technology, Delhi Lecture 27 Depth First Search (DFS) Today we are going to be talking

More information

With IBM BPM 8.5.5, the features needed to express both BPM solutions and case management oriented solutions comes together in one offering.

With IBM BPM 8.5.5, the features needed to express both BPM solutions and case management oriented solutions comes together in one offering. Case Management With the release of IBM BPM 8.5.5, case management capabilities were added to the product. It must be noted that these functions are only available with IBM BPM Advanced and the Basic Case

More information

CLIENT ONBOARDING PLAN & SCRIPT

CLIENT ONBOARDING PLAN & SCRIPT CLIENT ONBOARDING PLAN & SCRIPT FIRST STEPS Receive Order form from Sales Representative. This may come in the form of a BPQ from client Ensure the client has an account in Reputation Management and in

More information

Plymouth Rd, Suite 212, Plymouth Meeting, PA

Plymouth Rd, Suite 212, Plymouth Meeting, PA Picture yourself standing next to an empty tool box. If you are building a shed, you ll need to make sure that tool box contains a hammer, a saw, a level, and the host of other tools necessary to build

More information

The IBM I A Different Roadmap

The IBM I A Different Roadmap The IBM I A Different Roadmap Not long ago I was reading an article about a session Steve Will gave on how to make the IBM i "sexy". Those who know me know that that would immediately start me thinking

More information

White Paper. EVERY THING CONNECTED How Web Object Technology Is Putting Every Physical Thing On The Web

White Paper. EVERY THING CONNECTED How Web Object Technology Is Putting Every Physical Thing On The Web White Paper EVERY THING CONNECTED Is Putting Every Physical Thing Every Thing Connected The Internet of Things a term first used by technology visionaries at the AUTO-ID Labs at MIT in the 90s 1 has received

More information

Serverless Architecture Hochskalierbare Anwendungen ohne Server. Sascha Möllering, Solutions Architect

Serverless Architecture Hochskalierbare Anwendungen ohne Server. Sascha Möllering, Solutions Architect Serverless Architecture Hochskalierbare Anwendungen ohne Server Sascha Möllering, Solutions Architect Agenda Serverless Architecture AWS Lambda Amazon API Gateway Amazon DynamoDB Amazon S3 Serverless Framework

More information

API s in a hybrid world. Date 28 September 2017

API s in a hybrid world. Date 28 September 2017 API s in a hybrid world Date 28 September 2017 So, What is this API Economy thing? A mutually beneficial ecosystem of suppliers & consumers of APIs. Suppliers use APIs to securely provide specific types

More information

CLIENT ONBOARDING PLAN & SCRIPT

CLIENT ONBOARDING PLAN & SCRIPT CLIENT ONBOARDING PLAN & SCRIPT FIRST STEPS Receive Order form from Sales Representative. This may come in the form of a BPQ from client Ensure the client has an account in Reputation Management and in

More information

Bots. Table of Contents

Bots. Table of Contents Bots 101 Table of Contents What is a bot?.... 2 How are bots different than apps?... 2 What makes a bot intelligent?... 3 How do I engage with a bot?.... 5 How can bots help my business?.... 6 Bot benefits...

More information

MITOCW ocw f99-lec07_300k

MITOCW ocw f99-lec07_300k MITOCW ocw-18.06-f99-lec07_300k OK, here's linear algebra lecture seven. I've been talking about vector spaces and specially the null space of a matrix and the column space of a matrix. What's in those

More information

2012 Microsoft Corporation. All rights reserved. Microsoft, Active Directory, Excel, Lync, Outlook, SharePoint, Silverlight, SQL Server, Windows,

2012 Microsoft Corporation. All rights reserved. Microsoft, Active Directory, Excel, Lync, Outlook, SharePoint, Silverlight, SQL Server, Windows, 2012 Microsoft Corporation. All rights reserved. Microsoft, Active Directory, Excel, Lync, Outlook, SharePoint, Silverlight, SQL Server, Windows, Windows Server, and other product names are or may be registered

More information

Centralized Log Hosting Manual for User

Centralized Log Hosting Manual for User Centralized Log Hosting Manual for User English Version 1.0 Page 1 of 31 Table of Contents 1 WELCOME...3 2 WAYS TO ACCESS CENTRALIZED LOG HOSTING PAGE...4 3 YOUR APPS IN KSC CENTRALIZED LOG HOSTING WEB...5

More information

We are assuming you have node installed!

We are assuming you have node installed! Node.js Hosting We are assuming you have node installed! This lesson assumes you've installed and are a bit familiar with JavaScript and node.js. If you do not have node, you can download and install it

More information

Connect and Transform Your Digital Business with IBM

Connect and Transform Your Digital Business with IBM Connect and Transform Your Digital Business with IBM Leverage Your IT Assets as Shareable APIs 1 The API economy requires a complete value chain Databases Connect to APIs to extend the reach and power

More information

Welcome to Docker Birthday # Docker Birthday events (list available at Docker.Party) RSVPs 600 mentors Big thanks to our global partners:

Welcome to Docker Birthday # Docker Birthday events (list available at Docker.Party) RSVPs 600 mentors Big thanks to our global partners: Docker Birthday #3 Welcome to Docker Birthday #3 2 120 Docker Birthday events (list available at Docker.Party) 7000+ RSVPs 600 mentors Big thanks to our global partners: Travel Planet 24 e-food.gr The

More information

Learn Python In One Day And Learn It Well: Python For Beginners With Hands-on Project. The Only Book You Need To Start Coding In Python Immediately

Learn Python In One Day And Learn It Well: Python For Beginners With Hands-on Project. The Only Book You Need To Start Coding In Python Immediately Learn Python In One Day And Learn It Well: Python For Beginners With Hands-on Project. The Only Book You Need To Start Coding In Python Immediately Epub Gratuit Master Python Programming with a unique

More information

Welcome to this IBM Rational podcast, enhanced. development and delivery efficiency by improving initial

Welcome to this IBM Rational podcast, enhanced. development and delivery efficiency by improving initial IBM Podcast [ MUSIC ] GIST: Welcome to this IBM Rational podcast, enhanced development and delivery efficiency by improving initial core quality. I'm Kimberly Gist with IBM. Catching defects earlier in

More information

Term Definition Introduced in: This option, located within the View tab, provides a variety of options to choose when sorting and grouping Arrangement

Term Definition Introduced in: This option, located within the View tab, provides a variety of options to choose when sorting and grouping Arrangement 60 Minutes of Outlook Secrets Term Definition Introduced in: This option, located within the View tab, provides a variety of options to choose when sorting and grouping Arrangement messages. Module 2 Assign

More information

Introduction to Git and GitHub for Writers Workbook February 23, 2019 Peter Gruenbaum

Introduction to Git and GitHub for Writers Workbook February 23, 2019 Peter Gruenbaum Introduction to Git and GitHub for Writers Workbook February 23, 2019 Peter Gruenbaum Table of Contents Preparation... 3 Exercise 1: Create a repository. Use the command line.... 4 Create a repository...

More information

THE API DEVELOPER EXPERIENCE ENABLING RAPID INTEGRATION

THE API DEVELOPER EXPERIENCE ENABLING RAPID INTEGRATION THE API DEVELOPER EXPERIENCE ENABLING RAPID INTEGRATION Ramchandar Loganathan IBS Solution Architect Banks require application programming interface (API) capabilities to realize the significant benefits

More information

IBM s statements regarding its plans, directions, and intent are subject to change or withdrawal without notice at IBM s sole discretion.

IBM s statements regarding its plans, directions, and intent are subject to change or withdrawal without notice at IBM s sole discretion. Please note Copyright 2018 by International Business Machines Corporation (IBM). No part of this document may be reproduced or transmitted in any form without written permission from IBM IBM s statements

More information

Connect and Transform Your Digital Business with IBM

Connect and Transform Your Digital Business with IBM Connect and Transform Your Digital Business with IBM 1 MANAGEMENT ANALYTICS SECURITY MobileFirst Foundation will help deliver your mobile apps faster IDE & Tools Mobile App Builder Development Framework

More information

Enable Spark SQL on NoSQL Hbase tables with HSpark IBM Code Tech Talk. February 13, 2018

Enable Spark SQL on NoSQL Hbase tables with HSpark IBM Code Tech Talk. February 13, 2018 Enable Spark SQL on NoSQL Hbase tables with HSpark IBM Code Tech Talk February 13, 2018 https://developer.ibm.com/code/techtalks/enable-spark-sql-onnosql-hbase-tables-with-hspark-2/ >> MARC-ARTHUR PIERRE

More information

Azon Master Class. By Ryan Stevenson Guidebook #5 WordPress Usage

Azon Master Class. By Ryan Stevenson   Guidebook #5 WordPress Usage Azon Master Class By Ryan Stevenson https://ryanstevensonplugins.com/ Guidebook #5 WordPress Usage Table of Contents 1. Widget Setup & Usage 2. WordPress Menu System 3. Categories, Posts & Tags 4. WordPress

More information

IBM Watson Solutions Business and Academic Partners

IBM Watson Solutions Business and Academic Partners IBM Watson Solutions Business and Academic Partners Developing a Chatbot Using the IBM Watson Conversation Service Prepared by Armen Pischdotchian Version 2.1 October 2016 Watson Solutions 1 Overview What

More information

Transforming the Internal IT Landscape with APIs. Scott Cranton Director, Application Platform SAs April 2018

Transforming the Internal IT Landscape with APIs. Scott Cranton Director, Application Platform SAs April 2018 Transforming the Internal IT Landscape with APIs Scott Cranton Director, Application Platform SAs April 2018 AGENDA API Domain Overview (very) Brief Technical Overview How to help your API Program Succeed

More information

Preparing your network for the next wave of innovation

Preparing your network for the next wave of innovation Preparing your network for the next wave of innovation The future is exciting. Ready? 2 Executive brief For modern businesses, every day brings fresh challenges and opportunities. You must be able to adapt

More information

The Stack, Free Store, and Global Namespace

The Stack, Free Store, and Global Namespace Pointers This tutorial is my attempt at clarifying pointers for anyone still confused about them. Pointers are notoriously hard to grasp, so I thought I'd take a shot at explaining them. The more information

More information

Version Copyright Feel free to distribute this guide at no charge...

Version Copyright Feel free to distribute this guide at no charge... Version 2.0 Feel free to distribute this guide at no charge... You cannot edit or modify this guide in anyway. It must be left exactly the way it is. This guide is only accurate from the last time it was

More information

Data Reduction Helpdesk First Responder Guidelines

Data Reduction Helpdesk First Responder Guidelines Data Reduction Helpdesk First Responder Guidelines Kathleen Labrie Science Users Support Department V1.1 12 March 2018 Revision History V1.0 16 January 2018 Kathleen Labrie V1.1 12 March 2018 Kathleen

More information

Warewolf User Guide 1: Introduction and Basic Concepts

Warewolf User Guide 1: Introduction and Basic Concepts Warewolf User Guide 1: Introduction and Basic Concepts Contents: An Introduction to Warewolf Preparation for the Course Welcome to Warewolf Studio Create your first Microservice Exercise 1 Using the Explorer

More information

Hello, my name is Cara Daly, I am the Product Marketing Manager for Polycom Video Content Management Solutions. Today we will be going over the

Hello, my name is Cara Daly, I am the Product Marketing Manager for Polycom Video Content Management Solutions. Today we will be going over the Page 1 of 17 Hello, my name is Cara Daly, I am the Product Marketing Manager for Polycom Video Content Management Solutions. Today we will be going over the RealPresence Media Manager Version 6.5 Launch

More information

Data Structures and Algorithms Dr. Naveen Garg Department of Computer Science and Engineering Indian Institute of Technology, Delhi.

Data Structures and Algorithms Dr. Naveen Garg Department of Computer Science and Engineering Indian Institute of Technology, Delhi. Data Structures and Algorithms Dr. Naveen Garg Department of Computer Science and Engineering Indian Institute of Technology, Delhi Lecture 18 Tries Today we are going to be talking about another data

More information

OpsCenter Basics Why Aren t You Using It?

OpsCenter Basics Why Aren t You Using It? OpsCenter Basics Why Aren t You Using It? This is a SELF-GUIDED LAB if you prefer. You are welcome to get started and leave when you are finished, or you can play with the OC instance to gain more knowledge.

More information

Lifehack #1 - Automating Twitter Growth without Being Blocked by Twitter

Lifehack #1 - Automating Twitter Growth without Being Blocked by Twitter Lifehack #1 - Automating Twitter Growth without Being Blocked by Twitter Intro 2 Disclaimer 2 Important Caveats for Twitter Automation 2 Enter Azuqua 3 Getting Ready 3 Setup and Test your Connection! 4

More information

Promoting Component Architectures in a Dysfunctional Organization

Promoting Component Architectures in a Dysfunctional Organization Promoting Component Architectures in a Dysfunctional Organization by Raj Kesarapalli Product Manager Rational Software When I first began my career as a software developer, I didn't quite understand what

More information

Azure Data Factory. Data Integration in the Cloud

Azure Data Factory. Data Integration in the Cloud Azure Data Factory Data Integration in the Cloud 2018 Microsoft Corporation. All rights reserved. This document is provided "as-is." Information and views expressed in this document, including URL and

More information

FileWave 10 Webinar Q&A

FileWave 10 Webinar Q&A FileWave 10 Webinar Q&A When will 10 be released? October 14 th, but you can sign up today to get into the beta program. Link: www.filewave.com/beta-program How stable is the beta? Should we use it for

More information

Firefox for Nokia N900 Reviewer s Guide

Firefox for Nokia N900 Reviewer s Guide Firefox for Nokia N900 Table of Contents Bringing Firefox to the Nokia N900 1 1. About Mozilla 2 2. Introducing Firefox for Mobile 2 3. Mozilla s Mobile Vision 3 4. Getting Started 4 5. Personalize Your

More information

Il Mainframe e il paradigma dell enterprise mobility. Carlo Ferrarini zsystems Hybrid Cloud

Il Mainframe e il paradigma dell enterprise mobility. Carlo Ferrarini zsystems Hybrid Cloud Il Mainframe e il paradigma dell enterprise mobility Carlo Ferrarini carlo_ferrarini@it.ibm.com zsystems Hybrid Cloud Agenda Exposing enterprise assets in the API Economy Era Deliver natural APIs from

More information

THOMAS LATOZA SWE 621 FALL 2018 DESIGN ECOSYSTEMS

THOMAS LATOZA SWE 621 FALL 2018 DESIGN ECOSYSTEMS THOMAS LATOZA SWE 621 FALL 2018 DESIGN ECOSYSTEMS LOGISTICS HW5 due today Project presentation on 12/6 Review for final on 12/6 2 EXAMPLE: NPM https://twitter.com/garybernhardt/status/1067111872225136640

More information

How To Make 3-50 Times The Profits From Your Traffic

How To Make 3-50 Times The Profits From Your Traffic 1 How To Make 3-50 Times The Profits From Your Traffic by Chris Munch of Munchweb.com Copyright Munchweb.com. All Right Reserved. This work cannot be copied, re-published, or re-distributed. No re-sell

More information

Welcome to this IBM podcast, Realizing More. Value from Your IMS Compiler Upgrade. I'm Kimberly Gist

Welcome to this IBM podcast, Realizing More. Value from Your IMS Compiler Upgrade. I'm Kimberly Gist IBM Podcast [ MUSIC ] Welcome to this IBM podcast, Realizing More Value from Your IMS Compiler Upgrade. I'm Kimberly Gist with IBM. System z compilers continue to deliver the latest programming interfaces

More information

Next Paradigm for Decentralized Apps. Table of Contents 1. Introduction 1. Color Spectrum Overview 3. Two-tier Architecture of Color Spectrum 4

Next Paradigm for Decentralized Apps. Table of Contents 1. Introduction 1. Color Spectrum Overview 3. Two-tier Architecture of Color Spectrum 4 Color Spectrum: Next Paradigm for Decentralized Apps Table of Contents Table of Contents 1 Introduction 1 Color Spectrum Overview 3 Two-tier Architecture of Color Spectrum 4 Clouds in Color Spectrum 4

More information

It Might Be Valid, But It's Still Wrong Paul Maskens and Andy Kramek

It Might Be Valid, But It's Still Wrong Paul Maskens and Andy Kramek Seite 1 von 5 Issue Date: FoxTalk July 2000 It Might Be Valid, But It's Still Wrong Paul Maskens and Andy Kramek This month, Paul Maskens and Andy Kramek discuss the problems of validating data entry.

More information

How to git with proper etiquette

How to git with proper etiquette How to git with proper etiquette Let's start fixing how we use git here in crew so our GitHub looks even more awesome and you all get experience working in a professional-like git environment. How to use

More information

Lab Exercise Test First using JUnit

Lab Exercise Test First using JUnit Lunds tekniska högskola Datavetenskap, Nov, 2017 Görel Hedin/Ulf Asklund EDAF45 Programvaruutveckling i grupp projekt Lab Exercise Test First using JUnit Goal This lab is intended to demonstrate basic

More information

How to Create a Killer Resources Page (That's Crazy Profitable)

How to Create a Killer Resources Page (That's Crazy Profitable) How to Create a Killer Resources Page (That's Crazy Profitable) There is a single page on your website that, if used properly, can be amazingly profitable. And the best part is that a little effort goes

More information

Azon Master Class. By Ryan Stevenson Guidebook #11 Squidoo Marketing

Azon Master Class. By Ryan Stevenson   Guidebook #11 Squidoo Marketing Azon Master Class By Ryan Stevenson https://ryanstevensonplugins.com/ Guidebook #11 Squidoo Marketing Table of Contents 1. Getting Started With Squidoo 2. Lens Research & Targeting 3. Lens Creation Tutorial

More information

How to Close Sales on the Final Day of a Launch

How to Close Sales on the Final Day of a Launch How to Close Sales on the Final Day of a Launch When you promote a product launch as an affiliate, you know that the last day is the biggest day. On average, 40-60% of sales can come on the last day. I've

More information

Hello, and welcome to a searchsecurity.com. podcast: How Security is Well Suited for Agile Development.

Hello, and welcome to a searchsecurity.com. podcast: How Security is Well Suited for Agile Development. [ MUSIC ] Hello, and welcome to a searchsecurity.com podcast: How Security is Well Suited for Agile Development. My name is Kyle Leroy, and I'll be moderating this podcast. I'd like to start by introducing

More information

CaseComplete Roadmap

CaseComplete Roadmap CaseComplete Roadmap Copyright 2004-2014 Serlio Software Development Corporation Contents Get started... 1 Create a project... 1 Set the vision and scope... 1 Brainstorm for primary actors and their goals...

More information

6.001 Notes: Section 8.1

6.001 Notes: Section 8.1 6.001 Notes: Section 8.1 Slide 8.1.1 In this lecture we are going to introduce a new data type, specifically to deal with symbols. This may sound a bit odd, but if you step back, you may realize that everything

More information

MITOCW watch?v=zm5mw5nkzjg

MITOCW watch?v=zm5mw5nkzjg MITOCW watch?v=zm5mw5nkzjg The following content is provided under a Creative Commons license. Your support will help MIT OpenCourseWare continue to offer high quality educational resources for free. To

More information

Implementing the Twelve-Factor App Methodology for Developing Cloud- Native Applications

Implementing the Twelve-Factor App Methodology for Developing Cloud- Native Applications Implementing the Twelve-Factor App Methodology for Developing Cloud- Native Applications By, Janakiram MSV Executive Summary Application development has gone through a fundamental shift in the recent past.

More information

Your Clickbank Treasure Map

Your Clickbank Treasure Map Your Clickbank Treasure Map Brought To You By: Soren Jordansen & Clickbank Pirate 1/8 Clickbank The Introduction Thanks for downloading this report... you are obviously interested in learning how to make

More information

Zombie Apocalypse Workshop

Zombie Apocalypse Workshop Zombie Apocalypse Workshop Building Serverless Microservices Danilo Poccia @danilop Paolo Latella @LatellaPaolo September 22 nd, 2016 2015, Amazon Web Services, Inc. or its Affiliates. All rights reserved.

More information

SaaS Providers. ThousandEyes for. Summary

SaaS Providers. ThousandEyes for. Summary USE CASE ThousandEyes for SaaS Providers Summary With Software-as-a-Service (SaaS) applications rapidly replacing onpremise solutions, the onus of ensuring a great user experience for these applications

More information

Getting Started With Containers

Getting Started With Containers DEVNET 2042 Getting Started With Containers Matt Johnson Developer Evangelist @mattdashj Cisco Spark How Questions? Use Cisco Spark to communicate with the speaker after the session 1. Find this session

More information

Knative: Building serverless platforms on top of Kubernetes

Knative: Building serverless platforms on top of Kubernetes Knative: Building serverless platforms on top of Kubernetes Ahmet Alp Balkan @ahmetb Thanks to Mark Chmarny, Ryan Gregg, DeWitt Clinton and Bret McGowen for some of the slides used in this presentation.

More information

DESIGNING RESPONSIVE DASHBOARDS. Best Practices for Building Responsive Analytic Applications

DESIGNING RESPONSIVE DASHBOARDS. Best Practices for Building Responsive Analytic Applications DESIGNING RESPONSIVE DASHBOARDS Best Practices for Building Responsive Analytic Applications CONTENTS Responsive Design and Embedded Analytics...1 6 Principles and Best Practices... 2 Tools of the Trade...

More information

Building a Django Twilio Programmable Chat Application

Building a Django Twilio Programmable Chat Application Building a Django Twilio Programmable Chat Application twilio.com/blog/08/0/python-django-twilio-programmable-chat-application.html March 7, 08 As a developer, I ve always wanted to include chat capabilities

More information