Event-driven design patterns to enhance existing applications using Azure Functions – BRK3041

Just another WordPress site

Event-driven design patterns to enhance existing applications using Azure Functions – BRK3041

>> ALL RIGHT, GOOD AFTERNOON EVERYONE GOOD AFTERNOON EVERYONE. [ANSWERING] >> THIS IS A TEAM UP HERE, WE HAVE OUR COFFEE, I UNDERSTAND, IT’S AFTERNOON, THIRD DAY OF BUILD, REALLY EXCITED TO BE HERE, THANK YOU ALL FOR BEING HERE TONS OF AANNOUNCEMENTS, EXCITING THINGS. WHAT DO WE WANT TO DO HERE TODAY, TALKING ABOUT SERVER FUNCTIONS, THIRD BUILD, EVERY BUILD WE SEE MORE AND MORE MOMENTUM AND EVENT DRIVEN APPLICATION OF AZURE FUNCTIONTION BUT WE STILL ALSO SEE A LOT OF COMPANIES, A LOT OF YOU, A LOT OF DEVELOPERS STARTING THEIR JOURNEY. AND THEY DON’T KNOW WHERE TO START. THEY HAVE APPLICATIONS ALREADY BUILT AND THEY WANT TO USE SERVERLESS, BUT THEY AREN’T SURE HOW. WE WANT TO TALK ABOUT, IMAGINE YOU ALREADY HAVE YOUR APPLICATIONS, AND YOU WANT TO EXTEND IT FURTHER, WANT TO ADD FUNCTIONS, SERVERLESS TO EXTEND YOUR SCENARIOSES’S. THAT IS THE BEST WAY TO RECOMMEND. WE DON’T RECOMMEND WE WRITE YOUR CODE AND MAKE IT FUNCTION. WE WANT YOU TO ACHIEVE MORE INNOVATION ON YOUR CODE. HERE IS THE PLAN OF WHAT WE’RE GOING TO SHOW YOU TODAY. WE’LL TALK ABOUT THE SCENARIO, BUILD THROUGHOUT THE TALK, WE’LL KEEP GOING. DARIA IS GOING INTRODUCE TO YOU THAT AFTER THAT, WE’LL D A BRIEF OVERVIEW ON THE CONCEPTS THAT WILL BE IMPORTANT FOR YOU TO UNDERSTAND WHAT HAPPENS LATER ON. THEN IN THE APP IN FOUR DIFFERENT WAYS YOU SEE THERE. AND AT THE END, WE WILL LEAVE WITH YOU SOME STUFF TO TAKE AWAY. BEFORE WE GO TOO FAR, YOU KNOW, YOU SHOULD LISTEN TO US. I LOOK AT HOW TO BRING MORE FUNCTIONS, A LOT OF THE ENTERPRISE SCENARIOS, I SPEND TIME O FOR ME IT’S I AM SUPER EXCITED TO SEE WHERE IT’S GOING TO TAKE AND REVOLUTIONIZE THE INDUSTRY. >> I AM DARIA, ALSO PART OF THE M TEAM FOR AZURE FUNCTIONS I HAVE BEEN IN THIS PHASE AS A SERVICE SINCE 2012. AND ONE FUN FACT, I WAS THE PROGRAM MANAGER FOR THE FIRST ITERATION OF THE SERVERLESS OFFER, SO AT THE LAUNCH OF THE CONSUMPTION PLAN. AND I’M HERE BECAUSE I AM INTERESTED IN HOW WE BRING JOY TO YOUR EXPERIENCE AS YOU ADOPT SERVERLESS TECHNOLOGIES AND AS YOU START WORKING WITH AZURE FUNCTIONS. I AM ALWAYS HAPPY TO TAKE IDEAS FROM ALL OF YOU. SO NOW TO NAVIGATE THIS SESSION WE WILL USE A DEMO APP TO ILLUSTRATE CONCEPTS. AND FOR THE PURPOSE OF THIS SESSION, WE ARE THE AGENCY THAT IS BUILDING THE WEB PRESENCE FOR THE QU NISMT TOSO COFFEE SHOP ARE YOU IN SEAT MANY, FROM THE KEYNOTE YOU HAVE TO HEAR ABOUT COFFEE WE WANTED TO EXTEND THIS PORTFOLIO OF THIS HARD WORKING QUINTOSO OPERATION WE INHERITED A STATIC CLIENT APP AND LEGACY API, LISTING LOCATIONS ABOUT THINGS. THINGS THAT ARE CRITICAL FOR THE WEB WEB PRESENCE ARE THINGS WE NEED TO FIGURE OF THE HOW TO IMPLEMENT. WE CAN HAVE MICROSERVICES PATTERNS IN THE BACKEND. ALSO YOU PROBABLY NOTICE WITH THE BEST FRONT ENGINEERS, THIS WORKS FOR OUR AGENCY AS WE WALK THROUGH THE SESSION, WE LOOK AT THE DIFFERENT PIECES THAT WE NEED COMPOSE TO DELIVER THE END-TO-END ARCHITECTURE FOR THIS BUSINESS. >> HOW MANY OF YOU

ARE USING FUNCTIONS? HOW MANY OF YOU USE JUST SERVERLESS IN GENERAL? THIS IS CALLED SERVERLESS, THERE’S CONTROVERSY WHETHER THAT TERM IS THE RIGHT TERM, BUT WHAT IT REALLY MEANS IS ONCE ARE YOU IN A HOSTED SERVICE YOU DON’T WORRY ABOUT THE INFRASTRUCTURE THAT’S UNDER YOU YOU ARE GOING TO GIVE US YOUR APPLICATION, AND THEN WE’LL TAKE CARE OF ALL OF IT. YOU DON’T HAVE TO SPECIFY THE SIZE OF THE MACHINE YOU NEED, HOW MANY CORES YOU NEED OF CPU, HOW MUCH MEMORY YOU NEED OR WHAT ARE THE SCALE NEEDS. YOU PUT THE APPLICATION THERE, EVENTS HAPPEN, THE APPLICATION REACT TO EVENTS, SCALE AS FAR AND AS WIDE AS IT NEEDS TO PROCESS YOUR WORKLOAD, SPINS BACK DOWN, GOES DOWN TO ZERO WHEN YOU AREN’T USING IT. WE DO MEASURE HOW MANY MINI SECONDS THE CPU WAS RUNNING YOUR COLD, ONLY PAY FOR WHEN YOUR CODE IS RUNNING AT THE GIVEN AMOUNT OF MONEY THAT YOU CONSUME SO, THAT’S SERVERLESS, SEEMS LESS AN MINUTE. WHEN THEY SAY SERVERLESS, THAT’S WHAT WE MEAN. AZURE FUNCTIONS, AGAIN, ONE SLIDE WITH THE DIAGRAM THEN I’LL JUMP INTO CODE. AZURE FUNCTIONTION IS THE CORE PROGRAMMING PIECE AND WHERE YOU HAVE YOUR COMPUTE FOR SERVERLESS IN AZURE. IT RESPONDS TO A NUMBER OF EVENTS, HTTP OF COURSE, PUSH-BASE ED VENT, ALL OF THE EVENTS THAT WE CAN PULL FROM, QUEUES AND SERVICE, EVENT HUB, ET CETERA. SO YOU CAN WORK ON A TIMER AS WELL MOST OF THOSE EVENTS HAPPEN, WE RUN YOUR CODE AND CUSTOM LOGIC WITHIN OUR FUNCTION’S RUN TIME, BRING YOUR CODE IN C#, F SHARP, JAVASCRIPT, PYTHON, POWERSHELL THAT I’LL TALK ABOUT AND WE LAUNCHED LAST WEEK WE HAVE THIS NICE CONCEPT THAT A LOT OF OUTFUTURE CAN BE MADE VERY SIMPLE. THE RUN TIME CAN CONS TROPICAL STORM. I KNOW ARE YOU FAMILIAR WITH IT, HOW IT TRANSLATES TO CODE. THAT’S A SIMPLEST POSSIBLE FUNCTION CODE, THAT’S QUEUE TRIGGERED. WHEN YOU SEE THE FUNCTION NAME SI TRIBUTE AT THE TOP, THAT IS THE TERM, THIS CODE IS A FUNCTION. FIRST ATRY 3W50U9 IS THE TRIGGER TYPE. YOU SEE THE NAME THE QUEUE AND MAPS TO THE CODE THAT YOU CAN USE, AND HAVE THE OUTPUT, YOU SEE THE PERIMETER THERE, AND ONCE THIS CODE RUNS IT WILL WRITE BACK TO A KUBE. THAT’S THE SIMPLEST POSSIBLE, THAT FUNCTIONS AND THOSE THINGS YOU ARE DECLARING AS ATTRIBUTES YOU CAN DECLARE THEM AS CONFIGURATION YOU CAN HAVE YOUR INPUT AND OUTPUT, AND SOME OF THE OTHER CONFIGURATIONS THAT HAPPENS AT THE FUFERX LEVEL, ALL GO TO FUNCTIONS ON JSON. THOSE ARE THE MAIN COMPONENTS. WHEN YOU SAY YOUR FUNCTION, ALL YOU HAVE TO GIVE TO US IS CODE AND CONFIGURE THAT, WHAT IS WE MEAN. C#, JAVASCRIPT, THE FUNCTIONS. JSON. THAT’S THE INTERIM FUNKS. THEN WE’LL START BUILDING UPSET THEIROS. YOU ARE GOING TO SEE THE CONCEPTS COME BACK AROUND. >> THE FIRST APP EXTENSION EXAMPLE IS FOCUSED ON CREATING A UNIFIED API SURFACE THAT ENCOMPASSES EXISTING ASSETS THAT ARE ALREADY IN PRODUCTION. AND NEW BUSINESS LOGIC THAT IS IMPLEMENTED WITH THE HELP OF SERVERLESS. IN THIS WORLD, WHEN WE CREATE AN API FACADE WE CAN CREATE THAT WITH THE HELP OF API MANAGEMENT WHICH COINCIDENTALLY WAS THE SESSION RIGHT BEFORE THIS ONE. AND IT MAKES IT REALLY EASY TO CONNECT TO SERVERLESS CONCEPTS WHAT I LIKE ABOUT THIS IN USING API MANAGEMENT, IS IT’S NOT JUST A DESIGN MAT EASTERN. BUT IT COMES WITH THE BENEFIT OF HAVING REAL FEATURES BEHIND THE PRODUCT LIKE THE ABILITY TO DEFINE POLICIES TO HANDLE VERSIONING. SO THE MORE THE PRODUCT CAN DO THE LESS I HAVE TO DO AS A DEVELOPER. AND I WOULD LIKE YOU TO NOTICE IN THE DIAGRAMS HERE, THE BUSINESS LOGIC CAN BE IMPLEMENTED BY A MIX OF SERVICES WHETHER THEY’RE LEGACY, COMPLETELY NEW, AND SO HERE WE’RE USING A LEGACY WEB API. THEN WE’RE ADDING FUNCTIONS

IF YOU LIKE YOU CAN E8D ADD CONNECTIONS TO SERVICES LIKE KUBERNETES. THERE’S NO LIMITING FACTOR HERE. AND SINCE WE’RE TALKING ABOUT SERVERLESS, WE ALSO HAVE TO FOCUS ON THE SPECIFIC TIER OF API MANAGEMENT THAT WAS REISN’TLY ANNOUNCED IN PREVIEW, THE SERVERLESS PEER. SO WITH THIS TIER, WOULD I LIKE TO MENTION THAT YOU GET ALL OF THE BENEFITS OF SERVERLESS IN THE SENSE OF YOU GET THE SCALE AND HIGH AVAILABILITY AND THE PAPER USE PRICING WITH THE GENEROUS FREE GRANT. AND THE PRIMARY USE CASES ENCOMPASS THE DIFFERENT PRODUCTS IN THIS UNIVERSE. AND THEY ACT AS A GATEWAY FOR SERVERLESS COMPUTING, CONTAINER BASED MICROSERVICES, PROVIDES A SIMPLIFIED FACADE FOR OTHER ENTITIES THAT EXIST IN THE UNIVERSE, AND THEN IT’S WORKING REALLY WELL FOR WORKLOADS TO HAVE SPIKY TRAFFIC SO, WHEN WE GO BACK TO OUR DEMO APP, THE ELEMENT THAT WE’RE GOING TO EXPLORE IN THIS SECTION IS REALLY ADDING API MANAGEMENT AND THE CONNECTION THROUGH THE ADDITIONAL BUSINESS LOGIC. SO I WILL WALK YOU THROUGH THIS LITTLE DEMO HERE. SO THIS IS WHAT WE ENDED UP FOR OUR COFFEE SHOP. AND WHAT WE STARTED WITH IS JUST THE ABILITY TO GET LOCATIONS OUT OF OUR LEGACY WEB API. nd THEN WE ADDED A CONNECTION TO COSMOS DB THROUGH AZURE FUNCTIONS TO LIST OUT THE WINDOW. THEN WE ADDED FUNCTIONALITY THAT IS ACTUALLY GOING TO SHOW YOU IN THE FUTURE SECTIONS HOW YOU CAN COMMUNICATE WITH YOUR TEAM. AND WE HAVE A FEW DIFFERENT OTHER PIECES WE’RE GOING TO WALK THROUGH. BUT JUST STARTING BACK WITH THE WEB API. THE WEB API IS GETTING LOCATIONS AND YOU CAN SEE IT RIGHT HERE IN THE API MANAGEMENT PORTAL. WE HAVE A CALL, AND WE WERE ABLE TO GO AND RETRIEVE OUR LOCATIONS. YOU CAN SEE THE SAME RESULT HERE. YOU MIGHT HOW EASY IS IT TO IMPORT THE FUNCTIONS INTO THIS. I DON’T WANT TO DO ANY WORK, NOT ANYTHING COMPLICATED, SO I WOULD LIKE TO WALK YOU THROUGH THAT WORKFLOW. HERE WE HAVE AN EXAMPLE FUNCTION, IT’S JUST DOING AN ATP TRIGGER. IF I WANT TO IMPORT INTO APIM ALL I HAVE TO DO IS GO AND SELECT APIM MANAGEMENT OPTION HERE, SO YOU CAN SEE IT IN THE PORTAL THIS IS EMBEDDED IN THE EXPERIENCE SO YOU DON’T TO HAVE BREAK YOUR FLOW. GOING TO SELECT THE APIM INSTANCE THAT I WANTED TO IMPORT TO. AND I’M GOING TO ENABLE APPLICATION, THIS WILL GIVE YOU REALLY INTERESTING OBSERVABILITY CAPABILITIES. AND NOW IN TERMS OF API ENTRY POINTS, WE’RE GOING TO CREATE ONE FOR EACH OF THE HTTP METHODS SUPPORTED BY THE FUNCTION. AND OPTIONALLY, I MAY EVEN GO AND SELECT A PRODUCT SO NOW, I KICKED OFF MY WORKFLOW TO IMPORT MY FUNCTIONS INTO APIM AND I WILL GET A MESSAGE WHEN THIS IS COMPLETED, WHICH YOU CAN SEE RIGHT HERE. SEE IF I CAN ZOOM IN I GO INTO THE PORTAL. AND I HAVE A TEST TAB THAT CAN I SELECT. ADDSTED PARAMETER, SO BUILD 2019. I AM GOING TO MAKE A CALL AND YOU SEE THE RESULT RIGHT HERE. IT SAYS HELLO, 2019 IN IS INTERESTING TO HAVE IN THE CONCEPT. ANOTHER THING IS YOU CAN DOWNLOAD THAT API DEFINITION. THIS IS JUST A CLICK AWAY. AS EASY AS THAT. ANOTHER FEATURE THAT CAN BE REALLY, REALLY USEFUL IS THE OBSERVABILITY PIECE OF THIS. AS I CONNECT APIM I ALSO WANT TO SEE WHAT HAPPENS ACROSS ALL OF THE DIFFERENT END POINTS THAT I’M INTERACTING WITH

A REALLY INTERESTING FEATURE, THE APPLICATION MAP THAT, IS GOING TO ALLOW ME TO EXPLORE THE CALLS THAT I’M MAKING. NOT ONLY THAT, BUT ALLOW ME TO HAVE REALLY EASY DIAGNOSTIC CAPABILITIES. I’M PURPOSELY GENERATING AN EXCEPTION THAT WE’LL USE THROUGHOUT THE SESSION. IF I WANT TO GOnd DIAGNOSE THAT, I HAVE THE ABILITY RIGHT HERE, TO SAY, HEY, I WANT TO SEE DETAILS NOT ONLY DO I WANT TO SEE DETAILS, BUT WHY DON’T YOU POINT ME TO THE EXACT EXCEPTION. THIS IS AN EXCEPTION THINGS THE POWER OF CREATING THE UNIFIED API SERVICE WITH VERY LITTLE EFFORT. >> TO INVESTIGATE THIS, SOME PEOPLE TAKE IT FOR GRANTED AS YOU DO THE MICROSERVICES AND DISTRIBUTED APPS TO FIND WHERE THE BUG IS BETWEEN THE API LAYER, MULTIPLE SERVICES, ALL DISCONNECTED, IT IS A TOUGH TEST. BRINGING THEM TOGETHER TO GIVE YOU A GRAPH CO-INTERFACE OR QUERY LANGUAGE IS SUPER POWERFUL, AND SOMETHING I HAVEN’T SEEN OTHER PRODUCTS DO. LOVE THAT STUFF. IT’S ME, ALL RIGHT. CREATING A SINGLE SURFACE FOR ALL OF THE FUNCTIONALITY THAT DIDN’T EXIST IN OUR COFFEE SHOP WHICH DARIA AND I HAVE BEEN HIRED TO BE THE DEVELOPERS FOR FOR A DAY. THIS APPLICATION, YOU HAVE A PRESENCE ON THE CLOUD, TYPICALLY HAVE TONS OF OTHER RESOURCES AS WELL. APPLICATION IF IT’S COMPLEX IS NOT ALL SERVERLESS, IT CAN BE OTHER SORTS OF DEPLOYMENTS. AS YOU ADD RESOURCE TO AZURE YOU NEED TO HAVE A WAY ONCE YOU START HUNDREDS OF THEM, EACH RESOURCE IS A LIFECYCLE OF ITS OWN. COULD BE VM, STORAGE, YOU NAME IT, SQL. YOU DEPLOY THEM, THEN YOU GO TO THE LIFECYCLE, YOU HAVE TO SECURE THAT END POINTS DO YOUR ACCESSORY RECOVERY, BACK UP TO A DIFFERENT REGION. APPLY DIFFERENCE CONFIGURATION OR POLICY THAT’S VERY COMMON, LIKE IT’S BEEN CHANGING A LITTLE BIT. IF SOME OF YOU WORK AS IT OR SRE, THE ROLE HAS BEEN CHANGING A LITTLE BIT NOW WE HAVE TO MONITOR THE CLOUD RESOURCES. THERE ARE HUNDREDS OF THEM. A LOT OF THESE THINGS ARE EVENT DRIVEN. THEY HAPPEN ON A SCHEDULE, YOU HAVE TO DO SOMETHING EVERY DAY AT 6:00 P. M. OR BECAUSE AN EVENT HAPPENED. LIKE AN APPLICATION REACHED THE LIMIT OF FAILURE, SOMEONE HAS TO REACT. FITS PERFECTLY. HOWEVER, ONE GAP, WE HAD FUNCTIONS OF PLATFORM, A LOT OF THIS AUTOMATION IS WRITTEN IN POWERSHELL. LAST WEEK WE STARTED PREVIEW OF POWERSHELL CORE AND FUNCTIONS, ALLOWS YOU TO IMPLEMENT SUCH FUNCTIONS WITH AZURE FUNCTIONS. WE CODED ONE PART OF THE FUNCTIONALITY, THE ABOUT FUNCTIONALITY, IT’S FAILING. WE HAVE TO INVESTIGATE. IMAGINE YOU WANT TO AUTOMATE WHEN SUCH FINGERS HAPPEN TO TRIGGER A SCRIPT THAT WILL NOTIFY YOU SOMEHOW. OUR DEV TEAM HAS A DESIGNER, THAT’S WHY IT LOOKS LIKE THIS. GENERATING 5 PUN. ANY OF THE WEBSITE COULD GENERATE AN EVENT, SOME ERROR THAT I WANT TO MONITOR, HOW WILL YOU DO IT ON THE AZURE PORTAL, I HAVE MY RESOURCES DEPLOYED, THIS NICE FUNCTIONALITY THAT IT HAS, THE ABILITY TO CONFIGURE ALERTS. AND THOSE ALERTS ONCE YOU CONFIGURE, GET THE DASHBOARD, TELL WHAT SEVERITY THE ALERT IS, HOW YOU REACT, ALL OF THE ALERTS, AND HOW THEY HAPPEN WHEN THEY HAPPEN CAN YOU DRILL IN. THE WAY YOU CONFIGURE AN ALERT, YOU CAN CREATE AN EVENT AND A CONDITION FOR IT. THIS ONE THAT I CREATED WAS IF ANY ERROR IN THE 500 RANGE HAPPENS, AND GREATER THAN ZERO, EVEN IF A SINGLE ONE HAPPENED, DO REACT TO IT. THEN YOU

CAN CREATE THE ACTION GROUP, WHICH ACTIONS YOU WANT TO TAKE. WHAT I CONSIDERED A WEB HOOK, TO SEND AN E-MAIL TO YOU, AND THAT WEB HOOK IS CALLING TO AN END POINT. THIS END POINT JUST AZURE FUNCTION, SEND TEAMS NOTIFICATION ALERT WITH AUTHENTICATION CODE. HTTP FUNCTION THAT LISTENS TO THE END POINT AND CAN REACT TO IT. SHOW YOU HOW THE FUNCTION LOOKS LIKE. THE POWERSHELL FUNCTION ON THE AZURE PORTAL. THAT FUNCTION IS PRETTY SIMPLE. MOST OF IT STICKS TO THE INPUT PARAMETER, CONFIGURE HOW TO CALL, I’LL SHOW IN A MINUTE, HOW TO CALL INTO TEAMS. THAT’S HOW THE NOTIFICATION IS TO BE DELIVERED, VIA TEAMS, TEAMS CAN ALERT THE PHONE, A GROUP OF PEOPLE. AT THE END OF IT, ONCE PREPARE THE DATE, A YOU INVOKE THE END POINT. TO SHOW HOW IT’S CONFIGURED, THE TEAM’S WEB HOOK, IS CONFIGURED HERE. IT’S GOING TO CALL GRAPH API. IF I GO TO TEAMS, I CLICKED ON THAT ABOUT BEFORE, GENERATE AN EVENT, YOU SEE THAT ALERT HAS BEEN FIRED. THAT’S HO THE ALERT WOULD LOOK LIKE. THIS CAN POP ON YOUR PHONE OR ANY AREA YOU WANT. THIS IS AN EXAMPLE RUNNING IN PRACTICE. A LOT MORE YOU CAN DO. WE HAVE A SERVERLESS LIBRARY SHOWS THE COMMON FUNCTION CODE F YOU DON’T WANT TO START FROM SCRATCH, WE GIVE YOU THE TEMPLATES THAT START THE CODE. IF YOU WANT SOLUTIONS THAT ARE READY TO BE DEPLOYED, GO HERE AND FIND THE SOLUTION, BUNCH OF LANGUAGES. WE HAVE LAUNCHED POWERSHELL, ONE SCRIPT SO FAR. FOR JAVASCRIPT YOU HAVE DOZENS OF THEM THEN FIND SOME FOR POWERSHELL AS WELL. LET’S TALK ABOUT THE OTHER SCENARIOS THAT IS WHAT I IMPLEMENTED, SOMETHING THAT REACTS TO ABOUT. HERE ARE OTHER WAYS TO HOOK UP IT VENT BASED AUTOMATION TONS OF THINGS THAT CAN HAPPEN DURING THE DEPLOYMENT TIME, OR YOU WANT TO OPERATE. YOU CAN USE THE EVENT GRID AND THEN YOU CAN HAVE MULTIPLE PUBLISHERS OR MULTIPLE SUBSCRIBERS TO THAT, ALLOW US TO CONNECT ANYTHING TO ANYTHING ELSE. YOU CAN HAVE THE COMPUTE FUNCTIONS. ALERTS CAN TRIGGER APPLICATION, LOGIC APPS CALL IN TO FUNCTIONS, HAVE THE DEV OPS PIPELINE CALLING TO FUNCTION. TONS WAIF OF WAYS TO IMPLEMENT THE AUTOMATION ONE THAT I JUST WANT TO SHOW HERE THE MOST COMMON ONE, START AND STOP, IT CUTS DOWN COSTS OR BECAUSE THEY DON’T WANT THE VMs RUNNING ALL THE TIME. GETS EVEN SIMPLER, THIS IS MANAGE DEPENDENCIES. A LOT OF THEM THINGS YOU NEED ON BRING WITH YOUR CODE, WE ALREADY PRELOADED FOR YOU ON THE DEPLOYED FUNCTIONS RUN TIME THAT RUNS POWERSHELL. BRING OTHER DEPENDENCIES, THIS PEEGS OF CODE AND THIS WOULD START THE VM. SIMILARLY, DO A STOP VM AS WELL. GOING TO CONTINUE THIS THIRD AREA. >> FOR THE THIRD SCENARIO, WE’RE GOING TO TALK ABOUT WORKFLOW DEMONSTRATION. FINDING LONG RUNNING ORCHESTRATION. HELP YOU SOLVE A RANGE OF COMPLEX AND STATEFUL CODING PROBLEMS. ASHOOUR FUNCTION EXTENSION, BUILT ON THE OPEN SOURCE OF THE FRAME WORK. DURABLE

FUNCTIONS JUST LIKE THE REST OF FUNCTIONS. SERVERLESS MODEL OF HOSTING WHERE YOU PAY FOR WHAT YOU USE DURABLE FUNCTIONS IS NOT THAT DIFFERENT FROM OTHER FUNCTIONS EXCEPT FOR THREE VERY SPECIFIC CONCEPTS. THE CONCEPTS, ONE OF THEM, ORCHESTRATOR THE, ON SFRATOR, DESCRIBES HOW ACTIONS ARE EXECUTED AND THE ORDER IN WHICH THEY ARE EXECUTED. THE SECOND ONE IS THE ACTIVITY FUNCTIONS. THE ACTIVITY FUNCTIONS REPRESENT THE UNIT OF WORK. THIS IS WHERE THE ACTIONS THAT WE REQUEST ARE IMPLEMENTED THE CLIENT FUNCTIONS, THEY CREATE NEW INSTANCES OF AN ORCHESTRATION THESE ARE THE THREE CONCEPTS HERE THE ORCHESTRATOR SCORES EXECUTION STATE AND THEN REPLACE THAT STATE TO BASICALLY RE-ESTABLISH THAT DURABILITY EVERY SINGLE RUN. JUST LOOKING AT THE CONCEPTS HERE, SO WE HAVE AN EXAMPLE OF THE CLIENT FUNCTION HERE THE FIRST THING THAT WE HAVE IS AN ORCHESTRATOR BINDING. AND THAT IS THE ONE THAT CAN START AND STOP THE ORGANIZE STRAYTOR INSTANCES AND THEN IT CAN GET INSTANT STATUS AND SEND THE NOTIFICATION. HERE THE TRANSITION TO THE ORCHESTRATOR FUNCTION. IF YOU LOOK WHAT THAT LOOKS LIKE, THIS IS THE ORCHESTRATOR, AND THE, ON SFRA TORIES THE ONE THAT CALLS THE ACTIVITY FUNCTIONS THIS IS AN IDEA OF HOW IT HAPPENS IN PRACTICE. WE CAN LOOK AT THE WORKFLOW THAT WE USE FOR AN EXAMPLE OF ORCHESTRATION. AND THE FIRST THING THAT WE DO IS WE HAVE THE CLIENT WHO IS WAKING UP THE ORCHESTRATOR BY PLACING AN ITEM ON THE CONTROL COUP. — THE CONTROL QUEUE. THAT HAS THE EFFECT OF WAKING UP THE OKAY STRAYTOR, NOTICES WORK TO DO WE HAVEN’T COMPLETED THAT WORK AT THIS POINT, THE ORCHESTRATOR CAN PLACE AN ITEM ON THE WORK ITEM QUEUE. ACTIVITY FUNCTION CAN IRK HAVE PICK UP FROM THE WORK ITEM QUEUE IT CAN EXECUTE, PLACES THE ITEM ON THE CONTROL QUEUE TO LET THE ORCHESTRATOR DO NOTHING LOOK AT, THE, ON SFRATOR WILL GO, REPLAY THE STATE, NOW WE HAVE THE RESULT AND RETURN. WE ALSO EXTENDED OUR APP WITH THE ABILITY TO DO ORDER APPROVALS. LET’S SAY I’M A BARISTA, I NEED TO ORDER COFFEE AND THERE’S SO MANY PEOPLE IN TOWN FOR BUILD I NEED TO REQUEST APPROVAL FOR MY COFFEE. WE IMPLEMENTED THAT WITH THE DURABLE WORKFLOW PATTERN. I’M GOING TO ILLUSTRATE THAT. BACK TO THE APPLICATION HERE. THE WAY THAT I’M GOING TO PLACE APPROVAL REQUEST IS BY SAYING I WANT TO ORDER CERTAIN COFFEE BLEND. THEN I’M GOING TO SUBMIT A REQUEST WHICH SHOWS UP AS A TEXT MESSAGE. I’M SURE YOU ALL CAN SEE IT. WE’RE ALL CLOSE ENOUGH. THAT TEXT MESSAGE IS GOING TO BE THE ONE THAT ALLOWS ME TO APPROVE THE ORDER. I’LL DO IT RIGHT HERE. >> I CAN PROVE SHE REALLY APPROVED IT. >> YES, AND WE REALLY ARE BENT ON THE FACT THAT YOU CAN SEE THIS FROM THERE. WE HAVE A CHANGE MUCH STATUS HERE F YOU ZOOM, IN YOU CAN SEE THAT WE DID CHANGE THE STATUS AND THIS SHOWS APPROVED I WANT TO GIVE YOU AN OPPORTUNITY TO HAVE A LOOK AT THE CLIENT CODE FIRST. WE HAD A CLIENT APP PAGE THAT SHOWED YOU HOW WE ARE REQUESTING THE APPROVAL. BASICALLY CALLING

IN TO THIS URL FOR THE ORCHESTRATOR HERE. IT’S ACTUALLY ABSTRACTED, IT’S A CODE THROUGH THAT TASK FRAME WORK. THIS IS WHAT IT LOOKS LIKE FROM THE CLIENT PERSPECTIVE. TO GO TO THE OTHER SIDE OF THE CLIENT EXPERIENCE AND THEN WE’LL MOVE BACK TO THE BACKEND OF DURABLE FUNCTIONS THE OTHER SIDE OF THE THE CLIENT EXPERIENCE THAT YOU JUST WITNESSED HERE IS HOW DO I SEND THE APPROVAL THIS, AGAIN, IS A CALL FROM THE CLIENT APP, AND THE WAY THAT I IMPLEMENT THAT IS BY RAISING AN EVENT, SO THIS IS THE CODE HERE TO RAISE THE CHALLENGE EVENT. SWITCHING BACK TO THE BACKEND, WE HAVE THE ORCHESTRATOR CODE. I WILL POINT OUT AS WE ARE IN THIS CONTEXT, WE HAVE THE ABILITY TO CALL THE ACTIVITY FUNCTION. THIS IS THE ONE WHERE WE RESEND THE PHONE NUMBER AND REQUEST THE SMS TO BE SENT. FOR THIS PARTICULAR DEMO, WE SET A TIME-OUT OF 90 SECONDS BUT THE GOOD THING TO KNOW IS THAT THIS IS NOT CON STRAINED. 90 SECONDS IS JUST AN EXAMPLE TIME-OUT. THE DURABLE FUNCTIONS, YOU CAN REALLY HAVE LONG RUNNING OPERATIONS AS YOU NEED. THE OTHER THING TO POINT OUT, IS THAT HERE, THE ORCHESTRATOR WILL ACTUALLY GO TO SLEEP WHILE IT IS WAITING FOR THE OPERATION TO BE COMPLETED. THAT ADDRESSES THE QUESTIONS IN TERMS OF DO I GET CHARGED FOR EVERYTHING. YOU ONLY GET CHARGED WHEN THIS IS RUNNING WE STORE IT IN TABLE STORAGE. I’M SHOWING AN EXAMPLE THAT WE WANT TO GO THROUGH. DIFFERENT STAGES OF DISCIPLINE ARE GOING THROUGH BACK TO THE SLIDE. TOMPBLGTS HIGHLIGHT, THE REASON THIS IS INTERESTING, THE TIME THAT IT WOULD TAKE FOR TO IT REACT THAT’S NOT PREDICTABLE WE DO KNOW YOUR FUNCTION RUNS FOR OVER 10 MINUTES OF REGULAR FUNCTIONS WILL SHUT IT DOWN. THIS PATTERN, IS NOT JUST PANEL, REGULAR FUNCTIONS FOUND A SERVERLESS WAY TO DO SO, IS DURABLE. THAT’S WHY DURABLE IS IMPORTANT TO THE SCENARIO. >> FOR THIS SESSION WE ONLY SHOWED YOU THE HUMAN INTERACTION PATTERN. HOWEVER, THERE ARE A LOT OF OTHER PATTERNS THAT YOU CAN IMPLEMENT, AND THESE ARE A FEW OF THE OTHER EXAMPLES YOU CAN TAKE THE OUTPUT OF A FUNCTION AND UX IT AS THE INPUT TO CALL ANOTHER FUNCTION. YOU CAN ALSO DO THE FAN IN AND FAN OUT PATTERN, USE AN EVENT TO PARALIZE EXECUTION INTO A BUNCH OF FUNCTIONS AND THE POWER OF THIS PATTERN IS THAT YOU CAN DO AGGREGATION AT THE END. API PATTERN, THIS IS SOMETHING WHERE YOU MAY HAVE A LONG RUNNING EXECUTION AND YOU MAY WANT TO LET A CLIENT TIER KNOW WHAT’S GOING ON, THIS IS HOW OUR EXAMPLE WAS IMPLEMENTLED AS WELL. THIS PATTERN MONITORING ON AN EXTERNAL END POINT IS ANOTHER ONE. WE HAVE A SESSION COMING UP THAT IS FOCUSED ON A DEEP DIVE ON DURABLE FUNCTIONS AND IT IS GOING TO GO INTO THE NEW FUTURES FOR STATEFUL ENTITIES AS WELL. I TOTALLY RECOMMEND THAT IF YOU HAVE THE TIME. THERE ARE A FEW THINGS WITH THIS WORKFLOW, THE ORCHESTRATOR HAS A COUPLE OF REQUIREMENTS. THE CODE MUST BE DETERMINE IS PARTICULAR EVERY OPERATION HAS TO HAVE THE SAME RESULT, IT WILL BE EXECUTED ONCE AND THEN WE WILL REPLAY THE SAME RESULT. WHAT YOU DON’T WANT

TO DO IS USE RANDOM NUMBERS, DON’T DO I. O. DIRECTLY INTO ORCHESTRATOR ON THE THEY ARE ONE IS DON’T WRITE INFINITE LOOPS. WHAT HAPPENS IS WE HAVE A LONG HISTORY THAT WE NEED TO PLAY THROUGH, AND THAT MEANS THE EXECUTION TIME MIGHT INCREASE AS WELL. GOING BACK TO THE LAST SECTION OF THE PRESENTATION. >> I LOVE THE DURABLE FUNCTIONS THINGS I THINK IT STILL, WE LOVE TALKING ABOUT IT, OPENS UP SO MANY POSSIBILITIES, JUST LITTLE DETAIL, LIKE WHEN YOU DO A TASK AND YOU CAN WAIT AND CAN YOU DO A WIN ALL, SO POWERFUL. TRY IT OUT. NOW, IF WE WANT TO EXTEND SCENARIOS WITH MACHINE LEARNING, HOW MANY WORK WITH ML? A FEW OF YOU. I HAVE A FEW HERE, FUSE LIGHTS, WHY ML AND WHY YOU SHOULD CARE AND HOW YOU CAN IMPLEMENT IT. TYPICAL PROCESS MACHINE LEARNING, MODEL TRAINING AND MODEL DEPLOYMENT. TYPICALLY YOU HAVE, A LARGE DATA SEPTEMBER, YOU WANT TO TURN UP THE MODEL, LEARN FROM THE EXAMPLES. THIS DATA SET IS GOING TO BE INCOMPLETE, NOT IN A STANDARD FORMAT. YOU NEED PREPROCESS THIS DATA. ITER ATIVE PROCESS UNTIL YOU GET THE DATA YOU NEED. YOU PICK TONS OF DIFFERENT ALGORITHMS, YOU NAME IT, YOU CAN PICK THE RIGHT ATTEMPT FOR THE JOB YOU TRY TO ACHIEVE IF IT’S SOMETHING RELATING TO IMAGES, YOU MIGHT PICK NEURAL NETWORK. YOU RESERVE THE DATA SET TO BE THE GOLDEN SET, EVALUATE THE MODEL, PRECISION RECALL NUMBER BACK TO DECIDE WHICH MODEL FITS YOUR NEEDS IN TERMS OF WHAT IS YOUR CRITERIA TO GO TO PRODUCTION ONCE YOU FIND THE MODEL YOU DEPLOY IT AND USING YOUR APPLICATION. A LOT YOU HAVE DEVELOPERS ARE ON THE FURTHER ENDS OF IT, WHERE YOU TYPICALLY LIVE ON THE APPLICATION WORLD. THE WAY THIS IS DONE YOU HAVE A DATA SCIENTIST, HE’S THE ONE RESPONSIBLE FOR MODEL TRAINING. A LOT OF HIS DAY JOB IS ON THE CLEANUP SET. THEN LIKE I SHOWED THE ALGORITHM YOU WANT TO USE. HOW OFTEN DO THEY NEED TO RETRAIN TO ACCOUNT FOR NEW EXAMPLES, IT’S HAPPENING ON A PARTICULAR SCENARIO THAT DEVELOPER IS LEFT WITH THE JOB OF THE MODEL DOES EXIST, HOW DO I PUT IT IN PRODUCTION. DO I NEED A VM, PASS SERVICE, LOAD IT UP IN MEMORY, BREAK IT DOWN, DO I PROCESS IN PARAWLEL. HOW DO I SCALE IN CASE THIS IS A MODEL THAT HAS THOUSANDS OF EVENTS AT THE SAME TIME, HOW YOU ARE PREPARE TO HANDLE SUCH LOAD. HOW DO I MONITOR IT IF YOU SEE NOTES IN THE PATTERN, WHAT SOLVES THIS QUESTION, SERVERLESS HELPS WITH THE QUESTIONS. ONCE YOU APPLY SERVERLESS OR FUNCTIONS OF SERVICE, NOW, CAN TAKE ADVANTAGE OF ALL OF THOSE THINGS I TALKED BEFORE ABOUT SERVERLESS. LET ME SHOW YOU HOW THAT WORKS AND FUNCTIONS WHEN YOU TRAIN THE MODEL, YOU GET THE ASSET OUT OF IT, IN BINARY FORMAT YOU HAVE A SCRIPT THAT, KNOWS HOW TO USE THAT MODEL. COMMONLY, GOING TO BE PIE TON, WHAT’S GOING TO BE THAT SCORING SCRIPT. ON THE PYTHON CODE, IT MAY HAVE HELPER LIBRARIES, OTHER LIBRARIES YOU WANT TO USE SOMETHING WE DIDN’T HAVE BEFORE, WE START, PYTHON IS ON PUBLIC PREVIEW, FUNCTION IS HTP, CAN YOU PUT DATA, USING THAT MODEL. SO THAT’S TYPICALLY HOW IT WORKS. I WANT TO SHOW YOU YOU CAN ADD TO IT THE MAIN APP, THIS WAS DONE BY OUR RESEARCH AND INNOVATION TEAM. TRYING TO FIND A FUN SCENARIO. ALL OF YOU HAVE THIS QUESTION HOW TO ORDER ENOUGH COFFEE FOR THE DEVELOPMENT TEAMS WE THOUGHT IT WAS SUPER RELEVANT AGAIN, THE PRESENTATION IS NOT AS MUCH MODEL FRANING. DON’T INTEND

TO TURN ON THE DATA SCIENTISTS THERE’S DATA SETS ALREADY FOR YOU, THEY HAVE ONE OF THOSE. FOUND THIS FASCINATING DATA SET, IT’S AMAZING HOW MUCH TIME PEOPLE SPENT ON THIS, HOW MUCH PROGRAMMERS DRINK COFFEE, ANALYZE THE PATTERNS. THEY ARE ABLE TO MAP CODING HOURS TO THE AMOUNT OF CUPS OF COFFEE PER DAY, WHAT TIME. DAY THEY DRANK IT, WHAT TYPE OF COFFEE, ET CETERA. THIS GIVES YOU SO MANY POSSIBILITIES. WHAT WE DID WITH ALL THIS MUCH, WE CREATED WONG APP HERE, THIS I THE FRONT END, GOES IN A GIVEN GITHUB REPOSITORY, LOOKS LIKE THE AMOUNT OF COMMITS, ASSUME A GIVEN NUMBER OF HOURS PER COMMIT, AND THEN ESTIMATE HOW MANY MORE CUPS OF COFFEE YOU NEED KEEP YOUR TEAM RUNNING FOR THE NEXT FEW DAYS. I’LL SHARE THIS CODE, I KNOW YOU NEED IT. THAT’S THE PART THAT DOES MATTER. NORMAL VS CODE, GET YOUR DEBUGGING, GET THE AZURE EXTEX IT IS A FUNCTION, THIS IS HTTP FUNCTION LOADS THE MODEL. TED MOLD ELLIS A BINARY FORMAT. YOU LOAD IT UP IN THE CODE. THE CODE IS PRETTY SIMPLE. WHAT IT IS GOING TO DO, BASED ON THE AMOUNT OF COMMITS, GET A NUMBER OF HOURS THAT PARTICULAR REPOSITORY HAD CODED. SEND IT TO THE MODEL TO PREDICT. THE AMOUNT OF COFFEE CUPS YOU NEED FOR 48 HOURS THEN SENDS A RESPONSE BACK TO THE WEB FRONT END. THIS IS THE REQUIREMENT HERE, THAT’S HOW YOU DO IT, HOW YOU HAVE NuGET FOR . NET OR JAVASCRIPT HELPS YOU WITH THE STATISTICAL LIBRARIES FROM HERE YOU CAN DEPLOY TO YOUR AZURE FUNCTION. SHOW THIS CODE RUNNING IF I GO HERE AND THIS IS THE FUNCTION OF THE REPOSITORY, DON’T PICK ANY OF YOUR REPOSITORY, DON’T MAKE ANY ASSUMPTION ABOUT YOUR TEAM. WE HAVE THE FUNCTIONS REPOSITORY. ESSENTIALLY A META REPOSITORY CHA ONLY HAS ANNOUNCEMENTS, NO MAIN CHECK IN. ONE CUP IS ENOUGH FOR THE PM TEAM. THEN THE HOST, THE RUN TIME, ASSUME 18 CUPS, PEOPLE ARE WORKING HARD. THEN THE TOOLS, 59 CUPS. A LOT OF WORK. THIS IS THE BACKEND, AZURE FUNCTION, RUNNING THE CLOUD TO DO THE PREDICTION SUPER EASY TO HOST AND TAKE ADVANTAGE OF SERVERLESS WITH PYTHON. THIS GETS A LITTLE BIT MORE COMPLICATED SOME OF THESE MODELS ARE A BEAST IN TERMS OF MEMORY. UP TO 1. 5 GIG A MITES OF MEMORY. IF YOU TAKE ADVANTAGE OF THINGS LIKE THE PREMIUM PLAN, NOW IT CAN GO UP TO 14 GIGABYTES OF MEMORY. SOME OF THOSE EXECUTIONS TAKE LONGER THAN THE TEN MINUTES EXECUTION, DARIA EXPLAINED, THEY COME IN AND ASSUMER HANDY. EVEN THE INCONFERENCE, DEFINITELY THE MODEL TRAINING, WILL REQUIRE HARDWARE, THE TWO DON’T NORMALLY HAVE ON THE AZURE FUNCTION SERVICE. YOU HAVE CONSUMPTION. IF YOU WANT GPU, FPGA, THEN WHAT YOU CAN DO, SOME OF YOU HAVE SEEN, WE ANNOUNCE THE SCALER FOR KUBERNETES. YOU COULD PROVISION THIS TYPE OF HARDWARE TO RUN ON YOUR KUBERNETES CLUSTER AND DEPLOY THE FUNCTIONS TO IT. TAKE ADVANTAGE OF THE UNDERLYING HARDWARE. RUN TIME IS THE SAME, RUN ACROSS WHEREVER YOU DEPLOY IT. FUNCTION EXPERIENCE IS LIKE THE ONE I SHOWED. THIS IS INTERESTING, A LOT OF TALK, I SHOWED HOW TO BRING PYTHON CODE WITH CONFIGURE, YOU CAN DEPLOY THAT. A LOT OF ENVIRONMENTS NOW, YOU DEVELOP TO CONTAINERS WAY YOU PACKAGE THE APPLICATIONTION IN THE CONTAINER FORMAT AND HOST A CONTAINER. WE HAVE AN AZURE FUNCTION

FOR LINUX. CAN YOU BRING THE CONTAINER, WILL INCLUDE THE AZURE FUNCTION RUN TIME. HOW TO SCALE THE SERVERLESS BASED ON EVENTS IN THE FUTURE. THE DATA SET CAN’T LIVE ON PREMISES THE POLICY, THEY WANT TO KEEP THE DATE ON PREM ON YOUR OWN NETWORK YOU NEED ON TUNNEL IN YOUR FUNCTIONS RUNNING ON THE CLOUD TO ACCESS THAT NETWORK. YOU CAN DO IT BOTH WAYS OTHER TIMES YOU ALSO WANT YOUR CODE THAT PROCESSES THAT DATA TO BE FULLY ISOLATED. NO HTP END POINT. YOU CAN USE THE APP SERVICE ENVIRONMENT NONE OF THE LIMITATIONS ARE PARTICULAR TO PYTHON, TRY SERVERLESS, THAT SHOULD BE A GREAT WAY, SOLVE 90 OF THE CASES. BUT YOU WILL NEED ONE OF THE OPTIONS AT THE BOTTOM TO GIVE YOU POWER TO OVERCOME SOME OF THIS LIMIT THAT YOU MIGHT FACE ALL RIGHT. >> A FEW TAKEAWAYS FOR THE SESSION. WE HAVE A LOT OF ANNOUNCEMENT AROUND THE AZURE FUNCTIONS, PROXIMITY TO BUILD, AND WE KNOW THAT YOU GET SO MUCH INFORMATION. SO JUST GO LOOK AT THE AZURE BLOG AND FIND A LOT OF OUR ANNOUNCEMENTS WITH RESOURCES FOR FURTHER LEARNING AND LINKS TO THE DOX AND EVERYTHING THAT YOU NEED TO GET STARTED. THAT INCLUDE AS BROAD RANGE OF ANNOUNCEMENTS FROM RUNNING FUNCTIONS AND KUBERNETES WITH SERVERLESS SCALE TO NEW DEVELOPMENTAL LANGUAGE IMPROVEMENTS AND ANNOUNCEMENTS THE ANNOUNCEMENT OF POWER CELL CORE AND IMPROVEMENTS FOR . NET SUPPORT WITH DEPENDENCY, IMPLEMENTATION FOR NON. NET EXTENSION BUNDLES, AND GOING INTO DEVELOPING EXPERIENCE WITH IMPROVED AZURE DEV OPS, SUPPORT A BUNCH OFFERS THIS THAT YOU CAN DEFINITELY GO AND LOOK AT AS PART OF OUR BUILD ANNOUNCEMENTS. THE OTHER THING I WANT TO MAKE SURE THAT WE MENTION IS THAT GETTING STARTED IS REALLY EASY. IF YOU DON’T WANT TO WRITE YOUR OWN CODE YOU CAN GET STARTED WITH SAMPLES AVAILABLE IN THE SERVERLESS COMMUNITY LIBRARY ALSO, YOU CAN CONTRIBUTE TO THAT AND YOU CAN MAKE SURE THAT THE WORLD GETS TO BENEFIT FROM YOUR CODE F YOU SUBMIT IT AS A SAMPLE. JUST TO RECAP WHAT WE LEARNED TODAY, WE HAVE A FEW DESIGN PATTERNS THAT WE COVERED. AND THOSE ONES COVER CREATING UNIFIED API SURFACES, EVENT DRIVEN AUTOMATION, LONG RUNNING ORCHESTRATION, AND MACHINE LEARNING WITH AZURE FUNCTIONS. THESE ARE JUST EXAMPLES. WE KNOW THAT YOU HAVE BUSINESS LOGIC THAT’S ALREADY IN PRODUCTION. AND YOU DON’T NEED TO REWRITE IT. YOU CAN ALWAYS EXTEND IT LEVERAGE EXISTING ASSETS. AND REALLY ENHANCE THEIR VALUE WITH SERVERLESS TECHNOLOGIES. WE KNOW THAT SERVERLESS, LIKE THEY SAID, IS APPROPRIATE FOR THE MAJORITY OF CASES. THERE WILL BE CASING WHEN YOU NEED TO USE SOMETHING ELSE. DON’T BE AFRAID TO BREAK THE SERVERLESS GLASS AND CREATE COMPOSED SOLUTIONS, THEY REALLY WORK F YOU WANT TO GET STARTED, THERE ARE A LOT OF RESOURCES TO GET STARTED WITH AZURE FUNCTIONS. AZURE. com, AND ALSO YOU CAN GO TO GITHUB REPOS GET INTRODUCED IN TERMS OF COFFEE CUPS, BUT THEY’RE REAL AND THEY REALLY ALLOW YOU TO PARTICIPATE IN OUR COMMUNITY. WHETHER IT IS A SINGLE ISSUE TELL US WE NEED TO FIX SOMETHING, WHETHER THEY’RE PARTICIPATING IN THE DISCUSSION, OR WHETHER YOU WANT TO SUBMIT PRs TO IMPROVE OUR PRODUCT. ANY AND ALL OF THOSE ARE WELCOME. >> WE ARE PRETTY ACTIVE, I THINK, ON TWITTER, TOO, REACH OUT TO US. ALSO REALIZE, WE WILL HAVE TIME AT THE END. SOME OF THESE ANNOUNCEMENTS, WE DIDN’T COVER THEM,

IF YOU HAVE QUESTIONS ON ANY OF THEM, INTEGRATION. DEV OPS, ANY OF THE STUFF YOU HAVE SEEN THERE, WE’RE HAPPY TO ANSWER HERE OR ONLINE LATER OR AT THE BOOTH AS WELL. A FEW MORE THINGS COMING UP. >> AND A FEW MORE THINGS COMING, WE HAVE A COUPLE MORE SESSIONS THAT ARE COMING UP THIS AFTERNOON. SO WE WANTEDED TO MAKE SURE YOU ARE AWARE AND THEN THERE WILL BE RECORDINGS FOR THE OTHER SESSIONS COVERING SERVERLESS CONCEPTS. WE KNOW YOU HAVE A LOT OF CHOICES AND CHOSE TO LEARN ABOUT SERVERLESS IN THIS SESSION. THANK YOU. WE ALWAYS APPRECIATE FEEDBACK AND WE APPRECIATE THAT THERE ARE A LOT OF RESOURCES THAT YOU CAN USE TO CONTINUE YOUR LEARNING