What's new for Serverless Computing in Azure
All. Right good afternoon, how's. Everybody doing, you. Got your snacks, the. Salads, who's so, good all, right my name is Neil I'm one, of the product managers on, other, functions, and on our server this platform, module, functions logic apps and event. Grid, this. Afternoon, we'll have a very, challenging session, it, does myself and there's a magnificent. Magnificent seven. List. Of other presenters, that are going to do demos and tell us about real. Use cases, so, I'll try and keep my remarks to a minimum. These, are a nice set. Of other several, sessions we're. Going to have, so. If this session sucks there's always the other ones you can try those. Cool. So how. Many people in the room think they know what service is and used, it. Ok, so. What. Is service. You. Got it very clever side. So. Who. Is seen these slides. Ok. So that's good so if you compare. Cloud computing, to transportation. When. We started moving to the cloud it's sort of like buying a car we, bought a, Naya's, machine from our cloud provider, but. We still owned it so we still had to make sure that the OS. Where. The analogy of our components. Of our car is, maintained, and, we. Paid for the car even when it was in. The parking lot then. Came platform is a service that's more like renting a car right you didn't have to maintain you. Didn't have to change the oil you didn't have to do service, but. You still paid for it when it was in the parking lot when your code was not running you are still paying for CPU, just, get business for us not, complaining. However. Then came service, so. That's like one of those car sharing, companies, and, essentially. All you, get is to run your code we. Are maintaining all of the infrastructure, you don't have to think, about where your code is running and the. Big innovation, here is your we paying for the time that you're. Designing so, it's just like using one of these. Ride-sharing. Apps, it will move you from point A to point B. Cool. So why do people, have service you, don't have to worry about the infrastructure, so you're really are going with maintaining. Your code maintaining, you up instead of maintaining your environment. You. Don't have to worry about scaling, if you write it correctly you understand how it works it, will scale infinitely for. Your needs and then, there's a simple programming model of functional, programming and, with, the stuff we have here at Microsoft, very. Easy deployment, development. Tools and and inner. And outer loops which we'll see during the demos so, obviously there's a lot of kind of hats and. No. Okay. Find, the jokes at the end very. Cool. So one of the things that's interesting in our industry, right now there's a lot of sort, of mishmash, of a salad. Of, terms. And a server les is now becoming. To this. Term that you. Remember you used to say that people are cloud washing, stuff and now, people are now selves LS washing stuff, so. If, you look at sort of the strict definition of server less it means there's. An abstraction of the infrastructure, you, get. To scale instantly, and then, you pay only for the time your code is running what. We're saying now is we're seeing people. Shipping, what, we call fast functions, as a service, platforms. Obviously, like agile functions, but others that, are running on that server this infrastructure, and, what, we're seeing emerging, now is something like agile container, instances, where, you essentially run a container, with. The same rules you, don't have to. Instantiate. An, oak estate or VM, to a neo container the, container will, scale and you're only paying for the time the container is up so, as things, move forward we seeing this sort. Of category. Emerging. And morphing. The. Other byproduct. Of that is we also are seeing and we've seen this in in.
Scott Keynote we, sinc functions running on other, infrastructure. So, it's very easy to call it as berry pie server less there's. No silver there but. What we really see we're starting to see. This. Functional, programming model, running, on other in. Other places like kubernetes on Prem obviously. On agile stack and. Then in. Handle in agile container services, or any. Kubernetes. Or any container. Compatible. Data. Center. Core. So when we talk about the agile, service, platform, we. Are essentially talking about a bunch of things, right, so it's very nice to have compute, but. You need more than compute to have a real app you need state you need messaging, you, need the database and obviously. With the intelligent, edge intelligent, cloud you need all these AI. Services. To make sense out of the data that you're collecting with, all these devices in. Azure we look at these three sort of, champion. Serverless. Applications, event. Grade that we'll talk about and, we'll see that, allows you to, create. Events at scale and connect. All of these service applications, logic. Apps which is a visual way to create workflows and, we'll. See that and then, as will function which is a function of the service product. As. You can expect us as. Microsoft. And us developers we. Have an industry-leading. Application. Lifecycle management, story, you. Can develop other. Functions. In, Visual, Studio and Visual Studio code you can develop logic, apps in Visual Studio you can debug locally, and then. With our, integration, it up insights you can actually look. At how your application, is running after the fact and, understand. How your application, is behaving rather. Than doing, operations. To your infrastructure, and again, we'll see some of that in the demo so. Excuse. Me sorry about that that. Was not a joke, so. I, won't. Spend too much time on this slide you're going to see the. Variations. Of this slide for the rest of this presentation. And you'll get tired of it but. These are basically just the sort of canonical use, cases of how, our customers are using the service technologies, and during. The presentations. We'll try to go to example. Of all of them examples, of all of them. Cool. So until, now I haven't told you what server this, and. As you know to create these presentations. You have to come up with this really. For. Lack of a better term stupid, scenario, where. You try to tie it all together and. Have. Sort of a demo, so. We're introducing news, bumper stickers calm. It's. A very exciting endeavor. That myself, and the team have come up with and. Essentially, what we're trying to do is, be. A data-driven bumper-sticker. Business, right so we're, going to go and collect all. The bumper stickers from all the cars that we see on on. The bridge in five twenty we're. Going to. Find. What are the most common words. In there and then. A crack. Team in marketing, is going to, create. The. Ultimate, bumper, sticker that will. Immediately sell we, already signed the term sheet and we raised fifty million dollars for this company so. It's very exciting, there, will be my last, day at Microsoft. Probably. Not. So. To start. With that we, need to go with the IOT, piece right so as you've, seen. You. See in the keynote, we, are able to run some of our service platform on IOT devices and to, tell us more about that and announced some new stuff I'll, welcome a safari to the stage. Which, number yeah. Thank you me, alright. Thanks. For being here today. So, I'm going to be talking a little bit about languages, and functions. Traditionally. Is sod that functions, came packed with three languages you could build using c-sharp, JavaScript. Or Java, last. Year we heard feedback. From you about the need to support peyten so, you can then enable your machine learning and data science scenarios, also, in a serverless fashion. So. Today I'll be showing you a little snippet, or a little sneak peek into what the support looks like. So. Here, I have a functions, project, and a Python function. I'll. Zoom, into my function a little bit so you can see better. Um, sorry. Here. My, function uses two bindings, you, can see them described, as method attributes, in my function, these, are described in the function J s on manna-fest where.
I Have, a blob trigger so this is a trigger binding, that can invoke my function, and then. Another output binding, which is a blob, storage so, my function after it executes, it can go back and write something to storage. Let's. Look at the actual bytes in script or actual, function. And. Just to show you what this function is actually doing, I'll. Tie this back to Neer's, bumper-sticker, idea, he's stoked about this business plan you can see the excitement on his face almost. So. What we're gonna do is our block. Trigger will kick off this function, will grab the contents, of, of. This new item that was added to blob and then make, a request to the cognitive services computer. Vision endpoint right, here. To. Grab the actual text, that's contained, in that image. Once. We've made this request we'll, use the response. Along. With the Python natural, language processing library. To extract. Any important, phrases or nouns off, that, text, we. Can then go ahead and use. Those. Nouns or phrases and write, them back to, storage, to a different container, we. Are the output binding and you can see I'm using the easy to use functions. Programming, model here and not, really, interacting. With the Azure storage, SDK, as such so that's what the programming, model brings you. Okay. Let's. Go ahead and run this locally and I'll use the functions command-line, utility. To. Start my function app locally. And. So. Once I have this you can. Look. I have my function app running. It on, a local, host endpoint, to. Actually, run this I need, to kick, off my trigger which. Will be a. New. Item let, me just set the resolution right, here. Okay. I'll add a new item let's, go ahead and pick the, sticker looks. Like a cool one. So. Once. I upload a new image this, should likely this, event should invoke my function, which, should process. The image exactly, like we discussed earlier and output. The results, to a separate container. Right. Here so. I'll go ahead and open. The. Results. It. Looks like I uploaded. To the wrong container let's set let's try that once again. And. This. Should produce a txt file, with the results, which is the actual. Contents. Of. The. Text or the contents, of my image right. Here. Now. This. Was an example of, the function running on my machine locally, but the great thing about a Python, support being on the Wii to run time is that you can not only build and run anywhere, on any. Platform or OS you can you could see I was developing on a Mac but you can also containerize. This function, your, function, and the functions runtime to run on CN IOT device you, can obviously run it in any of the eyes your container services, but. The. IOT device gives, you the. Potential to even run it on sale Raspberry Pi which, is the example I'll be showing you today so.
Let's Take the exact function that we saw earlier, maybe. A slightly. Separate. A slightly different, example in, which, case instead of ingesting. My image from blobstore, I, capture. The image from the camera that's, attached to my Raspberry Pi. To. Containerize, this function, I will go ahead and build the docker file that's been provided to me and then. Push it to docker. Hub registry. Once, I've got it on docker hub I will, switch over to my PI right. Here. And, docker bullet just for just to save us some time I've already docker. Pulled the image to Raspberry Pi and I can simply go ahead and run it and. So. What this will do is it'll, kickstart the container that contains the, functions runtime the, Python language worker, and finally, your function, app or your Python code. Let's. Give it a few minutes here. Okay. I'll what. I'll do now is I'll take, a picture of an image I've got on my camera let's, first start with the exactly. Same image that we saw earlier so, we know it works the same way and then we can try with a few different images. Ah. Ok. Let's try once again. If, only I can hold, this right. Okay. Doesn't look like the demo gods are with us today but. I'll set this aside and you get the basic idea which, is other. Than being able to run, your function, on Azure. Or in the cloud you can also containerize, it and run it in, your local environment on, on. An, IOT, device or a different environment if, you will. The, great thing about this is now that, hopefully, once I do figure out how to hold the camera right and take a picture I can, go around the parking lot taking pictures of different bumper stickers and getting more, data instead, of just being based on the sample said that I had an azure for. Market research to help the. Bumper sticker business thank. You. Cool. So we've seen the example in taking on Safari an example, for IOT. Cloud and edge as you can see this. Technology has a lot of potential, and you, know one day. We'll. Get a demo the talk oh now we don't have a clicker that works, so. We've seen the demo, so. Today we're and, today. We're announcing the preview, of a Python, support in containers. On our v2 and we'll. Soon see that. Support, arriving. In agile in the service mode and I, believe that. Was. It the cognitive services. Vision. API right. So. Very the vision API, yeah. So computer, vision API now. Supports. Outputting. A model. That you've turned into, an agile function and what it will create is the docker file with. The agile function that you need in order to run it immediately so. That's available today. So. With that I wanted to invite one of our partners. Customers, that. Is actually, using our service technology. For. Their product, so please, help me welcome Ravi, for maybe be. To. Use the paper yeah. Yeah. Thank. You don't. Press the UP button I don't know. Good. Afternoon, can, you guys hear me, hi. So. I work for ABB. I'm, not sure how many of you have heard, of a BB a BB, is, an industrial. Company. With. Sort of like GE or Siemens, that you have heard so ABB deals with different kinds of business units we. Deal with industrial, automation technologies, we also work on robotics.
Electrification. Products, power grids and things like that so ABB. Is pretty. Well. Known in Europe we, do have around 35,000. Employees in, North. America, we, do simply quite G industrial solutions as well so. We have around 35 billions dollars revenue. 135,000. People work. For a company so. Before. I. Get. Into how we, use the. Soleus technologies, within ABB, I, want, to tell you how we use how we are working on building a digital platform within, a baby right so. We have as I. Told you we deal with a lot of business units and we have different kinds of devices that we. Built, some. Of them are robots, drives models, or, even. The ships a lot, of cruise ships have our propulsion engines that they run we. Also build, electrical. Vehicle. Charges as well so. What, we wanted to do was build a very, generic platform. Using. Which we could collect data from our devices and. Using. Which. We. Could run. Machine learning, or models things like that so that we can build, some. Valuate, solutions, on top of the data right for example we wanted to know before. The devices, fail we. Wanted to make sure that we can notify the customers, that their. Equipment, is up for maintenance so that they don't have to stop their production in the factory right so. Things like so how do we do all of this so we wanted to build a platform a. Digital. Platform to correct the data from the devices and not, all the devices are green. Field devices that can connect to the internet so we also want it to be. A way. Where we could actually have an edge gateway that could connect to the devices using any protocols. That are supported like Modbus, or OPC U at things like that anyway, long story short so. We have this cloud, technology, that we're focusing. On where we have one injection pipeline, and for which we use IOT, hub and once, we get the data in from the devices, we wanted to store them securely, and, do. Something in certain. Kinds of analysis. On the data. So. If, you can see. The picture and not sure how clear it is as you can see on. The. On, the, left hand side you have the IOT have which is our ingestion, layer where we get the data from our devices which securely, connect to the hub. Using. Digital certificate, authentication and then, they also upload the files using, the IOT, hub storage. That, is associated with the IOT hub so. Once we get that data in what, do you want to do the data we.
Want To validate. The data because your data is as good as the. Valid. Data if you get garbage, in then, it's garbage or there's not much you can do with respect to data analysis so. This is where we use functions, to validate the incoming data based on the schema that we already said, this device is going to produce the data and. We, also do some kind of payload routing so we know when the data comes in we want to store it for some. Kind of analysis, which means we send it a separate storage what. Says we. Want to use it for kind of like a hot, path where you want to make it available for the, web. Applications, there you have a real-time objects that are happening in, addition to that we also use the functions where from, our back-end which is where, our UI is where. People can send. That. Command, back to close the loop to the devices let's say you want to tell your device to update, its firmware also. Send the location of the firmware so that the device can actually download the firmware, and update itself so we use it for the command and control as, well in. Addition to that we. Also use the functions, where we. Upload. The files from the devices for example this, bumper sticker kind, of things where you can actually take a picture of, your. Equipment and then upload it from the device itself to the cloud so when we get the, file it just lands, in a generic coyote have storage, what we would like to do is take, it and associate, with the actual, device itself so. If you want to take a look. At the web UI you find. The particular device let's say in this case it is a robot or propulsion. Engine, then you say okay this picture. That I took is associated, with so-and-so, device, in, addition that what we would like to do is we, also use the functions, for sort. Of like soft elapse so, for, example let's say the operating temperature for a particular device is anywhere between twenty, to forty five degrees and if. It goes beyond, that you want to detect that condition, and raise, an alarm so, we use all of this, all. Of the functions. For all of these use cases now. Why did we use, functions. Right we could have written all this code using some kind of services in the cloud. Obviously. Speed and agility right, because, we didn't want to build a service and worry about the infrastructure, we want to focus on the. Business use cases rather. Than implementing, the infrastructure, to handle how the scale and things like this so that is one of the first. Benefit. For using functions and also, polyglot, nature right because we have developers, that work on C, sharp or node.js, Java. So it gives us choices, of using. The right language. Another, thing is it has inbuilt integration, for traverse triggers, like service bus or even how about blob storage and things like that so we, don't have to write our own code and worry, about you, know building that triggers are the things, for that how. Would we like to use the several s technologies, in the future so right now we just started. Using functions, but we would still, like to look at other use. Cases as well for example logic, apps is something that is pretty new so. This is something we want to use for our integration. With enterprise applications, so it's right now we are so much focused on i io T but we also want to expand this to, do an enterprise integration as, well also. Some, kind of social media interaction, other like their applications. And needs for that and. We're also exploring event grid right, now we use, functions. To move the files around and even it could be a good. Use case for us there in, addition to that we also have the IOT edge gateway, Kay use case where we'd like user functions, there. So, that we can actually filter most of the data before. We send it apart because sending, the data to cloud is not really cheap yeah. Thank. You thank you. Havoc so. You've. Seen how advancing. This use case in IOT and how people are actually, building. Products with it another. Use case that we see a lot with function, is obviously or with our service technology, is micro services, it's very easy to build these HTTP, endpoints, and get, applications up and running it's very easy to use a API. Management or API epoxies, to. Create a nice REST API on top of functions, and we're also seeing, using, data integration where you have to post.
This Data that's coming in from different formats. And essentially, clean it up just like Ravi was talking about so. If we continue sort, of a. Sticker. Journey we'll. Talk a little bit about doable, functions, doable. Functions, is a set. Of capabilities we, have on top of our functions, that, is there to solve sort. Of practical problems where you still need state. Or. You need to run a process that takes more than the five. Minutes or ten minutes timeout, that most, of the fast providers, give you, so. The first one is obviously very simple. I need, to call, function. F2 from, function f1 and, I need to have some kind of a serial process. The. Other one which we'll see in our demo is a bit more complicated I need to fan out and fan back in we'll, see that in a second with a sticker. Demo. Another. Sample was saying is HTTP, endpoint so. Essentially it's very common for us to say, we. Need to run in a synchronous, process right we call some kind of web. Service we put something on a queue something, else processes, it puts it on another queue because, we don't want to create a DDoS attack inside, our system with. Our HTTP, API it's trivial, to create an endpoint and that, endpoint will provide us with the data to see how our assing, OSS is running and we'll, see an example of that in a moment as well another. Pattern that's very common, is monitoring, so, have these jobs. That run on a scheduler but what, if the job fails what if the next job that will initiate. 10. Hours from now is actually looking at unfinished. Data from the previous job or something, got co-opted, we doable functions I can actually change my timer based on how, the first job went. Which is very powerful for all these kind of huge batches that I need to run. And. Then, finally I can do a long running workflow where, I can have human interaction, I need, to change states on some kind of process, and I can use the doable function, to wake up the process, many many days later so. The main point is that we have something, that is stateful. The. Programming, model is very intuitive. Is, the stuff we're used to in c-sharp, and. Let's sort of connect it to a sticker. Story and we've. Successfully. Collected, a bunch of sticker. Text, from all these sources. And now, what we want to do is essentially, figure. Out what are the most common words inside the stickers and so, that calls for the very. Classic. Pattern by NAMM of Map Reduce right we have to open all these files gather. All the words and. Count. Which are the most popular. So. For that kate, is here on stage to tell, us a little bit more about doable functions, okay great thank, you near which, is the. All. Right well, thank you all for coming so what I am showing you today is the next step in our demo now, that the part. Of a sovereign's demo where she has pulled all the visual. Data out of the bumper stickers translated. It into text pulled out the relevant phrases and, put. That up in the blob storage we're going to take that and we're going to analyze it and, we're. Just going to see what, is the. Most popular. What. Are say the top 10 15. Most popular, words that we're seeing on our sample data of bumper stickers and so. To do that we, need to go through each file look at what's in each file and take up a count of the, words, doing. That sequentially, is going to take, while if I have 10,000, files and I want to open them all one by one that's, going to take me a long time so, here is a good use case for durable, functions, what, we're going to do is use, what you're referred to as the fan out fan in pattern, and you, can see I'm in Visual Studio right, here. Developing. Locally and I'm. Using, a very familiar API, I'm using the task, framework. API, to. Schedule, each one, of those file openings, as a task so. We'll take an activity, function that activity, function will open up the file name that it's given and it will pass that data back to the the orchestrator, and it will become part of the, local state we, can aggregate that, and use task, dot, there. We go we can use task dot when all to, wait on all those tasks, when, they complete we, can take that total. All. Of the data from all of the files and run, it through a function to calculate which, words are the most common, out of those and then output that so.
In This local test because, as much as I love my surface book it is maybe. Not quite up to ten thousand files or so I'm, going, to run this on a test, case of ten files so. Let's start this up you, can see I've got a breakpoint here so. When we hit this. Line. We'll be able to breakpoint individual studio you have that experience, as part of developing, durable, functions locally, the, same way that you have for developing any, other type of azor function. One. Thing that I should mention we're going to kick this off with an, HTTP. Trigger so. I've, alluded to a bit the orchestrator, and the activity, durable, an, activity, function is basically, the. Functions, that you are used to they perform some sort of work it, can be async it can do i oh and then. Durable. Introduces, this new concept, called the orchestrator, function, and what the orchestrator, function is. Is. A. Runtime that's not starting, and I bet I know why. Yeah. Kill. That one okay. Okay. So. The orchestrator, is used, to literally, orchestrate. The actions, of various activity, functions in code it's, kind, of like logic, apps in that it allows you to define a work throughout flow of various pieces but, you can do it in a code based fashion, so if visual designers, aren't for you then that's. What durable functions does okay. So we have started up we've got an HTTP, endpoint to kick things off I'm going, to note that an Orchestrator. Function, can be kicked, off from any type, of trigger binding, available, in adjure functions today I just, like to use HTTP. Triggers because they're. They're. Pretty simple to set up and I also get some nice JSON, back with endpoints, and those, endpoints will, allow me to monitor. Those. Endpoints will allow me to monitor the, status of what's. Going on in my orchestration. As it runs so. Let's kick this thing off. Give. It a second here. Two. Seconds. Five. Seconds, there we go all, right so this JSON that I've gotten back you can see I have this status query get URI and if, I follow that I get some information, on the status of my Orchestrator as it's running now, it's. Currently running through a number of files so it may be a touch, slow to respond, oh and it's. Actually already done opening, up those files or at least scheduling the tasks for them so. We're, gonna take that break point out, and, let, it continue to run and, in. The meantime we. Should get some information, back about what's going on sometimes. I run this and by the time that I've cued. Up a new window to query, the status of what's going on my. Job is already finished in, this case it looks like the, status, request is. Taking. A lower precedence than, all of the IO, activities. That are going on let's just try oh there it is alright so we can see that our function is running, we. Didn't put in any input and we don't, have any output yet but we will when it completes we good created time and last updated, time and I'm actually running on a, slightly. Outdated. Version. Of the extension, because in, one of the in the general, availability release, which. Is one of the things that we are announcing is the, general availability of, durable functions, I, can also add in a custom status to give me more information about, what my Orchestrator is doing as it, runs let's. Check in on this again. There. We go okay. So we can see we've gotten some words here from my sample data and it, looks like there were a couple of actual, image files in there that it doesn't know what to do with but.
You, Can see that I've got the words other car, my, as you're, not. Even going to try to pronounce that. Microsoft. Is of and, baby, so. That's. Doing that locally, I can. Also do this up in the cloud at. A greater scale so, I have set up this single. Page application. And all. It's going to do is it's going to call the, durable. Endpoint, the same way that, I did locally, but. I I've, now written a little JavaScript code, to use, those, JSON or to use those endpoints that I've given back to parse the status and give it to me in a graphical format so. Let's run this off and we can give. It a second and there, we go it's pending and now we'll start to see the history up here I. Said. Whilst there we go. Okay. So this, is gonna start going I've got about a hundred files, in this, blob storage that I've prepared so it should start running through there and at. The end of this when everything is done I will. Have written out a text file into. This. Container, most, used words that will kick off a, portion, of the demo to happen later, in the talk so. We. Can see that I can use the durable functions to develop locally I can use it for more complex, workflow, patterns to find things in code and. I. Can perform things at scale yeah. Great. Thank. You. Thank. You. This. Is the one that says PPT. Yeah. Yeah. Okay. So we've. Seen what we can do it durable. Functions, to process, a bunch, of data and again. We see that happening, with dream customers. So. Today we are announcing the general. Availability of, doable. Functions, in C, sharp and they're, also having. Doable functions, now available, in no, js' in javascript in, preview, which. You. Should forget to show. Yeah. Yeah. But, we will also check. Out our documentation and. You can see how it turns in javascript and actually, the work we've done to make it available in JavaScript will allow us to make. Doable functions, available for more languages, much faster. With. That I. Wanted. To. Move. On to data integration. Did. I miss the. Let's. See I think we have a. Scheduling. Malfunction. Okay. Cool. So we'll do the logic. Ups and then. We'll but, just a second you can come up John. We, just switch yeah. This. Motherfu, you know we. Do it alright so, to. Talk about the data integration and, you. Can set up I have a cup of side mo we. Have John appeal. Today. We're also announcing. Partnership. With the cloud events this is a CN CF. Initiative. That created. A study, to create a standard. Service. Venting format. The. Format is pretty intuitive you, basically have this header, that has.
A Very kind. Of non set of of keys, and then, you can bring your data based on your application and it, will help normalize, stuff like web, books which is more, standard. Rather than a format. There's. Many companies that are involved in this so it's going to be, supported, by some of our partners, and, then, everything. You see right now is the. Providers. Inside agile that already support, this. Format to event grade so we have a bunch of stuff that you sort of get for free as. Well as other, products. That can use the cloud event format, and use the event gate to essentially, send messages. We, try to put, and with high reliability and. Be, consumed, by these serverless, processes. And. With that let's figure out where we are in our sticker. ODC, and so, now that we have the world, and, we know what are the most popular words, and, now. We have to kick off some workflows to figure. Out how to actually. Produce stickers, out of those so. With that I'll hand it to John. Right. So, one. Of the things that Scott showed in the keynote this morning got a good dive into more details here is. Some. Event with integrations, so event grid and logic apps are the other two parts of our service. Capabilities. In Asia Scott. Showed it in slide web because, we. Only finished it on Friday in the house with the slides on Thursday so I'm, going to show you like new bets that are literally just released over the weekend it's still rolling out globally. So it's in all the North American regions. But. Let's sort of start at the beginning so here I am just in the azure portal I have three things here, I have the, storage account which Katie, was, writing files to as she, processed, all these bumper stickers. You know this massively parallel job, where she can handle thousands, of bumper stickers, so. Now I want to kind of consume that and do something with it, and if you notice on the slide there were two things that I'm going to do with this I'm going to visualize it I'm going to push all this data to power bi and I have a nice, blank. Power, bi dashboard, here, with. Nothing on it other. Than a beautiful, background and. I go take that the, file that Katie generated, and. Process. Over every single one of the words in that file send, it a power bi using your streaming data set using logic apps and I'm also going, to. If. I detect any words that I don't like in that stream I'm gonna use some, of our other colony of services, the content, moderator and push, that out to my team site, so. Just a good example of how easy, it is to do this now and this is all those new bits I was just mentioning is that here, on the left hand side and now have this events. Tab. And when I click on this I see a new experience where I can actually choose one. Of three pre-built. Templates, for, logic apps, allowing.
Me To just click through and create a logic, out directly from these templates I can also create in, an azure function, I've got more options I could go and actually. Create a web hook that was hooked up to the events of the coming indoor use storage queues or event hubs or, hybrid. Connection, so. In this case I'm just going to take this one here when a new blob is uploaded it seems appropriate because that's exactly what Katie was been doing so, when I click on create on this thing so, merely going to take me to the logic app designer, and, I. There's. A couple of things I need to set up first it's just two connections, I'm using two data sources so, this. Morning I think Jeff mentioned there's over 200, connectors for logic apps now so I'm you obviously using blob storage because that's where the events are coming from and I'm using event grid because that's how I'm getting the event so I can just click continue on this straight. Into the designer. And just. Give it a second I can lope inthis up and see, that it, has passed across my subscription, is passed across my resource type the storage account is passed across the resource name and. I. Can even you know filter, down on the actual event I want to receive so I can say one blob created. And. You. Know this is one of the changes we, made in the last couple of days and these templates haven't been updated yet is that I don't need this condition, anymore that says you know hey what type of event is it I want to filter out the deleted and just focus on the created but it doesn't matter for this so. I'm just going to have a delay of 30. Days which may be a little long for us to wait so let's change that to one minute. Save. That down and then, I'm gonna delete the blob. Getting. The path of that blob from the event and delete it after a minute when the blob arrives in my container and that's, it you know I can save this straightaway it's gonna open up a blade, and ask me for a name of this thing I'm, just, gonna pin it to the dashboard let's, call it new logic app and. That's. It I've just created a logic app that's going to consume the events that, get fired when new files get written to blob storage. Okay. Let's, look at a slightly, more, interesting examples, I'm just gonna let that sit there and create. I'll. Just open up the second logic app and. This. One is going to do a couple, of other things it's. Gonna fire off the same event so I can say you, know hey when events. Occur on. My, storage, account and I can you know you can use Advanced Options and, I can say only this, container, most used words because that's the output container, I can scope this up or down and trigger.
On You know any scope, either on everything, in my, blob, storage in that storage account or narrow all the way down to a container I've also got a suffix, filter so I can just narrow it down to text files that get written into that folder so I have a lot of control over, which events I'm interested in besides just the event type you, can see this logic logic, apps a lot simpler because I don't have that condition anymore cuz I'm filtering right there on the event type in the first place I get, the blob content, and. Then, I'm gonna for each over, all all the words in this blog content now what. Does it look like let's just pop across this is the file, format that Katie was using so I just have a whole two words car service, as you and the counts the number of times that those words appear, in, all. Of those bumper stickers that were scanned earlier on by a sovery. So, what I need to do is they need to kind of break that up somehow because I just got this JSON document, and because. Logic apps understands, Jason natively I can, use a parse action. Provide, the JSON schema and. A JSON schema then token eise's all the data values in that incoming, file and, allows me to then, you. Know pick each word and spin. Over them and this is the content moderator now. You know one of the things I've mentioned earlier is that a lot of our cognitive services have highly configurable now, you can take the computer vision you can give. It your own model and train it with your own images and the. Content moderator, allows. Similar, control, so here I'm using a custom, list, ID and, I. Can specify the actual, terms that, I want to filter, out as words that I'm not interested in this is kind of called the profanity, filter instead, of using some profanity, here, which would, be hilarious right, but I do. Work for Microsoft in intend, to do so tomorrow I'm. Just going to show just a couple of terms that were thrown in you. See you know. You. Can see where I'm going with this so just click on these things so I kind of you know if you're interested in these two things you're probably in the wrong building. So, I'm just going to filter that stuff out and if. I see those it's actually, gonna kick it down to. The. Second path which. Is to push it out to my, team, site and say. You know hey this words detected, please triage if it. Doesn't have any of the words that I have in my content moderator filter list it's going to send it out to my power bi streaming, data set and it's just going to send out the word an account and visualize. It in power bi. Okay. So. The, only thing I have left to do now is actually run this thing I can. Simply, do that so, actually, because. I now have two logic apps if I click on events here. Oops. I didn't enable it so you can see this is the one that I created, from the wizard experience, where I just picked the template and creates it so I can see each, subscriber. The event publisher, which is a storage account so. Let's just pop over and enable. The, logic app I just showed you. And. Then, they should both be registered. And. Then I can go at a storage explorer and open, up my most, used words which is the container that I'm using you can see Katie's some of her previous runs are there but I'm gonna upload the file I just showed, put.
That In. Sticker. Words. Upload. File. Appears so. I can then have a look at, what's, going on my logic app and refresh this with any luck, it. Should fire, my logic app there it is that 331. You know logic app is great because it has all this run history I can open up each one of these and see what it did we, keep this for three months you can actually increase it up to a year now, as well so you can have very long-running logic apps over a long period of time and. Acting as a sort of debug, history as well I can open it up and look at the data and see, the path that it took through based on the data that was processing. If. The Wi-Fi cooperates. Tick. Tick tick. Interesting. Okay. So, you know what's kind of interesting is that it shows you know there are 13 words in the file and I see the for each loop the right span over each word in that file and made a decision about which direction I went in so. I can open this up and look at this condition you see the conditions false. For. The first word and I can just sort of flip around all of these and sort of I'll keep, going until I get to one that's true and you can sort of see this in action see, every single one of them is going to my power bi streaming data set I'll, show that in a second, I just. Keep going eventually going to get to one that says true hopefully, which is this one and this, time it's gone down this left-hand, path and showing postmessage, and look. You know it picked one of the words that I had defined in my content moderator list and send, it down the other path, instead. Of sending it to power bi. And. So. If I go over to power bi and just refresh this data set I should see a nice kind. Of word cloud all the words coming in from all the bumper stickers that were all process, through Katie's paralyzed. Durable, functions MapReduce, job, okay. And the only other things is that I pop over to teams I should see there are two words that were written out to teams based on the conditions, that they had in my logic app, thank. You. Jeff, is next. Cool, so we've seen how easy it is to take. This data and then write, workflows, like business, events, we didn't need to learn. All these api's, to call stuff like teams we can use logic apps to, articulate. Our business process very quickly. So, today we're announcing the cloud event, integration. It's. Over there in there CN CF website, and. Event. Gate is one of the first providers. To support it and then, you've seen the the, new UX that, allows you to create. Events, on, your storage accounts and consume them directly. Into. Logic, apps or functions, or. Other, things that containers, or Web books. With. That we wanted to bring, it up because, from start up Starbucks, to tell us a little bit about how, they're using our, service platform, to. Build their business processes thank, you. Hi. I'm, a cosmetically. I'm. The application, developer. And. From Starbucks coffee company but no - kinda. My. Mind is kinda stuck up on the real-time text to speech of other and haven't. Been really following the presentation, because I was trying to catch errors. Over there. And. It's able to pick up my accent to said that's good so. Today, I'm. Gonna talk about the inventory hub it's the. Name is kind of obvious. My. Peers are also around here otherwise I would have said this, application, was primarily, both, by me but. There. Are way here and they'll probably call, me out on it so. The, main purpose of this application is we. Read. This. Application, like, processes, all the items. That a store gets and. Also like the number of items that we sell or. It. Also determines like, what. Are the items that we need to prepare in. Order for the customers to buy, returns. And it does like a lot more things but. My, main goal as, part of today's, presentation, is, I, want, to give you like a very, quick insight. Into. Our own Primm application. Applications. We. Do a very good job of, keeping. Up to date and sticking up to the current standards, and also, like I, want, to point. Out the components, or the, similar components, that we found on cloud, and how, we have, migrated, from using, some, of the, on. Like. Michael for example, I would like, that given like a very brief overview and maybe you, guys will get the gist. Like. We do a very good job with our automation, and. In. Fact we believe in the policy, of like an infrastructure as a code. For. Our on-prem systems we, use salt stack and obviously like everyone uses Jenkins and that's, how we automate, our infrastructure. Deployment, so, we wanted to follow the same pattern, for a cloud deployments, too and, as. Expected, we are using as your CLI because. Many. Of us are into Linux based systems, and. We're comfortable with CLI, over PowerShell, and. Also, to use node.js to, serve to, do some kind of, like. Complex. Evidence. Said there's this complexity, in deployment but, there are like lot of conditions, and based on the conditions, we do certain types of deployment, and that's, very the no job no dodgy areas comes into play.
Start, This specific. Application, as. The, name suggests we do get a lot of messages, a lot of data so. A synchronous, model, is probably, not. Very feasible, so. You, know on from system what we do is we use Kafka, which actually does the queueing for us, but. This. Application, when you built it in cloud we wanted to find like a similar component, and, currently. We are using as, your event up we. Also use service, bus but, that's, because we wanted the message time of functionality. We. Are begin to like containerization. So. Far long term systems we use docker. And. Also we use kubernetes. And. We use coupon artists of all Orchestrator docker containers. Initially, we started using primarily. Using. Only a G of functions. That. We came across the. As your container. Instances, and we immediately changed directions, one. Of the reason why we, changed directions is because, we. Are like a huge components, of like domain driven design. We. Prefer and though. Delay we believe in like event-driven. Design, - and, also like we. Wanted to manage the the. Distribution, of, the load - so. That is what that is when we have decided you know 4l. For our business, scenario as your container, in using. As your container instances, make sense for this specific application. So. When it comes to the data store for. Our on-prem system we were using Postgres. As, part of this project. We. Wanted to make sure we, wanted to try the no sequel, though. So. We were looking for a database which would suit our needs we. Also wanted our database. Which could be like. Which. Could be scaled easy and, it could be like accessible, from anywhere globally. And. That. Is one of the main reasons five we've used cosmos DB and, also, the failover functionality, is pretty sleek fair we don't have to do. A lot of setup with the click of a button it does the failover for us. We. Do use Azure functions, too but we primarily use as, your functions to sync some, of our on-prem data to the cloud. We. Did have some issues with events, or issues initially, when we used a short functions we were using HTTP, triggers, but. The amount of load, that we had we. Felt it's more appropriate to use event, term so, we write we, kind of right there, on from data to the event term and we have this event triggers which is listening of these, as your functions and.
In The end we use power, bi and it's. A pretty neat tool that we using, we. Use that to track variances. This. Is our like a very brief. Architecture. Of. Our application, the. The ones on top is, probably, like it's, our own Prem system, feeding, in data to, the event terms and we. Write the data to the event terms and we have those we have this as your container. Instances, in the in the event terms we have like almost like 20 partitions. And. We have these, as your container instances, listening, out, of like a predefined. Set, of partitions and, also, we have the business logic which does something then. The message and. The message is do, expire. And. There, you can see in the end we are writing it to the cosmos DB we do have like an active and passive. So. In case of like. A global like a major, disaster we, do have something to rely upon. These. Are some of the issues, it. Did work really well for us just lately we started getting this fine timeout, exceptions. So. We added this retrial logic, because we. Could get this point timeout exceptions, because, of like multiple. Reasons, one. Thing is the cosmos DB the request surges. Like. Some reason like running simple queries sometimes. It consumes lots of our using and. It. Like, Microsoft, Azure portal. Suggests that we need to bump up our our use that. At, some point of time like, you, feel that the amount that it wants us to bump up is probably like prohibitively, expensive, but. We do. But. For the application, that we both it works really well it's, just that when we try to integrate, with our BI platform. It does have some recursive. Unit surges. For. The asha functions, initially, we had this issue of at scaling with HTTP triggers and we migrated to event on. One. Of the main purposes that we wanted to achieve by, migrating to cloud is because we, did not want to be in a business of, managing. Our servers managing. What versions, they are on. Running. The upgrades, and we, like, as a team, what we did was we primarily moved to past and, we started using this service components. And it, did make. Us did, make us enable us to focus more.
On Solving. The business problems than working, on the infrastructure, related, issues, thank. You, justify. There's. A Starbucks booth and if you guys have any questions, we'll. Be glad, to answer your queries thank you thank. You so much thank, you. Cool. So. Don't. Worry were almost done, we, talked a little bit about Michael, services earlier, another. Topic that we're seeing people using, functions. For is, single, page web applications, is the, ability to essentially, host your HTML. In. Agile storage or on top of agile functions using our boxes, and then, building, simple, web applications, that consume, these. Micro services HTTP. API. So. Let's talk a little bit about eligible. Functions, HTTP, scale. Basically. Right now we're at the point where we figured, out what. The optimal, sticker you looks, like and, we'll. Find, out in a moment I'm sure and now. It's time to sell these sticker. Obviously. It was a mega-hit and we. Need to handle, scale in a HTTP. API we used to sell. Obstacles, we debt I'll hand it off to Jeff, thanks. So much near alright. So we have done data collecting, Raspberry Pi picturing. Logic. App processing. Intelligence. To come to the conclusion, that if near wants to become a millionaire overnight and, have a unicorn, business, we need to sell a bumper sticker that says my other car is an azure function, so, I'm using that data and we've created this simple store, to, enable people to come to this website they can add items, maybe one two three four 10 of these bumper, stickers to a cart and make, a purchase, but, we had a few challenges when making this website now I think this is a phenomenal, idea for a bumper sticker but, I don't actually know if any of you want to buy it and. So how much, do we need to scale out this back-end to make sure that if people do, come, in here and have an email address of emailed email com how, many resources. Do we need on the backend to be able to process these requests, so this was the challenge that we had so, how this website actually works is it's a single page application. Written in view this is actually a sample from one of our community. Advocates. Sarah Dresner. I'd recommend, you checking that out and, I. Have, this back-end completely. Using, Azure functions. So, whenever anybody, places, an order what, it does behind the scenes as it calls an azure function, now, you heard some. Talk about how Azure. Functions, with HTTP, scalability. Wasn't, optimal, in the past and that was something that we observed and customers like Starbucks, let us know so I want to show you some. Of the improvements that we've made in the last few weeks so this, is a live streaming, metric, of an azure function. In the back okay so this is the Azure function, that's processing, orders for these bumper stickers and I can actually see that right now I only have a single server, hanging. Around back there and some Azure data center and it's processing, zero requests, per second, so there's no traffic right now not a single purchase also means I'm not paying anything to run these hauser functions, now. Let's go ahead here and I'm gonna run a low test I've, got a simple application, here, on my laptop that. Will actually put. 1,000. Orders every, single second, to, this as your function and I, want to know what, happens, when I go from no orders at all to now everybody, at this conference wants, a bumper sticker and they all place an order at the same time and when, I do that I'm going to switch back here and I want you to keep attention to the number of servers that I have behind the scenes so. Let's go ahead now we'll start that load test start. Sending off as this initializes, up a thousand requests every second, and, what you'll notice here as we watch this actually, happen live is that, very shortly, in the number of a few seconds, I know I'm at two three, four servers that are running in Azure with, my Azure function, code processing.
These Orders behind the scenes in fact, as I stay on this view for a little bit longer you'll. See that five six, servers are coming there's a little bit of a delay here seven, eight very. Very, quickly this, simple, application processing. These bumper stickers is now scaled out to almost a dozen servers, now running all processing, my function code and they, beg me to have very bursty traffic without. Having to compromise on user experience so. It only took me a few seconds there's a bunch of instances here and you can see I'm pretty healthily processing. All 1,000, requests every single second in, my Asscher function app so, that was just something I wanted to show quickly one of the improvements, that we've made to, enable you to use has your functions even for these instant, and high demand workloads, so, that you can know that you can just write the code you want publish, it to the cloud and have it process at whatever skill you need so thank you so much. Thank. You Jeff, so, that brings us almost to the end of a bumper. Sticker journey, today. We are announcing the. App inside integration, by default, so what we've seen showing. Us this little gate streaming, data is a product. Called up inside, up, until now you've you had to enable, it in. Order to get it running and now, it's enabled, for all of your function, apps by default and it takes part of our three tiers so you don't have to pay for it until. You have to pay to the for the functions also. Monitoring, UX which has. Had some challenges, being, based. On a different storage, and. Performance. Wise is now based on up insights so we're going to see refresh 2x there and some, of this graph will now go. Directly, into the agile function UX. Cool. So one more thing so one. Thing that we've seen. Throughout. The day is that people are using server less and they're using it to build real applications, with. Trail application, comes things. Like monitoring, and also obviously the aspect of security and, very excited to invite a partner, from a company. Called pure sec which will talk about. Service. Security. Specifically. And talk. About the beta they are launching with us today ok. Which. Number six. Hi. My. Name is the Oracle and the CEO and co-founder of, pure sec the. Company that develops. The world's first several security runtime, environment, and I'm here to talk to you about highly secure, nearest. Bumper-sticker business, from. Getting hacked. Let's. Start. So. In general we're talking about several is security, we. Are referring to application, security and in general, I'm sure you probably know that the. Function, is a service provider the service provider in this case Microsoft. Azure is responsible, for securing, the underlying, infrastructure, everything you've seen until now from. The regions the availability zones the locations. The compute, the database storage, and so forth. You. Are responsible. For securing. Your own functions, your source, code which you, obviously own, and that, is where pure. Sip, concentrates. On. Now. If you think about server. Lists, and, service functions specifically, they are probably the least secure, link. In your chain, the, reason is that up until today you. Didn't really have any kind of server security solution, and, we.
Are Unveiling it right now and so. If you look at traditional application security solutions, specifically. Web application, firewalls, runtime, applications, self protection. Host-based. Intrusion prevention. Systems. They, are all focusing, on securing. The application. Layer by. Being installed, or deployed, on the network, or on servers, however. In server lists, you, no longer have any access. Or you're. Not in liberty to actually install anything on the network on any, servers, or on, the platform, and so. In. Server lists any kind of traditional application. Security solutions, that you used, to deploy. Up until today is pretty much inadequate, or unsuitable for it for that case. We. Earlier. Earlier, this year we actually published a, guide called the several security top ten. Most common, weaknesses, you, can download it from. Our, website. Let's, quickly talk about what are the risks what if the threat landscape when talking about service applications, so the. Classic, scenario you have an event that triggers the function. Which, then interacts, with some cloud api's. Generates. Output so how can an attacker, actually. Exploit, this and I'm I'm, switching, for a moment, just to show you an example, related. To the. Nears. Bumper-sticker. Business, so here's a bumper, sticker that will pretty much hack near the business. I'll. Go back and. Now. Let's be serious so, how can an attacker actually manipulate, an application, like that so there are three ways the. First is to inject as you've seen now in the bumper sticker example, to, inject malicious data, into, into. The event. Data any kind of field. You. Can also manipulate. Third-party. Libraries. That the developer, is using with malware. Or. You can compromise one of the other components the cloud. Services. Like blob storage or, something like that the. Bad, things that can happen obviously injection. Based attacks like you've just seen sequin injection cross-site scripting, path traversal, and so forth, bypass. Of event occasion, compromising. Data denial, of service and etc, etc so. How, do you protect, surveillance. Functions, obviously, with the several security runtime, environment, which is what I'm here to show you and what. Is it necessary, so. A necessary, is a trusted, security situation environment, that. Allows you to make sure or. Give you confidence that the functions, are really doing what they were designed, and that we're supposed to do, it. Provides, unparalleled, visibility into, the functions, runtime, execution, environment, so you can actually investigate, security, events in. A very granular. Manner, it. Provides, behavioral, protection, against unknown attacks it's not signature, based. And. It provides end-to-end security, starting, from when you actually develop, your. Project, you will see provide static analysis capabilities. It, is cross-platform so, you can use it you can deploy the function, with our security.
Locally. You can move it to staging, to production from one cloud provider to another and. It's very very lightweight and high-performance we're, talking about latency. Numbers. Ranging. Between microseconds. To single digit milliseconds. So. Pure sex tesseract, is the world's first accessory. And it actually starts as I mentioned when you build your function, it analyzes, each and every, function. In your project, for, vulnerabilities. And for misconfigurations as the. Function gets invoked it actually surrounds, the function, with, a perimeter firewall. That. Then. Inspects. Inputs and outputs of the function and, while. The function executes, it runs the behavioral, engine, that looks at what the function is doing and tries to understand, whether the function is doing what it is expected, to do or whether, it's doing any kind of malicious things, and, obviously all the data going out of this these, integration, points go out, to. A pin sites and to Splunk and other, devops. Tools that you probably use. We. Are G eyeing this, product in, July. This year we're already obviously. Starting the beta today. And. Let's let's see a quick demo you have a couple of minutes left. I'm. Doing this myself. Ok so, let's. Start with actually trying to hack so I have a few. Very simple functions, here I'll just show you the source code the, integration, point of the pure istic security. Renton protection, is through an import, of our library so, here, you can see node require, pure set I also, have this in c-sharp. So. You're loading, the pure set code and, that's basically, it that's all the integration, required. So. Let's let's, start attacking, my my, functions. The. First thing I'm going to do I'm going to send my function, just, normal, user, input, name equals, you know whatever string I want to send and it sends me back if, I call myself. Auri for that matter it. Will say hello Ori and now we find a smart. Attacker, the first thing I'll try to do is try to do a sequel injection attack, so I'll do something classic like tag. Union. Select, password. From. The users table and, let's. See what happens so. As, you can see the pure SEC, firewall. Component, triggered, on this malicious inputs sorry, I'm doing it again and it's, flagging this as a sequel, injection now. The. Data can come now it's coming from an HTTP ven trigger it can come from blob storage or for any kind, of other event, it. Doesn't necessarily have to be HTTP, could be an IOT device for that matter now. If I'm an attacker and, I understand, that there's a firewall involved, here I'll try to manipulate, you. Know the payload, a little bit so we'll try another classic, one or one equals one that, the classic blind sequel injection will try to fool the pure. SEC firewall, and steal caches, I'll. Be. A bit smarter than this and I'll do something a. Bit. More challenging, for the firewall so this is obviously boolean.
Tests. That I'm running here and it's still detecting, the second injection however. If. I try to type a sentence in English that looks like a synchronization, let's, see maybe I can force this to Jew to do a false. Positive so, I drop. Table, users and. Execute. X. Be CMD. Shell. They're. All, really, really bad words most web application, firewalls would would trigger on this however. I can already tell you that the pure SEC firewall. Really. Analyzes, the input understands the context, and will not trigger just because there are a few bad, keywords, in here we. Can continue, with some. Cross-site scripting, I already pre prepared, a payload, here. And you, can see that it's triggering across the scripting, I can try something, a bit different let's, try. To. Reach a file outside. Of. The. Root directory. And. It should trigger local file include. And. It does so. That's the those, triggers that you're seeing now are the triggers generated, by the firewall, component, that inspects the in
2018-05-10 23:24