STEPHANIE WONG: So we have our Hipster Shop app.
And we've been talking a lot about Istio.
But when you have Istio managing microservices, why would
we need API management and Apigee?
MARUTI C.: Sure, I get this question all the time.
In simple words, Istio is great to manage microservices,
but when developers decide to share those services
to other teams of external developers,
they need to publish an API.
A successful API needs to be easily consumed.
That's really peer management concept.
With Apigee, you can easily employ standard API management
capabilities.
STEPHANIE WONG: Sounds like a helpful set of features.
Can you show me how I can get this setup?
MARUTI C.: Sure.
Let me show you how it works.
[MUSIC PLAYING]
Let's use Hipster Shop app for the demo.
Hipster Shop app is an internal microservices application
and the best app where users can browse items, add them
to the cart, and purchase them, which
is running entirely on Kubernetes
and managed by Istio.
This is the service architecture of the Hipster Shop app.
So far, the shipping service is utilized only
by the internal microservices.
Now we want to expose the shipping service as a tracking
API to the third party developers,
so they can take advantage of a service.
Let's go back and expose the shipping services
tracking API using this virtual service.
Tracking in the API part is pointed
to their shipping service, which is running on Kubernetes.
Once the service is created, let's
access the API to see if it is created successfully.
And we can retrieve the tracking details of the tracking ID.
Once the necessary Apigee provisioning is taken care of,
these definitions here are to configure the Apigee Mixer
and Istio so that we can start using the capabilities.
Let's look at some of the things we can do in Apigee.
This configuration tells Istio to send
all the required attributes to Mixer
for each transaction, which will be forwarded
to Apigee for analytics reporting
and apply rules to traffic flowing through this Istio
service mesh.
Once the configurations are set, let's
create a rule to capture analytics
for all the inbound calls to the microservices.
This records all the inbound defined fields
and forwards to Apigee for analytics reporting.
Let's go to the Apigee management UI
to access the outer box reports to view
the metrics for all the microservices
for an individual service.
This particular dashboard, Proxy Performance,
displays the total traffic success and failure metrics.
There are out-of-box reports and custom reports
to get various metrics like error code
and latency and more.
We have an API, but we don't have
a way the developers can start using
it to create developer apps.
To permit that, let's create an API
from the Apigee Edge Management UI.
For this product, we'll call it as Take5 product.
This is a place where the API team
can define the access level settings, quarter settings,
including all of the shipping service resources
that the developer applications can access.
This is a service name of the shipping
service and Kubernetes.
Once the API product is created and available,
developers can go to the Hipster Shop developer portal
to test the API and create their apps.
Let's look at the API product and tracking
API that is published.
As there is no security, any one that is logged in
can access the API and return the tracking details.
In this case, the API team is unaware of who
is accessing the API and is unable to enforce controls.
Let's protect the API.
This rule helps in safeguarding the inbound traffic
to the shipping service with an API key.
As a next step, we'll apply that rule.
Developers can't access the API without a key, which they
can get by creating an app.
Let's go back to the developer portal.
Log in as a developer.
Create an app and access the API.
This application will be called as Hipster Demo App
and will copy the key that is generated.
If you access the API as a developer without a key,
it should fail, as we don't have the authorization headers.
Now, let's make the same call with the right header
to be able to read through the tracking details
to the successful response.
By doing all of this, you can see
that Apigee is doing the API key verifications,
security is enforced, and the API key is valid.
STEPHANIE WONG: Great.
So with Apigee I can manage my APIs
so other developers can build applications on top of mine.
MARUTI C.: Exactly.
Istio and Apigee can help you build your application
and make it too cool for school.
If you like what you saw, make sure to like, comment,
and subscribe.
STEPHANIE WONG: And if you'd like to get in contact with us
or know more about Istio, Apigee, and microservices
click on the links in the description.
[MUSIC PLAYING]