MUSIC: [MUSIC].
SETH JUAREZ: Hello and welcome back to Microsoft Build.
I'm Seth Juarez, and I'm pleased
to be joined by Mark Russinovich,
Azure Chief Technical Officer.
They still let you do that around here
MARK RUSSINOVICH: Yes, pretty much.
SETH JUAREZ: Fantastic, so what are you most excited about,
Microsoft Build announcements containers?
MARK RUSSINOVICH: Azure Container Apps with Dapr GA.
SETH JUAREZ: That is correct. You were excited
about the confidential work.
MARK RUSSINOVICH: That's right, it was yesterday.
SETH JUAREZ: It was yesterday. For those that maybe didn't watch
Ignite last time and introduced
Azure Container Apps with Dapr,
why don't we start with the Container Apps?
Tell us about those.
MARK RUSSINOVICH: Sure, Container Apps is
a serverless application platform that
lets you deploy applications
that consist of microservices,
and it's got capabilities built into
it to let you track upgrades,
to do A/B testing,
to do network isolation.
It really makes it painless to create an application
without having to learn a lot
of infrastructure and orchestration.
SETH JUAREZ: Here's the thing, I had to do
a container thing with orchestration,
I think it was Kubeflow or something in machine learning.
It was actually really quite hard.
I know that we have Azure Container Apps,
but me throwing up an app
and having to throw up another one.
How do you get the distributed programming problem
to go away, which is still a problem?
MARK RUSSINOVICH: Well, so built into it is something called Dapr,
which loosely
represents distributed application run time.
It is managed part of Container Apps,
meaning you don't need to deploy it
yourself or upgrade it yourself and it
provides what we call a set of
building blocks where building blocks
take care of certain problems
that you would have to deal with,
writing a Cloud native application, for example.
Some of the building blocks include secret management.
It'll manage your secrets
for you and give them to you when you need them.
It's a Pub/Sub for doing inner process communication,
a state store for saving data.
A service-to-service communication,
configuration management, and the list goes on and on.
SETH JUAREZ: That's fantastic, I'm hearing you
but when I'm writing a container,
let's just say I did a Python thing,
and Flask or something.
Where is Dapr living?
Do I have to write Dapr into my code?
How does that work?
MARK RUSSINOVICH: Dapr is available as a sidecar,
which exposes an HTTP or
GRPC endpoint to your application,
so you can just call into it directly.
Any language, any framework can
leverage the sidecar without having to use an SDK.
Now Dapr does have a SDKs to make it
easier to to use from
certain languages, but you don't need it.
Just to give an example of how
powerful it means for Pub/ Sub for example,
where you want to do in a process communication,
and you don't want to learn the SDK for Event Hubs,
for example, you just use Dapr's Pub/Sub building block.
You plug in the component at runtime for Event Hubs.
You can also plug in Service Bus or
RabbitMQ or Kafka without changing any of
your code and it will leverage that as
the Pub/Sub system and it'll
do the authentication for you,
it'll do retries for you,
so it's like your Dapr butler.
SETH JUAREZ: Interesting, literally,
that's why it has that hat.
MARK RUSSINOVICH: That's right
SETH JUAREZ: It's like literally you're
in your code and you're like, Hey,
can you go tell
the other service to take care of
some for me and it will just do it.
MARK RUSSINOVICH: That's right.
SETH JUAREZ: I feel like I need to look at
how this works. Did you bring a demo?
MARK RUSSINOVICH: Yeah, I've got a little demo to show you.
SETH JUAREZ: Let's take a look at that.
MARK RUSSINOVICH: Here we have an application that
consists of two microservices.
It's a check out microservice that
gets orders and sends them to
an order processor that does whatever
with them and stores them in a Dapr state store.
It's fully Dapr-ized meaning
the check out microservice can call
directly into the other one using Dapr.
Here we deploy it all it takes is three lines
to enable Dapr there for the application.
SETH JUAREZ: As AZ command.
MARK RUSSINOVICH: With the Azure Command Line.
Then you can see I've got it running here you can
see the order processors
printing out orders as they come in.
For everyone, you can see there it's
the sidecar there the Dapr sidecar
they're along with the microservice.
Now for every one of these, like I said,
the checkouts sending to the order back-end,
you can see that visualized here because Dapr is
instrument and you can plug in
any telemetry system here,
including Azure App Insights to get
this instant dash without
the developer having to write any code.
You can see the latency
between the front-end and the back-end,
you can see all the calls to the state store
as well, and you get that for free.
Plus you get secure
service-to-service communication using TLS.
Then finally you can
network-isolate the app like I've done here.
It has no public IP address
or we can move it and have a public IP address.
You get best practices
security capabilities built into it easily as well.
SETH JUAREZ: That's really cool, that's because if you
use Dapr with Azure Container Apps,
you get all of this additional goodness on top.
Like seeing the things
going between each other and that's what you get.
MARK RUSSINOVICH: You can get that on your own if you instrument
your code but here Dapr just did all that for you.
You didn't need to worry about it
SETH JUAREZ: I think that's one of the challenges that I
had when I started doing
container stuff is I couldn't see inside,
I couldn't see how these things were talking to each
other and this makes it all a lot easier.
MARK RUSSINOVICH: Exactly, it's really
just lets you focus on your business logic.
You can implement things like
a function style app and you can actually think of
this as functions for general Cloud native application
SETH JUAREZ: I see, but you own the container basically.
What's the announcement for today at Microsoft Build?
MARK RUSSINOVICH: The announcement is that
we're GAing Container Apps plus Dapr.
It also has scalar an event-driven autoscaler
included an envoy too for doing AB testing on top of it.
All of that is going GA today.
SETH JUAREZ: Fantastic.
What's the experience been for people using this?
MARK RUSSINOVICH: People love it because,
like I said, lets you focus on your business logic.
It really represents the future of
Cloud native development where you don't have
to learn about orchestrators and
infrastructure you just focus on the business logic.
SETH JUAREZ: Fantastic. Where can people
go to find out more if they want to learn about this?
MARK RUSSINOVICH: That URL there aka.ms/aca-dapr.
SETH JUAREZ: Well, I'm excited to learn it
and maybe not spend way
too much time figuring out
the whole infrastructure stuff.
I love the idea of it being a serverless thing.
Make sure you go to that link for sure.
That's Mark, I'm Seth and
that's Container Apps and Dapr.
That's all for us enjoy the rest of Microsoft Build 2022.