Azure App Service is your trusty sidekick that simplifies hosting and lets you shine as the app master you are.
Whether you're building web apps, crafting APIs, running background tasks, or creating mobile back-ends, Azure App Service is here to make it all happen, with a whole lot of style! 😎
What is application hosting?
When an application is "hosted", it's all about making your software available online and welcoming users to come in and use it.
When an application is hosted, it means these three things:
The application lives on a server rather than just inside an individual's computer.
People can visit and use the app without needing to install it on their own devices. They just need an internet connection.
The application is available whenever and wherever you need it!
Here are some everyday examples of application hosting:
Websites: When you visit a website, like an online store or a news site, the web pages you see are hosted on servers (computers) connected to the internet. These servers store and run the website's code, which it why it's accessible to users worldwide.
Online games: Many online video games are hosted on remote servers, allowing players to connect and interact in real-time, whether they're on a gaming console, computer, or smartphone.
Social media platforms: Facebook, Instagram, TikTok, and most social media apps host their applications on servers so that users can post, share, and interact with content from different devices.
So... how do people usually get their application hosted? There are many steps that come with getting an app hosted, but here are the three key steps:
Plan and set up your hosting environment, and make sure your app is ready to go.
Put your app in the hosting environment (now that your app is moving away from living in your computer, where should it live? The app's hosting environment is its new home) , and make sure everything's working smoothly.
Keep an eye on your app's performance, and make sure it stays in good shape over time.
Application hosting with Azure
When it comes to hosting your applications on Azure, you've got some fantastic choices to consider!
First up, we have virtual machines (VMs) and containers - two rock-solid options that bring a lot to the table.
Wait, I thought VMs and containers are compute services? What do you mean by application hosting?
Yes, VMs and containers are compute services, but that also means they can be hosting environments. Let's review those three key steps about application hosting, this time with VMs and containers in mind:
Plan and set up your hosting environment, which can include choosing whether to use VMs or containers.
Put your app in the hosting environment
For VMs: Create virtual machines and install your application inside them.
For containers: Create containers that package your app and its dependencies. These containers are like moving your app into its own shipping container.
Configure the environment to make sure your app runs smoothly.
Keen an eye on your app's performance, by regularly checking and maintaining your VMs/containers to ensure everything works well over time.
As a quick refresher on VMs vs containers:
VMs offer great flexibility and control, but they require more management because you're responsible for maintaining the entire operating system and software stack. You must also ensure the VM's security, scalability, and availability.
Containers offer a balance between control and convenience. They're great for building and deploying applications consistently across different environments, and they scale well.
Remember doing this in your Azure Container Instance exercise? You were hosting a web app!
But wait, there's more! There's a third Azure option when it comes to application hosting. Let's dive into the exciting world of Azure App Service.
Azure App Service
Azure App Service is like the superhero of hosting, swooping in to take the heavy lifting of infrastructure management off your hands so you can focus on what you do best - building and maintaining your app.
Types of apps you can host with Azure App Service
Web apps: These are like webpages you can create using various computer languages. You can choose between Windows or Linux as the operating system for running them.
For example, online stores are web apps you can visit to browse, items to a cart and even check out. For the creators of those online stores, they would use App Service to control how the store looks, add the products they want to sell on it, set up they take your payment.
API apps: APIs (Application Programming Interfaces) are tools that help different software communicate and work together. They specify how one program can request and share data or functions with another, allowing seamless integration and enhancing the capabilities of software. APIs make it so much easier for developers to build on top of existing software and create more powerful and interconnected applications.
For example, weather apps often use APIs to gather real-time weather data from different services that report on weather information. That's how it's always providing you with up to date information without the app creators needing to go out and measure the weather at all places at all times!
WebJobs: They are like scheduled tasks that run in the background. You can set them to run specific things at certain times, like daily reminders or automatic updates.
For example, if you're running a blog and want to publish something at a specific time, you can create a WebJob to automate it.
Mobile apps: Azure helps you build the back end (the behind-the-scenes part) of apps for phones. With just a few clicks in the Azure portal, Azure App Service will help you store mobile app data, handle user logins, and even send notifications to users' phones.
For example, if you've developed a mobile game, the mobile app back end tracks your players' scores, notifies them about your newest changes, and makes sure to unlock the next level for them.
Why we love Azure App Service
It's easy to set up, like moving into a fully furnished apartment.
Your app stays safe and secure.
You can create and host web apps, background jobs, mobile back-ends, and RESTful APIs*
Automatic scaling and high availability, ensuring your app keeps running like a champ.
Automatic scaling: If lots of people start using your app, it can handle the extra load without crashing.
High availability: it makes sure your app is always available for users.
Works with both Windows and Linux environments.
You can even automate deployments** from GitHub, your Git repo, or Azure DevOps, giving you continuous deployment action.
*What are RESTful APIs? Think of RESTful as a standard for APIs. If you describe an API as RESTful, it means the API is tailored for internet applications and considered good quality because it follows a set of rules called REST. Following REST means APIs (and the web apps that use them) have a standardised and efficient way to communicate with each other.
**What is deployment? Deployment is the process of taking your developed app and making it accessible to users. It involves installing the software on a server or a platform where people can use it, ensuring it works properly, and managing its ongoing availability and performance. It's like taking a cake you've baked and making it ready for others to enjoy, by setting it up on a plate and ensuring it's served smoothly and reliably. We'll get into the weeds of deployment on another day!