It's pretty much become impossible to talk about a hash of these days without first understanding about
apps services as a whole and where they fit as opposed to a virtual machine app services allow us to
bypass that layer of OS management and I as infrastructure management and shift that focus up to run
in our applications.
At its core apps services is a series of paths based application services.
If you think about it it consists of the following four.
There are web apps mobile apps logic apps and API apps and all of these can run on the same underlying
infrastructure of virtual machines that support them.
So let's take a look at web apps in more detail while web apps were formerly known as Web sites if you're
familiar with classic Azure.
This is what we call them back then and they allow us to host and build Web applications using a variety
of programming languages that we can choose from.
They offer audio scaling capabilities as well as high availability and also include a whole bunch of
dev ops features that enable us to automate deployments for things like GitHub Visual Studio Team Services
and other sources as well.
Then we have mobile apps which also run on that underlying infrastructure and they allow us to build
a mobile device backend essentially gives a developers that mobile friendly environment platform still
is highly scalable highly available and allows developers to build native apps for IO Us Android Windows
and cross core platform apps to support it as well.
One of the biggest benefits is really that the shares the same app service deployment to reduce those
run rates and bring the costs down.
We have one of my personal favorites which are logic apps and these really allow us to automate business
processes.
Think of it like creating your own orchestration workflows as an orchestration engine under the covers.
That helps us out with various tasks that we want to perform and think of these examples like you know
every time your app calls an API.
I want to do some task for every time there's some data in blob storage I want to do some work on that
or maybe there's an external SAS service I want to connect to.
Perhaps I'm trying to do something more on the social media space like checking tweets or checking Slack
messages and then I want to take some series of actions.
It's a very easy way to build automated workflows without really having to learn a lot of code.
Then we have API apps as well and so these allow us to easily create consume cool API as you know we
can basically use our own API as as part of these and these could also be from external API services
as well.
So then we get on some of the security features and Azure app services are highly secured.
Any of the app service features that you consume or run on their own isolated virtual machine.
They meet all the security standards ISO SOC PCI compliant all the main ones are there and Azure Active
Directory is fully integrated as well so it can be used to authenticate users along with social Logans
and in addition Microsoft recently added managed service identities which are currently in preview but
a managed service identity from Azure Active Directory allows your app to easily access other Ada protected
resources such as Azure key vault.
The other things that are really important are some of the features that are supported from a security
standpoint are custom domains SSL teal s custom certificates that includes a wild card or subject alternate
name supports multiple directory authentication protocols oath open I.D. and Microsoft active directory
and finally is really important with the release of web application firewall.
This can be integrated into your web apps and apps services as well.
So then we have dev ops features and pretty much you know you can't release a good development platform
without having a lot of Davos features.
So Microsoft includes the most common ones for you.
So you see ICD support is available through get GitHub bit bucket Docker Hub as well as V S T S as well
you can integrate with all your popular idea e tools such as visual studio you know that could be the
community addition could be visual studio code that's all available for you there.
And it also supports deployment from external photo sources such as Dropbox and one drive as well.
So if you just want to get your application up that method you can you can do that as well.
App service also has a unique feature called deployment slots which allow us to stage environments so
we can basically have like a stage environment a prod environment we can deploy to stage and then flip
it into prod and you'll hear more about that later on in the course so if we look at app service plans
now and a little bit more detail you know app service plans represent the collection of physical resources
under the covers that are going to host our apps.
This is where our apps are going to run on top of.
So first we have to define the following the subscription the plan belongs to the location so it could
be like North Central U.S. the pricing tier so can be free shared basic standard premium or isolated
and we'll talk more about that one shortly and the instant size so this is the size of the VM is running
under the covers and you'll notice when you look at the pricing of these they pretty much map to the
VM sizes if you went into point of VM like you would just for us.
Once you've got that pod set up then you configure your set and sets round things like scale count like
how many instances or one under the covers.
What are my scale rules allow for order scaling if the plan supports it scale up you know increase the
resources associated with the service plan.
This is essentially how you would switch the plan you defined at the start if you wanted to kind of
increase the resources associated with it.
So let's look at the pricing tiers a little bit more detail.
So first of all we've got those shared tears the free and the shared one.
So these run apps on the same Azure VM as other apps service apps and this includes apps of our customers.
So how CPE quotas are allocated to each app that runs on the shared resources and resources are not
able to be scaled out.
You'll need one of the other plans for that.
And that brings us onto these which are dedicated compute resource plans.
You've got the basic standard premium and there's a premium to tier these one your apps on dedicated
Azure VM so only apps in the same app service plan share the same compute resources the higher the tier
the more VM instances are available for you to scale out and then we've got this isolated tier also
known as app service environments and this tier runs dedicated Azure VM on dedicated Azure Virtual Networks.
So they provide additional network isolation on top of compute isolation for your apps as well.
And these provide the maximum scale out capabilities for you.
So there's some general guidelines that you need to follow.
First of all you know you can select this link at the bottom which will give you the subscription service
limits and give you more details on that.
But if we look at some of the guidelines in more detail.
First of all you create an app service plan for your specific applications then you deploy your app
services to support that entire application and what you don't want to do is use a single plan for every
single web app that you have.
You know that's not going to scale very well and you know this is it can be very hard to manage.
You do want to combine apps services versus mass VM creation as well.
So this is a key thing because if I'm going to go and create a whole bunch of apps service plans and
then put all my job services then spread them out.
That's not going to be very cost effective.
So the more I can combine my apps services for that application the better more cost effective it's
going to be.
And then you can combine other services in the same resource group so you can mix your app service plan.
If you say God you know I as secret servers but you want to have web apps running in an app service
plan you can do that in the same resource groups everything can still share the same lifecycle.
You know if you destroy the resource group it could destroy everything the EIS services the apps services
plus whatever other services you've decided to utilize in Azure as well.
Now to wrap up let's take a look at ACS and app service environments and kind of talk through those
a little bit more detail so app service environments again all that fully isolated environments so it's
a feature of Azure app services that allows us to reserve that dedicated compute environment for securely
running those apps at high scale.
And ACS CAN host web apps mobile apps API apps as well as Azure functions on top of them.
So your use case is really all around high performing apps high ICP you high memory service instances
are generally good enough but they are pulled from a common pool which is shared with other Azure customers
at very high utilization you know.
This could result in some performance problems you know as compute services or suddenly requested from
a whole host of people.
Within that though you've still got individual or multiple service plans that you can put on top of
your AC so that could be a mixture of you know different plans that share different applications.
And there are two ways we can go about deploying them internal or external.
So when we look at an internal AFC this is where a VP is created on an internal IP address the internal
endpoint is essentially an internal Azure load balance.
These are sometimes referred to as I'll be AFC and then you've got external AFC you use this option
when you want your AFC to be directly accessible via the Internet.
After selecting your vignette you then select a number of external IP addresses you want to utilize
again something to stress.
Yeah this is created in a subnet of a vignette which achieves isolation.
And another note these may take a few hours to these aren't things that are just a click of a button
are readily accessible they are reserving compute specifically for you it's dedicated for you.
So there is a time period as these open up.
So with all of that this concludes this part of the module and hopefully gives you the good background
on everything you need to know about service plans you know make sure you understand the different plans
the different tiers the apps service environment option the fact is that internal and external option
and I encourage you just check out the upcoming demo which will guide you through creating your first
app service plan in Azure.