Black Friday? Logic apps to the rescue... - CFS2005
Welcome. To my session, it's. About logic Epson Black Friday if you're expecting, an security. Talk we're, in the wrong room you, have to go one floor, up. My. Name is aya mylink I'm from the Netherlands. If. You see the. Beautiful, tulip fields that's just outside my hometown. We. Are very proud of that that's beautiful for one month in here. Yeah. Netherlands, also famous for cheese and also some famous painters, and of, course beer we. Sell, a lot of beer. And. I work for a company called McCall because. It's. A Microsoft. Copy. Of a Microsoft, Partner. Offers. Only Microsoft, support. On for, our customers. And. We have offices, in the Netherlands of course in Lithuania. And also, in Germany. A. Little. Bit about myself I'm on hardcore a C sharp toad net developer. Developing. In total. Net C. Sharp from. From, 2000, starting with the Alpha point. Zero and. Yeah. I like, that a lot, but, what's. This, guy doing, doing. I talk about no. Code of, little. Code and. Why I'm so and justic. About it yeah. Let's find out in the next next. Hour. If, you have any questions, let's. Put them in the end if we have time otherwise. Just found me outside, the, room or. On. The floor in the. Conference. Center. But. To start I would like to start with a little quiz, so. Would you all please stand up. We. Just had lunch we need a bit of exercise. Okay. Ready. Okay everyone, not, familiar, with, logic apps if. You don't know what logic APIs, or just seen a demo, or something, please sit down, oh. That's. A lot, this. Session is not really. Introduction. Into logic apps you go a little bit further but. I hope at the end of the session you know why I am so excited what, logic apps and surplice. Proposition, of Microsoft, just. And. There you know that you have to look at two logic apps this really cool stuff. Everybody. Who. Is familiar with large caps but only dude did. The demo etc. Etc but, not really used it in production please sit down. Okay. Cool you can learn a lot you can learn a lot the. Rest of you guys. One. More question, who. Has worked, with logic apps in production, but only created, them in the portal. So. Not. Do you deploy them through a CI CD pipeline, or something please sit down. Cool. The rest of you commit. Me after. The session we can talk. Some. War talks and compare. Solutions, and, maybe. That's fun so the. Rest you can sit down as well, okay. My talk, today is. Three. Steps. Three. Major, issue points. One. What's, the chalice what was the case why, did we. What. About. The. Talk, is about real customer, cash. We. Did for customer, then. We talked a lot about solution, what we did and at, the end I will. Disclose. The results how we did it and if. It worked or not. And. I. Also have. Some key, takeaways of course. So. What's the case. Our. Customer. Started. Three. About. Three years ago with. A, new initiative it, was a big company who did a lot of b2b. Things. And I, wanted to open a b2c, channel on the web shop they.
Invested, In a lot of research. On what's a good, SAS. Solution, for a web shop they selected, one they, implemented, one like, like a little startup like. Like, a proof-of-concept. This. Particular. Solution. Had a lot of integration. Possibilities. Already built in the system so, they had the payment provider, they. Had. Product. Catalog of course a lot of integration. Also with the financial, system today we're using so. There was a lot of integration, already built in the system, but. Like. Every solution. You built you. Have to do some integration. Yourself. And, in this case because, it was a b2b specialized. Organization. They, didn't have a real. Warehouse. Of various capabilities to. Provide, business. To clients, it would be sister customer sent out the, orders, themselves to. Customers. Thus. Called that, there are specialized. Organizations. For, that and they're called LSPs, or logistic service providers, they. Have Rackspace. For you and they do the order picking for you if you send them the norther and they tell you if. You tracking code okay we shipped it with this shipping. Company to, the customer, so you get the tracking code back. So. That's an LSB and of course if when you integrate that you have to build some middleware, to to. Facilitate, that and they, built a little middleware with the whistle with some state. In the middle and the. First solution was built in chrome jobs so every hour they put the new orders from the web shop and they send it to the LSP and LSP would acknowledge. Them, and. Once. An hour over every two hours they would put a file. On their FTP system, so. That the, middle where I could pick that up and process the orders, I put, renew. The state of the orders in the in the web shop and, sent out some emails. But. It. Was a success. Customers. Really liked the product really, liked the webshop so, it grew and, ambition. Grew as well so, they needed some. More they, wanted to follow, what customers, did, so. They included. Also on an e-commerce. Marketing. System, a system. That sends out emails and, after. Six weeks of. The two weeks ends okay are you still happy with your product to board and so to. Follow the real customer, journey and entice. The customer, to buy, more you, know the email, ship get the book they. Throw away immediately, when you bought something online that's. There's, a real system for that and they. Also had to integrate, with that so, they external. Email where. So. Far everybody, with me okay. Then it was a successfully. So they opened in in another country in, Europe a second webshop and a. Third in the middle work crew and also a second, LSP. And so and middle, web became bigger and bigger and bigger. Mostly. Built on on Chrome Europe still but. You. Know everybody, has, been in this situation. When. You start with, something and gross. It's. Really, stable. The. Only new when orders were failing where customers, were calling customer, care so. They had a problem and then, finally, a 2017. Black Friday. The. Whole system, went down they, lost, a lot of orders they were busy. Fixing. The orders for a month to, make every customer, happy again, at. That point last. Year around this this time here they came to us please. Help us, with. Our middleware, we. Have a problem, next fryer will be mess if we we, also have other big, marketing, companies, ready, to go but we're not, that. The middleware is not stable, enough we're. Losing. Money here. Well. They had some requirements. Of course it had been the, product had to be finished before Black. Friday at the end of November. But. Most. Important, was the world like three three three requirements. It wasn't it has to be stay will this beast I will just be stable we. Have to depend on it there's real money flowing, through the system. Second. Was. We. Don't want to know if there's a problem in our middleware if customers. Start calling, but, we want to know if, there's, a problem, when. It when it happens we want to monitor monetary. Debt. So. It was. It. Was a little, bit of wishful thinking, but, the. Middleware should be able to process. 10,000. Orders, per hour. So. That's also big challenge. And. Last. Yeah. Okay, we, are now have a webshop it, works it works fine but, we have bigger ambitions we, won't do more marketing, campaign more, combinations. Of. Discounts. Etc, that, this, solution. Doesn't provide, us so, we're looking at a new sauce new. Webshop to. Implement, a new webshop the. Debt was a where, are four. Requirements. Basically. So. What did we do. We. Changed. The. Middleware using. Servlets technology. From Microsoft based. Mostly. Logic, apps some, other components, and we. Also changed, a lot, of the cron jobs to. Events. From. A cron, job with, a stateful, middleware. We, went to a stateless, middleware, using. Event event, based, we. Had still had some, time's jobs. Because. The LS B's and LS, B's the logistic serve providers, they're. The. Kind of organization, that a.
Very. Small margin and, they. Not have no they have a lot of budget. To, improve, their their automation. So. There. Are some really old stuff. They're like, FTP sites where you put on and a comma-separated. File. For the orders etc and. They. X they couldn't handle more than 10,000. Hours shall we had some time in there. Let's. Talk about service, a little bit this is my definition, there are a lot of definitions are about service, my, definition. Is if. A full abstraction. Of, the server and also of the platform in the runtime your your you're not thinking. About this. Platform, in the service its. Event-driven. In its scales and, it. Doesn't scale vertically, it's goes horizontally. It. Skills, really, big and, also you have micro, billing so, you pay for every, transaction. And. That's of course for, a webshop that has a lot of peak loads and then also, slow, periods, it's, very good, because. You, only pay for use it's. Like the consumption. Payment. Plan. Everybody. Agrees with this definition. Okay. What. Are the benefits, okay the benefits, of, service. Yeah. You like, said you don't have to manage your service, anymore you don't have to manage your operating, system anymore etc, you, manage your apps and that's it the. Apps run in at the runtime and, Microsoft. Is manage, them for you. Because. Of that you also have reduced their hopes you don't have. That's. Complete. Logic if, you have don't. Have to monitor. Your service, all the time you. Have less. There as well, they. Have a really fast time to market, because, a. Lot. Of the groundwork, a lot of the plumbing you don't have to build anymore just, about the logic in your app. And. It, is also really paid out in our solution, we, had a, scrum. Way, of working and we had two, bi-weekly. Sprint every. Two weeks we could. Do in the demo shell real progress. Also. In the first sprint in the first print we had the working system for, one. Flow. Was. Actually, to order paid flow which had done a show in the demo as well so. Really, fast and it was with two deaths. To. Developers, in two weeks we could build one flow already so. We're very fast. So. So great for if you want, to do like proof-of-concept or two to, work. With. With, the business, okay we maybe we have to do something like this okay you can really, prove proof your. Stuff. Now. What are large gaps one. Of the three, real. Service. Components, in Azure the, others are as, your functions, and adjust event. Great. It's. Basically. A workflow. You. Design it in. A designer or you can program. It in ingestion. It's, very declarative. It's. Also very resilient. Every. Action you do, and you step out of your workflow it, automatically, retries. And you can, configure, that how many times etc. So. Very resilient. So. When one. Of the systems you're. Connecting. With is out of. Doesn't. Work anymore or it's in maintenance, the. Logic apps will, retry, a few times. Nowadays. Is. A new feature it's also very testable with. Static, weak results, capability. It. Stores, the. Data. Standard. From 90 days so. Also gdpr compliancy. Is also. I. Said. It it's. Taken, care of thank you. Because. Yeah after 90 days all, the information, is gone. If you, want to store it longer. You. Have to do it yourself you can also play. With that. Period. It. Also have great, built-in, monitoring, I will show that in the demo as well that. Is really really, powerful. And. It, scales out massively, we. Tried it and I will show you also later. Well. She gets a lot of build. Of. Connectors. Available for. Logic, apps I. Counted. Them very quickly a. 286. At the moment. And. With. The, enterprise. Integration pack, yes even, more possibilities. And. Also. The pricing, is very good. Price. Per you pay, per, action you execute. So. If you for, instance you have a process. That processes. A thousand. Service service. Businesses each day and, takes, about five actions, you pay you can read it about four. And a half euros, or a little, bit of more $5, per month and. That. Depends, totally on how. Often you use it, so. It scales up when you have high, load and goes down we have low load. So. This was setting, the stage what. Was our challenge now. We're gonna dive a little bit deeper in the solution. This. Was our basic architecture. This. Is one flow. For. The order paid event, of course. Yells also, have to order ship event, and, also. The. Or acknowledgement, a newsletter. Subscriptions. Account, creation. All things all, that kind of. Operations. Events, happening, in webshop. And. What. We did we wat first. The. Event and this, webshop was very nice that had worked with web book so we can connect, to what web hook one. Logic at the main lodge gap was the orchestrator. There. D. Jason package, came in into, the logic app and from, there the flow would run. It. What, we did was we converted. The, data, coming, in from the webshop we. Converted, it into an economical, entity. In. This case, a canonical or now.
The. Match, ordered now the maps, ordered, now the map, ordered, now the, map, or dirt now the map, dirt, now the, map or dirt now the, map dirt, now the, map, dirt now the map, or dirt now the map, or dirt now the map, or dirt now the map, or dirt now the, map or dirt now the. Map or dirt now the. Map or dirt now the, map or dirt now the map, or dirt now the map, or dirt now the map, or dirt now the. Map or dirt now the. Map or dirt now the. Map or dirt now the map, or dirt now the map, or dirt now the map, or dirt now the map, or dirt now the, map, or dirt now the. Map or dirt now the. Map or dirt now the, map or dirt now the, map, or dirt now the maps, or dirt now the maps, or dirt now the the maps of the now the, the map now. The, map or dirt now the maps, or dirt now the, map or dirt now the the map the, translated. Object. Was put on the service bus with with a knowledge gap was. Generic, logic we. Reuse. And, then. It would put was put on a service. Topic, and, solve, service the base topic is like a queue with multiple. Subscribers. Is it like a pub sub mechanism, which. With this queuing, and. We, had one subscriber. For, the LSPs or multiple. For each country or each, LSP, had its own, subscriber. On the topic and, also. One for the marketing. System which. Number, seven. In. The diagram. Basic. Architectural, well going one step deeper now but, first a little. Bit about scalability. We. Promised, our customer yet we'll scale massively, if. You read about logically, appears it will scale massively but. We had to prove it, so. After. Like. Three. Sprint's, are like six weeks in. In. The in the project, we. Said ok we want to do a stress test we. Want to know what are the limits of our. System, can. We get, 10,000. Orders per hour. Well. We. Did a stress test, we. Ran it for 20 minutes and. In. That 20 minutes we were able to process. 70. More than 70 through. 73,000, order that. Comes to about. 220, thousand. Orders per hour. It. Was only one order. Who. Took more than what 3 seconds to be picked up by a system. Every. Other HTTP. Call to the system was picked up in less.
Than 3 seconds. That. Was also very important. For us because this. Typical. Webshop, hood, retrigger. Resubmit. The webhook if, it, didn't receive a 201, or 2 to 200. Within. 5 5 seconds, and then. We had double orders and double order, etc. Acknowledgments. That we didn't want that so only, one order didn't make it. Because. Of a little, thing. We didn't understand, at that time. Was. That, for. A system to process all, the all, those orders well it, took about six hours, before. They were all delivered, to the, to, do marketing system, and also all. The emails were sent from, the marketing system. And. We. Had some failure. Bit. More than 1%, failure. Because. Somewhere. In, this setup we used. Storage. As a storage and we were trough of there. And. Then you can retry, that after four times the, logic F still fails so. The because, of the throttling on the, Azure storage we were, not. Making. The. 100%, we. Run the same testing, in a low test situation, with 10,000, orders required. And then. We had 100%. Success, rate, I. Think. This this slide. Proves. Yeah. It scales. Big-time. No. Worries there. Cool. What. The. Solution, look like if we would take one step deeper what does look like in the portal I see. Here. And. We have some logic apps the, service business pays some, API connection in the storage account and. This. Is some of the lessons learned in this slide. One. Lesson narratives, always. Give, use. Name convention. Like, your, all. Spurts on development. You. Have an M convention, also when you work large gaps or where you work with as your resource use, good. Name convention, so you know what's. Happening. Also. Now the great tip there's. What you can use tagging, all resources, probably. Most of you know but, one tech. That. Helps a lot is the display name, tag and. If. You set the display name Tech in in a readable form you, everywhere, you can see. Your. Resource, you. Can also see, the the. The real value of the display. By name like in, the the column on the right and also if you have their naming convention, it helps you in sorting and no knows what, belongs, where. Like. You see here we have three, core. Resources. That. Use, the whole system, and for, each subsystem, it connects to the logic. Logistic. Serve providers, have, some that, belong to that subsystem. Marketing, System and also, the webshop if, there are all. Components. Display. Name good tape. When. We look at the, first Orchestrator, logic. App this is what the logic app looks like in the portal it's, just a workflow. Easy. To read is, to discuss with the business, this. Is something, the business understands. If you share this in a demo they say. Ok, we show them some sheesh our code of sharp. Code or whatever, they say ok I believe, you. So. This way. Of representing. Your code, and this is actually, the code that runs gives. Also the business a lot of confidence, it. Helps building, conference, confidence. Other. Top tip, always. Rename, your actions, the. Suggested, names are good but. Always rename, your actions, give. Even, better insight what is happening. I like. Here you see when. The trigger fires. When, HTP, when. Messages, comes. In from the phone. Webshop, we. Sent out 201 directly, because. Of the five-second, rule, we. Map it and, we publish it using. All the, logic apps nested. Logic apps. Now. Let's. Look. At a mapper. Now. Also. Pretty. Readable. We. Process. To order items. And. We. Have some other stuff on the, left. Side, right side, your, right side. This. Is. Something. You, have to deal, with when working with logic apps, I. Said. Mill. The mill where we built was stateless. And. Logic. Apps helps. You to. Stay stateless. Actually. It's hard, to build. A state in logic app, it's. Very difficult. But. Sometimes you, have to have do a lookup reference, data or etc, you have to. Add. Some some, data to do the data you get from the webshop in this case. And. That's that's something you have to solve now, you, have blessed you have three options you stable, storage, now. That that's what we did in the production system at the first place that. Gave us the, problems. With. With. The scalability. You. Can create like, a JSON, object directly. In the logic app itself. Also. Works a. Third. Option is use cosmos DB or sequel server to. Do look up but if you scale massively your, cost will go up as well, there. Finally. We composed canonical, order and we. Send, back the result. Easy-peasy. If. We zoom into the compass Conoco, order you. See, it's. Just building a giant format. From. Another gesture format, easy, mappings, are, you, can easily do in, logic apps. Then. We're gonna put the. Canonical. Order on the service bus, and. Here we used. Like. I said topics topic and subscriptions. This. Is a screenshot from the service because Explorer, I highly. Recommend, to use this one because the portal doesn't, provide. You with all the capabilities, of the service bus, so. Top tip the. Best, Explorer when working with service bus. You. See the, topic. Built. 2:19. Demo, order. Paid def so, the development.
Topic. Of, the. Order, paid event. And. We have some, descriptions. For. Each LSP. So. We have one for Austria, 80 Germany. Netherlands, UK US, we. We. Used rules, rules, to filter, out of. The determine, which subscription. Gets which message. Because. Use. By. Using this way, we. Didn't have to build a large switch in logic app. We. Use the capability, of the servers to filter out which. Logic. Gap which. LSB gets. Which order. And. The. One at the bottom was, the one for the marketing system because all orders, had to be sent to the market system. So. As it's also grew. To understand, what are the capabilities will, research you. Have to do a lot of reading to. Be able to use the filtering. It. Was a bit of a. Search. You. Have to put the the, things you want to filter on in the properties, see. Right. Bottom, and. The properties, of the, send message action. To the server's we. Have to put on the. Put. In the, properties. Monitoring. Yeah. This. Is actually screenshot. Of the monitoring, we used. With. With, the system with the middleware and. This, is all powered. By our. Monitoring. And, Logan. Analytics. When. You connect your logic apps to look analytics, you. Can do powerful. Dashboarding. Actually. This dashboard was running. On a monitor. In our, team room, we. Can monitor everything happening. We. Had a logic. Apps management, at the top that's. A it's, a solution built. With by, Microsoft, where you can see. All the default. Things about logic. Apps how, many have run in the low past, 24. Hours and, when he failed, we had some failures, we. Knew we had some failures that, we didn't deal. With them. But. Service, traffic. Right. Top is how many orders per. Hour per. Country there were so. You see the nice graph and we when we saw a dip in, the graph we knew okay something, is wrong and. Also. One. Occasion, I, saw a big, spike in one of the countries and I. Asked. Some guy how were you running a marketing, campaign or something, or some special discount, in that country. Let. Me check no we're not know, what's, happening there because we have really. Spike ordered their. Investigation. And it, was, caused by. Wrongly. Implemented. Discount, rule in the webshop, we. Said okay the rules, was supposed to be a gift. 5%. Discount, to. Fight the first 500. People and they. Implemented, it wrong it was if, give. Discount, 50. All. The orders. Kept on. 50. Pounds so, people, were throwing things in the basket, but. Still. We had to pay 50 50, pounds. And. That went viral um I, said those, three girls because, very quick viral, a lot. Of people ordering like, like. Basket. With with, five six hundred pounds. And, only had to pay fifty and. Because we have this monitor happy monitoring, place we couldn't eat early. Catch. It early and now, harm was done so. There was very good case also for the monitoring. Why. Did we know. Some errors where, we because. Like I said one, lesson later don't, try to fix, everything within your middle where, the. Failures. Main failures we had here were, people, typing. In their email address, wrong email address like gmail.com, in, plots from G instead of gmail.com. And. The. Marketing system wouldn't accept those it, would throw an error. We. Could, have fixed it in the in the middleware but it's not the responsibility of the middleware. And. When. We had to fix it in the middle it would take a lot of time and effort to fix it in the way it should fix it in the web shops responsibility. Web shop to filter out the wrong email addresses not, have been aware. To use. Loja. Analytics this. Is all based on log analytics, and as you're monitoring use. It with with, logic apps very easy you, go down to the diagnostic.
Settings In the portal, you. Check, send, to lock analytics, choose. Your lock and electro space and. Choose. Workflow. Runtime you. Can, choose metrics. Most. Of the Edit value is from the workflow, runtime and. What will it will do it will lock. Every, information, on every workflow and every action that has run. Plus. To. Be. Able to create. Top. Right to. Know which. Country, the order came from. You. Can add your your, your, domain. Properties also to. The workflow to the logic gap distorts. Together, with the general. Information if the action which succeeded. When it run etc. You. Can add your own track. Properties they called. You, have to think about that which one are. Valuable. To, monitor on so, in this case order, ID is. To find, problems, shop. ID which. Was the, country shop. Was running in which, flow it belongs to order, paid or the, etc. Also. The custome email was very. Beneficial. To, help to, have there because. Of the. Last thing, about monitoring, is. When. You have this information inside. Log. Analytics, you. Can also run very powerful, queries there. For. Instance when a customer calls I didn't, receive an order confirmation I, just. Ordered something in a webshop I didn't get a shipping, confirmation. Customer. Care was say ok. We. See the order was sent in but. Something. Happens and then. They call I T and I T cos. Okay, give. Me the customer. Email, like. In the. Fourth. Row my. Email address I'm a very. Nagging. Customer always always calling, and. Then. We get from. The last 48, hours all the events. The. Custom has done. And. Even have. A link, where. We can step into the debt instance, of, the. Logic. App. Cool. Demo. Time. Okay. For. This ademma I have built a five rebuild, the same, system, you saw it also in the screenshots. This. Is the azure portal I have nice dashboard well we have the the, logic absolution, the management, solution, from. Azure. Monitoring. I, can, click on that and we, have some more insights. Just. Out of the box, how. Many of run how many fields, which, one have failed which actions, failed. When, did they fail you, can even drill down deeper, and deeper to the actual run itself, so.
That's Very. Powerful. But. Stepping. Back. Let's. Send in. Let's. Do an order. Let's. Make, it. So. We can find it so build 29. Demo. Time. I'm. Telling it I send it to the lodge gap. Okay. We get 201, created, so. Logic. App has received. It processed it and. We. Have to wait. Email. Great, email, doesn't arrive. Let's. See if the order for, the LSP I feel table storage where I throw. It in let's. See if the right there. Looks. Like we have a problem. Something. Has changed in, the meantime. Now. Let's see if the first logic app it, gave us the 201. As. Runs, so let's refresh it here. We. Have a felt logic app. Easily. Spot a ball, red. Exclamation mark, it failed. We. Can look at that instance. What. Happened. We. Received, the information, we. Can either see the pilot, tell to pilot of the. Order received, from the web shop so that looks good. Respond. Was sent we saw that in postman already there. Was a problem when. Mapping. It. Retried. Four times. You. Can play, with that you can set it to 1 you can set it to different, types, of retrying, policies, etc. We. Have a rule, in. My team, leave. Everything at a default. So. You know you can change something when you need it it's like when. You drive in car I set it in Drive that's, the normal that's 8 percent, of the, times you just put it in Drive when. It's no you put it you do the manual shift or when. You have a bit of a bit of air you to fresh the sports, mode in your car but normally, it you just set it in drive with, logic apps also have, a lot of tinkering. A lot of settings you could play with but I suggest. Just, use. The the, standard, and. Only. Play. With the settings. When. You need, them, but. Yeah there's something wrong in a mapping. And. We can step into now go to, the next, logic a p-- what, happened. So. This is the actually mapper that run within. That other, instance, within the main. Loop, and, we see there's a problem in composed canonical, order. And. What, we see here is. First. Name was not supplied I, guess. Guys. From the web shop it's a solution. So. Sometimes. They. Change, throw. In the new version sometimes. Something. Is mandatory and, all. The times it's not but. First. Name is missing in this case. Ok. So we have to fix that. How. Do we fix that now that's easy we. Go to the logic app in, the portal, we're. On production. And. I switch to the code, view you. Can also do see, it in. Designer. But. Then you, only have these. Kinds of things you can really, can't. Really edit it. So. We go to the code view you can, edit the ingestion you can set it a little bit more settings we, find first name maybe, see. The. Question mark is missing. I've. Got snippets, I. Can. Replace it. When. It's no it's not provided, I use. An empty. String, because. I know later. On I will use the. First. Time to send out an email like hi Ariane, we. Received. Your order etc. I'd. Save it, so. I fix the books on production. Yeah. Happy. Everybody's. Happy of course. We. Go back to the to, the logic. App the. Main logic app and there's one beautiful, thing we, don't have to ship resubmit, through, the webshop the already existing order, we, can, replay, it, resubmit. Resubmit. Pile out into, the system. So. We resubmit. It, and. Now. It should be green yes so it has been processed. It. Receives please. Sometimes. Yeah there it is and. Also. It. Was received, by the this, day host takes a bit longer it. Should, be. It. Should work we, look at there later. Cool. So. Now we fix it in production. But. Like. All things you fix in production. We. Always forget to do it in development, we always do it in, the development, branch in, so. How we do that. So. We switch over to our code. Envious. Code. We. Deployed everything, using arm templates, as your, resource management, templates. It. Takes time takes. Take, some effort but. It. Gives, a lot back, so. Here we have the same logic. App same codes we see here the same code. We. Fix it here same. Fix. Save. It. Should. Be already also. Of course it there should be here. Some. Bug reported. So yeah we have to we. Fix it. Yeah. And. We. Sync, with. The master branch of course, you should do a pull request etc. And everybody. We should look at it I directly. Submitted. To to master. From. There a build, kicks off. Automatically. Build. Kicks off and after, that a release kick self and. My. Fix. Is now on, his way to development. Where, we can go through these steps of guy fiction. Tested. Acceptance. Production. It. Takes about the release takes about 5 minutes 6 minutes we're. Not gonna wait for that.
So. We're going to switch back to the, slides. So. Let let, me walk you through the CI she'd pipeline. It's. Bit of a difficult picture I try, to make it easier, but the. Seller had to do so many things in the picture on. The left left. We. Have to develop a context, developer. Can choose work, with visual studio for, visual, studio calls, and. Its own. Preferred. Editor. VI. I'm, a logo, FBI. And. Our, solution is made up mostly. Of. Three types. Of files we have some PowerShell scripts we, use for. Instance to. To. Set some defaults, in table storage etc things you can't do with arm templates, we. Have some dead core cut for, Escher functions. We. Used error functions, that, only when. Logic. Apps. We. We couldn't do the functionality. In logic app for. Instance if it takes too long of, it comes. To complex. Conferences. We had to create an XML or CSV. File, those. Things we step, out to error function, that main control, the main loops we had in logic. Apps because. Like, I said you see how, easy it is to follow what, is happening in a logic app. And. We, had a lot of JSON objects, and templates, as, you research manager templates. The. Developer, could. Manually. Deploy them to the Deaf playground, every developers, I don't playground, where. You can test out things script. Out, new. Logic, apps and. Also. That's, very important, test your templates. Well. He thinks everything, is good it. Does a pull request to. The branch, the. Build pipeline, number three the build pipeline, automatically. Kicks off, and. What the bill a pipeline, does there's. Mainly three things it, can pass dotnet, cork out of course runs. Unit tests on the.net cork out and. Puts. All the arm. Templates, in. A blob storage. Somewhere. In. The edge subscription. At. Which somewhere we had a special, resource. Group for that where. We do all the deploy stuff. Then. The release pipeline kicks, in when. The build is done we'll be finished and, release pipelines. Tells. The. As your research manager, surface. To. Deploy all the arm templates. We. Created, to. The. Dev. Test, acceptance. And. Production. These. Evo's are set up what. Were the benefits and challenges with, this setup. Benefits, of course the normalcy. ICD, benefits. You have, no. Manual. Steps in the deployment, Oh. Everything. Deploys automatically. You. Can do quality control you can do quality gates like with poor requests etc. People. Different, people. Accepting. Different steps in the release. Pipelines, etc. We. Could have a bigger development, team we. Could work on separate branches, and. To. Two deaths can work on one feature now that too can move one can work on another feature. Because. We're only doing, making. JSON, files. Our. Shell, Asha sharp it merges you. Can do pretty, much is pretty good so. That's then. You can do multiple, things, in. One. Sprint. The. Downsides, were. Yeah. Release the, release step. Is. Called for us because a lot of things are happening there. If. There's a problem. Within an arm template, you. Usually spot it only when you're doing release and, for. The simple demo the release takes five minutes, the. Whole system took about 30, minutes and any. Now yeah okay when that fails you have, a pretty. Long cycle, to. Get it right the, first time, that. So. It takes a lot of housekeeping, around, the arm templates, booting all the. Parameters. That you could point etc. Experience. Helps you we, have we had in our team pretty, steep learning. But. When you have done it two three times okay it is you, know what to do and then, it becomes better and better and. Also, Microsoft. Tooling is also getting better and better on this point, for. Instance the build is now in yellow billed. Gemma. Was also some, sort of Jason so that merges also pretty, good and they're. Also working on um, will release pipelines, so then. We don't have to declare do with declarative.
Declaratively. In, the. DevOps. But, we can do it in code and. Also. They, had the rhythm of the service. As. Your changes, very fast and, sometimes things, work and sometimes after, a while they don't work anymore because. You use, a preview. Preview. Version, or something, yeah. That's a choice you have but. Most. Of the time it has, really benefits, to use the preview. How. Did we do that. We. Make it. How. Did we do. It's. A picture. Taken for me during, Black Friday you can. See the actual spike, on Black Friday. We. Head around the. Mack spike was like sixteen, hundred orders. Per hour. That. Was pretty, good, the. Total, of orders run, through during the Black Friday marketing. Campaign, exceeded. The. Total. Orders of the, whole previous. Year. So. The. Numbers. Were, pretty good. And. The. Number of incidents. Zero. Actually. It was pretty boring. It had to be in the office at 7:00 every morning. And. I. Just looked at monitoring, and. It, was boring, but. Yet boring. Is good in, this case so. I could think about the. After Black Friday party we're, gonna travel. Some. Key takeaways. Logic. App service, integration. Combination. Of logic apps as a function, servers. It. Gives you really fast time to market, like I said we, built a whole system in, three months with three developers. It. Is pretty fast. It's. Really resilient they're really scalable we, proven, the scalability, and also, the resilience. In. The whole. Period. Before Black Friday we, only had one, one, incident. We. Couldn't fix and with. The help of, the. Microsoft, text, we. Found out it was a really. Low level in for our problem, in an age Azure data center, there, was a lot exhaustion. Or something I don't know what that means even but, they did you and. When, they fix that everything. No. Incidents at all. And. I, think, with. This case we have proven that. This digital technology. Is really capable. Of running really. Business get four critical systems. That's. It for, me. Please. Fill out feedback. And if there are any questions we have mics if you have a question we. Have four, minutes left so. If there are any questions. Please. Feel free. Otherwise. Thank, you for your attention and have, fun building logic apps. Hello. Okay, yeah of course I have, a question so, I saw you had, monitor. And, dashboards. So. Is that how you know you have a problems you always have to be watching the dashboards, is monitor, helping, you out and I. Mean. 10,000. Per hour I know that's your high end but I mean. That's a lot to figure out to find the bad ones yeah where you have to desperate we can also a set alerting rules so, we have only, critical, flaws we at alerting rules if you can set rules. Like if one. Or more app. Logic, apps fail within ten, minutes please. Send out a text message or send out an email you. Can automate, also those kinds of rules it's. Also in your monitoring. Capability. As well so you can proactively, be, but, everything, I would think every transaction, is important. So. You have to follow up on every bad, one don't you. It. Depends, it, depends. You. Can also automate, that again, so when you have have. An error for. Instance shoot. And. Take, it into the, customer. Care system and. Let, customer, care take care of it because yeah where, the user. Writes. His email, address wrong, email address for. Us it's an error because. We get an error back from a system yeah. How. You pick it up that's your but. You have to know, which. Problems. Connect, can can happen and, which, problems, shouldn't, happen and when. You see also, like. 10, 20, or failing, then you know something, major. Is happening you have to. Give. Your business. Access. To these your dashboards, just a technical, now, the, business also had, access. To to the desk but we created a separate despot for them and also. Even because, their financial. System was also, connected. Through Power bi you, can also export. This. Dashboard the law. Logan analytics in asia monitoring, you can export it to power bi as well so. They could also see okay this by financial. Current. State and also how, many orders was processed. O in, one power bi desert alright. I have to talk to you later about that good. So. Just a quick question you touched on this but in, making, the decision about as your functions, versus logic, apps yeah it looks like in this use case you've kind of had some correlated. Orchestration. That needed, to happen between events, within a particular container of, logic.
Is, That what drove your decision, that logic apps was more appropriate than this for for functions that might be something more like a fire-and-forget like is it a smell if you find yourself trying to orchestrate function. Calls, and string them together on your own should, I be looking at logic apps and you go down that path actually. It was the cold. Start in functions, as a functions, that trigger does, introduced. Starting logic, up in the first place, on. The right side I wouldn't, change it because. Like. I said business, understands, what's on the screen. Right. Business, doesn't on the city they. Forgave a lot of a lot of confidence to them it's, much more expressive in terms of what's happening and, every time it gets more, complicated, we stepped out to another function, but, the main flow was visible, in logic, apps okay. Thank, you. I'm, working with a customer that we're doing something similar mm-hmm. But migrating. From BizTalk, to. Logic. Apps and Azure functions, what. Did you do or did you do anything with customer, status because one of the things we're having an issue with is customers, wanting status and that. The issue. Between push/pull. When. Do we push status, and when do we pull it and where do we and not, wanting customers to come all the way back into. The infrastructure, mm-hmm, we get status so what we done is really push status, out to the edge so. We've got status. As updates, to happen we're pushing events, out that update the, table to status and customers go to that. To find out and we're maintaining table. Storage of all the status changes so if you want latest. Status you have the latest if you, want all the status, changes as it goes through the process that's. Out there and it's pretty much how you want it you know you can kind of slice it dice it do what you want it yeah, have. You guys done anything different, or saying anything different no, we left. Also all the state is in the edge okay. It's it's it's the responsible, of the other systems yeah they're, not responsible, stable, stateless okay, there was a good decision that, makes it so scalable, yeah, okay. You. Have to be very. Put. Your food down to, keep it that way yeah a logic app helped because developers, can't cheat yeah. Stateless. From. Themselves they can't cheat, that's. About it for me sorry. Any. Other questions please outside, the room I will be there in five minutes, thank. You.