>> I think I should clean it. Do you have a wipe?
>> I like to keep mine dirty. You know what I'm saying?
Because then it looks like, it's not exactly.
>> Yeah.
>> I have a keyboard, when it's not attached,
I turn it over and shake it.
Peanuts fall out, boogers and stuff.
>> [MUSIC].
>> Hey, I'm Burke Holland.
>> Hey and I'm Eduardo Laureano.
>> This is five things that you can do with Serverless.
Thing number 1, you can use Serverless to manage your API's.
Now, if I already have an API,
why would I want to use Serverless to manage that?
>> Well, because in your back-end
you might have something that's Serverless,
but if your API management component isn't Serverless,
you're paying for that thing running all the time.
My API's are not popular,
so I don't want to be paying all the
time. I don't know about yours.
>> No, mine are not either. Just my mom and myself.
>> So you want that to also be pay as
it gets used as well as not having to manage the infrastructure,
at the same time get all that nice stuff.
You can do authentication,
job token manipulation, do
your own custom policy or
even caching of your API results without hitting the back end.
>> So you would use Azure Functions to do all
that or do you need something else as well?
>> So in the back you could have Azure functions at service
but API management component and there's
Azure API management now has a consumption
offering which equates to Serverless, exactly.
>> Right because that's the benefit of Serverless is that
you only pay for what you use,
and if you're cheap like me,
you don't even want to pay for that.
But if you got to pay for something I guess
it might as well be only what you use.
>> Exactly yeah, and you get the benefit of
your back-end now can be a royal mess, right.
Whatever you want because you have the API management in front.
So for the developers, they are going to
develop it against Burke's API.
>> Right.
>> All they see is a single surface that's secure protected.
>> So in the background there's fires
and screams and gnashing of teeth,
but on the front end it's a very formal nice party.
>> Absolutely.
>> Yeah. Thing number 2,
you can use Serverless to do long running jobs.
Now, that doesn't jive with my understanding of Serverless
because I thought Serverless was something
where the server pops up,
does something and then
goes back down and that's why you don't get charged.
It seems to me, if you were doing something long running,
that that would defeat the purpose of Serverless.
So what's an example of a long running task?
>> Long running tasks is like humans for instance.
They're not predictable when they're
going to provide input or something.
>> That's true.
>> So.
>> Very unpredictable.
>> So imagine, I think
the most classic example is like two-factor authentication,
where you've got that code on
your phone and you have to enter that code in a different UI.
>> Yes, unfortunately I know all about two-factor authentication.
>> When that code comes, you've got busy with
whatever or your dog is running out or something.
>> Watching YouTube.
>> So what do you want to do is,
you want to have the function wait for
that human input although it's a variable length of time.
So it's a break like you said on the Serverless purist paradigm,
but it's needed for real world scenarios.
>> So then aren't I paying for that thing to run that entire time?
Doesn't that defeat the purpose of Serverless?
>> That's the brilliance of it,
and I work on Azure Functions team.
We implemented this thing called durable functions,
which is an extension to the normal functions.
What it does is as you execute functions,
keeps the state of what has happened and when that state changes,
the orchestrator that's manipulating
all this function executions wakes up and executes.
So the idle time,
when you're truly waiting for the human to enter
their four digit code, you're not paying for that.
>> That's crazy. So it's a long running process
that you're not paying
for unless the process is actually doing something.
>> Exactly right.
>> Your so smart, did you think of that?
>> It wasn't me.
>> That wasn't your idea.
>> Should I take credit for that?
>>Yeah go ahead and take credit for it.
>> It was me and Burke.
>> Yeah it was our idea.
>> Yeah.
>> Thing number 3, your containers can be Serverless.
But I thought it was more like
either you would have Serverless or you would
have containers and then
fight to the death between Serverless and containers.
>> Yeah. We used to be like that.
We used to go to Serverless conferences like this one,
and if you mentioned the Word containers,
they would throw tomatoes at you.
>> Right, just kick you out, you're out.
>> Yeah.
>> Code of conduct violation, get out.
>> Then we evolved as a Serverless community and figured
out the resonators where
not only you want to provide your application code,
but you want to provide your own container
because that's the way you manage your environment,
you put your own dependencies,
you want those dependencies to be everywhere
you go and carry over with you.
So we want that crowd to also get the benefits of Serverless.
>> Right, but how does that work exactly with Azure Functions.
I thought with Azure Functions you're just writing a function.
So where does the container come in?
>> So that's interesting. As we started exploring,
we started with functions as in you just provide your code and
rerun non virtualized Windows environment initially.
But then we started going towards Linux,
to more native Linux workloads such as Python.
For that what we did was we run the functions on a container.
So you give us your code, we put it in a container,
we host it for you,
or you can say,
"Hey, I want my own container."
So you pick the functions based container,
add your own custom stuff,
the stuff that Burke always uses,
machine learning model, I don't know what you use.
But you can package that all up and send it to us and
we'll host that for you and you run functions as you will,
respond to events, scale as needed, but now it's a container.
>> But now it's running as a container.
>> Yeah.
>> So it's not a fight to the death.
So you can have your functions and you can have
your containers and you can all go to the same conference too.
Would you be interested in a Goo Goo cluster?
>> You know I never had them but I did
know this is something you offer people that come here.
So I got Havanna's Alfajores.
>> Are you suggesting that we should not eat a Goo Goo cluster?
>> I suggest you try something
that's more global for your global audience.
>> Okay.
>> That's from Argentina.
>> All right. Let's give it a shot. What do we got?
>> Yeah.
>> The packaging is very nice.
>> You might never go back to Goo Goo clusters.
>> man that's a really good.
>> Who wins the battle?
>> I don't know that I can say.
A Goo Goo clusters versus.
>> Alfajores.
>> Alfajores. You buy them both.
You try, and as soon as Goo Goo clusters sponsors the show,
I will officially say that it tastes better than Alfajores.
Thing number 4 is observability.
What is observability?
>> I think it's something people came up
with that sounds cooler than monitoring.
>> So it's monitoring but it's what the cool kids say.
>> It's more encompassing.
>> So why is it that,
why it's so hard about monitoring Serverless?
>> I think it comes from the nature of
distributed applications like microservices.
>> Okay.
>> Where you have all these different,
your applications comprised of all these different pieces of
code that talk to each other asynchronously to make it harder.
You never know when it's running,
and yet there is something fails and you're like,
where does this thing fail in my pipeline?
>> It's impossible to know where exactly the problem is.
>> It is super hard.
Yeah. So what it's cool is now
we know there's a problem and talk about it in the conferences.
So we built components to help you diagnose those.
So with Application Insights,
now you use the Application Insights.
>> Super cool.
>> Yes.
>> It has all these aggregate your matrix,
it has all these rich query language,
but they also built a distribute to trace,
and they render that to you in an application map.
>> So like a visual representation of all your Serverless,
you're microservices architecture so
that you can see where something failed.
>> Absolutely. Not only you see the way they do it is they
put the little circles on your application,
but they put on the arrows the
events that go from one app to the other.
So let's see your function's talk to each
other over Service Bus Queue,
it will show the Service Bus Queue.
Because sometimes your problem is not on the compute,
it's on the eventing stream too.
>> Right.
>> It will point out, "Hey,
you had this many errors here."
You can double-click and you're
going to get a full section and say,
"Hey this event originally was from Burke's function,
went to my function,
someone else function and will find someone else functions."
>> It's going to be my function. Yeah.
>> Yeah.
>> I don't write bad code. It's not my problem,
it's probably your problem. That's what I'm saying.
>> I heard this,
that you only write 10 production quality lines of code a day.
>> Really? I only write 10 lines of code a day.
So I'm super productive.
Want to hire me on the Function's team?
>> Let's talk offline.
>> Okay. Thing number 5, DevOps.
How do DevOps and Serverless correlate?
>> Well Serverless, it's all about don't worry about things.
All the worries are taken away but in reality is
you still should be diligent when you put your code in production.
I bet you are diligent when you put your code in production.
>> Always. I like to put my code in production on
Fridays at around 5:00 and then just go home for the weekend.
>> It's straight to production. No gate-keeping.
>> No. No middleman just right in. Yeah.
>> Works well for you it seems but we
recommend that you really configure your pipeline.
You do pick your code,
let's say you scan for vulnerabilities.
You probably heard recently
JavaScript developers were all screening.
>> Yeah there was an NPM.
There's an NPM package that you can use is called SNYK.
>> There's a partner's of SNYK,
they do scanning on.
>> SNYK?
>> One of the two.
>> SNYK.
>> Maybe. What you want to
do is you want to do all this things in pipeline,
your task, your test harness, you can plug in,
put your testing there to prevent
code from going into production and it shouldn't.
It go to the right spot at the right time and all of that.
So for that, you have in Azure DevOps, you have Azure Pipelines.
You can configure Azure Pipelines to work with Functions.
So you get your code, which is Functions code.
You do the necessary steps that you can custom configure on
your Pipeline and have Functions as
a target where your code's going to eventually land,
in Azure functions in the Cloud.
>> So just because you're using Serverless
doesn't mean that you shouldn't still be
doing DevOps the way that you
would when you deploy any web application,
it's just the right thing to do it.
>> Yes. If you have a complex application and you're going to
production you do want to configure DevOps.
>> So I'm not going to tell you how to live your life but
Eduardo is and you should use DevOps with your Azure Functions.
>> You definitely should.
>> Yeah. All right man, good show.
>> Excellent.
>> Let's high-five our way out of this thing.
>> Let's do it right.
>> All right.
>> Whoa, I didn't expect that to work. I'm Burke Holland.
>> I'm Eduardo Laureano.
>> Now, you know five things that you could do with Serverless.
I have no idea where we are.
>> It is cold.
>> Hold me.
[MUSIC]