Build microservices applications with a serverless architecture – BRK2027


>>THIS IS WORKING, RIGHT? FIRST OF ALL, THANK YOU VERY MUCH FOR BEING HERE, WE KNOW THAT THERE ARE A LOT OF SESSIONS GOING ON AT THE SAME TIME, SO WE APPRECIATE YOU HAVE DECIDED TO SPEND YOUR TIME HERE WITH US TODAY. JUST TO GIVE YOU AN OVERVIEW OF WHAT WE ARE GOING TO PRESENT TODAY, WE WANT TO COVER HOW WE CAN BUILD MICROSOFT SERVICES SOLUTIONS USING SERVERLESS TECHNOLOGIES IN AZURE. AZURE FUNCTIONS, THESE ARE GOING TO BE THE STARS OF THE SESSION TODAY. AND THIS IS A 200 LEVEL SESSION, WE ARE NOT GOING TO GO MUCH DEEP ON THIS TOPICS, WE WANT TO COVER A LOT OF DIFFERENT CONCEPTS, WE HAVE 45 MINUTES, WE’RE GOING TO TRY TO DO THAT IN THAT AMOUNT OF TIME. I’M GOING TO PLEASE ASK YOU TO HOLD YOUR QUESTIONS UNTIL THE END OF SESSION, WE ARE GOING TO BE HERE, WE HAVE TIME AFTER THE SESSION IF THERE ARE QUESTIONS WE DON’T HAVE TO ANSWER DURING THE SESSION, WE’RE GOING TO HAVE TIME AFTER THE SESSION IF WE NEED TO. WE WANT TO TRY TO COVER ALL THE CONCEPTS WE HAVE TODAY. THESE ARE THE POINTS WE WANT TO PRESENT TODAY. WE ARE GOING TO TALK A LITTLE BIT ABOUT THE CONVENT OF MICROSERVICES AND HOW IT FITS WITH A SERVERLESS APPROACH. WE ARE GOING TO BE IN THE SERVICES WITH FUNCTIONS. HOW ARE WE GOING TO USE THAT TO COMMUNICATION, HOW WE CAN DO O ON, STRAYS. AND HOW WE ARE GOING TO EXPOSE HALF OF OUR API OF MIKE SERVICES BUILT API, THOSE ARE THE TOPICS WE WANT TO COVER TODAY. THEN WE HAVE SOME RESOURCES FOR YOU SO YOU CAN TAKE A LOOK AFTER THE SESSION. SO A QUICK INTRO OF — NOT THAT QUICK, NOT THAT QUICK, NOT THAT QUICK. [ LAUGHTER ]>>THAT’S IT, THANK YOU VERY MUCH. THANK YOU. THANK YOU. OKAY. WE HAVEN’T EVEN STARTED AND WE ALREADY HAVE TROUBLE.>>OKAY, I JUST WANT TO GET A POLL OF THE CROWD HERE. JUST TO GET A SENSE OF WHO YOU ARE, WHO WE’RE TALKING TO, HOW MANY HERE ARE FAMILIAR WITH — HOW MANY OF YOU ARE USERS OF AZURE TODAY? OKAY. THAT’S GOOD. OKAY, HOW MANY OF YOU ARE USERS OF THE DIFFERENT SERVERLESS OPTIONS ON AZURE, LIKE AZURE FUNCTION, LOGIC APPS, AND HOW MANY OF YOU CONSIDER YOURSELVES DEVELOPERS? OKAY, GOOD NUMBER OF YOU. DATA ENGINEERS? INFRASTRUCTURE. OKAY, GREAT. YES, YOU’RE IN THE RIGHT PLACE, WE’RE GOING TO BE COVERING A LOT OF SORT OF BUZZ WORDY TYPE OF TOPICS, I BELIEVE IT WAS PROBABLY THE COMBINATION OF MIKE SERVICES AND SERVERLESS THAT BROUGHT YOU HERE, IT WASN’T MY NAME. BUT AT ANY RATES, WHAT WE ARE GOING TO BE SHOWING YOU IS SAMPLE REFERENCE ARCHITECTURE FOR MICROSERVICES USING SERVERLESS. THIS IS SOMETHING WE HAVE BEEN WORKING ON FOR THE PAST FEW MONTHS, IT’S SOMETHING THAT’S GOING TO BE RELEASED TO THE PUBLIC SEE SOON, IT INCLUDES ALL OF THE SOURCE CODE, YOU CAN STAND ALL OF THIS UP IN YOUR OWN ENVIRONMENT. THAT’S WHAT WE’RE GOING TO GIVE YOU A TASTE OF, JUST THE BROAD LEVEL, WHAT IS THE ARCHITECTURE, HOW DO THESE THINGS WORK TOGETHER, THAT SORT OF THINGS. ONE OTHER THING I WANTED TO — WELL, I’LL GO AHEAD AND LET HIM GET STARTED.>>GO AHEAD.>>WELL, SO, SORRY FOR THE INCONVENIENCE. THIS IS OUR MARKETING MANAGER FOR AZURE SERVERLESS, AND ALSO I AM WORKING ON THE MESSAGING FOR MICROSERVICES IN AZURE.>>AND AGAIN, JOEL HULEN, I HELPED DEVELOPING THE SOLUTION, AND WORK A LOT WITH AZURE, A LOT WITH MICROSOFT, AS WELL AS CUSTOMERS IN VERY DIFFERENT DISPAR AT INDUSTRIES.>>LET’S START WITH A QUICK INTRODUCTION ON THE CONCEPT OF MICROSERVICES. HAVE YOU WORK WITH MICROSERVICES ALREADY? WITH FUNCTIONS, HOW MANY ARE YOU FAMILIAR WITH IT, HAVE YOU ALREADY BUILT ANY OF THEM? OKAY, GOOD. SO MICROSERVICES IS AN ARCHITECTURAL APPROACH WE CAN USE TO BUILD OUR APPLICATIONS, IN THIS CASE OR THIS SYSTEM, ESPECIALLY, AND IN THIS CASE IT’S A GREAT FOR THE CLOUD NATIVE APPLICATIONS BECAUSE IT HELPS THESE APPLICATIONS TO TAKE FULL ADVANTAGE OF THE CLOUD BENEFITS LIKE THE AUTOMATIC — FLEXIBILITY, THE POSSIBILITY TO BE IN DIFFERENT SERVICES AND HOW THEY CAN WORK TOGETHER BETWEEN THEM. THIS IS THE RIGHT ARCHITECTURE TO BUILD BRAND NEW APPLICATIONS WE WANT TO HOST ON THE CLOUD. BEFORE THAT, WE HAVE THIS APPROACH IN WHICH ALL THE COMPONENTS OF THE APPLICATION WERE IN THE SAME PACKAGE, SO IF WE NEED TO SCALE THIS APPLICATION, WE NEED TO SCALE THE WHOLE PACKAGE. WE ARE GOING TO NEED TO DEPLOY MORE RESOURCES, PROVISION MORE RESOURCES, AND THIS IS GOING TO TAKE LONGER TIME AND THIS IS GOING TO TAKE MORE MONEY. WITH THESE APPROACHES, WE ARE GOING TO COMPOSE THIS MONOLITH IN THE SMALL INDEPENDENT SERVICES THAT ARE GOING TO BE BUILT — THEY CAN SCALE INDEPENDENTLY. SO IF WE HAVE JUST ONE PART OF OUR SOLUTION, WE DON’T NEED TO SCALE THE WHOLE SOLUTION, WE CAN SCALE ON THIS SERVICE. SOME OF THEIR BENEFITS AND SOME OF THE CHARACTERISTICS OF MICROSERVICES WHILE BUILDING OUR SERVICES, THAT THIS MODELS ARE GOING TO BE ONE FROM EACH OTHER. THEY ARE NOT GOING TO HAVE ANY DEPEND SEE BETWEEN THEM. I CAN TEST THEM ASK, DEPLOY THEM, DO ANYTHING I WANT WITH EACH OF THESE SERVICES, I DON’T HAVE ANY DEPENDENCY FROM ANY OTHER TEAM, OR ANY SERVICE WE HAVE ON THE APPLICATION. THIS WILL HELP ME TO MANAGE THE SECURITY OF MY SOLUTION, AS THOSE SERVICE WILL BE ISOLATED, IF I HAVE ANY POINT OF FAIL INJURY, I’LL BE ABLE TO IDENTIFY THE POINT OF FAILURE FASTER AND ACT ON THE SPECIFIC FAILURE FASTER AS WELL SO I CAN THIS SERVICE DOWN AND REPLACE IT, DO ANY CHANGES ON THIS SERVICE AND THIS WON’T AFFECT THE OVERALL PERFORMANCE OF MY APPLICATION, THIS IS ONE OF THE MAIN BENEFITS OF USING MICROSERVICES. ALSO, ON THE DESIGN-WISE ASPECT OF THESE APPLICATIONS, WE CAN RELY ON THESE SCALABILITY THEY WILL HAVE. IF I HAVE ONE OF THE SERVICES, I DON’T NEED TO SCALE THE WHOLE APPLICATION, I CAN SCALE THIS SERVICE. AND THOSE SERVICES ARE GOING TO BE THE COUPLED, BUT THEY ARE GOING TO BE A COMMON SHARED INTERFACE WITH AN API THAT WILL DEFINE THE WAY THESE SERVICES HAVE TO COMMUNICATE BETWEEN EACH OTHER, RIGHT? SO THEY ARE GOING TO HAVE THIS COMMON INTERFACE WE CAN USE WITH DIFFERENT TECHNOLOGIES, DIFFERENT LANGUAGES, IF WE NEED TO DO THAT ON OUR APPLICATION. SO THAT GIVES US THE FLEXIBILITY TO CHOOSE THE BEST TECHNOLOGY FOR EACH PART OF THE APPLICATION. SO IF WE HAVE ANY RESTRICTION, YOU’VE SEEN — USING ANY OF THE LANGUAGES OR IF ONE OF THE MEMBERS OF OUR TEAM DOESN’T KNOW HOW TO USE ONE PROGRAMMING LANGUAGE AND HAS TO USE ANOTHER, WE CAN DO THAT, WE CAN ADAPT TO THOSE NEEDS. IN ALL OF THIS, IT WILL HELP TO US MOVE FASTER THROUGH THE APPLICATION LIFE CYCLE, IT WILL ENABLE US TO DELIVER VALUE FASTER BECAUSE WE DON’T NEED TO WAIT FOR THE WHOLE TEAM OR WHOLE ORGANIZATION TO FINISH ALL THE CHANGES, IF I HAVE ANY FUNCTIONALITY ON MY SERVICE, I CAN PUSH IT AND DEPLOY IT AND PUBLISH IT FOR MY CUSTOMERS SO THEY CAN ENJOY IT FROM THE VERY MINUTE THAT I FINISH DEVELOPING IT. IN THE PREVIOUS APPROACH, WE NEED TO WAIT FOR THE WHOLE SOLUTION TO FINISH TO EVALUATE IT, TO BE INTEGRATED. WE NEED TO TAKE LONGER TIME TO DEPLOY ALL THESE NEW FEATURES, WITH THIS APPROACH WE CAN MOVE FASTER. WHEN I WAS LEARNING ABT THE BENEFITS OF MICROSERVICES ARCHITECTURE, IT WENT STRAIGHT TO [INDISCERNIBLE] I THINK IT FITS RIGHT IN, OBVIOUSLY WE ARE TALKING ABOUT SCALABILITY, IT CAN BE AUTOMATICALLY AND BE FLEXIBLE TO THE WORKLOAD I HAVE ON MY APPLICATION, THIS IS SOMETHING, THE AZURE PLATFORM IN THIS CASE, WILL HANDLE FOR ME IF I TAKE A SERVERLESS APPROACH. I DON’T NEED TO WORRY ABOUT ANY NODES, ANY INFRASTRUCTURE THAT MY SOLUTION IS GOING TO BE HOSTED IN. THE PLATFORM WILL HANDLE THAT FOR ME AS WELL. I HAVE TO WORRY ABOUT MY CODE, ABOUT MY BUSINESS LOGIC, AND I NEED TO FOCUS ON WHAT IS IMPORTANT TO ME, WHICH IS MY APPLICATION, I DON’T WANT TO FOCUS ON EVERYTHING. WE HAVE FLEXIBILITY IN THE NUMBER OF SERVICES WE HAVE ON THE PLATFORM TO DEPLOY MICROSERVICES, WE’LL TAKE A LOOK ON THE NEXT SLIDE. THE DIFFERENT LANGUAGES, THE DIFFERENT PLATFORMS, THE DIFFERENT TECHNOLOGIES I CAN USE TO BUILD THE SERVICES, THE DEVELOPMENT ENVIRONMENTS WE CAN JUST — BECAUSE I CAN BE WORKING WITH WINDOWS MACHINE AND HAVE ANOTHER TEAM WORKING WITH [INDISCERNIBLE] WE CAN WORK ON THE SAME APPLICATION USING THE SAME SERVICES, AND THEY ARE GOING TO WORK — THEY ARE GOING TO WORK RIGHT TOGETHER. AND THIS APPROACH, HAS THE SEVEN DRIVEN MODEL I CAN TAKE ADVANTAGE OF TO USE THESE TRIGGERS AND BINDINGS TO MAKE IT EASY FORRIER FOR ME TO COMMUNICATE WITH SERVICES BETWEEN EACH OTHER. I DON’T HAVE TO CODE ALL — I DON’T WANT TO USE — I DON’T NEED TO DO ANY OF THAT ON MY CODE BECAUSE THE PLATFORM IN THIS CASE, ESPECIALLY AZURE FUNCTIONS AS WE ARE GOING TO SEE TODAY, THE PLATFORM WILL TO THAT FOR ME SO JUST TO MAKE SURE THAT WE HAVE IN MIND WHY THIS IS A GREAT FIT, THE SCALING OF THE RESOURCES AND THE OPERATIONS PART OF THE DEPLOYING MY APPLICATION, THIS IS SOMETHING THAT I DON’T NEED TO WORRY ABOUT IF I TAKE A SERVERLESS, THE PLATFORM WILL DO THAT FOR ME, AT THE SAME TIME, WHEN I HAVE TO DEPLOY THAT, WHEN I HAVE TO WORRY ABOUT THE INFRASTRUCTURE, MOST OF THE TIMES I AM PROVISION EXPLORING RESOURCES THAN I NEED, JUST TO BE SURE THAT I’M GIVING THE RIGHT SERVICE TO MY CUSTOMERS. AND THAT MEANS THAT I SPEND EXPLORING MONEY, MORE MONEY THAN I NEED, SPEND EXPLORING MONEY THAN MY APPLICATION COSTS TO ME ACTUALLY. SO WITH THE SERVERLESS APPROACH, I’LL PAY FOR THE EXECUTION, I’LL PAY EXACTLY HOUR THE USAGE THAT MY APPLICATION IS GETTING, AND I’M NOT WASTING ANY RESOURCES AT ALL, I’M RIGHT ON POINT ON THE MONEY I’M SPENDING ON MY APPLICATION IS EXACTLY THE ONE I NEED TO SPEND ON THE SOLUTION. FOR APPROACH IN THIS CASE, FOR THE SIGN OF THE SOLUTION, WHEN I’M THINKING ABOUT SERVICE DISCOVERY AND THE SERVICE INTEGRATION, WHEN I’M WORKING WITH MICROSERVICES, BECAUSE THEY NEED TO COMMUNICATE BETWEEN EACH OTHER, I CAN TAKE ADVANTAGE OF THESE MODEL, I CAN TAKE ADVANTAGE OF THE TRIGGERS AND BINDINGS, WE’LL SEE HOW THEY WORK, AND I CAN SAVE SOME TIME WHILE CODING — WHILE DOING THE CODE OF MY SOLUTION. BUT AGAIN, THIS IS NOT A SILVER BULLET. THIS IS NOT THE ONLY APPROACH OR THE BEST APPROACH, THIS IS JUST ONE OF THE APPROACHES WE CAN TAKE TO BUILD MICROSERVICES, WE HAVE SOME OTHER GREAT PRODUCTS IN AZURE, LIKE SERVICE FABRIC, WHICH IS ESPECIALLY FOR THE SOLUTIONS, OR WE HAVE ALSO AKS, WHICH IS GOING TO GIVE YOU FULL SERVICE OF YOUR KUBERNETES CONTAINERS, BUT IN THIS SITUATION, WE ARE GOING TO FOCUS ON THIS, SO WE’LL BUILD ON TOP OF FUNCTIONS IN THE COMPUTE PARTS AND HAVE SOME OTHER SERVICES HELP US WITH COMMUNICATION, BUT, AGAIN, THIS IS NOT THE ONLY APPROACH, IT’S JUST ONE, IF IT FITS FOR US AND OUR SCENARIO TO USE THIS PROGRAMMING MODEL, THIS IS A GOOD WAY TO BUILD THOSE SERVICES BECAUSE, AS WE HAVE SEEN. SO WE ARE GOING TO GO THROUGH VERY QUICK L THIS SOLUTION WE HAVE BEEN WORKING ON, AND THIS WILL BE THE MAIN BUILDING BLOCKS THAT WE ARE GOING TO NEED FOR EVERY MICROSERVICES SOLUTION, WE NEED A GATEWAY SO WE CAN EXPOSE OR END POINTS TO OUR CUSTOMERS AND WE NEED THE ENTRY POINTS WHICH ARE GOING TO BE THE PUBLIC END POINTS THE APPLICATION THAT THE CLIENT PART OF MY APPLICATION IS GOING TO USE, WE’LL NEED PROBABLY A ORCHESTRATER, THESE SERVICES NEED TO WORK AND I NEED TO MANAGE HOW THEY ARE WORKING TOGETHER. I’M GOING TO NEED A MESSAGING CUE OR ANY SERVICE THAT WILL HELP ME TO COMMUNICATE THESE SERVICES BETWEEN EACH OTHER, IN THIS CASE WE’LL USE — WE WILL BASE OUR COMMUNICATION IN MESSAGES AND IN EVENTS, AND THEN WE’LL HAVE THESE BACK END SERVICES THAT THE CUSTOMERS ARE NOT GOING TO SEE AT ANY POINT, THIS IS THE SERVICES THAT MY ORCHESTRATER IS GOING TO INVOKE WHEN I NEED TO PERFORM ANY OPERATIONS, LIKE IF I NEED TO PERFORM ANY ACTION ON MY DATABASES OR ANY OTHER OPERATION THAT ARE ON THE BACK SIDE OF MY APPLICATION, BUT I DON’T WANT MY CUSTOMERS TO BE EXPOSED WITH. WITH THAT, I’M GOING TO HAND THE PRESENT TO JOEL TO GO OVER THE SOLUTION.>>SO THIS IS WHAT RELLA CLOUD, IT’S A FICTIONAL NAME. THEY WANTED TO CREATE A RIDE SHARE APPLICATION BECAUSE THEY’RE SICK AND TIRED OF ECOMMERCE DEMOS, THEY WANT TO COMPETE WITH THE LINES OF UBER AND LYFT AND THE OTHERS, WHAT THEY’VE DONE, THEY’VE CREATED THIS SPA SINGLE PAGE APPLICATION USING VIEW JS, ANY VIEW JS FANS IN HERE? THIS IS THE FRONTAGE, IT’S STATIC, HOSTED AS A WEB APP I CONTENT SIGN IN. SO I NEED TO LOG IN, BECAUSE THESE PAGES ARE PROTECTED. WE’RE USING AZURE ACTIVE DIRECTORY BDE. WHAT THIS ALLOWS US TO DO, IT CAN ALLOW CUSTOMERS TO JUST SIGN UP FOR A NEW ACCOUNT, IF THEY WANT, SO IT’S SELF-SERVICE. IT ALLOWS TO US MAINTAIN CUSTOMER DATA OUTSIDE OF OUR OWN SOLUTION. SO WE DON’T HAVE TO STORE THEIR CREDENTIALS, WE DON’T HAVE TO STORE THEIR ADDRESS AND THAT OTHER INFORMATION, THAT CAN BE PART OF THE PROFILE, I’LL JUST LOG IN HERE. OKAY. SO THIS FIRST SCREEN HERE, PASSENGERS, THIS IS CALLING A FUNCTION APP AS A PASSENGER’S FUNCTION APP, AND IT DID A QUERY USING MICROSOFT GRAPH. I CAN CLICK ON ONE OF THESE CUSTOMERS AND VIEW THEIR ADDRESS INFORMATION AND THE LIKE, IF I GO TO DRIVERS, THAT DOES A CALL TO A DIFFERENT FUNCTION APP. THIS IS THE DRIVER’S FUNCTION APP, AND THIS DATA IS BEING PULLED FROM COSMOS DB. RIGHT NOW YOU CAN SEE EACH DRIVER HAS THEIR OWN CODE, WHICH IS UNIQUE TO THEM. IT ALSO HAS THEIR LOCATION AND WHETHER THEY’RE SELECTING OR ACCEPTING RIDES, AND IF I CLICK ON THEM, I CAN VIEW WHAT CAR THEY HAVE, WHICH IS USEFUL FOR A PASSENGER TO KNOW WHAT TO LOOK FOR. AND THEN THE FINAL PART HERE IS WHERE YOU ACTUALLY START YOUR TRIP. WE’RE GOING TO GO THROUGH THIS IN JUST A MOMENT, AFTER GORKA TALKS ABOUT DO YOU RECALL FUNCTIONS AND OTHER THINGS.>>SO THEY’RE GOING TO START TALKING ABOUT HOW WE CAN BUILD THE SERVICES USING FUNCTIONS, AND LET’S START WITH — LET’S START FRAMING SO WE KNOW WHAT WE NEED FOR OUR SERVICES, SMALL ENOUGH TO TAKE CARE OF ONE TEST, VERY SPECIALIZED, WE NEED — TAKING IT FROM THE FOLDER, ALL MY BUSINESS LOGIC I WANTED MY FUNCTIONS IN THIS CASE, I WANT TO KEEP THE COMMUNICATION BETWEEN THE SERVICES, AS MUCH SIMPLE AS POSSIBLE, IN THIS CASE WE ARE GOING TO BASE IT ON EVENTS ASSIGNMENTS AND BEFORE. THESE WASES IS ARE THE COUPLE AND NEEDS TO SCALE INDEPENDENTLY, THEY DON’T NEED TO RELY ON ANY OTHER SERVICE TO SCALE. THEY NEED TO BE AUTONOMOUSLY DEPLOY. I CAN DEPLOY THE SERVICE TO ONE SERVICE WITHOUT IMPACTING THE OTHERS. LET’S KEEP THAT IN MIND WHEN I BUILD SERVICES. WHEN I CHARACTERISTICS OF A MICROSERVICES, I AUTOMATICALLY WAS THINKING ABOUT THE FUNCTION AS A SERVICE MODEL, USING FUNCTIONS FOR THE TRUE SERVERLESS COMPUTE, BECAUSE THESE FUNCTIONS ARE GOING TO BE SMALL PIECES OF CODE THAT WILL BE VERY SPECIALIZED IN WHAT THEY DO, WE DON’T WANT THEM TO DO THE SAME FUNCTION, WE WANT TO KEEP THEM SHORT, KEEP THEM ABLE TO BE EXECUTED ON A SHORT PERIOD OF TIME AND WE DON’T WANT THEM TO HAVE OPERATIONS AT THE SAME TIME. THESE FUNCTIONS ARE GOING TO BE STATELESS, THEY WON’T PERSIST AT ANY GIVEN POINT, A STATE OF PREVIOUS EXECUTIONS ON MY FUNCTION, THEY WILL BE JUST AS THEY ARE. THEY ARE GOING TO BE HIGHLY SCALABLE, THEY WILL BE A SCALE BASED ON THE NUMBER OF REQUESTS, AND EXECUTIONS THAT I REQUIRE BY MY SOLUTION. SO THE CENTER PIECE OF OUR SERVERLESS PLATFORM IN AZURE WILL BE AZURE FUNCTIONS. FOR US, FUNCTION, FIRST PLUS PLUS, BECAUSE WE HAVE ALL THESE CHARACTERISTICS, ALL THESE BENEFITS WE HAVE SEEN ON THE PREVIOUS SLIDE, BUT ON TOP OF THAT, WE HAVE SOME OTHER ADVANTAGES LIKE THE MODEL I’M GOING TO SHOW YOU, HOW WE CAN USE THESE TO MAKE OUR LIFE EASIER WHILE MAKING OUR APPLICATION, WE WILL HAVE A GREAT DEVELOPMENT EXPERIENCE WITH DIFFERENT TOOLS, WE’LL BE ABLE TO RUN OUR FUNCTIONS LOCALLY AND THE — BACK THEM LOCALLY BEFORE GOING TO THE CLOUD, THAT WILL HELP US SAVE SOME TIME BECAUSE WE DON’T NEED TO DEPLOY EVERY CHANGE WE ARE DOING TO SEE IF IT PERFORMS WELL OR NOT, THIS IS USING THE EXACT SAME RUN TIME IT’S USING ON THE CLOUD, THE SAME EXACT ONE ON MY PC. SO I CAN TEST IT ON MY OWN MACHINE. THAT’S A DIFFERENT HOSTING OPTIONS, I WON’T SPEND A LOT OF TIME HERE. WE HAVE THE CONSUMPTION PLAN IN FUNCTIONS, THE PURE SERVERLESS ONE, BUILT FOR THE NUMBER OF EXECUTIONS YOU HAVE. IF FOR WHATEVER REASON YOUR APPLICATION NEEDS TO AVOID ANY LAG ON THE FIRST REQUEST YOU DO FOR YOUR FUNCTION OR YOU NEED TO HAVE DEDICATED RESOURCE, YOU HAVE DEDICATED RESOURCES AND YOU DON’T HAVE THE COLD START AND YOU HAVE SOME OTHER FEATURES YOU CANNOT USE RIGHT NOW ON THE — WE ARE WORKING ON ANOTHER PLAN THAT WILL HAVE THE BEST OF BOTH WORLDS. I’LL POINT YOU TO THE BLOCK WE PUBLISH ON MONDAY WE ARE PRESENTING ON THIS SPACE. THIS PROGRAMMING MODEL I’VE BEEN TALKING ABOUT WORKS, LET’S SAY WE HAVE A FUNCTION TRIGGERED BY AN ATTP REQUEST, THIS REQUEST WILL HAVE SOME INFORMATION IN THE BODY OR HEADERS OR WHATEVER, IT HAS THE INFORMATION, AND I CAN USE — I HAVE ON MY FUNCTION WHEN I INTEGRATE THIS FUNCTION, I ALREADY HAVE — SO I DON’T HAVE TO CALL THIS, THIS IS ALREADY DONE FOR ME, THEN I CAN GET THE INFORMATION FROM THIS, FROM THIS OBJECT AND I CAN USE AN INPUT BINDING, FOR EXAMPLE, TO GET THE ID FROM THE REQUEST, GO TO THE DATABASE AND GET THE WHOLE OBJECT I HAVE ON MY DATABASE, I DON’T NEED TO WRITE THE QUERY, I DON’T WRITE ANY LINES OF CODE FOR THAT, THIS IS ALREADY DONE BY THE FRAMEWORK, BY THE RUNTIME, WHEN I SET THE INPUT BINDING, THE SAME WAY, I HAVE AN OUTPUT BINDING IN WHICH I’LL BE ABLE TO CREATE AN OBJECT PUSHING TO ANOTHER STORED SERVICE. I DON’T HAVE TO USE AN SDK, I DON’T HAVE TO USE ANY LIBRARY, I HAVE TO CREATE AN OBJECT AND PUT IT ON THIS BINDING AND THE RUNTIME WILL SEND THE OBJECT TO THE RIGHT PLACE. I’LL SHOW YOU LATER ON IN A DEMO THAT WE HAVE. USUALLY IT FUNCTIONS, 100 PERCENT A SINGLE MICROSERVICES, OKAY, BUT ONE FUNCTION CAN HAVE MORE THAN ONE INDIVIDUAL FUNCTION, SO IN THIS CASE, WE CAN THINK OF THE FUNCTION AS AN API, WHICH IS GROUPING DIFFERENT END POINTS THAT ARE WORKING TOGETHER. THAT MEANS THAT IF I’M GETTING A LOT OF REQUESTS TO ANY OF THE EDGED POINTS ON THE SAME FUNCTION APP, IT SCALES IS THE FUNCTION ATMOSPHERE LEVEL. IT DOESN’T — SO I NEED TO PLAN MY DESIGN BASED ON THIS BECAUSE THE FUNCTION APP IS THE UNIT OF DEPLOYMENT AND SCALING ON FUNCTIONS, AND ALSO WHEN I’M DESIGNING MY FUNCTIONS, AND I NEED TO KEEP IN MIND THAT — [INDISCERNIBLE] THAT EACH OF THESE FUNCTION APPS, I HAVE TO CREATE THEM USING JUST ONE PROGRAMMING LANGUAGE. BEFORE THE 2.0 VERSION THAT WE USE, YOU CAN USE DIFFERENT LANGUAGES ON EACH INDIVIDUAL FUNCTIONS THAT YOU HAVE INSIDE THE FUNCTION APP, BUT NOW WITH THE 2.0 VERSION, YOU CAN ONLY USE ONE PROGRAMMING LANGUAGE, WE CAN HAVE THE ISOLATION, WE WANT IN MICROSERVICES, IF YOU WANT TO KNOW MORE ABOUT THIS, THERE’S A WONDERFUL PRESENTATION TOMORROW FROM OUR PERMITTING TIME, I THINK IT’S AT 9:00 A.M. TOMORROW, THEY’RE GOING TO GO THROUGH WHAT IS GOING ON BEHIND THE SCENES ON FUNCTIONS AND TALK ABOUT THE PROGRAMMING LANGUAGE WORK THAT WE HAVE SO YOU CAN UNDERSTAND HOW IT WORKS ON THE INSIDE. OF COURSE, WE CAN SCALE BACK TO ZERO AT ANY POINT IF I DON’T HAVE ANY ACTIVITY ON MY APPLICATION, I DON’T NEED TO PAY FOR ANY RESOURCES, AS WE MENTIONED BEFORE. AND IN TERMS OF THE LANGUAGES THAT YOU CAN USE WHILE BUILDING FUNCTIONS, NOW YOU HAVE .NET, AND JS, FOR ALL THE FUNCTIONS THAT YOU ARE BUILDING, WE HAVE JAVA IN PUBLIC PREVIEW AND WORKING ON THE GA FOR THAT, WHICH WILL HAPPEN AT ANY POINT BEFORE THIS YEAR ENDS, WE HAVE A PRIVATE PREVIEW FOR PYTHON THAT YOU CAN SIGN UP FOR, IT’S ALL THE INFORMATION ON THE BLOG POST THAT I TOLD YOU FOR MONDAY THAT I’M GOING TO POINT YOU LATER, YOU CAN SIGN UP FOR THIS AND STUDY PYTHON IF YOU NEED THAT FOR YOUR APPLICATIONS. SO OKAY, I ALREADY HAVE MY SERVICES, I’M BUILDING ON TOP OF FUNCTIONS, I’M GOING TO DO A QUICK DEMO AFTER THIS, I NEED THEM TO TALK TO EACH OTHER, I NEED TO COMMUNICATE THESE SERVICES BETWEEN EACH OTHER. IF I’M NOT CENTRALIZING THIS COMMUNICATION, IF I’M DOING A SERVICE TO SERVICE COMMUNICATION WITHOUT CENTRALIZING IT, THOSE SERVICE ARE GOING TO BE HIGHLY COUPLED, AND IF I’M DOING ANY CHANGES OF ANY OF THE SERVICES, IT WILL AFFECT THE OTHER SERVICES. THAT IS EXACTLY WHAT I AM TRYING TO AVOID USING MICROSERVICES APPROACH. IN THIS CASE, WE ARE CENTRALIZING ALL THE COMMUNICATION ON EVAN GRID, WHICH IS GOING TO HAVE EVAN PUBLISHERS OR CONSUMERS. THE IDEA IS TO HAVE ONE SERVICE PUBLISHING EVENTS, I DON’T NEED TO HAVE ALL THEIR — THAT’S WHAT IS GIVING ME THE COUPLING I HAVE FOR MY SERVICES IN THIS TYPE OF ARCHITECTURE, I’LL SHOW YOU LATER, WE HAVE TO DIFFERENT KIND OF EVENTS, IN THE GRID, WE USE THE EVENTS COMING FROM FIRST PARTY SERVICES FROM AZURE, EVERY TIME I’M DROPPINGS A FILE ON BLOB STORAGE, THIS IS CREATING AN EVENT I’M CREATING, AND I CAN ASCRIBE A FUNCTION TO THAT EVENT TO PERFORM ANY ACTION ON THIS FILE, BUT I CAN ALSO USE A CUSTOM EVENT I’M CREATING. I CAN PUT THE DATA I WANT ON THAT EVENT. I CAN PUSH IT TO A CUSTOM TOPIC AND THEN I CAN SUBSCRIBE TO THAT EVENT I JUST CREATED, IT’S NOT ON THE PLATFORM THAT I JUST CREATE TO USE TO IT COMMUNICATE THESE SERVICES BETWEEN EACH OTHER. FOR THAT, WE HAVE TWO DIFFERENT SCHEMAS TO USE, THE ONE WE HAVE IN AZURE, WHICH IS THE ONE THAT OUR SERVICES ARE USING RIGHT NOW, THE AZURE SCHEMA, BUT WE HAVE ALSO THESE CLOUD EVENTS OR SCHEMA WHICH IS INDUSTRY STANDARD IN WHICH A LOT OF DIFFERENT COMPANIES HAVE BEEN WORKING ON, LIKE AWS, GOOGLE, IBM AND MICROSOFT AS WELL. SO THAT IS GOING TO ALLOW US TO ALSO CREATE MULTI CLOUD SOLUTIONS, WHICH IS GREAT BECAUSE MOST OF THE COMPANIES HAD ALREADY BUILDING THIS KIND OF SOLUTIONS BECAUSE YOU DON’T WANT TO RELY JUST THAT MUCH ON ONE PROVIDER, THIS SERVICE IN PARTICULAR WILL — FOR EXAMPLE, A PROCESS, ANY EVENT COMING FROM S2 IN AMAZON, I CAN DO THAT RIGHT NOW USING THIS — THIS SCHEMA. SO ASSIGNMENTS HERE, I CAN TWO DIFFERENT KIND OF EVENTS, LET ME SHOW YOU QUICKLY HOW WE CAN DO THAT. I’M GOING TO START ON VISUAL STUDIO CODE. I’LL START ON BUSINESS STUDIO CODE — VISUAL STUDIO CODE, ON JAVASCRIPT, AND I AM PUBLISHING A CUSTOM EVENT, PUBLISHING A CUSTOM EVENT TO ONE OF MY CUSTOM TOPICS, SO I’M DECIDING THAT I’M PUTTING — THIS IS GOING TO HAPPEN HTTP, SO THE INFORMATION I’M GOING TO PUSH AS THE DATA PAYLOAD ON THE EVENT, AND I’M SAYING THAT THIS IS EVENT, AND THIS IS THE TOPIC THAT I’M PUBLISHING THIS EVENT TO. OKAY, SO I CAN USE POSTMAN FOR EXAMPLE, TO DEBUG THIS APPLICATION. LET ME RUN IT LOCALLY FIRST. SO THIS IS RUNNING THE FUNCTIONS CODE TOOLS, RUNNING THE SAME EXACT RUN TIME IN THE CLOUD, RUNNING IT ON YOUR COMPUTERS, NOW I’LL DEBUG MY FUNCTION ON MY PC. MY COMPUTER, AS YOU CAN SEE HER, I HAVE THREE DIFFERENT END POINTS I CAN FIT. THEY’RE FUNCTIONS, I’LL USE THIS ONE RIGHT NOW, BECAUSE IT IS THE ONE CREATING THIS CUSTOM EVENT. SO I’M GOING TO POSTMAN, AND I ALREADY HAVE — I ALREADY HAVE MY — MY REQUEST CREATED HERE. THIS IS RUNNING LOCALLY, AND I’M JUST PUTTING THE ORDER ID, AND THAT’S ALL THAT IS ON THE INFORMATION, IF I HIT SEND, THAT IS SEND A REQUEST TO MY FUNCTION, AS YOU CAN SEE, IT’S ABLE TO HIT A BREAK POINT AN VISUAL STUDIO CODE, SO I CAN GO THROUGH THE EXECUTION AND I CAN SEE WHAT I HAVE, FOR EXAMPLE HERE, ON THE DATA PAYLOAD. WHICH IS THE INFORMATION I HAVE ON THE REQUEST, OKAY, SO THIS IS PUSHING THIS — THIS EVENT, AND THEN I WANT TO HAVE SOME OTHER SERVICES CONSUMING THIS EVENT, IF I CHANGE, I GO TO AZURE REPORTER, AND IN THIS CASE I’M GOING TO COSMOS DB. I HAVE ONE FOR REVIEW, ONE FOR ORDERS AND ONE FOR PRODUCTS, IF I GO TO ORDERS ONE, IT WILL BE EMPTY, BECAUSE I HAVEN’T SENT ANY EVENT YET, I HAVEN’T SENT ANY OTHER TO THIS TOPIC WHILE THE FUNCTION — I’M GOING TO CREATE A FUNCTION THAT IS GOING TO BE LISTEN — IT’S GOING TO STORE THIS DATA, IT’S GOING TO STORE IT ON THE DATABASE. SO I’M GOING TO CREATE A NEW FUNCTION HERE. I’M GOING TO USE THE VAN TO RETRIEVE IT, I’M SUBSCRIBING TO AN EVENT. AND NOW I CAN GIVE IT WHATEVER NAME I WANT, I CAN CREATE IT. ONE, I NEED THIS FUNCTION TO THE VAN WITH TOPIC I WANT TO SUBSCRIBE TO. I NEED TO SET THE OUTPUT BINDING FOR COSMOS DB. I NEED TO PUT ONE SINGLE LINE OF CODE TO STORE MY DATA IN COSMOS DB. I’M GOING TO START HOOKING UP THE FUNCTION TO THE VAN GRID. I CAN GIVE IT WHATEVER NAME I NEED. I’M SUBSCRIBING TO AN EVAN GRID TOPIC, IT’S ON MY SUBSCRIPTION, IN THE SAME RESOURCE GROUP, IT’S THE ONLY INSTANCE I HAVE. SO THIS IS — THIS IS CONNECTING MY FUNCTION WE VAN GRID. LET ME GIVE THE INFORMATION FROM VISUAL STUDIO CODE AND I CAN GO HERE TO THE FILES — AND YOU CAN SEE, I ALREADY HAVE A BINDING SET UP FOR MY FUNCTION, WHICH IS THE INPUT, IT’S THE INPUT BINDING FOR AN EVAN GRID EVENT, NOW I’M GOING TO SET UP ANOTHER ONE, THIS IS GOING TO BE AN OUTPUT BINDING BECAUSE I WANT TO PUT THE OUTPUT TO COSMOS. THE ONLY THING I’M CHANGING IS THE NAME OF THE COLLECTION IN WHICH I’LL STORE THE DATA. SO WHEN THIS IS DONE, THE ONLY THING I NEED TO DO IS TO SET UP THE CODE TO PUSH THE CONTENT TO COSMOS DB. SO I JUST NEED CONTEXT.BINDINGS.ORDER, AND THIS IS GOING TO BE THE EVAN GRID EVENT. I’LL SEND THE WHOLE EVENT TO COSMOS DB. I HAVE TO CLOSE THE OPERATIONS THAT I’M DOING. I’M GOING TO SAVE THESE. LET ME REVIEW — [INDISCERNIBLE] I’M GOING TO BE BACK. I NEEDED TO CHANGE THIS. THANK YOU VERY MUCH. OKAY, SO NOW, IF I DO THE SAME THING, IF I JUST SENT AN EVENT TO EVAN GRID, THIS IS MY INPUT, STILL RUNNING LOCALLY, BUT IT’S SENDING THE EVENT TO THE EVAN GRID ON THE CLOUD, YOU CAN SEE THE FUNCTION HAS ALREADY EXECUTED. AND IT’S EXECUTING WITH THIS EVENT THAT I’M GETTING FROM EVAN GRID. AND IF I GO TO COSMOS DB AND REFRESH THE LIST OF THE DOCUMENTS THAT I HAVE THERE, IN ANY MINUTE, I SHOULD SEE THIS — ALL THE INFORMATION ALREADY ON THE COSMOS DB DATABASE. LET’S GIVE IT SOME TIME. IT HAS ALL THE INFORMATION. IT HASN’T FINISHED PROCESSING. SHOULD BE ON AT ANY POINT. THEIR WE GO. HERE WE CAN SEE IT’S LOGGING THE INFORMATION I GOT FROM MY EVENT, AND THEN IF I GO TO COSMOS DB, I HAVE THE DOCUMENT WITH ALL THE INFORMATION COMING FROM THE EVENT. YOU HAVE SEEN I JUST NEED TO — I USE — I JUST PUT ONE LINE OF CODE AND SET UP A BINDING ON THE FUNCTION SETTINGS, THAT’S ALL I NEED TO DO FOR THAT. LET’S GO BACK TO THE PRESENTATION. SO THIS IS THE SCHEMA YOU CAN USE FOR THE EVENTS, YOU CAN LOOK AT THIS IN THE PRESENTATION, THIS IS WHAT WE ARE PUSHING THESE EVENTS. THE IDEA I WANT TO HIGHLIGHT HERE, I CAN HAVE THE COUPLE SERVICES USING THESE KIND OF COMMUNICATION BECAUSE I’M PUSHING THE EVENTS TO ONE PLACE, THEN I CAN ADD TWO MODELS THAT ASCRIBE TO THESE EVENTS. I DON’T NEED TO WORRY ABOUT THE CODE I ALREADY WROTE FOR THE REST OF THE COMPONENTS. SO THIS WAS THE INTRODUCTION FOR MY DEMO, AND OKAY, WE HAVE — AS STATED SERVICES ALREADY DONE, BUT WHAT IF I NEED TO DO ANY OPERATION THAT REQUIRES TO PERSISTENT STATE OR REQUIRES TO BE RUNNING FOR A LONGER TIME. FOR EXAMPLE, I NEED TO CHANGE DIFFERENT FUNCTIONS TOGETHER OR DO A FINAL OR I NEED TO WAIT FOR ANY HUMAN INTERACTION SO MY MANAGER, FOR EXAMPLE, NEEDS TO APPROVE ANYTHING FOR ME, THAT’S SOMETHING THAT I COULDN’T ACHIEVE WITH FUNCTIONS UNTIL WE GOT THIS EXTENSION TO THE RUNTIME, WHICH IS CODE FUNCTION, I’LL SHOW YOU HOW IT WORKS AND THEN JOEL WILL DO A GREAT DEMO ABOUT IT. I NEED TO CLOSE THIS FIRST ABOUT IT. THIS IS NOT GOOD FOR HELLO WORLD SCENARIOS, DON’T DO IT AT HOME, WE DON’T NEED TO DO IT. THIS IS FOR EDUCATIONAL PURPOSES, IT IS A GOOD WAY TO SHOW HOW IT WORKS, IT IS NOT WHAT THIS IS DESIGNED FOR. SO WE ARE GOING TO HAVE THREE DIFFERENT COMPONENTS, ORCHESTRATER FUNCTIONS, WHICH WILL BE HANDLING THE WHOLE WORKFLOW, THE FUNCTION THAT IS ACTUALLY DOING THE WORK AND EXECUTION OF HISTORY, WHICH IS WHERE THE STATE IS GOING TO BE PERSISTED. WE ARE TREATED IN THE ORCHESTRATER FUNCTION, IT STARTS ON THE FIRST LINE AND SAY I NEED TO CALL THE HELLO FUNCTION WITH THE PARAMETER I’M POSTING. IF I ALREADY HAVE THIS ACTIVITY DONE, I JUST GO THERE — BUT AS I SEE THAT THIS ACTIVITY HAVEN’T BEEN TREATED YET, I NEED TO CALL THE FUNCTION ITSELF. SO I’M CALLING THE ACTIVITY FUNCTION, AND I’M GOING TO SLEEP AGAIN, WHICH IS THE PROGRAMMING MODE FOR SERVERLESS, I DO MY FINK, GO BACK TO SLEEP SO I DON’T WASTE ANY RESOURCES. SO ACTIVITY FUNCTION IS GOING TO WAKE UP, TAKE THE PARAMETER, DO ITS THING, CREATING AN — IT’S GOING TO GO TO SLEEP AGAIN, BECAUSE IT’S WHAT IT’S SUPPOSED TO DO. THE ORCHESTRATER FUNCTION IS GOING TO BE TRIGGERED, START FROM THE BEGINNING, GOING TO GO THROUGH THE LINE AND THROUGH THE EXECUTION HISTORY AND SEE IF THIS ACTION HAS ALREADY BEEN PERFORMED. IT’S ALREADY BEEN PERFORMED, IT’S GOING TO GET THE RESULT AND IT’S GOING TO PUT IT ON THE OUTPUT, AND THAT’S ALL YOU NEED TO DO. OKAY, THIS IS KIND OF HOW IT WORKS, HOW THE EXTENSION WORKS ON THE INSIDE. SO NOW JOEL WILL GIVE YOU A REAL EXAMPLE ON HOW THIS WORKS.>>PICKING UP WHERE WE LEFT OFF. A FEW THINGS ABOUT WHAT’S GOING TO HAPPEN HERE AND WHAT’S GOING ON, THE CORE OF THE SOLUTION IS DURABLE FUNCTIONS, YOU CAN THINK OF DURABLE FUNCTIONS AS STATEFUL, AS GORKA SAID, SORT OF LIKE STATEFUL ACTORS, IF YOU’RE AT ALL FAMILIAR WITH SERVICE FABRIC, YOU KNOW THAT USES STATEFUL ACTORS, THIS IS SORT OF SIMILAR IN THAT WAY, EXCEPT NOT AS MUCH SETUP, WHAT WE’RE GOING TO DO HERE, I AM THE CUSTOMER, I’M GOING TO GO AHEAD AND SELECT MY PICKUP LOCATION, WHERE I WANT TO GO, AND THEN HIT REQUEST DRIVER. AND THEN WHAT THAT’S GOING TO DO SO WE KIND — SO WE KIND OF WENT QUICKLY THROUGH THIS DIAGRAM HERE. BUT WHAT WE HAVE IS THE REQUEST GOING THROUGH API MANAGEMENT TO THE TRIP’S API MICROSERVICES, AND THEN WHAT HAPPENS IS, THAT PERSISTS THE INFORMATION COSMOS DB TO TRIGGER THE ORCHESTRATER FUNCTION, SO THERE’S AN ORCHESTRATER FUNCTION, AS PART OF THE TRIP MANAGER FUNCTION APP, AND SO THAT IS WHAT IS ACTUALLY GOING TO BE CALLING THESE ACTIVITY FUNCTIONS. SO IF I GO BACK OVER HERE, NOT THERE. HERE. OKAY. SO I’VE GOT MY TRIP UNDER WAY RIGHT NOW, I CAN SEE THE PROGRESS AS IT’S GOING, THE TRIP WAS REQUESTED, THE DRIVER WAS FOUND, THE TRIP STARTED. THIS INFORMATION DOWN HERE SAID MY DRIVER IS GORKA, HERE’S THE CAR THAT I NEED, AND YOU SAW THE LITTLE POP-UPS COME UP. THOSE POP-UPS ARE BEING TRIGGERED THROUGH SIGNAL OUR SERVICE, AND SIGNAL OUR SERVICE IS ACTUALLY A HOSTED SORT OF SERVICE FOR DOING WEB SOCKET CONNECTIONS TO A BACK END. THE NEWS THING ABOUT IT, I HAVE A STATIC WEB APP, I DON’T HAVE TO ADD ANY BACK END CODE TO MY WEB APP TO USE SIGNAL R SERVICES, AND I HAVE ANOTHER AZURE FUNCTION, THERE’S A TRIGGER BINDING FOR IT, FOR SIGNAL R SERVICE. ANY TIME THAT GETS FIRED BY AN EVENT GRID EVENT, THEN IT SENDS OUT — IT EXECUTES SIGNAL R, AND ON MY CLIENT SIDE HERE, I HAVE A SET OF JAVA SCRIPT FUNCTIONS THAT JUST REACT TO THOSE EVENTS, AND THOSE EVENTS BASICALLY UPDATE THE STATUS HERE, IT POPS UP THE NOTIFICATIONS, AND THE OTHER THING I WANTED TO SHOW YOU, IF I START ANOTHER ONE HERE, ALL OF THIS IS BEING MONITORED BY APPLICATION INSIGHTS. SO WHAT I COULD DO, PULL UP THE LIVE METRICS, AND THIS IS — ON THE RIGHT HAND SIDE, THE TELEMETRY FLOWING THROUGH, THERE ARE THREE DIFFERENT DURABLE FUNCTIONS IN PLAY, SO YOU HAVE THE TRIP MANAGER THAT ACTUALLY STARTS THE TRIP AND GOES TO FIND AVAILABLE DRIVERS. THERE’S A TRIP MONITOR, THAT’S ONE THAT JUST SITS THERE AND IT WAITS AND LOOKS TO SEE, OKAY, HOW ARE WE PROGRESSING? ARE WE ACTUALLY — HAVE WE STARTED THE TRIP? HAS THE TRIP ENDED YET? THAT’S SENDING EVENT GRID EVENTS. THEN WE HAVE ANOTHER ONE CALLED A DEMO ONE JUST SO WE CAN DEMO THIS, THAT ACTUALLY GOES THROUGH THE PROCESS OF DRIVERS SAYING PICK ME, AND THEN THEY GET ASSIGNED TO THE TRIP, AND THE TRIP ACTUALLY GOES THROUGH FROM THE START TO THE END. SO THOSE ARE WORKING TOGETHER, LOGGING INFORMATION, WE SEE HERE THERE’S FOUR SERVERS ONLINE. AND SO THAT JUST TALKS ABOUT THE SCALABILITY. IF WE HAVE HIGHER DEMAND, THOSE SERVICES WILL JUMP UP AS WELL. AND THEN LET ME GO BACK HERE, THAT TRIP HAS COMPLETED I DO HAVE TIME TO SHOW CODE? YEAH, LET ME SHOW YOU THE CODE OF WHAT’S GOING ON HERE. ONE OTHER THING TOO, I HAVE A LOGIC APP BEING TRIGGERED OFF OF THESE EVENT GRID EVENTS, AND SENDING ME E-MAILS THAT CONTAIN THE PAYLOAD INFORMATION. ONE OF THE THINGS — FOR OUR CONSUMERS, WE HAVE A LOGIC APP FOR SENDING E-MAILS, WE HAVE AN ARCHIVER TO ARCHIVE THE DATA TO SQL SERVER, WE HAVE ANOTHER ONE FOR POWER BI, AND WE HAVE THE SIGNAL R SERVICE AS WELL. SO IF I PULL OPEN MY CODE IN VISUAL STUDIO, THIS IS THE FUNCTION APP FOR THE ORCHESTRATERS FOR THE DURABLE FUNCTIONS, AND THIS IS JUST THE TRIP MANAGER, THE MANAGED TRIP ORCHESTRATER, AND THIS IS THE ONE THAT REALLY CALLS OUT A FEW DIFFERENT ACTIVITY FUNCTIONS TO COORDINATE ALL OF THIS ACTIVITY. SO IF YOU SEE HERE, IT DOES A FEW THINGS, IT’S GOING TO — IT HAS A CANCELLATION TOKEN, ASYNCHRONOUS, AND WE HAVE A SET TIMEOUT, SO IF A DRIVER HAS NOT ACCEPTED THE TRIP REQUEST WITHIN A CERTAIN AMOUNT OF TIME THAT’S CONFIGURABLE, THEN WE GO AHEAD AND TIMEOUT, SAY, LOOK, WE COULDN’T FIND A DRIVER, TRY AGAIN, BUT WE ALSO HAVE THIS ACKNOWLEDGE TASK, SO THIS IS USING A WAIT FOR EXTERNAL EVENT. AND AN EXTERNAL EVENT IS ONE WAY THAT YOU CAN TELL AN ORCHESTRATER TO SAY, OKAY, SOMETHING HAPPENED, YOU NEED TO DO SOMETHING ABOUT IT. AND SO WHAT IT’S DOING INITIALLY IS, IT’S CALLING OUT TO NOTIFY DRIVERS, AND THEN IT’S WAITING FOR SOMEONE TO ACCEPT IT. AND THERE’S A LOT MORE I COULD SHOW YOU, BUT WE ARE SHORT ON TIME. ES SOME IT’S NOT DEAD YET. WE’LL POINT YOU TO RESOURCES THAT HAS THE SAME SOLUTION, THIS ONE WILL BE SOON. SO THIS WAS FUNCTIONS, READY TO DO OUR CUSTOM CODE, BUT WHAT IF I DON’T WANT TO DO MY CODE OR WHAT IF I NEED TO CONNECT TO THE APPLICATION WHICH IS NOT MINE OR CONNECT TO A SOLUTION LIKE SAP, AND I DON’T KNOW THE — I DON’T KNOW HOW TO CONNECT TO THIS KIND OF APPLICATION. AND SOME OF THE CHALLENGES I MIGHT FACE, BESIDES THE INTERFACES ON THE API’S, DIFFERENT DATA SOURCES, DIFFERENT FORMATS I DON’T WANT TO LIVE WITH, I NEED TO CONNECT TO ON PREMISES SERVICES, THAT’S A LOT OF CUSTOM LOGIC I NEED TO PUT ON MY SOLUTION THAT IS GOING TO MAKE ME GO LOW, FOR THAT WE HAVE AZURE APPS, A SIMPLE WAY TO GO THROUGH ALL THESE PROBLEMS, IT’S A DRAG AND DROP EXPERIENCE IN WHICH YOU PUT SOME BOXES AND YOU CAN GET THE OUTPUT FROM EACH OF THESE ACTIONS AND USE THEM AS INPUTS FOR THE NEXT STEPS. I THING THE BEST WAY TO SHOW IT IS TO DO A QUICK DEMO ON THE PORTAL AND THEN WE CONTINUE WITH A COUPLE MORE THINGS.>>SURE. THE LOGIC APP IS VERY SIMPLE. SO THIS IS MY RESOURCE GROUP IN AZURE, YOU CAN SEE THE DIFFERENT FUNCTION APPS HERE. AND I GO DOWN TO THE LOGIC APP. OH, GOSH — OKAY. SORRY, NOT USED TO HAVING A TAG TEAM. OKAY. AND OKAY, THIS IS THE LOGIC APP, AND WE CAN SEE ALL OF THE SUCCESSFUL RUNS, IF I JUST PICK ONE AT RANDOM, THAT JUST HAPPENED HERE, THAT OPENS UP THE LOGIC APP IN THE VISUAL DESIGNER, SO YOU CAN SEE WHAT’S IN IT, IT’S VERY SIMPLE, FIRE OFFEND AN EVENT GRID EVENT, AND IT HAS A CONNECTION TO SEND GRID, WHICH IS SaaS SERVICE, IT’S EMAILS, YOU CAN SEE THESE TWO PATHS AND I CAN LOOK TO SEE WHAT WAS THE EVENT GRID PAYLOAD THAT CAME IN, I CAN CLICK TO DO SO THE E-MAIL INFORMATION SENT OUT. WHO IT WAS FROM, WHO IT WAS TO, THE BODY AND EVERYTHING LIKE THAT. ONE THING I JUST WANT TO POINT OUT REALLY QUICKLY IS THE BODY RIGHT NOW, ONCE YOU DO GET YOUR HANDS ON THE APP, YOU’LL SEE WE ARE KEEPING TRACK OF ALL SORTS OF METRICS, SUCH AS HOW MANY DRIVERS WERE ACTUALLY AVAILABLE AT THE TIME, HOW MANY WERE NOT AVAILABLE AT THE TIME. AND ALL THAT INFORMATION WE’RE GOING TO USE TO ACTUALLY ADD SOME AI MACHINE LEARNING TO THIS SOLUTION, SO THERE IS A NEW CONFERENCE CALLED THE MICROSOFT AZURE AND AI CONFERENCE THAT’S GOING TO BE IN DECEMBER AT THE SAME TIME AS DEV INTERSECTION, I’LL BE PRESENTING ON ACTUALLY USING PRETRAINED AND CUSTOM TRAINED MACHINE LEARNING MODELS TO PREDICT THINGS LIKE WHAT’S THE LIKELIHOOD OF SOMEBODY GETTING A TRIP ON TIME AND ALL THAT KIND OF THING.>>WE ARE RUNNING OUT OF TIME, IF I CAN HAVE THREE MORE MINUTES OF YOUR TIME TODAY, WE FINISH WITH A COUPLE MORE POINTS AND THEN WE ARE DONE. SO WE HAVE OUR SERVICES BUILT, WE HAVE OUR ON, STRAYS, WE HAVE FOR EVENTS GOING HERE AND THERE, NOW WE HAVE TO EXPOSE THOSE END POINTS, THE CLIENT SIDE OF THE APPLICATION CAN USE OUR SERVICES, FOR THAT, WE CAN USE OUR SOLUTION HERE, API MANAGEMENT, WHICH WILL CENTRALIZE ALL THE SOLUTIONS, SO YOU CAN ADD SECURITY LAYER, AUTHENTICATION, YOU CAN ADD THE DIFFERENTnd POINTS YOU CAN — IF YOU DON’T HAVE THE SERVICE ALREADY BUILT, YOU CAN SET UP SOME — THE REST OF THE TEAMS COULD WORK OVER THAT. THIS IS ALL GOING TO BE CENTRALIZED HERE, ONE OF THE MOST IMPORTANT THINGS API MANAGEMENT MICROSERVICES ARCHITECTURE WILL BE THE RIGHT END POINTS OF THE DIFFERENT SERVICES THAT I HAVE DEPLOYED, SO I’M GOING TO HAVE THIS REQUEST DONE BY MY CLIENT SIDE APPLICATION, AND THIS IS GOING TO MY API, LAST PLACE OR WHATEVER I SET UP FOR THIS AND API MANAGEMENT WILL BE THE SERVICE RESPONSIBLE TO IDENTIFY WHICH IS THE SERVICE HOSTING THIS END POINT AND WHERE DO I NEED TO POINT THIS SPECIFIC END POINT TO. RIGHT NOW I’M USING A FUNCTION TO HOST THIS PARTICULAR END POINT. IT’S USING THIS AZURE END POINT .NET, AZURE LAST NAME FUNCTION I GIVE. BUT IF FOR WHATEVER REASON I GO BACK ON MY DESIGN AND I THINK I OVERKILL, I DIDN’T NEED THAT FUNCTION, I COULD USE A LOGIC APP FOR THIS END POINT, I NEED TO CHANGE THAT ON MY API MANAGEMENT SETTINGS AND POINT TO ANOTHER DIFFERENT URL. I CAN DO THE EXACT SAME REQUEST FROM THE CLIENT SIDE, GOING TO GO THROUGH API MANAGEMENT, GOING TO RESOLVE THIS END POINT NOW IS — I CAN HAVE DIFFERENT VERSIONS OF MY API’S DEPLOYED HERE AND MANAGE ALL THAT THROUGH THIS SERVICE. I CAN CENTRALIZE EVERYTHING ON JUST ONE POINT, SO IF FOR WHATEVER REASON I’M CHANGING WHERE MY SERVICES ARE HOSTED, I JUST GO TO ONE SPECIFIC POINT AND I DON’T NEED TO DO ANY CHANGES ON THE CLIENT SIDE OF MY APPLICATION, WHICH IS GREAT FOR MAINTAINING THE APPLICATIONS. SO RIGHT NOW API MANAGEMENT ONLY HAVE THIS ALWAYS RUNNING KIND OF MODELS, IN WHICH YOU ARE ALWAYS PAYING FOR THE SERVICE, WHETHER YOU ARE USING IT OR NOT, COMING OUT VERY SOON, I WILL HAVE A SPECIFIC DATE IT’S COMING OUT VERY SOON, AND I THINK — OR COLLEAGUES FROM THE INTEGRATION SERVICES TEAM ARE ALREADY PRESENTED ABOUT IT IN THE PRESENTATION, IN THIS CONFERENCE, SORRY, THERE WILL BE A CONSUMPTION PLAN FOR API MANAGEMENT WHICH IS GOING TO WORK WITH THE SERVERLESS APPROACH, THE SPECIFIC NUMBER OF REQUESTS THAT YOU ARE GETTING TO THE SERVICE. YOU ARE NOT PAYING FOR THE SERVICE APP, YOU ARE PAYING FOR THE NUMBER OF EXECUTIONS YOU ARE HAVING AT ANY GIVEN POINT. AND WE COULD GO ON AND ON AND ON BUT WE DON’T HAVE ANYMORE TIME. WE CAN TALK ABOUT THIS TEAM AND THERE IS A LOT OF BLOGS — WE CAN TALK ABOUT DEPLOYMENT OPTIONS AND WE CAN SET UP THESE PIPELINES — SORRY, AZURE DEVOPS AFTER THE CHANGE OF NAME A COUPLE OF WEEKS AGO, THIS WILL MAKE FOR ANOTHER WHOLE SESSION, ANOTHER WHOLE HOUR OR MORE IF WE HAVE THE SAME TECHNICAL PROBLEMS WE HAD AT THE BEGINNING. THE ONLY THING I WANT YOU TO KEEP IN MIND IS HAVE IN MIND THIS TRAIT OF WHAT BENEFITS THIS KIND OF APPROACH WHEN I’M BUILDING MY APPLICATION AND THE THINGS I HAVE TO DO MANUALLY THAT OTHER FRAMEWORKS ARE DOING FOR ME, YOU NEED TO EVALUATE WHICH ONE IS BETTER FOR YOU, BUT THIS IS SOMETHING I WANTED TO POINT OUT AT THE END OF THE PRESENTATION BECAUSE AS I SAID BEFORE, THIS IS NOT A SILVER BULLET, THIS IS NOT THE ONLY WAY OR THE BEST WAY. THIS COULD BE THE BEST WAY IF THE SCENARIO IS THE RIGHT ONE. WRAPPING UP, NOT JUST –S THERE ARE CUSTOMERS ALREADY WORKING WITH THIS KIND OF APPROACH, PROBABLY YOU HEAR ABOUT IT, WHICH IS BUILT — [INDISCERNIBLE] THEY ARE USING THIS APPROACH, ALL MANAGED SERVICES TO BUILT MICROSERVICES FOR AN IOT. AND IF YOU WANT TO KNOW ABOUT THIS SPECIFIC CASE TOMORROW, SEVERAL THE CASES AND BEST PRACTICES, ENGINEERING PEOPLE FROM THE FUNCTIONS TEAM TEMPERATURE FROM THE CAC TEAM WORKING WITH CUSTOMERS ARE GOING TO BE PRESENTING ON THIS TOPIC AND ANY OTHER SCENARIOS CUSTOMERS ARE BUILDING ALREADY WITH SERVERLESS TECHNOLOGIES, THOSE ARE SOME RESOURCES, LET ME CHANGE QUICKLY TO MINE. I ADDED A NEW ONE LAST MINUTE. THIS IS THE SOLUTION JOEL HAS BEEN BUILDING — [INDISCERNIBLE] SO KEEP YOURSELF POSTED WITH OUR HANDOUT AND OUR DIFFERENT BLOGS THAT WE HAVE BECAUSE WE ARE GOING TO ANNOUNCE IT THERE. YOU HAVE ALREADY ANOTHER SAMPLE VERY SIMILAR TO THIS ONE, CALLED CONTENT REACTOR, USING THE SAME APPROACH, BUILDING MICROSERVICESES WITH FUNCTIONS, LOGIC, ALL THE SERVERLESS SERVICES, FUNCTION FOR THE MICROSERVICES AND SERVERLESS IN WHICH YOU CAN GET TO KNOW MORE ABOUT THE DIFFERENT SERVICES. THIS IS THE BLOG POST OF ALL THE ANNOUNCEMENT THAT WE MADE THIS WEEK SO YOU CAN GO SEE THE NEW RUNTIME VERSION, THE PYTHON PREVIEW, ALL OF THIS ON THE BLOG POST. SO YOU HAVE THESE LEARNING PATH ON MICROSOFT LEARN WHICH WE ARE ALSO JUST RELEASED THIS WEEK, IF YOU WANT TO START LEARNING ABOUT SERVERLESS IN AZURE. THAT’S ALL. THANK YOU VERY MUCH, AGAIN FOR BEING WITH US TODAY. ENJOY THE REST OF YOUR

Add a Comment

Your email address will not be published. Required fields are marked *