Azure Fundamentals
Azure: Management groups: Important facts
- 10,000 management groups can be supported in a single directory. - A management group tree can support up to six levels of depth. This limit doesn't include the root level or the subscription level. - Each management group and subscription can support only one parent. - Each management group can have many children. - All subscriptions and management groups are within a single hierarchy in each directory.
Resource Groups: Creating resource groups
- All the resources in your group should share the same lifecycle. You deploy, update, and delete them together. If one resource, such as a database server, needs to exist on a different deployment cycle it should be in another resource group. - Each resource can only exist in one resource group. - You can add or remove a resource to a resource group at any time. - You can move a resource from one resource group to another group. - A resource group can contain resources that reside in different regions. - A resource group can be used to scope access control for administrative actions. - A resource can interact with resources in other resource groups. This interaction is common when the two resources are related but don't share the same lifecycle (for example, web apps connecting to a database).
AD: Domain Controller
A Domain Controller is a server on the network that centrally manages access for users, PCs and servers on the network. It does this using Active Directory (AD).
Azure: Resource
A manageable item that's available through Azure. Virtual machines (VMs), storage accounts, web apps, databases, and virtual networks are examples of resources.
Azure App Service: Web apps
App Service includes full support for hosting web apps by using ASP.NET, ASP.NET Core, Java, Ruby, Node.js, PHP, or Python. You can choose either Windows or Linux as the host operating system.
Azure: Services: AI
Azure Machine Learning Service: Cloud-based environment you can use to develop, train, test, deploy, manage, and track machine learning models. It can auto-generate a model and auto-tune it for you. It will let you start training on your local machine, and then scale out to the cloud. Azure ML Studio: Collaborative visual workspace where you can build, test, and deploy machine learning solutions by using prebuilt machine learning algorithms and data-handling modules.
Virtual Machines: When to use
VMs are an ideal choice when you need: - Total control over the operating system (OS). - The ability to run custom software. - To use custom hosting configurations. An Azure VM gives you the flexibility of virtualization without having to buy and maintain the physical hardware that runs the VM. You still need to configure, update, and maintain the software that runs on the VM. You can create and provision a VM in minutes when you select a preconfigured VM image. Selecting an image is one of the most important decisions you'll make when you create a VM. An image is a template used to create a VM. These templates already include an OS and often other software, like development tools or web hosting environments.
Azure: Regions
A region is a geographical area on the planet that contains at least one but potentially multiple datacenters that are nearby and networked together with a low-latency network. Azure intelligently assigns and controls the resources within each region to ensure workloads are appropriately balanced.
Azure: Subscriptions
A subscription provides you with authenticated and authorized access to Azure products and services. It also allows you to provision resources. An Azure subscription is a logical unit of Azure services that links to an Azure account, which is an identity in Azure Active Directory (Azure AD) or in a directory that Azure AD trusts. There are two types of subscription boundaries that you can use: Billing boundary: This subscription type determines how an Azure account is billed for using Azure. You can create multiple subscriptions for different types of billing requirements. Azure generates separate billing reports and invoices for each subscription so that you can organize and manage costs. Access control boundary: Azure applies access-management policies at the subscription level, and you can create separate subscriptions to reflect different organizational structures. An example is that within a business, you have different departments to which you apply distinct Azure subscription policies. This billing model allows you to manage and control access to the resources that users provision with specific subscriptions.
AD: Key Benifits
Active Directory Domain Services (to give it is full and proper name) run on the Domain Controller and have the following key functions: - Secure Object store, including Users, Computers and Groups - Object organization - Organisational Units (OU), Domains and Forests - Common Authentication and Authorization provider - LDAP, NTLM, Kerberos (secure authentication between domain joined devices) - Group Policy - for fine grained control and management of PCs and Servers on the domain So basically AD has a record of all your users, PCs and Servers and authenticates the users signing in (the network logon). Once signed in, AD also governs what the users are, and are not, allowed to do or access (authorization). For example, it knows that John Smith is in the Sales Group and is not allowed to access the HR folder on the file server. It also allows control and management of PCs and Servers on the network via Group Policy (so for example you could set all users' home page on their browser to be your intranet, or you can prevent users from installing other software etc). Most established businesses will have AD running on one or more Domain Controllers on their network.
AD: Active Directory
Active Directory is a database that organises your company's users and computers. It provides authentication and authorization to applications, file services, printers, and other resources on the network. It uses protocols such as Kerberos and NTLM for authentication and LDAP to query and modify items in the Active Directory databases.
Azure: Availability zones
Availability zones are physically separate datacenters within an Azure region. Each availability zone is made up of one or more datacenters equipped with independent power, cooling, and networking. An availability zone is set up to be an isolation boundary. If one zone goes down, the other continues working. Availability zones are connected through high-speed, private fiber-optic networks.
Azure: Services: Web
Azure App Service: Quickly create powerful cloud web-based apps. Azure Notification Hubs: Send push notifications to any platform from any back end. Azure API Management: Publish APIs to developers, partners, and employees securely and at scale. Azure Cognitive Search: Deploy this fully managed search as a service. Web Apps feature of Azure App Service: Create and deploy mission-critical web apps at scale. Azure SignalR Service: Add real-time web functionalities easily.
Azure Batch
Azure Batch enables large-scale parallel and high-performance computing (HPC) batch jobs with the ability to scale to tens, hundreds, or thousands of VMs. When you're ready to run a job, Batch does the following: - Starts a pool of compute VMs for you. - Installs applications and staging data. - Runs jobs with as many tasks as you have. - Identifies failures. - Requeues work. - Scales down the pool as work completes.
Azure: Services: Storage
Azure Blob storage: Storage service for very large objects, such as video files or bitmaps. Azure File storage: File shares that can be accessed and managed like a file server. Azure Queue storage: A data store for queuing and reliably delivering messages between applications. Azure Table storage: Table storage is a service that stores non-relational structured data (also known as structured NoSQL data) in the cloud, providing a key/attribute store with a schemaless design. These services all share several common characteristics: Durable and highly available with redundancy and replication. Secure through automatic encryption and role-based access control. Scalable with virtually unlimited storage. Managed, handling maintenance and any critical problems for you. Accessible from anywhere in the world over HTTP or HTTPS.
Azure Container Instances
Azure Container Instances offers the fastest and simplest way to run a container in Azure without having to manage any virtual machines or adopt any additional services. It's a platform as a service (PaaS) offering that allows you to upload your containers, which it runs for you.
Azure Cosmos DB
Azure Cosmos DB is a globally distributed, multi-model database service. You can elastically and independently scale throughput and storage across any number of Azure regions worldwide. You can take advantage of fast, single-digit-millisecond data access by using any one of several popular APIs. Azure Cosmos DB provides comprehensive service level agreements for throughput, latency, availability, and consistency guarantees. Azure Cosmos DB supports schema-less data, which lets you build highly responsive and "Always On" applications to support constantly changing data. You can use this feature to store data that's updated and maintained by users around the world. Azure Cosmos DB is flexible. At the lowest level, Azure Cosmos DB stores data in atom-record-sequence (ARS) format. The data is then abstracted and projected as an API, which you specify when you're creating your database. Your choices include SQL, MongoDB, Cassandra, Tables, and Gremlin. This level of flexibility means that as you migrate your company's databases to Azure Cosmos DB, your developers can stick with the API that they're the most comfortable with.
Azure: Services: Databases
Azure Cosmos DB: Globally distributed database that supports NoSQL options. Azure SQL Database: Fully managed relational database with auto-scale, integral intelligence, and robust security. Azure Database for MySQL: Fully managed and scalable MySQL relational database with high availability and security. Azure Database for PostgreSQL: Fully managed and scalable PostgreSQL relational database with high availability and security. SQL Server on Azure Virtual Machines: Service that hosts enterprise SQL Server apps in the cloud. Azure Synapse Analytics: Fully managed data warehouse with integral security at every level of scale at no extra cost. Azure Database Migration Service: Service that migrates databases to the cloud with no application code changes. Azure Cache for Redis: Fully managed service caches frequently used and static data to reduce data and application latency. Azure Database for MariaDB: Fully managed and scalable MariaDB relational database with high availability and security.
Azure Data Lake Analytics
Azure Data Lake Analytics is an on-demand analytics job service that simplifies big data. Instead of deploying, configuring, and tuning hardware, you write queries to transform your data and extract valuable insights. The analytics service can handle jobs of any scale instantly by setting the dial for how much power you need. You only pay for your job when it's running, making it more cost-effective.
Azure database for MySQL
Azure Database for MySQL is a relational database service in the cloud, and it's based on the MySQL Community Edition database engine, versions 5.6, 5.7, and 8.0. With it, you have a 99.99 percent availability service level agreement from Azure. With every Azure Database for MySQL server, you take advantage of built-in security, fault tolerance, and data protection that you would otherwise have to buy or design, build, and manage. With Azure Database for MySQL, you can use point-in-time restore to recover a server to an earlier state, as far back as 35 days. Azure Database for MySQL delivers: - Built-in high availability with no additional cost. - Predictable performance and inclusive, pay-as-you-go pricing. - Scale as needed, within seconds. - Ability to protect sensitive data at-rest and in-motion. - Automatic backups. - Enterprise-grade security and compliance.
Azure Database for PostgreSQL
Azure Database for PostgreSQL is a relational database service in the cloud. The server software is based on the community version of the open-source PostgreSQL database engine. Your familiarity with tools and expertise with PostgreSQL is applicable when you're using Azure Database for PostgreSQL. Benefits: - Built-in high availability compared to on-premises resources. There's no additional configuration, replication, or cost required to make sure your applications are always available. - Simple and flexible pricing. You have predictable performance based on a selected pricing tier choice that includes software patching, automatic backups, monitoring, and security. - Scale up or down as needed, within seconds. You can scale compute or storage independently as needed, to make sure you adapt your service to match usage. - Adjustable automatic backups and point-in-time-restore for up to 35 days. - Enterprise-grade security and compliance to protect sensitive data at-rest and in-motion. This security covers data encryption on disk and SSL encryption between client and server communication. - Azure Database for PostgreSQL is available in two deployment options: Single Server and Hyperscale (Citus).
Azure Databricks
Azure Databricks helps you unlock insights from all your data and build artificial intelligence solutions. You can set up your Apache Spark environment in minutes, and then autoscale and collaborate on shared projects in an interactive workspace. Azure Databricks supports Python, Scala, R, Java, and SQL, as well as data science frameworks and libraries including TensorFlow, PyTorch, and scikit-learn.
Azure: Services: DevOps
Azure DevOps: Use development collaboration tools such as high-performance pipelines, free private Git repositories, configurable Kanban boards, and extensive automated and cloud-based load testing. Formerly known as Visual Studio Team Services. Azure DevTest Labs: Quickly create on-demand Windows and Linux environments to test or demo applications directly from deployment pipelines.
Azure HDInsight
Azure HDInsight is a fully managed, open-source analytics service for enterprises. It's a cloud service that makes it easier, faster, and more cost-effective to process massive amounts of data. You can run popular open-source frameworks and create cluster types such as Apache Spark, Apache Hadoop, Apache Kafka, Apache HBase, Apache Storm, and Machine Learning Services. HDInsight also supports a broad range of scenarios such as extraction, transformation, and loading (ETL), data warehousing, machine learning, and IoT.
Azure: Resource Manager
Azure Resource Manager is the deployment and management service for Azure. It provides a management layer that enables you to create, update, and delete resources in your Azure account. You use management features like access control, locks, and tags to secure and organize your resources after deployment. Benefits: - Manage your infrastructure through declarative templates rather than scripts. A Resource Manager template is a JSON file that defines what you want to deploy to Azure. - Deploy, manage, and monitor all the resources for your solution as a group, rather than handling these resources individually. - Redeploy your solution throughout the development life cycle and have confidence your resources are deployed in a consistent state. - Define the dependencies between resources so they're deployed in the correct order. - Apply access control to all services because RBAC is natively integrated into the management platform. - Apply tags to resources to logically organize all the resources in your subscription. - Clarify your organization's billing by viewing costs for a group of resources that share the same tag.
Resource Manager: Template schema
Azure Resource Manager templates are written in JSON, which allows you to express data stored as an object (such as a virtual machine) in text. A JSON document is essentially a collection of key-value pairs. Each key is a string, whose value can be: A string A number A Boolean expression A list of values An object (which is a collection of other key-value pairs) A Resource Manager template can contain sections that are expressed using JSON notation, but are not related to the JSON language itself.
Azure SQL Database
Azure SQL Database is a relational database based on the latest stable version of the Microsoft SQL Server database engine. SQL Database is a high-performance, reliable, fully managed, and secure database. You can use it to build data-driven applications and websites in the programming language of your choice, without needing to manage infrastructure.
Azure SQL Managed Instance
Azure SQL Managed Instance is a scalable cloud data service that provides the broadest SQL Server database engine compatibility with all the benefits of a fully managed platform as a service. Depending on your scenario, Azure SQL Managed Instance might offer more options for your database needs. - Like Azure SQL Database, Azure SQL Managed Instance is a platform as a service (PaaS) database engine. - built-in high availability features and a 99.99% uptime service level agreement (SLA) - protect your data with automated backups and a configurable backup retention period.
Azure Synapse Analytics
Azure Synapse Analytics (formerly Azure SQL Data Warehouse) is a limitless analytics service that brings together enterprise data warehousing and big data analytics. You can query data on your terms by using either serverless or provisioned resources at scale. You have a unified experience to ingest, prepare, manage, and serve data for immediate BI and machine learning needs.
Azure: Services: Big Data
Azure Synapse Analytics: Run analytics at a massive scale by using a cloud-based enterprise data warehouse that takes advantage of massively parallel processing to run complex queries quickly across petabytes of data. Azure HDInsight: Process massive amounts of data with managed clusters of Hadoop clusters in the cloud. Azure Databricks: Integrate this collaborative Apache Spark-based analytics service with other big data services in Azure.
Azure: Services: Compute
Azure Virtual Machines: Windows or Linux virtual machines (VMs) hosted in Azure. Azure Virtual Machine Scale Sets: Scaling for Windows or Linux VMs hosted in Azure. Azure Kubernetes Service: Cluster management for VMs that run containerized services. Azure Service Fabric: Distributed systems platform that runs in Azure or on-premises. Azure Batch: Managed service for parallel and high-performance computing applications. Azure Container Instances: Containerized apps run on Azure without provisioning servers or VMs. Azure Functions: An event-driven, serverless compute service.
Azure: Services: Networking
Azure Virtual Network: Connects VMs to incoming virtual private network (VPN) connections. Azure Load Balancer: Balances inbound and outbound connections to applications or service endpoints. Azure Application Gateway: Optimizes app server farm delivery while increasing application security. Azure VPN Gateway: Accesses Azure Virtual Networks through high-performance VPN gateways. Azure DNS: Provides ultra-fast DNS responses and ultra-high domain availability. Azure Content Delivery Network: Delivers high-bandwidth content to customers globally. Azure DDoS Protection: Protects Azure-hosted applications from distributed denial of service (DDOS) attacks. Azure Traffic Manager: Distributes network traffic across Azure regions worldwide. Azure ExpressRoute: Connects to Azure over high-bandwidth dedicated secure connections. Azure Network Watcher: Monitors and diagnoses network issues by using scenario-based analysis. Azure Firewall: Implements high-security, high-availability firewall with unlimited scalability. Azure Virtual WAN: Creates a unified wide area network (WAN) that connects local and remote sites.
Serverless Computing: Azure
Azure has two implementations of serverless compute: - Azure Functions: Functions can execute code in almost any modern language. - Azure Logic Apps: Logic apps are designed in a web-based designer and can execute logic triggered by Azure services without writing any code.
Resource Manager: Determine resource limits
Azure lets you view resource usage against limits. This is helpful to track current usage, and plan for future use. - The limits shown are the limits for your subscription. - When you need to increase a default limit, there is a Request Increase link. - All resources have a maximum limit listed in Azure limits. - If you are at the maximum limit, the limit can't be increased.
Azure: Management groups
Azure management groups provide a level of scope above subscriptions. You organize subscriptions into containers called management groups and apply your governance conditions to the management groups. All subscriptions within a management group automatically inherit the conditions applied to the management group. Management groups give you enterprise-grade management at a large scale no matter what type of subscriptions you might have. All subscriptions within a single management group must trust the same Azure AD tenant.
Containers and Kubernetes
Container Instances and Azure Kubernetes Service are Azure compute resources that you can use to deploy and manage containers. Containers are lightweight, virtualized application environments. They're designed to be quickly created, scaled out, and stopped dynamically. You can run multiple instances of a containerized application on a single host machine.
Containers
Containers are a virtualization environment. Much like running multiple virtual machines on a single physical host, you can run multiple containers on a single physical or virtual host. Unlike virtual machines, you don't manage the operating system for a container. Virtual machines appear to be an instance of an operating system that you can connect to and manage, but containers are lightweight and designed to be created, scaled out, and stopped dynamically. While it's possible to create and deploy virtual machines as application demand increases, containers are designed to allow you to respond to changes on demand. With containers, you can quickly restart in case of a crash or hardware interruption. One of the most popular container engines is Docker, which is supported by Azure.
Resource Manager: Remove resources and resource groups
Deleting a resource group deletes all the resources contained within it. That resource group might contain resources that resources in other resource groups depend on. In PowerShell, to remove a resource group use, Remove-AzResourceGroup. You can also delete individual resources within a resource group.
Cloud Computing: What is?
Delivery of computing services over the internet, which is otherwise known as the cloud. These services include servers, storage, databases, networking, software, analytics, and intelligence. Cloud computing offers faster innovation, flexible resources, and economies of scale.
Functions
Functions are ideal when you're concerned only about the code running your service and not the underlying platform or infrastructure. They're commonly used when you need to perform work in response to an event (often via a REST request), timer, or message from another Azure service, and when that work can be completed quickly, within seconds or less.
Resource Manager: Template parameters
In the parameters section of the template, you specify which values you can input when deploying the resources. The available properties for a parameter are: "parameters": { "<parameter-name>" : { "type" : "<type-of-parameter-value>", "defaultValue": "<default-value-of-parameter>", "allowedValues": [ "<array-of-allowed-values>" ], "minValue": <minimum-value-for-int>, "maxValue": <maximum-value-for-int>, "minLength": <minimum-length-for-string-or-array>, "maxLength": <maximum-length-for-string-or-array-parameters>, "metadata": { "description": "<description-of-the parameter>" } } } You're limited to 256 parameters in a template. You can reduce the number of parameters by using objects that contain multiple properties.
Azure: Services: IoT
IoT Central: Fully managed global IoT software as a service (SaaS) solution that makes it easy to connect, monitor, and manage IoT assets at scale. Azure IoT Hub: Messaging hub that provides secure communications between and monitoring of millions of IoT devices. IoT Edge: Fully managed service that allows data analysis models to be pushed directly onto IoT devices, which allows them to react quickly to state changes without needing to consult cloud-based AI models.
Azure Logic Apps
Logic apps are similar to functions. Both enable you to trigger logic based on an event. Where functions execute code, logic apps execute workflows that are designed to automate business scenarios and are built from predefined logic blocks. Every Azure logic app workflow starts with a trigger, which fires when a specific event happens or when newly available data meets specific criteria. Many triggers include basic scheduling capabilities, so developers can specify how regularly their workloads will run. Each time the trigger fires, the Logic Apps engine creates a logic app instance that runs the actions in the workflow. These actions can also include data conversions and flow controls, such as conditional statements, switch statements, loops, and branching. You create logic app workflows by using a visual designer on the Azure portal or in Visual Studio. The workflows are persisted as a JSON file with a known workflow schema.
Azure App Service: API apps
Much like hosting a website, you can build REST-based web APIs by using your choice of language and framework. You get full Swagger support and the ability to package and publish your API in Azure Marketplace. The produced apps can be consumed from any HTTP- or HTTPS-based client.
Cloud Computing: Server-less computing
Overlapping with PaaS, serverless computing enables developers to build applications faster by eliminating the need for them to manage infrastructure. With serverless applications, the cloud service provider automatically provisions, scales, and manages the infrastructure required to run the code. Serverless architectures are highly scalable and event-driven. They use resources only when a specific function or trigger occurs. In understanding the definition of serverless computing, it's important to note that servers are still running the code. The serverless name comes from the fact that the tasks associated with infrastructure provisioning and management are invisible to the developer. This approach enables developers to increase their focus on the business logic and deliver more value to the core of the business. Serverless computing helps teams increase their productivity and bring products to market faster. It allows organizations to better optimize resources and stay focused on innovation.
Cloud Computing: Advantages
Reliability: Depending on the service-level agreement that you choose, your cloud-based applications can provide a continuous user experience with no apparent downtime even when things go wrong. Scalability: Applications in the cloud can be scaled in two ways, while taking advantage of auto-scaling: Vertically: Computing capacity can be increased by adding RAM or CPUs to a virtual machine. Horizontally: Computing capacity can be increased by adding instances of a resource, such as adding more virtual machines to your configuration. Elasticity: Cloud-based applications can be configured to always have the resources they need. Agility: Cloud-based resources can be deployed and configured quickly as your application requirements change. Geo-distribution: Applications and data can be deployed to regional datacenters around the globe, so your customers always have the best performance in their region. Disaster recovery: By taking advantage of cloud-based backup services, data replication, and geo-distribution, you can deploy your applications with the confidence that comes from knowing that your data is safe in the event that disaster should occur.
Resource Manager: Resource Manager locks
Resource Manager locks allow organizations to put a structure in place that prevents the accidental deletion of resources in Azure. - You can associate the lock with a subscription, resource group, or resource. - Locks are inherited by child resources. There are two types of resource locks. - Read-Only locks, which prevent any changes to the resource. - Delete locks, which prevent deletion. Only the Owner and User Access Administrator roles can create or delete management locks.
Azure: Account Hierarchy
Resources: Resources are instances of services that you create, like virtual machines, storage, or SQL databases. Resource groups: Resources are combined into resource groups, which act as a logical container into which Azure resources like web apps, databases, and storage accounts are deployed and managed. Subscriptions: A subscription groups together user accounts and the resources that have been created by those user accounts. For each subscription, there are limits or quotas on the amount of resources that you can create and use. Organizations can use subscriptions to manage costs and the resources that are created by users, teams, or projects. Management groups: These groups help you manage access, policy, and compliance for multiple subscriptions. All subscriptions in a management group automatically inherit the conditions applied to the management group.
Serverless Computing: Abstraction of servers
Serverless computing abstracts the servers you run on. You never explicitly reserve server instances. The platform manages that for you. Each function execution can run on a different compute instance. This execution context is transparent to the code. With serverless architecture, you deploy your code, which then runs with high availability.
Serverless Computing: Event-driven scale
Serverless computing is an excellent fit for workloads that respond to incoming events. Events include triggers by: - Timers, for example, if a function needs to run every day at 10:00 AM UTC. - HTTP, for example, API and webhook scenarios. - Queues, for example, with order processing. - And much more. Instead of writing an entire application, the developer authors a function, which contains both code and metadata about its triggers and bindings. The platform automatically schedules the function to run and scales the number of compute instances based on the rate of incoming events. Triggers define how a function is invoked. Bindings provide a declarative way to connect to services from within the code.
Serverless Computing
Serverless computing is the abstraction of servers, infrastructure, and operating systems. With serverless computing, Azure takes care of managing the server infrastructure and the allocation and deallocation of resources based on demand. Infrastructure isn't your responsibility. Scaling and performance are handled automatically. You're billed only for the exact resources you use. There's no need to even reserve capacity.
Azure Database for PostgreSQL: Hyperscale (Citus)
The Hyperscale (Citus) option horizontally scales queries across multiple machines by using sharding. Its query engine parallelizes incoming SQL queries across these servers for faster responses on large datasets. It serves applications that require greater scale and performance, generally workloads that are approaching, or already exceed, 100 GB of data. The Hyperscale (Citus) deployment option supports multi-tenant applications, real-time operational analytics, and high throughput transactional workloads. Applications built for PostgreSQL can run distributed queries on Hyperscale (Citus) with standard connection libraries and minimal changes.
Azure Database for PostgreSQL: Single Server
The Single Server deployment option delivers: - Built-in high availability with no additional cost (99.99 percent SLA). - Predictable performance and inclusive, pay-as-you-go pricing. - Vertical scale as needed, within seconds. - Monitoring and alerting to assess your server. - Enterprise-grade security and compliance. - Ability to protect sensitive data at-rest and in-motion. - Automatic backups and point-in-time-restore for up to 35 days. The Single Server deployment option offers three pricing tiers: Basic, General Purpose, and Memory Optimized. Each tier offers different resource capabilities to support your database workloads.
Azure Kubernetes Service
The task of automating, managing, and interacting with a large number of containers is known as orchestration. Azure Kubernetes Service is a complete orchestration service for containers with distributed architectures and large volumes of containers. Orchestration is the task of automating and managing a large number of containers and how they interact.
Serverless Computing: Micro-billing
Traditional computing bills for a block of time like paying a monthly or annual rate for website hosting. This method of billing is convenient but isn't always cost effective. Even if a customer's website gets only one hit a day, they still pay for a full day's worth of availability. With serverless computing, they pay only for the time their code runs. If no active function executions occur, they're not charged. For example, if the code runs once a day for two minutes, they're charged for one execution and two minutes of computing time.
Azure App Service: Mobile apps
Use the Mobile Apps feature of App Service to quickly build a back end for iOS and Android apps. With just a few clicks in the Azure portal, you can: - Store mobile app data in a cloud-based SQL database. - Authenticate customers against common social providers, such as MSA, Google, Twitter, and Facebook. - Send push notifications. - Execute custom back-end logic in C# or Node.js. On the mobile app side, there's SDK support for native iOS and Android, Xamarin, and React native apps.
Virtual machine scale sets
Virtual machine scale sets are an Azure compute resource that you can use to deploy and manage a set of identical VMs. With all VMs configured the same, virtual machine scale sets are designed to support true autoscale. No pre-provisioning of VMs is required. For this reason, it's easier to build large-scale services targeting big compute, big data, and containerized workloads. As demand goes up, more VM instances can be added. As demand goes down, VM instances can be removed. The process can be manual, automated, or a combination of both. Scale sets allow you to centrally manage, configure, and update a large number of VMs in minutes to provide highly available applications. The number of VM instances can automatically increase or decrease in response to demand or a defined schedule. With virtual machine scale sets, you can build large-scale services for areas such as compute, big data, and container workloads.
Virtual machines
Virtual machines are software emulations of physical computers. They include a virtual processor, memory, storage, and networking resources. VMs host an operating system, and you can install and run software just like a physical computer. When using a remote desktop client, you can use and control the VM as if you were sitting in front of it. With Azure Virtual Machines, you can create and use VMs in the cloud. Virtual Machines provides infrastructure as a service (IaaS) and can be used in different ways. When you need total control over an operating system and environment, VMs are an ideal choice. Just like a physical computer, you can customize all the software running on the VM. This ability is helpful when you're running custom software or custom hosting configurations.
Resource Manager: Reorganize Azure resources
When moving resources, both the source group and the target group are locked during the operation. Write and delete operations are blocked on the resource groups until the move completes. This lock means you can't add, update, or delete resources in the resource groups. Locks don't mean the resources aren't available. For example, if you move a virtual machine to a new resource group, an application can still access the virtual machine. Just because a service can be moved doesn't mean there aren't restrictions. For example, you can move a virtual network, but you must also move its dependent resources, like gateways.
Azure Functions
When you're concerned only about the code running your service, and not the underlying platform or infrastructure, using Azure Functions is ideal. Functions are commonly used when you need to perform work in response to an event (often via a REST request), timer, or message from another Azure service, and when that work can be completed quickly, within seconds or less. Functions scale automatically based on demand, so they're a solid choice when demand is variable. For example, you might receive messages from an IoT solution that's used to monitor a fleet of delivery vehicles. You'll likely have more data arriving during business hours. Using a virtual machine-based approach, you'd incur costs even when the virtual machine is idle. With functions, Azure runs your code when it's triggered and automatically deallocates resources when the function is finished. In this model, you're only charged for the CPU time used while your function runs. Functions can be either stateless or stateful. When they're stateless (the default), they behave as if they're restarted every time they respond to an event. When they're stateful (called Durable Functions), a context is passed through the function to track prior activity. Functions are a key component of serverless computing. They're also a general compute platform for running any type of code. If the needs of the developer's app change, you can deploy the project in an environment that isn't serverless. This flexibility allows you to manage scaling, run on virtual networks, and even completely isolate the functions.
Windows Virtual Desktop
Windows Virtual Desktop on Azure is a desktop and application virtualization service that runs on the cloud. It enables your users to use a cloud-hosted version of Windows from any location. Windows Virtual Desktop works across devices like Windows, Mac, iOS, Android, and Linux. It works with apps that you can use to access remote desktops and apps. You can also use most modern browsers to access Windows Virtual Desktop-hosted experiences.
Azure App Service: Types of app services
With App Service, you can host most common app service styles like: - Web apps - API apps - WebJobs - Mobile apps App Service handles most of the infrastructure decisions you deal with in hosting web-accessible apps: - Deployment and management are integrated into the platform. - Endpoints can be secured. - Sites can be scaled quickly to handle high traffic loads. - The built-in load balancing and traffic manager provide high availability.
App Service
With Azure App Service, you can quickly build, deploy, and scale enterprise-grade web, mobile, and API apps running on any platform. You can meet rigorous performance, scalability, security, and compliance requirements while using a fully managed platform to perform infrastructure maintenance. App Service is a platform as a service (PaaS) offering.
Azure App Service: WebJobs
You can use the WebJobs feature to run a program (.exe, Java, PHP, Python, or Node.js) or script (.cmd, .bat, PowerShell, or Bash) in the same context as a web app, API app, or mobile app. They can be scheduled or run by a trigger. WebJobs are often used to run background tasks as part of your application logic.
Resource Manager: Template Elements
$schema (required: Yes) - Location of the JSON schema file that describes the version of the template language. Use the URL shown in the preceding example. contentVersion (required: Yes) - Version of the template (such as 1.0.0.0). You can provide any value for this element. Use this value to document significant changes in your template. When deploying resources using the template, this value can be used to make sure that the right template is being used. parameters (required: No) - Values that are provided when deployment is executed to customize resource deployment. variables (required: No) - Values that are used as JSON fragments in the template to simplify template language expressions. functions (required: No) - User-defined functions that are available within the template. resources (required: Yes) - Resource types that are deployed or updated in a resource group. outputs (required: No) - Values that are returned after deployment.
Azure SQL Database: Features
- Azure SQL Database is a platform as a service (PaaS) database engine. - handles most of the database management functions, such as upgrading, patching, backups, and monitoring, without user involvement. - Provides 99.99 percent availability. - fully managed service that has built-in high availability, backups, and other common maintenance operations.
Virtual Machines: Usage Examples
- During testing and development. VMs provide a quick and easy way to create different OS and application configurations. Test and development personnel can then easily delete the VMs when they no longer need them. - When running applications in the cloud. The ability to run certain applications in the public cloud as opposed to creating a traditional infrastructure to run them can provide substantial economic benefits. For example, an application might need to handle fluctuations in demand. Shutting down VMs when you don't need them or quickly starting them up to meet a sudden increase in demand means you pay only for the resources you use. - When extending your datacenter to the cloud. An organization can extend the capabilities of its own on-premises network by creating a virtual network in Azure and adding VMs to that virtual network. Applications like SharePoint can then run on an Azure VM instead of running locally. This arrangement makes it easier or less expensive to deploy than in an on-premises environment. - During disaster recovery. As with running certain types of applications in the cloud and extending an on-premises network to the cloud, you can get significant cost savings by using an IaaS-based approach to disaster recovery. If a primary datacenter fails, you can create VMs running on Azure to run your critical applications and then shut them down when the primary datacenter becomes operational again.
Resource Manager: Template benefits
- Templates improve consistency. Resource Manager templates provide a common language for you and others to describe your deployments. Regardless of the tool or SDK that you use to deploy the template, the structure, format, and expressions inside the template remain the same. - Templates help express complex deployments. Templates enable you to deploy multiple resources in the correct order. For example, you wouldn't want to deploy a virtual machine prior to creating an operating system (OS) disk or network interface. Resource Manager maps out each resource and its dependent resources, and creates dependent resources first. Dependency mapping helps ensure that the deployment is carried out in the correct order. - Templates reduce manual, error-prone tasks. Manually creating and connecting resources can be time consuming, and it's easy to make mistakes. Resource Manager ensures that the deployment happens the same way every time. - Templates are code. Templates express your requirements through code. Think of a template as a type of Infrastructure as Code that can be shared, tested, and versioned similar to any other piece of software. Also, because templates are code, you can create a "paper trail" that you can follow. The template code documents the deployment. Most users maintain their templates under some kind of revision control, such as GIT. When you change the template, its revision history also documents how the template (and your deployment) has evolved over time. - Templates promote reuse. Your template can contain parameters that are filled in when the template runs. A parameter can define a username or password, a domain name, and so on. Template parameters enable you to create multiple versions of your infrastructure, such as staging and production, while still using the exact same template. - Templates are linkable. You can link Resource Manager templates together to make the templates themselves modular. You can write small templates that each define a piece of a solution, and then combine them to create a complete system. - Templates simplify orchestration. You only need to deploy the template to deploy all of your resources. Normally this would take multiple operations.
Azure: Resource group
A container that holds related resources for an Azure solution. The resource group includes resources that you want to manage as a group. You decide which resources belong in a resource group based on what makes the most sense for your organization. Logical grouping: Resource groups exist to help manage and organize your Azure resources. By placing resources of similar usage, type, or location in a resource group, you can provide order and organization to resources you create in Azure. Logical grouping is the aspect that you're most interested in here, because there's a lot of disorder among our resources. Life cycle If you delete a resource group, all resources contained within it are also deleted. Organizing resources by life cycle can be useful in nonproduction environments, where you might try an experiment and then dispose of it. Resource groups make it easy to remove a set of resources all at once. Authorization Resource groups are also a scope for applying role-based access control (RBAC) permissions. By applying RBAC permissions to a resource group, you can ease administration and limit access to allow only what's needed.