Azure Compute
- Serverless
- Service Fabric Micro services
- Azure Batch
- Azure Kubernetes Service AKS
PaaS
- App Service Plan is equivalent to a server with software stack and provisioned resources
- whereas App Service is an application that uses resources
VM
- VM can scale via Availability Set, VM Scale Sets, Azure Batch
- VM Scale Set allows a group of identical, load-balanced VMs to be managed, configured as a unit
- Number of VMs in a VM Scale Set can change dynamically depending on the load
- Azure Batch enables scheduling a batch job with a pool of VMs
- Azure installs application and stage data on VMs
- runs identified tasks, re-queues work on failure
- scales down the pool as work completes
- Desired State Configuration DSC prevents drifts from the des*ired configuration
- maintains server, roles, registry, files/directories, packages, env var
- it's a powershell file attached to VM as a zip file
- Accelerated Networking allows VMs to be on a faster, dedicated network. Not supported for all instance types
- Dedicated Hosts and Dedicated Host Group allow dedicated physical servers.
- It is possible to have both Availability Zone and Fault Domain
- Can create multiple VMs, but all have to be same series as the physical server
Types
- General or CPU: B (for dev), D (suitable for prod), DS, DC, A (low powered)
- Compute optimized: F, FS series
- Memory optimized: E, ES, M, G, GS and some D or DS (good for database, redis)
- Storage optimized: High IO, data warehousing etc: LS services
- GPU: N, NC, ND
- High performance: most powerful and fastest, H Series
Availability Set
- SLA for VMs using premium disks: 99.9% single instance, 99.95% Availability Set, 99.99% for Availability Zone
- Availability Set
- fault-domains share power and cabling, essentially a rack, provide protection from unplanned outages -- usually 2 or 3 per AZ
- different fault-domains don't share hardware such as network, power, cooling etc
- update-domains provide protection when performing planned maintenance -- can be up to 20 per AS
- VHD is not TODO
- Resiliency refers to ability of system to recover from failures
- Availability refers to the time that system is functional and working
Availability Zone
- VMs are spread across different data centers within the same zone
- Not all zones have multiple data-centers yet
ScaleSet
- Multiple instances in a set
- Optional load balancing: 1) Load Balancer or 2) Application Gateway
Autoscaling
- Min and Max number of instances
- Scale-out: threshold in % CPU, and number of VM instances to increase by
- Scale-in: threshold in % CPU, and number of VM instances to increase by
Templates
- A Json file, either modify an existing one or save VM creation as template by selecting "Download Template for Automation" in final ste;
- Template has:
template.json, parameters.json and deploy*.*sh* files to deploy it
template.json
$schema : must not be changed
contentVersion: User modifiable for versioning
parameters: a dict of name and another dict for parameter properties (such as type)
variables:
resources: Use parameter values
outputs:
- Needs a parameters.json file, which contains
value for the parameters defined in template.json
- instantiation required
template.json + parameters.json
Functions
- run-time debug logging: add calls to trace writer in code
- App Insight delivers a lot more telemetry data
- kudu allows looking at raw performance data
Logic App
- Visual work-flow designer, with no code
- Allows connecting APIs with authenticating only once
Event hub
- is a messaging service
- can emulate Kafka protocol
- has a namespace that is similar to Kafka brokers, except it is a single endpoint
- supports very large amounts of data
- capacity measured by Throughput Units ~ 1MB/Sec and 1000 events/Sec ingress, egress double of ingress
IoT hub
- collects data such as telemetry from IoT decides
- allows communication back to device for sending commands
Stream Analytics
- Process streaming data and provide analytics
- Input Types: IoT Hub, Event Hub, Blob Storage
- Output Types: Event Hub, SQL Server etc
- Processing logic is a SQL like query:
SELECT * INTO <output> FROM <input>
- capacity measure in Streaming Units ~ 1MB/sec