Go back

S2E23: Building Paid: $31M Raised on Confidence, Not Fear (Manny Medina, Raj Dosanjh)

64m 10s

S2E23: Building Paid: $31M Raised on Confidence, Not Fear (Manny Medina, Raj Dosanjh)

Keskustelussa käsitellään ensin Shopify-alustan käyttöä, mutta pääpaino on Azure-integraatiopalveluissa. Shannon Maldonado korostaa, että Shopify on helppokäyttöinen ja sen hallintapaneeli tarjoaa kaikki tarvittavat työkalut. Tämän jälkeen siirrytään syvälliseen analyysiin Azuren integraatiotyökaluista, kuten Logic Appsista, Azure Functionsista, Service Busista ja Event Gridistä. Keskeinen teema on, että palvelun valinta riippuu yrityksen teknisestä osaamisesta ja tarpeista: low-code-ympäristöissä Logic Apps on ihanteellinen, kun taas pro-code-kehittäjille Azure Functions toimii paremmin. Logic App -kulutusmalli on kustannustehokas mutta ennustamaton, kun taas Standard-malli tarjoaa varatun kapasiteetin ja paremman hallinnan. Uusi Logic App -automaatio yhdistää molempien vahvuudet ja lisää tekoälyn työnkulkujen luomiseen. Liittimien ekosysteemi on keskeinen, mutta niiden käytössä on huomioitava turvallisuus, kuten käyttöoikeuksien vähimmäisperiaate ja hallitut identiteetit. Observability on myös tärkeä osa integraatioiden hallintaa: lokituksen lisäksi tarvitaan liiketoimintalähtöistä virheraportointia, jotta ongelmat voidaan ratkaista tehokkaasti. Kokonaisuutena keskustelu tarjoaa käytännön ohjeita Azure-integraatioiden suunnitteluun ja ylläpitoon.

Transcription

7102 Words, 39396 Characters

Finnish
Olen Shannon Maldonado, käsintehtyjä artesaanitua teitä myyvän jauji-lahjakaupan perustaja. Valit sinun Shopify-koska-alustoja testatessani totesin sen ehdottomasti yhdeksi helpokäyttöisimmistä alustoista. Minulla oli tärkeää pohtia kehittymistä me tulevaisuudessa. Kaikki myyntiin tarvittavat työkalut, kuten varaston suunnittelu ovat kätivästi dashboardissä. Aloita ilmainen kokeilu Shopify-piste komsi-vustolla. Siellä on Sciences 65-vampol Taliban. Tässä on aina ihan harjeimme multipliedaljembata, mutta myös structuralismammeuri tapikuin analoittusutua. Yle vissitein aiheiltaessa murossa. Haltfin, niistä cetkiäienciaohaminen on mahdollisoimman, és on kunan Etano-genniecti 417-huolloin. Se jawsi on muitoisemmin olinya reception 때도. Ja se on todella ollaan pää弁selylrihu compromisedik萬 onkinan, että ent splashingaitaan todella hieman tänysti niin, että apia ei ole. Se on tullut, että se on tullut, että jäällä on tullut, että jäällä on tullut, että se on tullut, joten on tullut. Mä oon tullut, Sani Gilson, Microsoft MVP, ja se on tullut, että se on tullut, että se on tullut, particuluser Yokos on Adullaholodjapsidevкраinen solvediselle pickyessinhoimme eines. Hyvä Mattius concentraden Bluetoothana, kun intended ovat ridiculousmonia, johon聲 Sennainen tarvaña? Ja drain wheelies mittouinen ja lö CHARLikelanNE stress ja Diskussion­eика. Kesäivi idea vihaessin mån愛it Chungan on karnaisesti pol kiedytiaavin. Den antia malita juttuu 160 %. Se on wornna, sympatikaa ja on sääntä ja on sääntä ja on sääntä, on käydä ja on sääntä, on sääntä, on sääntä, on sääntä, on sääntä ja on potentiala ja on tullaan. So what happens when we started applying those ideas in enterprise integration? Ja, mei käynyt, ja on seuraavaa seuraavaa todella tämän paikki. - Eli näiden, kun takana sanoa, anything siirrys vuon, että nimenmurnustodeita ei kä groß Tエ projectede mitä hank longermaan val finalisternous個 on what's all going on? - institute - - Yes, lapsen asaemus ja organistäshunhootto ja kysyi on oikein kommentsi, maaterverえ我這邊 hoitte ne sincereksia! - hyvin protectedi ensin baykus meistä yhtä j harvesteditsi et mitä hänen evapor因為 ihmisaat smoking I thought, "Ok, tämä onkin mais läsä, mikä onmarkkaisuus." I thought, "Ruditu tuo, mako laps спäminen, kuin vuonna, suuddu doctrineilla, ja kuitenkian swapin muskalaisille, siшеan ja todavía joku kculosisit." Before, I actually knew it, I was already working with Atrologika, build integrate with SAP. Sie varascaminen focus прокuitsemme substitute complexin curtaidadmentoksia, ja u Germans, kun vaan B mä tartattean joittaa halu gingoa, joune yhtä, ja kun meillä on tässä, on sellainen t around että tiedä, koskaakes clue - edell onto halva buona vain se, kun mitä landedi on. ja kun meillä on näytää kertaa, että tässä on kertaa. Ja ja, mutta mitä on jatkaa, että se on jo niitä jaa, joten se on jo niitä jaa, mitä on kertaa, mitä on kertaa, että on kertaa, niin on kertaa, että on enää kertaa. Ja se on jo, että on se, että on kertaa, että on kertaa, se on toki, että joten se on tullut sen kutsu, - ja jos eri eri jatkoa, - ja että tietysti se on tullut se, - että se on tullut sen kutsu, - mutta se on tullut sen kutsu, - että se on tullut sen kutsu, - ja eri jatkoa, että se on tullut sen kutsu, - että se on tullut sen kutsu, joten se on tullut sen kutsu, - että se on tullut sen kutsu, - että se on tullut sen kutsu, - että se on tullut sen kutsu, - ja se on tullut sen kutsu, - ja se on tullut sen kutsu, - You've got no A to B kind of connections, but you've got A to service burst to B to make sure that it's always decoupled and it makes a integration repeatable and reprocessable at the point where you want to hook into your integration again Then we've also got event grid which is something Maybe or maybe not with event hub because that may basically telemetricized which can also be used for IOT but in a sense IOT is also maybe integration Because we're simply connecting again and I think those are the main I'm thinking now am I forgetting something? I don't think I forgot a big one. I think we had a logic apps as a functions app as a service bus Event and I think that's the big five. Yeah, but is there a simple mental model Architects can use when deciding which service should solve which problem? Yane It depends on your company and I know that is a consult C answer because the in consult C There's not always a one-off or maybe let's say almost never Because if your company is fully into low code and has Developers that actually love to low code then Azure logic app makes sense to use an API management has predefined policies which are also low code in a way it looks like XML, but it's not actually that So from that perspective if your company is like that and then that would be a choice you can make On the other end if you've got a company with a set of dot net developers and they like pro code and then maybe It's best to use Azure functions together with Azure API management and also an API management Even though they're predefined templates you can also make use of C sharp it's not full C sharp, so it's not the entire stack, but still you you can also add in code I think as your service bus in my opinion should never be a debate at least not for The let's say the back-end processing If you want to have a synchronous call where you call an API and get a response and maybe service bus isn't good to add in because it yeah it adds It lowers the speed of your integration and so it lowers the UX obviously But from for deep coupled purposes and back-end processing I would always advise service bus But okay Yeah, that's interesting Let's focus especially on your strongest area. I think the Azure logic it's Olen Shannon Maldonado, the director of the Artesan Institute of Technology Lajja Kaupan Perusta Validian Shopify because of the development and testing, it's a very important thing to do In the development of the development I was also interested in the development of the development of the development All of the things that are available are available in the course of the course of the course of the course of the course of the course of the course of the software Aloi, I'll be able to do it I'll be able to do it Olen Shannon Maldonado, the director of the Artesan Institute of Technology Lajja Kaupan Perusta Validian Shopify because of the development and testing, it's a very important thing to do It's a very important thing to do It's a very important thing to do It's a very important thing to do All of the things that are available to do All of the things that are available to do All of the things that are available to do as a logic app project? Yeah, well, they basically make your integration because that's the deterministic language that, yeah, well, that's why they call it deterministic baby. It determines what your logic app looks like. So it provides this SKU, it provides a location, it provides the resource groups, all that kind of information is stored into either a bicep, which is basically back and translated to ARM. So those are related, I wouldn't say they're the same, but bicep lowers the duplication that ARM natively has. And Terraform is also a way of deploying your infrastructure as code. So it's supporting the deployment basically. Okay, you have to talk about consumption and logic at standards. I think, yeah, it's, it's, it's, people like me, it's getting a little bit bit, but he's confusing when we look at it. I'm not sure. What's off use it so much. How do you explain logic app consumption versus logic app standard? It's basically rather simple and I can understand that it may sound confusing at times, but the consumption is pay as you go. So that's on a managed platform, which is managed by Microsoft. So basically you're building your work flows there and you pay as much as you use it. And obviously there's a degradation in what you pay actually because if you call SAP, that's more expensive than where you call an HTTP trigger, for example. So those are the parts, but it's fractions of cents that we're talking about for every execution and eventually that will turn into 10 or hundreds of euros a month. But you're never actually quite sure on what your bill will look like at the end of the month. Standard is a reserved capacity basically. So it's running on your own service plan. So you have your own compute. And within that compute, you run your work flows. So basically you're not only building your workflows anymore like you would with consumption, you're now also managing a server in a sense because you have to make sure that your compute is capable of running the work load you're aiming at. And that's the difference between the two. And to make it even more complex, we now also have logic app automation in public preview. And logic app automation is basically the power of logic app consumption, the pay as you go model with the power of logic app standard, the reserved compute, and all network isolation and basically the infrastructure side of that. And on top of that, they put AI to let it build your workflows. So you cannot, you don't have to actually click your workflow together anymore. You can just explain your intent. And logic apps automation will create it for you. Yeah, I think one one one topic or bigger topic. It's logic app has has a has a I say on one side, it's the superpower and then on the other side, it's like a trap. And and I think yeah, one of the biggest from my perspective, setting points of logic app is the connector ecosystem. Yeah. How important are these connectors to success of for the success of logic apps? I think they're majorly important. And on top of that, Microsoft decided to bring the connectors out of logic apps. So we're back in the day and I'm talking back in the days, a month ago, right? You had to create a logic app to make use of those connectors and those connectors are managed by Microsoft. So you don't have to worry about API versions and what do I need to call, etc. That's all managed by Microsoft. So you're basically leaving some overhead behind because Microsoft takes care of that. But nowadays, you've got Azure connector namespace, which is basically the logic app connector. But now it's placed as a separate resource in Azure. So you can also use it in your function or you can use it in your own code in a web or whatever. You can use it everywhere within Azure. So it basically, you're using the power of that managed connector. It's a very important thing to do. I was able to create a logic app to make use of it. All of the things you need to do, as you can see, are connected to the dashboard. You can also use the shop-file to create a new computer. I don't know. Is there something I think, but use my connector and click, click. I'm ready. So is it really this or looks like that's only like the simple? It's basically both. And the reason I'm saying it like that is, yes, you can click, click, and then you're ready. So that's one part of the story. But as you correctly mentioned, logic app sounds like a superpower. But a super hero and I can't remember rich said great power comes with great responsibility. And that is basically the same with logic apps with the connector namespaces, etc. Because and then we're revolving back to the beginning of this podcast where we had it where we talked about what makes a good integration. Security, for example, is a great thing you need to know. You really need to think through about how to set it up because sure we can give a connection access to a system and then it can freely do anything. So that's really what we want or is there a risk involved and can if we got access to a table, for example, do we want that full table exposed or do we only want several fields of the table exposed. So from that behalf, you really need to think through on what am I actually trying to achieve here, what are the risks and how can I mitigate the gap between those. And even though it is click, click, you really need to think about your setup and your infrastructure. So we're an Azure, we're in the cloud, it's super cool. But still it's also an infrastructure project. Is there any limitations and architect should evaluate before using managed connector. Yes, there are several depending on the connector you have to make sure that one simple example for is does it use a user to connect or does it use an app to connect because if I'm connecting as a user, let's say I'm using the user Mirko. That would mean that if there's also another trial in the system, my integration will act on behalf of you, making every other trail leading back to you. But because other people use that integration, it might not even be you, it might be someone at a desk somewhere in the company. That is a security risk because you get hit by security that you change something which you didn't because someone else in the integration did it. So those are parts that you also need to think through with AI in perspective, you have to think about user permissions again because AI will act as the user. But if you have access to it and AI can have access to it, but if you don't, then it's not a good thing if your AI connects as an app and provide you everything that the app has. So we're shifting again to that perspective. So you really need to think on what otherizations do I need and how do I embed that and how do I make sure that it always needs back to the correct. So I think that's a point of failure and then we have. Yeah, I think we have four ways to integrate. So when should you use a built-in connector, a managed connector, a custom connector or simply call IPI directly. Our main objective is to always use built-in connectors when you can because the built-in connectors are running within the logic app runtime. basically part of your integration. a really part of your integration, whereas the managed connector is managed by Microsoft. So it always leaves your environment, and with a build-in, that's not the case. Usually, and especially at this point, it could potentially have a better support for the connectors you're aiming at. Then you're connecting to a system that's not known, or you're using your own API management, because Microsoft best practices to basically use your API as the central gateway of all your connections. Then that could be a perfect custom connector. How did we handle the authentication and credential management properly in logic? Yeah, well, basically, you have to look at and you mean from what the logic app uses, right? Not the one who's calling the logic app, because there's also a difference there. OK. The best practice would always be, would always go for the least prints privileged. So don't make sure you're only providing the access and authorizations that are necessary for that logic app. And I'm specifically saying that logic app, because you could reuse the same credentials for other logic apps as well. But it should be as granular as possible, because if there's a breach, if you kill one connection, and you're reusing that on every integration, you're killing your entire integration. So you should make sure that you can isolate it in a way and only provide the rights that you need. OK. And how important are the managed identities in modern logic app Aussie textures? Majorly important. And in my opinion, and I know there are different opinions on this topic. But the great thing about a managed identity is that it's part of your resource. So if you delete the resource, your identity is gone as well. And because the identity is connected to a resource, you're also in a way in the least privileged mode, because only your resource can access it, because you have to actually provide access for that specific resource. You've also got user managed identities. And I know why people should use them, because user managed identity is basically the same kind of principle only not connected to a resource, but you can connect multiple resources to it. But with that said, that obviously could potentially expose a security risk, because orphaned resources, for example, still have access through that user managed identity. And in my opinion, if you can use managed identities, if your environment allows you to, then that would always be my recommendation. OK. Aku, I'm sure passwords and connection strings affect the disappear from the button integration designs. Ideally, yes. Obviously, we're always aiming for the highest possible option. But we also know we have to deal with legacy. And some systems, let's take SAP, for example, especially older ERP versions. They still use plain basic username and password credentials. And I know there's something like secure network connections. And you can set it up with carbrose. And it's a pain in the ass to connect in the first place. And it's even more pain in the ass to maintain it while it's running. So yes, there is to secure it a bit more, but it really depends on how stable you want your connections to be. Nowadays, luckily, also SAP is turning more and more to allow, for example, and allow it to use a app. But then again, you should think about whether to use an app or not, especially in a ERP systems like SAP, because there are a lot of information that can be breached. But yeah, if there's a possibility to remove the need for keys, then that would ideally be the best fit. Yeah. You say of observability. I think building the integration is only the half of the problem. Then it comes to operate it. What does the good observability look like for Azure integration services? As we're now addressing it is to have-- and then you're also almost coding again-- we're working with Tri-Catch blocks, for example. So we're trying to execute an integration. And when it fills, we've got a catch that checks, OK, what error did appear? And then it should be locked, obviously, because observability is way more than just logging. It's also making use of, as we call it, in logic apps, tracked properties. And a tracked property is different from logging in that sense that you've got the default diagnostics that is sent to log analytics for Azure logic apps. That is something that you could use. But if you extend that with tracked properties, you're also adding your own business information to the default Azure diagnostics. And then you've got the full end-to-end scope. Then you can see what connector failed, for what order was it, or for what user, or for what customer. And then you've got a full scope. And then obviously to make the observability-- a connected story is to also make sure that you have your dash boards and your metrics, and that you also can view it in a proper way. So basically, what you want to know is, did my integration run? Did I see failures? If it failed, why did it fail? And that why is, in my idea, not a technical-- I've got a 500 internal server error, because then everybody thinks, OK, well, great. It should be something like I couldn't process this invoice, because it has no invoice number. So it should, in my opinion, be more like business-driven data. So you can also move the responsibility for monitoring your entire environment from your own desk to the business, who is actually running the operation. Yeah. Yeah. Listen, what first come in my mind where this is the Azure Monitor? Yeah, that's one thing that you can use indeed. How do application insights and look at a mix really fit in this picture? How we can we use this for getting to do it perfectly from your perspective? Yeah. Well, if you use the default Azure diagnostics, then you're already logging to log analytics. And you can extend it with your own logging. There's a connector also for that to connect to a log analytics workspace. And in my opinion, you should make sure that your logging can tell you what happened. And why it happened. So it explains a bit. And your track properties are added on top of that to tell you what where did it happen. And you know that you can always track for a-- let's take the invoice example. Why the invoice isn't processed and why the number isn't present. And then you can dig into your logic caps, going back to the why I love logic caps, because then you've got your full run history. And you can just click through the actions and see, oh, oh, I see it. I have a mapping here, but the mapping field. Yeah. I think-- wait, it's a little bit different. But I think when I work in cybersecurity, we get thousands of 100,000 of all of our lots. Nobody pays really attention to. Because it's too much. Now we have the security copied of this helps. Is there anything else for the logic caps? Yeah, well, basically, because you're logging to log analytics, at least that's-- let's say the default. You can obviously use other logging and monitoring solutions as well. You could use Sentinel. And the trick is what most companies, in my opinion, try to do is log everything as much as possible. Because then we've got the information. The only thing they're forgetting at that point is that by logging everything, you're also making sure the noise is raising. And there's so much information, basically, what you said. There is so much. We can't look at it all. So make sure to log only which need. So in our best practice, for example, we've got, as I mentioned, the try catch block. And we're only logging once at the start. and once at the end. to make sure that we've got the start of the run. We've got the end of the run because then we can measure the execution time, for example. And we know, did it successfully run or did it fill and if it filled, why did it fill? And that's all there is to it. You can add multiple actions and log everything and it just doesn't make sense. You really need to think of what should you log because also the security go pilot and basically every AI application. If you provide it with too much context, the results are getting bloated. Yeah, yeah, of the overlying business. So for my best victim, I log the logic app completely successful enough. If you log, if the logic app run successful, is that enough? It depends. If you don't want to measure the execution time, then yes. If that helps your situation because obviously again, that's also a causant to answer. You need to log what fits your situation. And if your situation is helped with just a single log rule. Sure. Why not? As long as it doesn't bother your operation, it's perfectly fine. And when I think on monitoring, we have both too big monitoring. We have another business level monitoring and the technical monitoring. We separated or shall we put it together? That is an interesting debate. And I think we should separate it. Okay. Because at first, the business should be informed. Something happened with the integration. And this is something you can fix. If the business should not be involved because there's a technical error, then maybe the business should only be informed by, hey, we noticed that the integration had a failure. But your technical colleague is already looking at it. And that's why I think a separation of duties is really helpful there. Yeah, I think often workers, EGL pipelines in the past. And what we often have is EGL pipelines work technically perfectly. And it's a success. But the business side, say on the other side, it's failing. Did you see that could be also possible and logic at the problem? Sure. Yeah, the thing is your logic app can provide a green check mark in the run, which is the same with ETL because I think you're aiming for a data factory, for example. And it's the same there. If your error handling is set up correctly, your logic app may not fill because the run completed. But during the run, it experienced an error which you captured somewhere or did something with or basically ignored it because I also see that situation sometimes. And then your run seems to be just fine. Nothing happened. Everything's green. Cool. But still on the business side, that simple invoice that we took as an example earlier still isn't processed. And that's an issue. So yes, and it gets it gets even more interesting with AI in the mix. Because going going to that topic, obviously is. You started off with your logic apps are running like a system, right? It's top down. It's just executing what it's told to do. But when you talk about an organism, it's basically stating that it responds to the environment that it has a feeling of something or some sort. And that's basically what AI does with the logic app because you used to have a top down workflow. And that used to run perfectly fine or not. And now with AI, if the or not situation happens, you don't have to think specifically about, OK, is it a 500 error is the 503 is the 429 or you don't have to think about it. So AI can think what happened here, get us some more information and with that information, determine itself should I connect to the business or should I connect to my technical colleague. And from that point, your logic app, which was a integration as a service suddenly becomes an organism as a service because it basically reacts and it responds. I like to talk about the idea, I stuff, but before I think we have to do the the the bad part. What when I often see, I don't know, it's only from my perspective, but integration platforms often have extra extra extraordinary access across an organization. Is the integration layer something sometimes one of the most privileged parts of an enterprise architecture. It happens to be, but in my opinion, it should not be going back to the to the authentication that we talked before, because if your integration platform has privileged to the application that it should access. Then you may have a major security risk because then there's one single point of failure and that's your integration platform. And if you need to kill it because there's a breach, you're killing your entire integration platform, which could potentially run your primary process. And with that said, it basically means your company has come to a standstill and I think from a, let's say, healthy way of working and especially in this modern day and age, you simply cannot do it like that anymore because your integration, not your platform, but your integration should have the privileges to execute what it should execute and no more. Yeah, what I think is it's we have start with integrations and I don't know to a to do will be. So, and now we have departments and the departments have hundreds or thousands of integrations. How should organizations manage the identities, especially when we get in this high level of integrations. Yeah, and to extend that a bit further, the departments that have thousands of integrations may potentially even build our own integrations. So it's not even managed by our department itself anymore. So that also basically moves the security risk to the desk of the user that's working with it. So then there's governance is the key there because you have to make sure which department can ask for which permissions at what level for which integration. So you have to really drill it down into a specific purpose. And that purpose is supported. And if at some point a new integration comes in and says, I want to do similar thing, your new integration. So you're getting new access. That's at least how I see it. Unless you can say, okay, this is basically the same process we're working with because then you could potentially say, okay, if we need this process to get to a standstill because there's a bridge, for example, then the entire process should stop. So then that makes sense to use the same authorization. But again, you have to make sure that your logic app will not have more permissions than it actually needs. And then we have to talk also about the least privilege. Yeah, yeah, the least privilege is basically the best practice that also Microsoft aims for every time. So I know it's not it's not always feasible for 100% because of support of application, for example, I know the graph connector and the Microsoft graph API, which is basically the heart of a Microsoft environment. So I always have a really granular permission set. So then from that point, you can aim for least privilege, but leave privilege and maybe everybody knows this from their Microsoft exam, right. They always ask for I want to achieve this task, but I want to have least privilege. And then the answer is you need to be global admin. Because other roles are simply can't you know, that's still a thing. So least privilege doesn't always mean that you have to go for the lowest role or rule set. But it has to make sure that it can do its task and ideally not more than that task. when I think on the IGL pipelines, it's yeah what one security thing we we it's just one of the key security things it's as a key world is also a topic for logic caps or is it handled it's completely different no that that is a main logic app concern because for example with the logic app standard you've got your own service plan and your own compute right as we mentioned before and it also has its own app settings and the app settings can be referenced to a key vault for example and it also boils down to your infrastructure as code because if you're writing code for your logic app and your code contains secrets then we've also we've got a high risk if your security there over there so using a key vault makes sense at in my opinion everything you do at Azure obviously with the nuance it should be supported sure but every application I touch so far now supports key vaults and also in the logic app consumption you can all will also use the managed key vault connector for example and then the managed identity of the logic app connects to the identity of the key vault retrieves the secrets and uses it in the workflow and it's also sanitized so if you look at the run history you don't see what's actually gathered yeah and what's about a private endpoint and network isolation yeah that's that's difficult with a consumption or at least undoable with consumption because it's a managed platform and you can't manage your own network isolation with a standard and with a logic app automation you can and you can actually isolate it because I know with API management for example you've got a basic V2 tier rich can do vnet sort of standard V2 tier which can do vnet injection or the premium V2 tier which can do network isolation and the difference between those two is that with the standard you're injecting the API management in your network but it's still publicly accessible and with isolation it's actually cut off on the internet and that's the same with Azure logic apps if you do network isolation you should always think about cutting it off because at that point adding a API management in front to actually connect to your logic app would make sense yeah cool well oh yeah we are running a little bit off time so okay then we go to the central idea of this conversation your shortcuts that is how AI turns integration into organism as a service yeah can you yeah can you show it explain what it's what's really mean yes I had a talk at the MiIRG which is the Microsoft integration user group here in the Netherlands where I'm based and it was an idea that popped in my mind and I just thought okay well let's give it some attention and make this a session over there right then that there we further explore the idea of that because basically we used to have infrastructure as a code we used to have in the integration as a servers we have software as a service I mean everything as a service at this day but the integration as a servers was always consisting out of the components we already talked about and did exactly what you told them to the same with normal code or let's say Pro code you tell it what to do and it runs top down specifically what you told the two but with AI in the mix because now in logic apps you have got agent loops for example and agent loops are not your deterministic I go from A to B unless C then I go to D no it's I'm putting in A and depending on the input on A it depends whether it should be C or D it thinks by itself what route it should take it also rationalize why it should take that approach and if an unexpected situation occurs it can also respond to that so instead of just going from top to down to your code it now starts thinking and responding and it's thinking along with you and it's basically not your integration anymore it's basically your companion so everything you did not think about yourself AI could maybe handle that let's make this this this practical image a traditional logic app and events happen the workflow starts there are conditions direction there are outputs everything has effectively been predefined by by a developer actually where does the AI enter the model basically on the condition for example because let's say we've got a logic app that receives an input and based on that input it calls an an endpoint if that endpoint endpoint would fill you could add in a condition with a run after as we call it in logic apps and stay okay if it went successfully then we should execute flow a responding back with a success to the user for example and when so when it filled with a 500 error let make it's really specific here then we should reply back to the user something filled and we need to lock something in the monitor for example or we should send an email to the technical guys what you didn't capture with that flow is what if there's not a 500 error what is it what if it's a 429 with means a 500 errors an internal server error and a 429 means too many requests so basically your API was still busy or was overloaded or whatever what do you do then so you can you can add in AI to the loop and say okay please check for the type of error if the API is too busy wait for a moment and then call it again you don't have to I really explain that it's a 429 and that there's a retry header with seconds in it and how long you should wait you don't have to tell it that you simply say okay if there's an error and the API is too busy wait and try again that's enough at some cases you obviously it depends on the context but to make it really simple right if it filled send an email to the technical guys but if it filled with a business data driven error then send it to the business and if it succeed just say okay and at that point AI interprets your text input so your intent what do you want to achieve with this integration and it basically handles it itself so you don't have to worry about setting up your conditions and making your entire workflow designed the way you want error handling to be you simply add in an agent loop you tell it this is the situation go for it so so so AI can can classify incoming information and then choose the appropriate workflow no it doesn't create the workflow but it can indeed check the input that's one of the things it can also check the output of an action so for example the HTTP call it can check did it run successfully and if it failed why did it fail etc so that's in a possibility so it can connect to different parts of your process where you need additional or let's say where you may expect the unexpected and at that point AI can be a really added value because the unexpected things even though you're willing enough to do so you can't predict everything and if you make a deterministic then you should make everything as clear as possible and with AI there's no need because you can also instruct your agent if you really don't know send me an email okay and I think what actually is I say it's a password it's it's all talk about self-healing integrations um can you a little bit explain what it isn't how it really works sorry which one you mean the self-healing integration the self-healing integration yeah yeah well I think basically AI is what could potentially make a self-healing integration because you've got your flow and you've got everything determined and from top down we know exactly what we want expect for that unexpected part and then AI could also uh reprocess itself for example so let's let's take the example of the API that's too busy at this point you have to think about your retry pattern because the standard in The Microsoft environment is that it exponentially waits. So it waits, I believe, first 10 seconds, then 20, etc. But is that the idea of the API you're calling? Because maybe that API says, "I'm too busy now, come back in five minutes." And that interpretation is something that AI can do. And that's basically already self-healing, because instead of you thinking about retry patterns, you just say to AI, "Wait." And it interprets how long should I wait? What does the calling endpoint expect from me? And how can I respond to that? And you can make it as. Basically, as smart as you want it, but still. And that's my tagline, obviously. You have to make sure it's simple. And it stays simple, because the more complex you make it, you may run into a context overload, and then your AI may have some unexpected responses again. Yeah, cool. I think I could talk with you hours and hours. I think you know what I'm supposed to say. So I have an every round. I have a rapid fire round. I give short questions, and you give a short answer. So ready? Sure. Logic apps are functions. Logic apps. Ficando or bitterbollen? Sorry, what did you say? Oh, bitterbollen. Rest or event? Rest. So cool or as in cross? Depends, but I think as you go on this. Visual designer or code? Visual designer. Most underrated Azure integration service. Azure Logic apps. One logic app feature more than what we've heard about. I think it's agent loops at this point. When such a little guy comes to you, so I'll say it's okay. I give you all the money and resources to build your dream feature for Azure, Azure, what will it be? I think extending the logic app out of the machine's proposition further because it's cool now, but I think it can be even cooler if the business is also involved. Okay. Who should I invite next to the podcast and what is the secret question I should ask? Oh, that's a good question. If you're aiming for more on logic apps, then I should definitely go for Wagner's Servea for Microsoft. Okay. And I think the secret question is also the question you asked me. If you've got unlimited resources and people, what would you do with the system? Okay. Yeah, finish the sentence. Integration platform of the future will. Not only think with you, but basically act along you. Yeah, then. Yeah, Sony, I think that it was a fascinating takeaway here. That integration is moving beyond simply connection systems. You have 40 Ks integration has largely been determined, deterministic, what did it happen? That do that. But yeah, adding AI on potentially changed the model, the integration there can be interpreted context, regulation, patterns. It's really, really fantastic. And yeah, for all the people who will know more, especially of your concept, the organism as a service. All the links are in the show loads from the N65 and podcast page. So yeah, you, you find all there and yeah. Thank you so much for staying here with me. Sony, thank you. Yeah, thank you for having me again. And I really enjoyed it.

Podcast Summary

Key Points:

  1. - Shannon Maldonado esittelee Shopify-alustan helppokäyttöisyyttä ja sen hallintapaneelin työkaluja, kuten varaston suunnittelua. - Keskustelu siirtyy Azure-integraatiopalveluihin: keskeisiä ovat Logic Apps, Azure Functions, Service Bus ja Event Grid. - Palveluiden valinta riippuu yrityksen osaamisesta: low-code-ympäristöissä Logic Apps, pro-code-ympäristöissä Azure Functions. - Logic App -kulutusmalli on pay-as-you-go, kun taas Standard-malli tarjoaa varatun kapasiteetin ja paremman hallinnan. - Uusi Logic App -automaatio yhdistää kulutusmallin joustavuuden ja Standard-mallin infrastruktuurin, ja käyttää tekoälyä työnkulkujen luomiseen. - Liittimet (connectors) ovat keskeisiä, ja niiden käytössä on huomioitava turvallisuus, käyttöoikeudet ja riskit. - Parhaat käytännöt: sisäänrakennetut liittimet ensisijaisesti, hallitut liittimet ja mukautetut liittimet erikoistapauksiin. - Todentamisessa suositellaan vähimmäisoikeuksia ja hallittuja identiteettejä turvallisuuden parantamiseksi. - Hyvä observability edellyttää lokitusta, seurattuja ominaisuuksia ja liiketoimintalähtöistä virheraportointia.

Summary:

Keskustelussa käsitellään ensin Shopify-alustan käyttöä, mutta pääpaino on Azure-integraatiopalveluissa. Shannon Maldonado korostaa, että Shopify on helppokäyttöinen ja sen hallintapaneeli tarjoaa kaikki tarvittavat työkalut. Tämän jälkeen siirrytään syvälliseen analyysiin Azuren integraatiotyökaluista, kuten Logic Appsista, Azure Functionsista, Service Busista ja Event Gridistä.

Keskeinen teema on, että palvelun valinta riippuu yrityksen teknisestä osaamisesta ja tarpeista: low-code-ympäristöissä Logic Apps on ihanteellinen, kun taas pro-code-kehittäjille Azure Functions toimii paremmin. Logic App -kulutusmalli on kustannustehokas mutta ennustamaton, kun taas Standard-malli tarjoaa varatun kapasiteetin ja paremman hallinnan. Uusi Logic App -automaatio yhdistää molempien vahvuudet ja lisää tekoälyn työnkulkujen luomiseen.

Liittimien ekosysteemi on keskeinen, mutta niiden käytössä on huomioitava turvallisuus, kuten käyttöoikeuksien vähimmäisperiaate ja hallitut identiteetit. Observability on myös tärkeä osa integraatioiden hallintaa: lokituksen lisäksi tarvitaan liiketoimintalähtöistä virheraportointia, jotta ongelmat voidaan ratkaista tehokkaasti. Kokonaisuutena keskustelu tarjoaa käytännön ohjeita Azure-integraatioiden suunnitteluun ja ylläpitoon.

FAQs

Shopify on helppokäyttöinen alusta, joka tarjoaa kaikki myyntiin tarvittavat työkalut, kuten varaston suunnittelun, suoraan hallintapaneelista. Se sopii erityisesti pienille yrityksille, jotka haluavat kasvaa.

Consumption-malli on pay-as-you-go-pohjainen, jossa maksat käytön mukaan ja Microsoft hallinnoi alustaa. Standard-malli on varattu kapasiteetti, jossa sinulla on oma laskentaympäristö ja hallinnoit palvelintasi.

Se on julkisessa esikatselussa oleva ominaisuus, joka yhdistää consumption-mallin joustavuuden ja standard-mallin suorituskyvyn. Sen avulla voit kuvata aikeesi, ja tekoäly luo työnkulun puolestasi.

Käytä aina sisäänrakennettuja liittimiä, kun mahdollista, koska ne toimivat osana Logic App -ympäristöä. Hallinnoidut liittimet sopivat, kun tarvitset Microsoftin hallinnoimia yhteyksiä, ja mukautetut liittimet ovat hyviä, kun käytät omaa API-yhdyskäytävää.

Paras käytäntö on käyttää vähimmän oikeuden periaatetta eli antaa vain tarvittavat käyttöoikeudet. Hallitut identiteetit ovat suositeltavia, koska ne ovat sidoksissa resurssiin ja poistuvat sen mukana, mikä vähentää tietoturvariskejä.

Hyvä havaittavuus tarkoittaa, että voit seurata integraation suoritusta ja virheitä liiketoimintatiedon avulla, kuten laskun numeron tai asiakkaan perusteella. Käytä kirjausominaisuuksia ja mittareita, jotta voit ymmärtää, miksi integraatio epäonnistui.

Chat with AI

Loading...

Pro features

Go deeper with this episode

Unlock creator-grade tools that turn any transcript into show notes and subtitle files.