Azure compute– overarching category for bunch of services in azure that provide on-demand computing power for running cloud based applications. Compute means execute code in the cloud.
- Azure Virtual machines
- Container instances
- Azure app services
- Azure functions ..etc
Azure virtual machines
- Virtual machines are infrastructure as a service – IAAS
- software emulations of physical computers – take an existing machine from your environment into cloud – a copy
- In AWS – a virtual machine is called Elastic Compute Cloud (EC2)
- Full control over it as if it was your machine.
- You can choose VM – based on number of CPU Cores, CPU Speed , RAM size , temporary disk size etc
- can remote into server to manage
- install middlewares, runtimes,applications
- you are responsible for security patches , updates required by the OS on that VM. But Azure offers some services to make that easier
- Virtual machines can offer – lift and shift approach to cloud migration
- Virtual machines are the most familiar options for most IT pros because they are just like the virtual servers that you would maintain on-premises. If you are planning to migrating to azure from on-premises , virtual machines can provide a lift and shift approach by creating vms in azure similar to the physical or virtual servers you have on premises.
- Virtual machines can have some cost savings versus deploying those apps to single instances of other services, but applications shares the resources on VM, so you need to be aware of one application using too much CPU or memory and affecting the others. Or if multiple application use the shared library (example updating that library to benefit one app could cause another app to break). Thats the issue which containers are meant to solve.
Conatiners
- Containers are used to wrap up an application into its own isolated package.
- Its for server based application and services. So webapps are typical example.
- When an app is deployed using an container everything the application needs to run successfully is included in the container like runtimes and library dependencies. Makes it easy to move the container around. So containers reduce problems with deploying applications.
- Containers are like virtual machines , but they run on virtual or physical servers using a container runtime layer similar to how virtual machines run on virtualization layer. So you can host multiple containers on single VM if you can install a container runtime and docker as one of the example of those. Several services in azure to host containers. There are two types of containers within azure 1) Azure container instances and 2) Azure Kubernetes Services. Kubernetes is known as enterprise grade. It requires a cluster of machines. You cannot run kubernetes on single machine.
- Basically you turn your code into image and that image can be copied into development environment , staging environment , your production environment, and instantly you have your code running.
- Deployment complexity is reduced.
Azure App Service :- PAAS
- lets you quickly build and deploy web apps , mobile apps and API apps that can be leveraged by other applications or access by client apps over HTTP using REST.
- Cloud focussed paradigm for running code.
- You basically zip up or package up your code and your configuration and publish those apps into azure. It has got its integration with visual studio and github. Its a abstraction over virtual machine.
- They also allow you to add server side apps and scripts , similar to how you install windows service on your web servers to perform some task on a timer.
- You can choose your appliation runtime like .NET, Node.js and several others
- Linux or windows for underlying VMS
- Azure app service takes care of underlying vms for you – which is benefit
- you get extra features – built in integration with authentication providers like azure active directory to handle authenticaticating users to the application.
- you get deployment slots for development, testing and production. you get multiple versions of your app for development , production.
- built in features to scale out the VMs.
- you can add or remove vm manually or azure can autoscale the vms based on the metrics that you configure , like the amount of cpu being used.
- azure app service are great for running web apps and apis that are used by mobile apps and client apps and other services.
AZURE FUNCTIONS:-
- sometimes you need to run piece of code to do some task like process a file or update db tabe or send a message to another service.
- service to host small pieces of code or you can chain functions together or use them as part of other solutions.
- fuctions can run on timer or in response to events like an HTTP call and also you can use built in trigger (like a file change in azure storage that can trigger azure function to run) you only pay for the compute power that you use
- for small tasks azure functions are great way to save effort and money
- azure functions are often called serverless computing
AZURE LOGIC APPS:-
- These allow you to configure workflows right in the browser and connect to various services inside and outside of azure using built in connectors
AZURE VIRTUAL DESKTOP
- You get a version of windows that entirely runs on cloud.
- So you login to your desktop. And you are running desktop version of windows. It looks like you are running locally. But that windows is served up by virtual machine in the cloujd.