This workshop will be retired on May 1, 2025.
Heads up! To view this whole video, sign in with your Courses Plus account or enroll in your free 7-day trial. Sign In Enroll
Well done!
You have completed Publishing an ASP.NET Core Application to Azure!
You have completed Publishing an ASP.NET Core Application to Azure!
Preview
In this video, we'll learn how to publish an ASP.NET Core application to an Azure App Service from a GitHub repo.
Related Discussions
Have questions about this video? Start a discussion with the community and Treehouse staff.
Sign upRelated Discussions
Have questions about this video? Start a discussion with the community and Treehouse staff.
Sign up
All right, so we published from
Visual Studios successfully,
0:00
our little ASP.NET Core application.
0:03
How would we do that
without Visual Studio?
0:04
Well, one way would be
to do source publishing.
0:07
We would actually publish it
from somewhere like GitHub.
0:11
So here, I went and
made a GitHub repository.
0:15
Didn't do anything fancy.
0:18
And remember earlier, when I had my
command line created application.
0:20
This was the one where I
typed dotnet new mvc, okay?
0:24
I went through the instructions,
just the standard GitHub instructions, and
0:30
I pushed that up to GitHub.
0:34
It is important to note that the only
thing I added was a gitignore file,
0:37
that's really important.
0:41
You don't want to check in your DLLs,
your binaries.
0:42
You don't want to check your binaries in.
0:46
So I have a gitignore file that ignores
Visual Studio temporary files and
0:48
things that aren't appropriate for
source control.
0:54
This is a place not for
my website to live but for
0:58
the source code of my website to live.
1:01
So there's no bin folder.
1:04
There's no DLLs here, right?
1:05
What I'm gonna do, I'm gonna go over here
to Azure, and I'm gonna say New, Web App.
1:06
And I will make a new website.
1:16
Again, very similar dialog
box to what we saw before,
1:22
except we're doing it here in
the Azure portal, this website.
1:27
You'll notice the S1s and the F1s as such.
1:32
I'm gonna put that, in fact,
in the same server farm as before.
1:35
Really important, so
many people spending too much money,
1:39
more money than they need to,
creating server farms for every website.
1:42
I am gonna exploit this virtual
machine as much as I possibly can and
1:46
pay as little as possible.
1:50
So now I'm gonna hit Create.
1:51
Now go over here to App Services.
1:57
Got a couple of pants.
2:01
Here's the one I just made,
superfancypants.
2:02
Let's visit that website.
2:07
That website is gonna fire up.
2:11
It's a cold website until I hit it once,
and then it becomes warm.
2:12
All right,
this is a nothing website, right?
2:17
This is just a HTML page.
2:19
How do we deploy our
core application to here?
2:22
Well, remember it's over in GitHub.
2:25
So what I'm gonna do is I wanna set up
some webhooks to allow me to do that.
2:27
I'm gonna say Deployment options,
Choose Source.
2:31
There's a number of
places I can pull from.
2:36
I can pull from
Visual Studio Team Services,
2:38
also provides a Git deployment and
the ability to store your source code.
2:41
And then when you push your application,
when you update your application to
2:45
source control, it will then be
automatically published to Azure.
2:49
This is why,
this is the magic of why you do this.
2:52
You put your source code somewhere,
VSTS, GitHub,
2:56
whatever, you say push, and
then it automatically shows up on the web.
3:00
Now you can use a Local Git Repository,
3:05
but that kind of isn't
what Git's all about.
3:07
You should probably use somewhere
like GitHub or Bitbucket or VSTS.
3:10
I will click GitHub.
3:14
l have already authorized GitHub
to talk to my Azure account.
3:15
So it's not gonna pop up a dialogue and
ask me to log in.
3:19
What it's doing now is it,
there you go, there's my authorization,
3:23
it's gonna ask me to choose a project.
3:26
So l can pick treehousesample and
it's gonna set up a webhook.
3:28
Now, a webhook is the thing that
GitHub uses to talk back to Azure.
3:33
Now I've already done this
to save time earlier.
3:38
So what I'm gonna do is, I'm gonna do
a little Julia Child's trick here, and
3:41
I'm gonna sneak out, and
3:44
I'm gonna switch over to a different
pants that I set up earlier.
3:45
This application has been set up earlier,
same exact app though.
3:49
I show you, here in GitHub,
under settings, Webhooks.
3:53
I did not have to set that up, okay?
4:00
This was set up automatically by Azure.
4:02
When I said deployment options,
I clicked on GitHub,
4:04
and I hit OK, it set this webhook up.
4:08
Webhooks allow external
services to be notified.
4:11
This means I've published to GitHub.
4:15
GitHub then does a POST to this location
and says, hey, deploy, go deploy.
4:17
That means that Azure will then go and
update its local Git repository.
4:24
It'll do a fetch,
pull the code from treehousesample,
4:30
and bring that over into Azure,
which it has, all right.
4:34
You can see here,
if I click on Deployment options,
4:39
there's my initial GitHub check in,
all right.
4:42
I can actually click on that.
4:45
You can see how long it ran,
you can see who the author was, and
4:46
if you want, you could even go and
see all the logs.
4:50
This is an important reminder.
4:53
This looks, by the way, very similar to
what we saw earlier in Visual Studio.
4:54
And I'm not doing any of
this from Visual Studio.
4:59
We're doing all of this from
the command line or on the web.
5:02
Nothing is hidden from you in Azure.
5:05
Sometimes it might feel like magic.
5:09
But in fact, every piece of this
is available to you to see.
5:11
In fact, I'll show you a little trick.
5:15
This source control deployment here,
5:18
this is run by a system called Kudu,
K, U, D, U, which is also open source.
5:20
And you can read its code on GitHub.
5:25
Now, my application is
called fancypants23.
5:28
I'm gonna go here and
I'm gonna type in fancypants23.scm,
5:32
dot source control management,
.azurewebsites.
5:37
This is a little sidecar website.
5:42
It's a hidden little website.
5:44
Every website in Azure
has a sidecar website.
5:46
Now of course,
I have to login as Scott Hanselman.
5:49
This is not something that
I can see if I'm anonymous,
5:51
you won't be able to get to this web site.
5:54
But it's another nice reminder that even
though I'm using Azure App Services,
5:56
I'm not using cheap commodity hosting,
but I'm also not using a virtual machine,
6:01
I'm abstracted away from that.
6:05
I'm thinking about my App Service
plan which is a standard one.
6:07
It's nice to see that,
wow there is a D drive.
6:11
I don't need to think about it.
6:14
I can just do my Git-deploy,
my app looks great, everything is cool.
6:16
But, if I really wanted to see
that there was a D drive, I could.
6:21
I could even go and click Debug console,
go here to CMD, and check this out.
6:25
When I saw this for
the first time, it blew my mind.
6:30
Site, wwwroot, and there's my stuff.
6:35
Now notice it's all DLLs though, right?
6:40
This is my website.
6:44
Which web sighted?
6:45
It's this one, right?
6:46
But I don't have controllers, right,
because I didn't publish my source code,
6:47
I published the binary.
6:52
So what we did,
we published the source code into here,
6:53
Kudu, brought it over into Azure,
did a build,
6:57
and then dropped the results
of that build into wwwroot.
7:02
And in this case, only my source,
that is the Views, only my HTML is there.
7:06
Now I could make changes if we wanted to,
let's do that.
7:12
I could say fancypants23 to
visit the actual website.
7:16
There it is, all right.
7:25
That's the home view.
7:26
I could go in here and mess about.
7:28
Hit Save.
7:40
I'm live in production here.
7:42
And I've made a change to my
application in production.
7:48
Should I do that?
7:51
Absolutely not.
7:52
Because what's gonna happen is, if I go
and re-deploy, If I go back over here and
7:53
I say Deployment options, And I re-deploy,
7:58
we say, put this back the way it was,
this is the shoot option.
8:04
When someone makes a change or
screws up your application, you can go and
8:10
deploy that again.
8:14
That's going to get undone,
8:15
you don't want to have people
making changes to your application.
8:17
So this would eventually,
when that deployment happens,
8:21
go back to the way it was.
8:24
But it's nice to know that those files
are on disk somewhere on a D drive.
8:26
But remember, bringing it all
the way back to the beginning,
8:32
is it a D drive that I can visit?
8:36
It is not, right?
8:39
It is a D drive that is
abstracted away by Azure Storage.
8:40
So, your website lives
in an Azure App Service,
8:44
your Azure App Service plan lives
in an Azure Virtual Machine,
8:49
the disks are hidden from you,
hidden from everyone by Azure Storage.
8:53
But that is the difference between
platform as a service or P, A, A, S,
8:58
PaaS, and infrastructure as a service or
IaaS on Virtual Machines.
9:02
So this is how to publish
an ASP.NET Core application to Azure.
9:08
I hope you continue to enjoy your
experience here at Treehouse, and
9:12
thank you for
letting me come here as a guest.
9:15
Again, my name is Scott Hanselman.
9:17
And you can go out and
Google with Bing and find me on the web.
9:19
I hope to hear from you soon.
9:22
Thank you.
9:23
You need to sign up for Treehouse in order to download course files.
Sign upYou need to sign up for Treehouse in order to set up Workspace
Sign up