(Snowpal Podcast: Part 6/N) Salesforce: Anypoint API Manager, API Governance, Runtime Manager

--

Summary

In this episode, Krish explores the Anypoint Platform’s API Manager, Anypoint Service Mesh, Flex Gateway, and Mule Runtime. He also demonstrates how to install Mule Standalone and deploy an API using the Flex Gateway. Additionally, Krish configures the Mule Agent and explores API functional monitoring. He sets up servers and applications, verifies the application status, and configures the gateway and application URI. He explores API admin and upstream URL, troubleshoot endpoint and request routing, and confirm gateway routing. He also discusses API governance, managing versions and governance violations. He explore runtimes, alerts, private spaces, and load balancers.

In this final part of the conversation, Krish explores the configuration of gateways and Virtual Private Clouds (VPCs) in the Anypoint platform. He then discusses governance and the runtime manager, followed by a demonstration of the visualizer for observability. Krish compares the visualizer to Datadog and provides insights into its capabilities. Finally, he summarizes the topics covered in the Anypoint platform series and hints at future topics for discussion.

Takeaways

  • The Anypoint Platform offers various tools for API management, including the API Manager and Anypoint Service Mesh.
  • The Flex Gateway and Mule Runtime are runtime options for deploying APIs.
  • Installing Mule Standalone allows for local development and testing of Mule applications.
  • API functional monitoring provides insights into the performance and health of APIs. Setting up servers and applications involves creating gateways, installing Mule, and configuring the application URI.
  • Verifying application status ensures that the application is running and accessible through the public endpoint.
  • Configuring the gateway and application URI allows for routing requests to the desired services.
  • API governance involves establishing rules and best practices for managing, monitoring, and maintaining APIs.
  • Managing versions and addressing governance violations ensures compliance with API standards and best practices.
  • Exploring runtimes, alerts, private spaces, and load balancers provides insights into managing and scaling API infrastructure. Gateways and VPCs are important components in the Anypoint platform for managing and making changes to the infrastructure.
  • Governance and the runtime manager provide control and monitoring capabilities for the platform.
  • The visualizer tool in Anypoint platform offers observability and monitoring features.
  • Datadog is a comparable tool to the visualizer, but Anypoint platform provides a more cost-effective solution.

Chapters

00:00 Introduction and Series Recap

01:19 API Manager and API Management

04:09 Anypoint Service Mesh

12:32 Flex Gateway and Mule Runtime

19:05 Installing Mule Standalone

26:26 Deploying an API with the Flex Gateway

43:14 Configuring the Mule Agent

50:19 Exploring API Functional Monitoring

52:18 Setting Up Servers and Applications

53:03 Verifying Application Status

54:22 Configuring Gateway and Application URI

56:45 Routing Requests to Services

58:31 Exploring API Admin and Upstream URL

59:56 Progress and Next Steps

01:04:33 Verifying Routing and Gateway Functionality

01:09:29 Troubleshooting Endpoint and Request Routing

01:14:47 Confirming Gateway Routing

01:20:24 Exploring API Governance

01:23:30 Managing Versions and Governance Violations

01:34:16 Understanding API Governance

01:45:24 Exploring Runtimes and Alerts

01:46:43 Configuring Private Spaces and Load Balancers

01:47:53 Configuring Gateways and VPCs

01:48:17 Governance and Runtime Manager

01:49:02 Observability with Visualizer

01:50:07 Comparison with Data Dog

01:51:21 Summary of Anypoint Platform

01:52:46 Future Topics and Conclusion

Previous: Part 5.

Part 6

Transcript

Krish (saas.snowpal.com) (00:01.442)

Hey there, welcome back to Snowpal Software Development Architecture Podcast. This is podcast number six in this Salesforce series. The last one we looked at the data graph, any point data graph. So if you haven’t watched that one or the ones before, I highly recommend you do so in that order. I mean, you could skip and watch them in any order. I think it might be, you might be okay for the most part, but to get the complete value out of this series, I would definitely recommend that you go.

Krish (saas.snowpal.com) (00:51.482)

Okay, so we’re gonna start, pick up from where we left off. We looked at data graph in the last one just to jog your memory, even if you have seen it. You know, we added a couple of, I think an API with a couple of end points, looked at what the value at the data graph brought at the table. So that was in podcast number five in this series. Now this is number six. Let’s look at what’s next here in the Anypoint platform. This is, we’ve, we’re like halfway through, at least we’ve gone through like four or five items so far.

So let’s go to API manager. Let’s get what that is. And if you’ve been watched the other ones, I’m gonna spend 30 seconds telling you what the format I’m following is. I’m just again, jumping on the call, hitting record in the interest of exploring these products to see what value they can add to solving our problems. I haven’t used any of them in the past and I don’t even know how they work till I actually get on this call to doing this recording and the podcast. If you’ve seen the previous ones,

You know what I mean, but if you haven’t, just a disclaimer, if you will. So I’m not an expert in anything that I, in any aspect of what I do, to be honest, always a learner, but in particular, when we talk about this, I don’t even know what these products are. I actually see their names for the very first time after I hit record. So hopefully you enjoyed this kind of learning that we learned together. If you do, let’s, let’s shuck along here.

OK, so API manager, let’s see. Since we created an API in the previous podcast, I’m pretty certain. Let’s see if it pulls up those APIs, right? So what is an API manager? We’re just going to go with the standard description of it. Let’s go look up API manager. Let’s see. What does an API manager do from Google Cloud?

It’s the API management is the process of developing, designing, monitoring, testing, securing, and analyzing APIs for organizations. Snowpal has like eight different APIs with thousands of endpoints that we publish and that we’ve published that you could use as your backend. So you don’t have to spend time building a backend infrastructure. That’s just what we do. One of the things, one of the many things we do at Snowpal. So API management includes all of those terms, the adjectives.

Krish (saas.snowpal.com) (03:12.366)

that are the verbs, the nouns, I should say, right? I guess verbs, you know what, it doesn’t matter. So you build these APIs, you design them, you develop them, you monitor them, you test them, you secure them, and you analyze them. And I probably could add a few more words here, right? Essentially everything that’s API centric, really. So let’s look at what runtime, the three different runtimes it looks like.

Flex is a new, Flex Gateway is new. It says ultra fast API Gateway designed to manage and secure APIs running anywhere. Mule, API Gateway embedded in the Mule runtime, connects directly to an existing Mule app. I did, I think in the last previous podcast, we created a very basic Mule app with memory serves me right. Or deploy new proxy app. Or the third one is service mesh managing Kubernetes based non-Mule microservices with any point service mesh.

So Kubernetes, we understand non-mule-based, non-mule microservices is, all of our microservices at Snowpal are non-mule microservices. So we would believe fit in that category. And it says any point service mesh. So let’s look at any point service mesh.

Krish (saas.snowpal.com) (04:29.938)

It says, Anypoint service mesh enables you to extend your microservices network by including your non-MuleSoft applications into the Anypoint platform sphere. So essentially, looks like prior to this, maybe you could not include your non-MuleSoft applications. Let’s look at this diagram, right?

because I can.

Krish (saas.snowpal.com) (04:58.926)

Okay, that’s big enough. It’s too big maybe. Okay, this is from dogs.mulesoft.com. Hopefully I’m, let me make sure I’m recording. Yes, I am. Okay, internal and external APIs, Mulesoft applications, Kubernetes. Let’s look at this for a second. There’s a bunch of Mule apps here. Cloud Hub, Runtime Fabric.

Let’s see Kubernetes cluster, MuleAdapter, service A, service B, SidecarProxy. Again, take it to the grain of salt. Again, I’m seeing all of this for the first time, these diagrams. This tells me that based on the description we read earlier, you can use Mule applications and non-Mule applications. So is that what it is? What is Istio? I-S-T-I.

Krish (saas.snowpal.com) (06:00.306)

Istio’s service mesh are modernized, server’s networking, oh, it’s Google.

Krish (saas.snowpal.com) (06:09.538)

A modernized service networking layer that provides a transparent language independent reader flexibly and easily automate application network functions. It’s a popular solution for managing the different microservices that make up a cloud native application. So maybe this is something we can check out another day, right? I mean, I’m gonna go through an exercise of going through a lot of these as folks have questions about what a lot of these items are and not traditional courses, but just learning as we go.

So we will look at all of these slowly but surely. So this talks about in the context of, so the way I’m reading this is there’s a bunch of mule applications and non-mule microservices. Maybe service A and service B are non-mule microservices. Is the way I’m reading this, sidecar proxy.

Krish (saas.snowpal.com) (07:10.178)

Again, it’s specific to. Cycler describes the configuration of the Cycler proxy that mediates inbound and outbound communication to the load.

Krish (saas.snowpal.com) (07:21.486)

Hang on. So this is observability traffic management security. So STO extends Kubernetes to establish a programmable application-aware network using a powerful invoice service proxy. So perhaps, let’s see, maybe we’re going to have to try all of these out. We saw this in the context of Google Cloud. I want to see.

Okay, it’s an open source service mesh. Got it. Okay. So I guess we could check this out at a different point of time. So it looks like it extends Kubernetes. So maybe we can let’s look at this diagram here. Service A, Service B, there’s a control plane.

Krish (saas.snowpal.com) (08:13.246)

Using the powerful and voice-serve proxy, working with both Kubernetes and traditional workloads is to bring standard universal traffic management, telemetry and security to complex deployments. Okay, so much for theory. I know what a control plane is. Those are reasonably standard terminologies used, particularly in the context of APIs and gateways and hubs, et cetera. This does support a few different

related items is what it looks like to me, but it’s something worth checking out. I don’t, I’ve not heard of that one. So it’s good to know. Okay. So back to what we were going to be looking at here. Yep. The any point service mesh, that’s the diagram we were looking at. And let’s look at one more diagram here. So first one, the way I read this is mule applications, non mule applications.

I can have both those in support for internal and external APIs. Now here it says.

Runtime pane Kubernetes cluster. There’s a microservices, a MuleAdapter, and then there is an Anypoint platform here. The service user and the rest of the items here. This would, yeah, let’s read this because I couldn’t tell much from just the diagram itself. One is, this is a little bit of, it’s not a digression actually, it is related to what we’re going to be looking at. So I think it’s worth these extra minutes. And I think a lot of these

podcast sessions, it’s a slower stat because again, I’m looking at it literally for the first time, you know, after I’ve clicked record. The client, which might be another microservice, sends a request to the service, okay? So let’s say it’s some microservice. And why captures the request and redirects it to the MuleSoft adapter using the NY filter. The adapter then, is NY a MuleSoft terminology?

Krish (saas.snowpal.com) (10:27.694)

trying to see where this terminology comes from. Let’s see.

Krish (saas.snowpal.com) (10:36.394)

Yep, it could probably be, I don’t know, related to, it’s maybe a proprietary language to this Anypoint service mesh, maybe. Okay, it says captures a request and redirects it to the MuleSoft adapter using the NY filter. Adapter then performs policy checks and verifications. When no policy violations encounter, the request is routed to the microservice. Okay. NY captures a request and redirects it to the adapter.

redirects it to the adapter using the Envoy filter. When no policy violations are encountered, the request is then routed to the microservice here. The microservice runs the service logic, whatever it needs to do, the business end of what you’re trying to do, and sends a request response back to the client. Periodically, the adapter communicates with Anypoint platform asynchronously to get to the latest policies and contracts.

So I guess the communication between MuleAdapter and the Anypoint platform is asynchronous and it says it’s periodical to get the latest policies and contracts. And it says periodically the adapter returns the API analytics information to the Anypoint platform. So I guess it’s bi-directional because this one says it communicates with the platform, the adapter communicates with this platform.

every so often to get the latest policies and contracts. Maybe it’s this dotted arrow. It also, the adapter returns analytics information to the platform. So it’s, I guess, going this direction. And this is super theory because, again, I’m just looking at this. I’m trying to explain based on what I’m seeing here. I think we can just close. I should close that one. Let’s go back here. So there’s three runtimes.

Clearly we’ll have to try each one separately to tell, but it looks like if you wanted to use, API is running, this flex gateway is also, API is running anywhere. This also has support for non-mule based microservices. So, you know, again, unless we tried, you know, theory only goes so far and at Snowball to be honest with you, we’d rely very little if at all on theory.

Krish (saas.snowpal.com) (12:59.534)

The most theory I’ve discussed or thought about is literally when I’ve recorded these podcasts, right? Otherwise, we just try to go play with it, try to hit, you know, whether it’s scripting, coding, right? I know, configuration, metadata, or trying these things out, click, click through interfaces. We try to get it done, get some version of it up and running the simplest Hello World version so we can digest what these differences are.

Like you can read all the theory you want, but to tell the real difference, you know, at design time and runtime, and your end user experience as a developer, the difference between the Flex Gateway and the Mule Gateway and the Service Mesh would be only when you actually play with it. Okay, so no gateways available, let’s add. Okay, select, and then let’s see how much progress we can make, right? Because so far we’ve done all right, we’ve actually been pretty reasonably hands-on in those one hour sessions.

As we go, a lot of these maybe we need other dependencies and we’ll have to see how hands-on we can actually get. But we’re going to try. Doesn’t hurt to try. OK, selecting your OS, Linux. OK.

This is Docker and Postman. What is?

Krish (saas.snowpal.com) (14:21.832)

Docker, we now have a spot made different, different blogger that does not require a separate daemon to run containers, making it more lightweight and secure. Okay, see every there’s, is learning all the time in this beautiful world of software.

Krish (saas.snowpal.com) (14:42.606)

Postman is a container development tool made available, blah, blah. One of Postman assumptions is a Docker compatible API. The biggest difference in Docker and Postman is architecture. Docker, what are these words? Euro, okay. Different language, I’m not sure.

Krish (saas.snowpal.com) (15:11.395)

Okay, let’s see, it says Docker is based on client server architecture while the daemon process has been completely abandoned in Postman. Working with Docker as we know, we use the Docker CLI which communicates with the Docker’s daemon in the background. The main logic is the daemon, blah, blah. Postman supports Docker files but lacks Docker compose functionality. Okay.

just distracted here because I’ve not used pod man I knew I know there was such a thing can use popular container registries like it does use Docker Hub. Okay something worth checking out I don’t know what pod man. Yes, oops, did I go back here. Okay select your OS or environment and then Kubernetes. Open shift okay.

Krish (saas.snowpal.com) (22:29.086)

Next before we go use that let’s see this is the gateway

Logs, replicas, okay. Okay, what we did here is, let me go back. To add the API, we had to choose a runtime. We chose the flex runtime, and then we picked the, we actually picked the container, we picked Docker. And if it’s pod man, you’re gonna get different commands. We can try that as well, shouldn’t be terribly hard. We pulled the image, registered the gateway. It says create a new directory called flex registration or similar.

Then register the gateway to any point platform by running the following command, replacing the gateway name. Yeah, I guess output directory is called registration, even though I think this example says flex registration. That’s why we didn’t find when we try to search for it. Okay, and then it’s, again, we’re ignoring these errors, right, for now, it doesn’t matter. We’re just trying to learn what this is, just get acquainted with it. The idea is after you go through this, hopefully an hour later, we have some idea what…

the how the Anypoint Platforms Runtime Manager works. So where we were at, I was at the beginning of this podcast where I didn’t know there was such a thing, like much like the previous podcast in the series of like the API and the Salesforce series, we are actually discovering as we go. The whole idea behind doing this is alongside exploring these tools and platforms and technologies and frameworks and libraries and whatnot, just to…

share that experience with you if you’re either fresh out of college or you’ve done another industries and you’re switching careers to software, which I see a lot of people do. And if you are one of those people, welcome, you’re going to have a blast building software. Or you might be doing this in your, like me, this is the only thing you do, but you may not have done this particular thing because there’s a million things that are out there and we don’t get our hands on all of them, right? Because it’s not possible. Yeah.

Krish (saas.snowpal.com) (24:33.682)

Okay, so let’s go here. It’s connected, I’m gonna go next. Yeah, there’s one basic API. We’re gonna piggyback on. We had issues with the latest version yesterday. Gonna ignore that till we see that. We have multiple versions, not that there is any difference between those versions. I’m gonna go with the defaults, maybe even pick HTTP. Otherwise, I don’t know if we need to worry about the certificates or create any self-signed sets and things of the nature. So I’m just gonna click all of the defaults.

not change anything here. Keep going next. Route label.

Krish (saas.snowpal.com) (25:19.819)

to find out how the traffic flows to upstream services. Can I just leave the defaults here as well?

Krish (saas.snowpal.com) (25:31.19)

define a name for the upstream. And you can add more up streams here if you wanted to. Okay, must be a valid URI. I’m wondering.

We don’t want to standard these systems as we go, obviously, so I’m trying to see how.

Krish (saas.snowpal.com) (25:53.814)

And I provide, I’m just gonna say something dot snow, oh actually you know what, let’s call it anypoint dot snowpal dot com.

Next.

Krish (saas.snowpal.com) (26:12.762)

It’s going to route it to a non-existential server obviously here upstream. Let’s just click save and deploy.

Krish (saas.snowpal.com) (26:26.145)

It is unregistered. Deploy the API head, hit save and deploy.

Krish (saas.snowpal.com) (26:39.886)

Cranks.

This is…

Krish (saas.snowpal.com) (26:51.07)

SLA tiers, SLA, service level agreement tier A, number of requests 100.

Krish (saas.snowpal.com) (27:04.238)

time period and time unit is R. I’m just gonna say one R.

Krish (saas.snowpal.com) (27:14.103)

Okay, so essentially to control your traffic as to how many requests you wanna support in any given window of time, et cetera. So logs. Our APIs at Snowpal are deployed on the Amazon API gateway. That’s where our systems are all our environments. But this looks quite similar. They’re all solving similar problems anyways. Okay.

Now that we have done all these things, let’s see API administration. So.

Krish (saas.snowpal.com) (27:58.254)

I want to get out and come back and actually just see what we’ve done so far. Okay, we added the API, we created a gateway, we have it running and then we added the API to that gateway.

Krish (saas.snowpal.com) (28:13.922)

What else can we do here?

Krish (saas.snowpal.com) (28:23.414)

This is the backend upstream address. Of course, we gave that, but it doesn’t exist, right? We don’t have that server at this point. So it’s obviously not gonna work. Come here.

Krish (saas.snowpal.com) (28:41.782)

guess we didn’t see him.

Krish (saas.snowpal.com) (28:45.742)

We’ve added the API before, so we have this one. View details.

Krish (saas.snowpal.com) (28:55.502)

There are multiple gateways. I guess you could select a different target. 8081 is in one port.

Krish (saas.snowpal.com) (29:11.606)

I’m looking for actually the URL to this gateway server. Now again, upstream we don’t have it set up, so I don’t expect for it to be routed anywhere. That’s understandable. But I at least want to know how to access this particular sandbox environment. It is active, sure.

sacred.

Krish (saas.snowpal.com) (29:40.238)

Show that here, now that it matters, but okay, we have environment ID, the client credentials, blah, blah.

Krish (saas.snowpal.com) (29:54.83)

The FBI administration. Where should this…

Krish (saas.snowpal.com) (30:03.118)

Okay, export, delete.

Let’s go back and.

Krish (saas.snowpal.com) (30:11.682)

There has to be a gateway URL.

Krish (saas.snowpal.com) (30:29.883)

you are you would monitoring

Krish (saas.snowpal.com) (30:36.534)

Thank you APIs for this gateway.

Krish (saas.snowpal.com) (30:48.482)

Bear with me here and we will find out something shortly.

Krish (saas.snowpal.com) (31:06.586)

for continuous infrastructure and a server.

Krish (saas.snowpal.com) (31:14.478)

Find a unique name for your server and execute this command from your server’s bin directory after this command after the command runs will appear in the server’s tab.

Krish (saas.snowpal.com) (31:45.702)

I’m pretty sure it’s wrong. Let me create this cluster without a server.

Krish (saas.snowpal.com) (31:56.63)

Yep surely right because there is no server added so we need to go add the server first.

Krish (saas.snowpal.com) (32:14.238)

emc setup. What is this emc setup?

Krish (saas.snowpal.com) (32:33.427)

Runtime manager agent

Krish (saas.snowpal.com) (32:43.982)

download and install Mew.

Krish (saas.snowpal.com) (32:50.87)

is we’ll have to install mule and then we will have this binary at that point of time.

Krish (saas.snowpal.com) (33:03.318)

and soft.

Krish (saas.snowpal.com) (33:11.59)

Reinstall.

Krish (saas.snowpal.com) (33:18.422)

Don’t think I installed.

Krish (saas.snowpal.com) (33:24.714)

Yo.

Krish (saas.snowpal.com) (33:31.92)

Thank you.

Krish (saas.snowpal.com) (33:45.17)

Nope, I don’t think so. Any point. Let me hang on. I did install any point. Did I install any point code builder? Let’s see if I go to downloads.

Krish (saas.snowpal.com) (34:26.294)

any point studio I don’t maybe not let me do this because I have to enter a password and stuff let me stop screen share for a second I’m just going to install mule standalone on Mac

Krish (saas.snowpal.com) (35:00.622)

It won’t take me too long, give me a second.

Krish (saas.snowpal.com) (35:08.202)

Okay, it says I should have gotten an email.

Krish (saas.snowpal.com) (35:14.527)

Checking my email.

Krish (saas.snowpal.com) (35:21.902)

If you did get one, says go to the download page.

Krish (saas.snowpal.com) (35:30.626)

and download.

starting to download it.

Krish (saas.snowpal.com) (35:39.022)

I think I can probably share my screen one more time.

Krish (saas.snowpal.com) (35:46.382)

Okay, I’m sharing my desktop.

Krish (saas.snowpal.com) (35:57.154)

Yep, there we see the AMC setup, right? Okay.

Krish (saas.snowpal.com) (36:04.81)

Let’s see if we go back here.

mule enterprise standalone yep okay let’s see export i think is it 440 452 that’s the only difference 452 right so we set the mule home

Krish (saas.snowpal.com) (36:28.75)

Let’s try running Mule.

Krish (saas.snowpal.com) (36:43.599)

Let’s run.

Krish (saas.snowpal.com) (36:53.974)

Yep, I’m gonna have to, let’s see, where was that? Show and finder.

Krish (saas.snowpal.com) (37:05.006)

Doesn’t let me run, let’s see, open with.

Krish (saas.snowpal.com) (37:26.462)

Okay, to get past it, I right clicked and opened here. As you saw me do that, sometimes, you know, I have to put that in words, what you’re gonna do to get past a problem. It’s a little bit more instinctive, if you will. Okay, install Mule.

Krish (saas.snowpal.com) (37:49.674)

Yeah, I mean, we’re not installing it as a service, not Nestle at this point, right? Okay. Let’s assume that it’s actually maybe running at this point. Maybe, don’t know. Okay, I want to copy this command that we had earlier. We didn’t add it to the path, so I’m just going to go CD myself into the directory manually. Downloads.

I think what does it, mules out.

Krish (saas.snowpal.com) (38:24.294)

stand alone four five which one did we just download enterprise standalone

Krish (saas.snowpal.com) (38:37.894)

I’m doing this because we didn’t add it to the path. Okay.

I will run it from that location and it failed. Mule agent installer.

Krish (saas.snowpal.com) (38:52.973)

See, maybe miss a bunch of steps.

Krish (saas.snowpal.com) (38:59.71)

See that from your sales bin directory, but maybe.

Krish (saas.snowpal.com) (39:08.009)

What is happening here?

See his mule is up and kicking. So let me actually kill this. Read on it.

Krish (saas.snowpal.com) (39:31.402)

New agent installer initialization error.

Krish (saas.snowpal.com) (39:48.138)

Looks quite similar, doesn’t it, to our error? Oh, incompatible JDK is used to run AMC setup command.

Okay, what does our JDK…

Krish (saas.snowpal.com) (40:06.358)

Oh, I guess I skipped that step there.

Krish (saas.snowpal.com) (40:16.305)

Okay, with JDK, open JDK version.

Krish (saas.snowpal.com) (40:48.718)

Or let’s actually OS 6 install JDK latest.

Krish (saas.snowpal.com) (41:06.398)

install, download the JDK.

Krish (saas.snowpal.com) (41:14.67)

Give me the DMG.

Krish (saas.snowpal.com) (41:23.438)

Let’s go here.

Krish (saas.snowpal.com) (41:35.278)

Download it.

Krish (saas.snowpal.com) (41:42.55)

Actually, do they have a… I did the wrong one. I wanna pick the DMG, this is easier. Okay, let’s just…

Krish (saas.snowpal.com) (42:04.535)

Yeah.

Krish (saas.snowpal.com) (42:08.894)

Let me do this. I might ask me for…

Krish (saas.snowpal.com) (42:15.778)

I’m going to install the software.

Krish (saas.snowpal.com) (42:22.27)

Okay, it installed it.

Krish (saas.snowpal.com) (42:46.734)

Here we are.

Krish (saas.snowpal.com) (42:54.946)

Let’s see if it still complains.

Krish (saas.snowpal.com) (43:00.65)

It does not, right? Actually went through, so we just need it to be on the latest. OK, so we were able to get past that.

Krish (saas.snowpal.com) (43:14.591)

Okay. Let’s turn the mute on.

Krish (saas.snowpal.com) (43:24.41)

Add a server after the commander and Zalapia in the servers tab Yep, we see the server, right? So we created it. We didn’t have a server. We created this Now I think we create a cluster

Krish (saas.snowpal.com) (43:46.626)

Is this ever still not?

Krish (saas.snowpal.com) (44:01.87)

I wonder how about the expectation.

Krish (saas.snowpal.com) (44:11.238)

My application is deployed, so I click that application.

Krish (saas.snowpal.com) (44:19.982)

That one.

Krish (saas.snowpal.com) (44:33.226)

I’m trying to import the file from the exchange, but our, what was it? I think, hello.

Krish (saas.snowpal.com) (44:49.206)

What was our application called?

Krish (saas.snowpal.com) (44:58.19)

shouldn’t are… let’s see… I’m going to close this for a second… cancel it… go here…

Krish (saas.snowpal.com) (45:11.298)

Hello world API is our asset. Let’s see what we are able to find.

Krish (saas.snowpal.com) (45:31.238)

If I lose that window, I’m gonna close everything here. That’s…

Krish (saas.snowpal.com) (45:41.294)

too many windows open from the past. Okay.

Krish (saas.snowpal.com) (45:46.99)

into this podcast, we’re like 45 minutes in, okay. We’ve made some progress, but I just wanna get to.

Krish (saas.snowpal.com) (46:06.154)

Wherever we before client applications, not that one API administration.

Krish (saas.snowpal.com) (46:18.19)

Current settings, some time ago. API summary.

Yep, the gateway here, this is the tab.

Krish (saas.snowpal.com) (46:40.822)

We’re back here, nope.

Krish (saas.snowpal.com) (46:47.214)

Trying to get to the service. Oh yeah, here it is. Okay, the service. Okay, let’s see what this says here. Communication between any point management center and the MuleAgent is authorized by using two-way SSL. They’re gonna create a key store to sign it, private key level, leave your machine. Configuring HTTP with no proxy, sending sign request, configuration saved successfully.

Krish (saas.snowpal.com) (47:14.886)

We did run that setup, which I’m pretty sure it went through just fine.

Krish (saas.snowpal.com) (47:28.662)

This is where we write application to deploy. I’m just trying to pick, give it a name, choose a file, import file from exchange.

Krish (saas.snowpal.com) (47:43.414)

Wondering where this should be able to pull up. That’s everything from the MuleSoft organization, but what about the Hello World?

Krish (saas.snowpal.com) (47:59.74)

UN exchange.

Krish (saas.snowpal.com) (48:04.702)

Right, so that’s what I expect that these are.

the ones that are in that list. If we go back here, what is the?

difference. This is stable.

Krish (saas.snowpal.com) (48:26.818)

Hmm.

Krish (saas.snowpal.com) (48:33.026)

So let’s say when I go from here, when I say go to the exchange.

Krish (saas.snowpal.com) (48:41.851)

application

Krish (saas.snowpal.com) (48:47.534)

This is the REST API.

Krish (saas.snowpal.com) (48:53.174)

Function monitor runner.

Krish (saas.snowpal.com) (48:59.784)

I guess the difference is…

Perhaps the fact.

Krish (saas.snowpal.com) (49:07.982)

that ours is not so much an application. If I picked one of these.

Krish (saas.snowpal.com) (49:19.83)

API functional monitoring. I reckon that is actually a difference. If I go here, any type.

Krish (saas.snowpal.com) (49:42.254)

Connectors, examples, REST APIs, SOAP APIs, templates. What does that one come under? I go to Provided by MuleSoft. The one we were looking at here was API functional monitoring.

Krish (saas.snowpal.com) (50:14.826)

Yeah, I’m monitoring.

Krish (saas.snowpal.com) (50:19.278)

connector.

Just trying to see which ones can actually show up there.

Krish (saas.snowpal.com) (50:29.486)

Any point aggregate in API designer blah blah.

Krish (saas.snowpal.com) (50:37.154)

Customer API.

Krish (saas.snowpal.com) (50:41.826)

customer data from systems like Salesforce. So there’s something called the customer API. Let’s try searching for, I don’t think it’s gonna find it.

Krish (saas.snowpal.com) (50:58.766)

I think it’s fair to say that, what are these?

Krish (saas.snowpal.com) (51:05.826)

Perhaps there is consumer example. Okay, let’s go with one of them. As not showing up because it depends on the type, perhaps it needs an application versus an API is what I reckon. I’m gonna pick an example, I’m gonna hit deploy.

Yeah, it was successfully deployed. Let’s go to the dashboard. Starting to run.

Krish (saas.snowpal.com) (51:45.894)

inbound outbound performance failures jvm infrastructure

Krish (saas.snowpal.com) (52:07.971)

I doubt it’s going to take any longer so let’s just wait a few seconds here

Krish (saas.snowpal.com) (52:18.246)

This is actually doing it. Okay, now we come back to servers, we created them. So just to recap, we created the gateway, the flex gateway, picked it as a runtime, then we created the server, installed Mule, updated the GDK, ran, installed the Mule agent on the machine for to create that server. And then we created this sample app and now it’s saying, is it done?

I think it’s running.

application and here’s a public endpoint

Krish (saas.snowpal.com) (53:03.154)

Okay, I think it’s actually, this is up and about is from what I can tell. Now that we know which app we created so URL.

Krish (saas.snowpal.com) (53:19.574)

No listener for the endpoint here, but I think you have the basic.

Krish (saas.snowpal.com) (53:31.702)

Let’s go back here, close this.

Krish (saas.snowpal.com) (53:43.59)

I can close that window as well.

Krish (saas.snowpal.com) (53:48.65)

Close a number of these windows because it’s confusing. OK.

Krish (saas.snowpal.com) (53:57.166)

Okay, starting here, we go start with the sandbox. Go to API admin. Okay, we can look at some of these quickly as well in the next few minutes. Just wanna make sure this is not, yeah, it’s almost closed on ours. So we should wrap this up. So we added this URI here and then we added the gateway and the application URI.

The thing is this application, this URI says no listener because there is no route defined. I’m wondering outbound.

do we

Krish (saas.snowpal.com) (54:42.318)

We can manage the replica counts here.

expertise, logging.

for monitoring. And then it can, I guess, let me hit stop.

Krish (saas.snowpal.com) (55:05.486)

Okay, it’s not running, so I’m just going to go back here and start it.

Krish (saas.snowpal.com) (55:15.038)

If this is the gateway, remember the route I was looking for earlier, this is the gateway route. Just trying to see how we can map that to the API that we had.

Krish (saas.snowpal.com) (55:42.294)

is we don’t have any upstream URL setup, right? We just added the URL, but we don’t have it set up. But before it propagates the request to actually, can I? I think ours is, what is this like gateway dev? I think if you do.

Trying to see if I should just do what happens if I did.

Krish (saas.snowpal.com) (56:33.75)

Yeah, this is background.

Krish (saas.snowpal.com) (56:45.822)

Yeah, no, because also we need headers and all of that kind of stuff. This was wishful thinking. This is obviously not going to be the case. How do I point it to something that’s a test?

I want to see where this request is routed to, because it says upstream is here. Maybe I can find a public endpoint, possibly. This is port 8081. Let me change this. I’m trying to think.

See what is the least we can do to get this.

Krish (saas.snowpal.com) (57:37.262)

So we pulled up. So this is the public endpoint, right? That’s clearly accessible. And now we need, when public endpoint for the app is hit, you want that to be wired into your services essentially, right? Trying to see which service we could, because you don’t have any of the servers running.

Krish (saas.snowpal.com) (58:09.614)

This is the long levels of…

Krish (saas.snowpal.com) (58:15.091)

And that’s.

Krish (saas.snowpal.com) (58:24.814)

messages.

Krish (saas.snowpal.com) (58:31.498)

Yep, so this is the endpoint I was looking for earlier, but we don’t have that wiring. I’m just trying to see where when I hit this, let’s see, copy link address.

Krish (saas.snowpal.com) (58:59.094)

If I did a traceRoute, I want to see where this is actually being routed to.

Krish (saas.snowpal.com) (59:12.59)

Please want to print out a hello world by having this routed to essentially adding a listener and I’m trying to see if there’s a

Krish (saas.snowpal.com) (59:26.75)

want to do monitoring let me get out of monitoring let’s go back out to API manager

So we’ve made some progress, right? We added the, we did everything that we’ve done so far. Be nice to have this last piece widened because we have the Hello World API.

Krish (saas.snowpal.com) (59:56.29)

We’re gonna wait on one, maybe.

Why don’t I pick that you were I?

Krish (saas.snowpal.com) (01:00:33.444)

confers.

Krish (saas.snowpal.com) (01:00:40.367)

That won’t be because we don’t have the headers that’s completely alright, but at least now let’s go try to get the

Krish (saas.snowpal.com) (01:00:56.878)

I’m still not used to this user interface. I think I’m clicking it more than I should have to. I want to get to that other runtime.

Krish (saas.snowpal.com) (01:01:08.982)

then where are the servers?

Krish (saas.snowpal.com) (01:01:17.311)

Replicas.

Oh yeah, here are the servers, the application.

Krish (saas.snowpal.com) (01:01:28.394)

Hang on, just trying to go get the URL. I’m back in the wrong place.

Krish (saas.snowpal.com) (01:01:44.494)

applications.

Krish (saas.snowpal.com) (01:01:56.91)

Okay, so we’re back to this, all right, the listener.

Trying to understand the mapping here. So that’s the runtime target for the gateway. And then we have the implementation URI. And then in the gateway here, where did we define the?

Krish (saas.snowpal.com) (01:02:29.646)

Have the default route. So I expect, what I’m expecting to see is when I hit that URI, I need to be routed here to this default route. That is what I’m expecting to see. If I see that, then I’ll be a happy camper.

Krish (saas.snowpal.com) (01:02:53.802)

Why is this mapping not in place?

Krish (saas.snowpal.com) (01:03:07.635)

Face pad.

Krish (saas.snowpal.com) (01:03:13.738)

Zoomer endpoint optional.

Krish (saas.snowpal.com) (01:03:37.806)

This is me just trying something absolutely randomly. Cause I expected this to be the actual mapping.

Krish (saas.snowpal.com) (01:03:52.938)

I didn’t expect for that to work to be honest.

Krish (saas.snowpal.com) (01:04:04.89)

Okay, if we can figure this out in the next five minutes, I think we’ll call it done. So we made a fab bit of progress. Only thing I would like to have seen is it forwarding the request to the default route. So upstream API, where the traffic will be sent to, there should always be at least one upstream. We picked that, the default route.

We expect for it to be sent. And this is our gateway.

Krish (saas.snowpal.com) (01:04:44.802)

Kidware has an API.

Krish (saas.snowpal.com) (01:04:56.782)

There’s no applications. It’s like.

Krish (saas.snowpal.com) (01:05:06.422)

because we can’t again this is this is where we were at earlier

Krish (saas.snowpal.com) (01:05:31.818)

I’m just trying to look for a random one, but this is what we did earlier and we had picked an application.

Krish (saas.snowpal.com) (01:05:54.782)

We have this basic web service consumer application jar.

Krish (saas.snowpal.com) (01:06:24.19)

App Service Consumer. This is the example that we had downloaded, if you remember.

Krish (saas.snowpal.com) (01:06:40.334)

T-shirts, that was…

Krish (saas.snowpal.com) (01:06:57.966)

I think we’ve gone through a lot of this. It looks like there’s more documentation, but we just went through it literally in real time. Yep. It’s gonna take a lot longer than I think, the way we would assume the way we did it. Okay, MuleSoft t-shirts, that was, let’s see.

Krish (saas.snowpal.com) (01:07:31.998)

I made it. Woodrokes.

Krish (saas.snowpal.com) (01:07:42.198)

Oh, method not allowed for endpoint orders.

Krish (saas.snowpal.com) (01:07:49.53)

Oh, put request orders. Maybe. Inventory.

Krish (saas.snowpal.com) (01:08:01.514)

What are the endpoints that are supported? Let’s see if there’s a simple one, it’ll be nice to see.

We see that in sublime here.

Krish (saas.snowpal.com) (01:08:20.343)

That’s HTTP listener for

Krish (saas.snowpal.com) (01:08:26.511)

If you see here that says allowed methods is post for that order t-shirt path orders. HTTP listener slash inventory.

Krish (saas.snowpal.com) (01:08:44.062)

Inventory.

Krish (saas.snowpal.com) (01:09:01.866)

Why is a GET request not working for…

Krish (saas.snowpal.com) (01:09:17.85)

because it doesn’t have a get so you get the method not allowed

Krish (saas.snowpal.com) (01:09:29.598)

It would be easier if we knew again, we expect a lot of this as to the app, the t shirt service that we added clearly has two endpoints. There’s a slash inventory.

Krish (saas.snowpal.com) (01:09:48.738)

List inventory, XML to JSON, set payload.

Krish (saas.snowpal.com) (01:09:59.122)

if we did a put two orders let’s see it doesn’t hurt we can just try to create a new

sample request here

Krish (saas.snowpal.com) (01:10:17.942)

to inventory, I think it’s a port request, was it?

Krish (saas.snowpal.com) (01:10:24.558)

I believe that’s one.

Krish (saas.snowpal.com) (01:10:28.726)

again close as well.

Krish (saas.snowpal.com) (01:10:33.462)

Let’s send. I think it says to send an order, send a put request to this body raw JSON.

Krish (saas.snowpal.com) (01:10:53.098)

request bodies.

and I’ll let XML.

or content type to application should have been.

Krish (saas.snowpal.com) (01:11:07.934)

That is by default application JSON.

Error consuming operation, the request body is not valid. XML seems like it requires an XML input. Can we change this order? Let’s see JSON to XML converter.

Krish (saas.snowpal.com) (01:11:36.822)

Let’s try that.

Krish (saas.snowpal.com) (01:11:49.858)

We got some other and what the expectation here is, but.

Krish (saas.snowpal.com) (01:11:59.146)

Yeah, see that it says not found whereas for inventory, it certainly doesn’t say not found, right? So I think we’ve gotten as far as I was look, actually probably even further beyond that. Only thing I’m curious is why, oh, it is orders, did I have it wrong?

That’s an inventory.

Krish (saas.snowpal.com) (01:12:28.822)

request.

Krish (saas.snowpal.com) (01:12:33.07)

to

wonders.

raw.json method not allowed for endpoint orders

Krish (saas.snowpal.com) (01:12:48.478)

It says get an inventory list, send a get request to inventory.

Krish (saas.snowpal.com) (01:13:16.054)

We should run this differently. I just want it to be, I want this to actually route the request to, let’s see, if I pick something else, no listener endpoint. The fact that we do not get the no listener endpoint actually tells me that the routing is happening, right? Otherwise, you would have seen the error that we saw previously. Now, if I stop this gate, let’s say we stop this.

Krish (saas.snowpal.com) (01:13:49.044)

We get a photo for not found.

Krish (saas.snowpal.com) (01:13:55.402)

And now let’s see, we go ahead and start this.

Krish (saas.snowpal.com) (01:14:10.03)

Okay, I guess it’s still starting, okay.

get a 502 band gateway because it’s still in the process of getting started

Krish (saas.snowpal.com) (01:14:25.494)

And once it’s actually say status running, I’m pretty sure we’re gonna get the 500, which is we’re not trying to get this working in that sense. I just want to prove that the gateway is established and it’s doing the routing to the server.

Krish (saas.snowpal.com) (01:14:47.366)

and this application.

Krish (saas.snowpal.com) (01:14:56.682)

All of this UI looks quite dated, doesn’t it? Okay.

I used to complain about the AWS user interface when you don’t use the AWS console, when you actually don’t use the command line, but you know, this is no better. AWS is much better to be honest, the experience of doing this. So someone told me to set up the gateways. I mean, of course the UI alone is not necessarily that.

meaning factor, but it surely is one of those. Okay, now it’s running, you shouldn’t see a 502 anymore.

Yep, you see a finder, right? So it is being routed. I mean, that’s quite certain about it. Let’s see, where did we set up this route?

Krish (saas.snowpal.com) (01:15:52.814)

like skate ways.

Krish (saas.snowpal.com) (01:16:06.83)

Here, API summary.

Krish (saas.snowpal.com) (01:16:17.794)

Yep, this is where we tried to point it to greeting. This upstream. Hi.

Krish (saas.snowpal.com) (01:16:32.538)

trying to send the request here. And it’s going to be a 500 because this upstream is doesn’t have those endpoints really. So I’m trying to think why did creating one does it

and one point for that. Cause the default should be.

beat this.

Krish (saas.snowpal.com) (01:17:06.182)

I’m trying to wrap my head around, because when we added the gateway, just to recap, we added this application file, and that’s where it’s being routed to. And we verified that, right? The inventories and orders and whatnot. You’ll read through documentation to see why that actually is not returning the inventory. But that’s what it’s doing. But here, we still, on this gateway, we added a singular API.

and we pointed this upstream to this mock service. And then we didn’t do anything, we just pick the defaults. Trying to see when this would actually come into play because this runtime target is this gateway. And if you go to the server.

Krish (saas.snowpal.com) (01:18:04.174)

I think it’s a little bit off, but it’s still not used to the user interface, okay?

Krish (saas.snowpal.com) (01:18:15.938)

See this is where it’s saying its proxy is currently running on the gateway, which will implement the policies from client to our gateway and it’s sending it to, that’s what I expected it to send to this upstream. But something about this patch.

because this is the API and we have the gateway. This API has upstream set to the mock service and the gateway needs to route the request to this API.

Krish (saas.snowpal.com) (01:18:53.86)

is how we have it here.

Krish (saas.snowpal.com) (01:19:00.052)

Can I get more details about this?

Krish (saas.snowpal.com) (01:19:07.987)

logs in any point monitoring.

Krish (saas.snowpal.com) (01:19:16.842)

Yep, all of our requests.

Krish (saas.snowpal.com) (01:19:39.946)

These are the requests. The requests are obviously coming through to our dashboard.

and get out of this monitoring here. SLA tears.

Krish (saas.snowpal.com) (01:19:56.938)

rate limiting and other policies that if you want to set, right? There’s, you know, typically things you would expect off of API gateway. There’s plenty of other gateways that I personally, even if you do not use AWS and you want to use a layer on top of that, there’s other gateways that are, they’d look a lot more current than this ones have actually used a little bit more.

Krish (saas.snowpal.com) (01:20:24.066)

Here, I’m trying to go back to where that page was, sorry, the gateway.

Krish (saas.snowpal.com) (01:20:36.846)

come here a million times because this page is not clickable. Keep forgetting that. Okay, the service is here.

went to the server applications running on this none that’s the part i’m a little bit confused about um

Krish (saas.snowpal.com) (01:21:01.422)

T-shirt or something.

Krish (saas.snowpal.com) (01:21:09.838)

Let me think, I forgot what the…

Krish (saas.snowpal.com) (01:21:16.747)

Oh, what was that?

Krish (saas.snowpal.com) (01:21:24.332)

I’m trying to think what we added earlier.

Krish (saas.snowpal.com) (01:21:38.802)

I thought I typed a character and picked one it was pretty random actually let’s look at this t-shirt web service consumer maybe it’s W

Krish (saas.snowpal.com) (01:22:00.606)

yep this one here okay pick this one

Krish (saas.snowpal.com) (01:22:13.89)

Okay, I chose the file. What now? Try and look for a deploy. You must supply a valid, oh, let me call it app two. Let’s deploy this.

Krish (saas.snowpal.com) (01:22:31.242)

What we did earlier.

Krish (saas.snowpal.com) (01:22:49.85)

Yeah, the second one doesn’t make any difference. I know why when went to the API, it did not show the first one.

So now we just have multiple applications on this runtime manager. It doesn’t prove anything more than what we saw earlier. So we have a single gateway. We’ve added one server. And then we have two applications, which essentially are one and the same. They’re essentially the same app, yeah.

So this is app one USA E2.

Krish (saas.snowpal.com) (01:23:38.078)

app two. Okay two public endpoints. What do them have started here?

Krish (saas.snowpal.com) (01:23:53.25)

bring that address. Don’t expect to see any difference.

Krish (saas.snowpal.com) (01:24:04.49)

Yep. But I think it should suffice to say that when I change the endpoint, it says no listener, which means that is a listener. It is being routed. Just need to know what that runtime error is. So.

Krish (saas.snowpal.com) (01:24:21.23)

We have to…

Krish (saas.snowpal.com) (01:24:25.806)

Let’s see. If we go to the Mont logs. Okay, we’re seeing something here.

Krish (saas.snowpal.com) (01:24:50.718)

response but using apache cxf app i used this a long time ago even though they were still around

Krish (saas.snowpal.com) (01:25:04.11)

Wow, it’s still, I used this a while ago. Okay. Interesting. Still open source services framework. Interceptor unwinding now. Result response was unexpected text. HTML content incoming portion not allowed.

Krish (saas.snowpal.com) (01:26:01.038)

I want to make sure that this is the…

Krish (saas.snowpal.com) (01:26:09.72)

minutes ago.

Krish (saas.snowpal.com) (01:26:27.134)

few seconds ago. Okay, I had to refresh it manually. That’s not good. Okay.

Krish (saas.snowpal.com) (01:26:58.574)

Just in one tree.

Krish (saas.snowpal.com) (01:27:35.438)

Call the webs… Excuse me, using soapy Y.

Krish (saas.snowpal.com) (01:27:42.118)

I was presumptuous in thinking this was a…

Krish (saas.snowpal.com) (01:27:50.572)

So, you know what?

Krish (saas.snowpal.com) (01:27:58.562)

I hope that was consumer.

Krish (saas.snowpal.com) (01:28:05.718)

Yeah, where’s Dil? Hmm.

Da da da.

Krish (saas.snowpal.com) (01:28:16.735)

It’s a soap request, no wonder, right? Okay, so that explains it. We need to make this request a little bit differently than we are possibly doing it. Let’s see, is it, let’s download this.

Krish (saas.snowpal.com) (01:28:51.146)

It’s been a long time I have a new soap and forever trying to see sadly not with postman what do I

Krish (saas.snowpal.com) (01:29:00.086)

We need to see her in the body. We need to do this quiet.

differently.

I need to make this a…

Krish (saas.snowpal.com) (01:29:31.646)

It is your basic understanding of Muleflow Soup as a web-source paradigm and the notion of Westill. I haven’t used Westills in forever.

Krish (saas.snowpal.com) (01:29:48.734)

Yeah, we need to make this a soap request. That is the problem. Is that an example? Now that we’ve gotten so close, I’m curious now. Um.

Krish (saas.snowpal.com) (01:30:09.73)

Give me, let me think, let me think quickly here. How can we do this? So this is actually sent as a so, because we need the WSDL URLs as well to actually provide.

Krish (saas.snowpal.com) (01:30:40.686)

Yeah, you must be familiar with soaps and whistles. Next step, configure the connector using any point studio.

web service consumer, blah, and mule palette. We had seen this in the previous, not any point studio.

Krish (saas.snowpal.com) (01:31:12.438)

The newborn studio cannot be opened.

Krish (saas.snowpal.com) (01:31:23.714)

That’s no good. Okay. Okay, I’m not gonna add it back there, but I guess if you had that studio, you’ll have to point to this WSDL. See, they have this example here. It has the WSDL location, and then you have to go through consuming a SOAP request essentially, right? So you’re gonna have to do it quite differently from how you’re doing it here.

But the fact that at least we confirmed that it was able to hit it in order to doing the routing. So I think it’s fine to leave it here. The idea behind again, these podcasts is to get our feet wet or get our feet wet and hands dirty, right? I sometimes say it the other way around. So I think that’s exactly what we’ve done. We’ve been able to go through and we now understand after this hour.

A little bit more about the Anypoint API manager, the gateway, the server, we installed the agent, got Mule running, we were able to make the request, pointing it to actually a service, like a t-shirt service that MuleSupp provides, except that we’re not making it as a SOAP request, right? My bad, you know, the fact that when I saw this,

I should have realized that we need this WSDL and go the SOAP route. But at least we spotted those two endpoints here, the orders and the inventory. And then if you have a SOAP client, like is it a SmartBear or one of those things, and then you have the WSDL, you should be able to make the request to this gateway, which forwards it to the web service that we wired that into. I think that was useful enough.

Right? Gives us some insights. We looked at logging. We didn’t set up any policies or make it any complicated, but at least we added the SLA tiers. You can say how many, if you go ahead with this, how many requests, what kind of throttling you want to be able to do, do rate quotas, and set up all of those typical API things that you would do. That’s what it is for the API manager.

Krish (saas.snowpal.com) (01:33:45.342)

What the next one be? I guess API governance, I think we are well into the one hour mark. So why don’t we, I’d say, oh, we are an hour and a half. So we’re gonna have to most likely split this into multiple podcasts because I’m gonna run into size issues, I think. So why don’t we just keep going with this API governance? Let’s see this quickly, right? API governance is you’re establishing rules around

it out.

Krish (saas.snowpal.com) (01:34:19.754)

Reference the process and controls implement to manage, monitor and maintain these APIs. Who can access it? When can they access it? How, everything that revolves around the governance of APIs falls into this category. So let’s say they have a bunch of rule sets. Let’s look at some of them. Content, we looked at data graph yesterday, API authentication.

that it for their default rule sets okay

This API rules it was 30 best practices. Okay, let’s go pick that one up. Click next. Rest API, sure. Life cycle development stable. Okay, next. Okay, I’m just gonna keep the defaults.

Krish (saas.snowpal.com) (01:35:17.046)

Thank you.

Krish (saas.snowpal.com) (01:35:34.254)

Create a going in status.

Krish (saas.snowpal.com) (01:35:45.37)

See, it’s all these says that, you know, the validity of the APIs, it says eight violations. Like if you go to Swagger and other places, you can open API specs, you can tell, you know, what is right and right, it gives you these errors. So these are the violations of our definitions. So you’ll have to go update the raml file, which is what we had used for the Hello World API and fix these items. So what are some of the errors? Oh, field tot.

So today’s greeting should be camel case, right? Why don’t we actually try this? Let’s actually go to our…

Krish (saas.snowpal.com) (01:36:25.69)

center hello LAPI

Krish (saas.snowpal.com) (01:36:33.934)

OK, what is it it’s complaining about? It says, today’s greeting should be camel case, right? So today’s greeting. Let’s change today’s greeting.

Krish (saas.snowpal.com) (01:37:01.173)

Okay, we have this thing issue with the bug with it, not saying okay, I think.

Krish (saas.snowpal.com) (01:37:09.631)

Okay, now that we have done that.

Krish (saas.snowpal.com) (01:37:16.978)

And now why it comes back to this oh and I said already exists with the version I guess we have to do a new version

Krish (saas.snowpal.com) (01:37:36.382)

And once it does…

depends on which API.

Krish (saas.snowpal.com) (01:37:44.95)

an exchange greeting cat now it’s still the old one maybe it’s still publishing it what says published

Krish (saas.snowpal.com) (01:38:04.951)

These versions.

Krish (saas.snowpal.com) (01:38:09.322)

So clearly this is not the most recent version, right? Because it’s still today’s greeting. So we saw this issue earlier, this published 21 hours ago.

Krish (saas.snowpal.com) (01:38:34.318)

practices. That’s one or more failed full sets.

Krish (saas.snowpal.com) (01:38:42.766)

So today’s greeting, manage versions.

Krish (saas.snowpal.com) (01:38:53.962)

Yeah, I don’t want to add it. I was just trying to. So we made the change to the existing version, right? And then we published that version except.

Krish (saas.snowpal.com) (01:39:11.15)

Where is this coming?

Krish (saas.snowpal.com) (01:39:30.55)

I’m trying to think what we had done to…

Krish (saas.snowpal.com) (01:39:38.114)

publishing a new asset.

Krish (saas.snowpal.com) (01:39:45.526)

We have to go back to the previous part because I forget what we…

Krish (saas.snowpal.com) (01:39:55.874)

Everyone

Krish (saas.snowpal.com) (01:40:03.241)

It’s the same one.

Krish (saas.snowpal.com) (01:40:07.998)

In API designer we update that.

and his greeting.

Krish (saas.snowpal.com) (01:40:17.904)

Actually, it uses…

Krish (saas.snowpal.com) (01:40:30.542)

0.4

Krish (saas.snowpal.com) (01:40:52.514)

Okay, there we go. Now we see today’s greeting. Okay, let’s see.

Krish (saas.snowpal.com) (01:41:12.905)

Okay, am I not seeing the…

Krish (saas.snowpal.com) (01:41:18.862)

I’m on profile.

Krish (saas.snowpal.com) (01:41:25.538)

Today’s greeting should use camel clay camel case tomorrow. So the violation is still 8 which means sadly this is not the most recent version when I go to open an exchange. I go to greeting. I’m feeling want to see the most. No, it’s not. So this is what’s the difference?

Krish (saas.snowpal.com) (01:41:56.258)

But we saw the.

wait hang on that’s one

Krish (saas.snowpal.com) (01:42:04.578)

That’s the previous version managed versions.

Krish (saas.snowpal.com) (01:42:11.35)

And these version numbers, I mentioned in the last podcast as well, okay, they are not particularly intuitive, okay. We need to now, we go to API governance.

Krish (saas.snowpal.com) (01:42:26.35)

Go on the APIs. So this API is not the correct version as we can tell. So we can do one of two things. How can I go? Don’t know why this is not even showing the… Oh, hang on.

Krish (saas.snowpal.com) (01:42:46.162)

Now I go here.

Yep, so that’s the version we’re using over there. But then when you go to the API manager here.

Krish (saas.snowpal.com) (01:43:02.926)

Where does this tie into the, let’s go to the design center.

Krish (saas.snowpal.com) (01:43:22.926)

So this has the most recent one. And then when we say publish.

Krish (saas.snowpal.com) (01:43:42.65)

a few too many version numbers that are not super intuitive at least to me.

Krish (saas.snowpal.com) (01:43:52.814)

or assets with versions of API version 1.1, which in API version you can use a major asset version. You know what, I don’t care.

Krish (saas.snowpal.com) (01:44:09.046)

UI is quite bad. It’s hard to even tell that there was an error actually.

Krish (saas.snowpal.com) (01:44:19.603)

Now it’s published.

Krish (saas.snowpal.com) (01:44:29.11)

OK, now it seems it’s one violation lesser. You see, it doesn’t pick up that today’s greeting violation. So this is what governance has a number of things. One is it’s actually telling you if you’re confirming with the basic tenets of APIs. But it goes beyond that here. We saw eight violations, and now we are seeing seven. And then they have provided default governance, and maybe you have a way to upload something new as well, I reckon.

Like what if I didn’t want any of these? Maybe I have a way to add a new rule set, possibly. Maybe you go someplace else and add the rule set and then you come back and have more definitions, right? So that’s everything about governance. It’s very important when you’re publishing these APIs. So that’s, you know, again, I think I don’t want to spend more time there. I think we got the idea. See, let’s go to runtime.

Well, we’ve seen runtimes. We have multiple runtimes, resource servers, applications, gateways, alerts. Sure, we can set up alerts. Alert name.

Krish (saas.snowpal.com) (01:46:13.57)

So I’ve created the alert and something doesn’t happen. You can create those categories. So this is where I guess it’s low code-ish or no code in this case, right? You’re just going through a runtime design setup and going through the actions. I have to believe there has to be a code-based mechanism to doing the same things because you’re not gonna do it using user interfaces when you’re actually in production. I’m pretty sure they should have support. I don’t know how the wiring works here.

Okay, virtual private clouds if you have. If you need private spaces, dedicated deployment target with its own network and whatnot. Private space.

Krish (saas.snowpal.com) (01:46:58.838)

and you can create these networks. Yep. Okay, I’m gonna go through these things here. These are very specific to what you need to get done. And then you have these load balancers and whatnot. Okay, this is configuration. Yes, you need to do this, but no, I’m not gonna go through it here because it’s just, you know, if you’ve done this in one system, just need to figure out how the wiring and the mapping works on the system.

And it’s less code, more configuration really. And it’s an area where we spend time, get it done, move on. It’s not something that’s close to our heart in terms of wanting to do it. So it’s not the most exciting thing for me personally. So I’m not gonna spend time showing it, but you’re welcome to check this out. These are pretty standard terminologies, VPCs, private spaces, and load balancers and things of that nature. But this is…

your config as somebody who’s setting up these gateways, you do it. These are places where you might make changes a bit more frequently than here possibly, right? Once you create these VPCs and Amazon calls at the same as well like AWS. AWS which will…

Krish (saas.snowpal.com) (01:48:17.038)

Virtual Cloud Services is different. I’m just going to say VPC, Virtual Private Cloud. Yep. So the language is, you know, it’s basically, you can, you know, if you have a customer that wants to manage it in there, in that virtual space that’s dedicated to them, you’d use something like this. Okay. What else do we have? Governance, runtime manager, we’ve seen it. Visualizer.

Krish (saas.snowpal.com) (01:48:47.474)

This is your production or sandbox.

It picks up all of our services that we have. Let’s say we want one. See, we’re gonna click save.

Looks like it’s in the space of observability, but not sure, let’s see.

Krish (saas.snowpal.com) (01:49:16.722)

I reckon you’re gonna see your runtime activity that you’re monitoring Yep, this looks a little bit like a Poor person’s version of dear dog. Maybe I’m wrong. It looks like that Yeah

or diner trays are one of those things, right? But this looks like it was built like the past century. Sorry. Yeah, that’s, I wanna say that that’s what it is. You’re able to pick your services and see which ones you wanna monitor and tie all of this. So, you know, if you’re an API manager as a person, then you need to alert that we saw alerts. You need to understand how systems work. This is visual. I think it’s giving you a visual representation of that.

Maybe it is, what is it called? Is it any point visualizer? I’m pretty sure any point visualizer versus data.

Krish (saas.snowpal.com) (01:50:23.006)

If it is in that space, I guess the whole platform versus Datadog. I thought there were things to the Anypoint platform that was not a comparison with Data Dog. Maybe, maybe not. Data Dog is expensive, but it’s lovely. Right. There’s no question about that. It’s brilliant. So if you have the money to pay for the services, I mean, I don’t represent them. For I, I just use their tools and I actually like their tools.

It’s pricey, but they’re actually pretty good, very good. They’re very dev-centric as well. This looks like that to me. It looks it’s not in the same league at all. OK, this is monitoring. I can pick and choose what I want to monitor. And then I’m taken to the viewer. We saw all of this, right? We went through some in more detail than others.

Krish (saas.snowpal.com) (01:52:46.386)

we can look at some other products in the Salesforce offers, right? Then once we exhaust Salesforce, we’d probably go to something else, maybe related to Salesforce or in this world of low code, no code, or do something completely different. I have a few other things I actually want to check out as well, and I’m enjoying doing this as I, you know, recording it, even though there is nobody here, it feels like there is somebody. It’s always fun when there is somebody for sure, yeah.

OK, I think I’ll end it at this point. Hope you enjoyed it. Hope you had some learnings from here from these sessions. Before I end, make sure you check out Snowpal, all of our services. You can go to saas.snowpal.com and check stat here. So a good point is stat looking at all our APIs and consuming them.

And take some of the learnings we’ve had in the last few sessions and see how we can leverage our APIs to save you time, money, and effort so you don’t have to maintain, manage, build, scale, or scale back in systems. And you can be, define your gateway, API gateway, pointing to the Snowpal APIs and then just be productive from the get-go and start focusing on your core customer problems and not worry about the back end, heavy lifting and maintenance and management and development, so to speak.

And if you go to like saas.snowpal.com, it will be redirected to our developers portal. And you can check this out. You can look at the APIs documentation, go to the API of interest, then you can look at the postman collection, import it, start developing, and then you should be good to go. With that, I’m gonna end this podcast. Thanks for your patience and talk to you soon.

Snowpal’s Products:

--

--

Varun @ products.snowpal.com | learn.snowpal.com
Varun @ products.snowpal.com | learn.snowpal.com

Written by Varun @ products.snowpal.com | learn.snowpal.com

I am a Product Engineer at Snowpal. Subscribe to our APIs to reduce time to market for your web, mobile, & server-side apps.

No responses yet