Skip to main content

What every Azure Developer ought to Know?

Microsoft Azure has been widely adopted especially since its hybrid cloud features. There are 100s of services available which kind of make developers and even architects quite confusing which one to choose. I ‘ll try to be concise about them and compare them in terms of features (not in terms of pricing) so you can focus only those which matters to your project needs.

There are many services which enable you to run your applications in Azure. I ‘ll divide them into three categories;

Infrastructure-as-a-service (IaaS)
  • VM
  • Container Service
  • Container Instance
  • Web App for Container
  • Batch
  • Service Fabric
Platform-as-a-service (PaaS)
  • Cloud Services
  • Mobile App
  • Web App
Logic-as-a-service (LaaS)
  1. Function App
  2. Logic App

Few notable bits about aforementioned services:

Virtual Machines (VM)
  • Start and stop in minutes
  • Many images (Win/Linux) to choose from, you can import your own image or even bring your own licensed version
  • Many sizes to choose from based on CPU/GPU, Memory, Network Bandwidth, Storage
  • SLA 99.95% (provided you are running multiple instances)
Azure Container Service
  1. Allow multiple containers
  2. Unlike VM, containers start/stop in seconds
  3. Comes with containers orchestrator (Kubernetes, Docker Swarm, etc)
  4. Run Linux and Windows-based containers
  5. Use images from Docker Hub or Azure container Registry
Azure Container Instance
  1. Run single container
  2. Start/stop in seconds
  3. No orchestrator
  4. Run Linux and Windows-based containers
  5. Use images from Docker Hub or Azure container Registry
Azure Web App Container
  1. Allow container on App Service
  2. No orchestrator needed
  3. Only Linux based container
  4. App service features
  • Easy continuous deployments
  • Deployment slots
  • Auto Scaling
Azure Batch
  1. Run jobs across multiple VM or Containers (if needed)
  2. Use for intensive jobs
  3. Orchestrator managing jobs
  4. Run jobs on Windows/Linux
Azure Service Fabric
  • Allow orchestrator to run web app containers
  • Allow executable
  • Allow stateful/stateless services
  • Allow on-premise deployment
  • Allow App service features
Azure Cloud Services
  1. Run your app in VM as a web or worker role
  2. You can control VM via RDP access if you want (but not necessary)
  3. Provides scaling
  4. An app could be web-based or even background job
Azure App Services (Web App)
  • Runs as a web server (Apache, IIS, Tomcat, etc)
  • Allow a range of different fx based applications (.net, python, nodejs)
  • App service features (CD, Deployment slots, custom Domain, autoscaling, auth, web jobs)
  • Allow on-premise resource access
  • SLA 99.95%
Azure Web Services (Web Job)
  1. Run inside Web App
  2. Interval-based or external trigger based like Message on Q
  • Run inside Web App
  • Interval-based or external trigger based like Message on Q
Azure Mobile App
  • Runs your mobile app as background service
  • Allow any mobile SDK (ios, android, etc)
  • Unique features
  • Offline sync
  • Push notifications
Function Apps
  1. Deploy and execute only code
  2. Can be triggered based on interval or event (message on Q)
  3. Have Binding
  4. Auto Scale
  5. Pricing based on consumption only
  6. Allow a range of technologies (.net, nodejs)
Logic Apps
  1. Execute pipeline of tasks
  2. Biztalk services replacement
  3. Can be triggered
  4. Can connect external connectors like office365, Twitter, Custom API
  5. Auto Scale

Following tables should make your life easier to decide:

Comparing VM/Container based services

Comparing API/Background Task-based services

Where to run your App

Azure Security Services

It’s super important to assure your application’s security. Azure provides security services that make your life easy in securing your applications. Different services provide different security-related features, Authentication, Vault, Auto encryption database, etc.

I ‘ll briefly describe them below, in terms of what you should choose and when:

Azure Active Directory
  • Identity Provider-as-a-service manage authentication information
  • Store Identities — like user information email, username, etc
  • Authentication & Authorization (login, password reset, sign up pages)
  • Integrate with on-premise IDPs
  • Protect applications on-premise and on cloud
  • Multi-factor authentication
  • Advanced threat detection which detects malicious behavior like if you are logged in from one region and second request comes from totally different geo-location, it will ask for 2-factor authentication
Azure Key Vault
  • Store and encrypt keys (certificates)
  • Store secrets (passwords, connection strings, hash)
  • Developer Read/Write via API/SDK doesn’t have to store sensitive data into the source code
  • Auto logging regarding secret data operations
Azure App service certificates
  • Provision TLS certificates
  • Buy certificates from Azure directly
  • Simplifies domain verification
  • Auto-renewal
  • Store certificates in Azure key vault
  • Use certificates on App services, Azure app, on-premise app
Data Store Encryption
  • Encrypt data at rest
  • Store data in encrypted format automatically
  • Encrypt and Decrypts automatically
  • No noticeable performance overhead

Comparison

Azure Storage Services

Data storages are classifieds into multiple categories, First I ‘ll divide them in two major categories e.g, OLAP and OLTP

OLTP — Online Transactional Processing
  1. Relational
  1. Azure SQL DB
  2. Azure MySQL
  3. Azure PostgreSQL
  4. Azure Maria DB
Non Relational — Unstructured/Document data (NoSql)
  1. Azure Cosmos DB
Azure Storage
  1. File
  2. BLOB
  3. Table
  4. Queue
  5. Disk
OLAP — Online Analytical Processing
  1. Azure SQL Data Warehouse
  2. Azure Data Lake Store

Following are some bits about the aforementioned Azure storage options:

Azure SQL Database
  1. It’s just MS SQL Server in the cloud
  2. Managed and Scalable
  3. 99.99% Availability and redundant (backups every hour to every 5 minutes)
  4. Accessible via SSMS, Visual Studio, Azure Portal
  5. Geo-Replication (single writable node other read only)
  6. Automatic Tuning
  7. Automatic Thread Detection
  8. Dynamic Data masking for sensitive data like Credit Card data
Azure MySQL
  1. MySQL in the cloud
  2. Managed and Scalable
  3. 99.99% Availability and redundant (backups every hour to every 5 minutes)
  4. Accessible via MySQL workbench and SQLyog
Azure PostgreSQL
  1. PostgreSQL in the cloud
  2. Managed and Scalable
  3. 99.99% Availability and redundant (backups every hour to every 5 minutes)
  4. Accessible via pg-admin
Azure Maria Db
  1. MariaDB in the cloud
  2. Managed and Scalable
  3. 99.99% Availability and redundant (backups every hour to every 5 minutes)
  4. Accessible via MySQL workbench and SQLyog
  5. Support many storage engines
  • Apache Cassandra
  • CSV
  • Column Store
Azure CosmoDB
  1. Distributed massive scale DB
  2. No Schema
  3. Auto Indexing
  4. GeoReplication (single writable node)
  5. SLA 99.99%
  6. Low latency from Azure cloud < 10ms for reading and <15ms for write
  7. Use it with several APIs
  • Document Db API
  • MongoDB API
  • Table API
  • Graph API
  • Apache Cassandra API
Azure Storage
  1. Massive scale
  2. Multi-purpose storage
  • File Storage (can mount as a File share)
  • BLOB Storage (allow multiple blobs like Block/Page and Append)
  • Q Storage
  • Table Storage (semi-structured data)
  • Disk Storage (high performance, can port Apps, perfect for VMs)
  1. Shared access signature
  2. Firewall and VPN
  3. Data encryption at rest (just enable it)
  4. Storage replication
  • Locally
  • Geo-Replica
  • Read-access Geo-Replica
Azure SQL Data Warehouse
  • Structured and Relational
  • Optimized for reporting and BI
  • A large amount of data (like 1PB)
  • Data encryption at rest
Azure Data Lake Store
  • Structured and Non Structured
  • Allow data in native format
  • No schema needed
  • Optimized for reporting
  • No size limit
  • Data encryption at rest
Azure Performance Services

The good thing about this section is, there are very few but very effective services to discuss

1. Azure CDN (Content Delivery Network)
  • Suitable for Static content like js/CSS/HTML/media files
  • Geographically data is accessible provides low latency
2. Azure Redis Cache
  1. Open source Redis Cache
  2. Store KeyValue Pair (hashes and lists)
  3. Geo-Replication
  4. Data Persistence
  5. Much faster than any database as data coming from memory
Azure Traffic Manager
  1. Routing service
  2. Help to Load balancing (Priority-Weight)
  3. Periodically ping for Health checks
  4. Not bound to Geolocation
  5. Geo-Performance

Comparison

Azure Message Queues Services

Azure Storage Queue
  1. Simple and Basic
  2. Allow only one receiver
  3. Allow only text body
  4. Size limit 64KB
  5. Transaction Logs
Azure Service Bus Queue
  1. FIFO ordering
  2. One receiver for each message
  3. Message consists on Key/Value pair (for additional information)
  4. Body can be binary, json, text)
  5. Message size limit upto 1MB
  6. Duplicate detection
  7. Dead letter Q… for corrupted or failed message, message automatically move to this Q so you can later debug them
Azure Bus Service Topic
  1. Message can be processed by multiple receivers
  2. Message filter (for different type of messages different receiver can act)
  3. Message consists on Key/Value pair (for additional information)
  4. Body can be binary, json, text)
  5. Message size limit upto 1MB
  6. Duplicate detection
  7. Dead letter Q… for corrupted or failed message, message automatically move to this Q so you can later debug them
Azure Event Grid
  1. Use Subscriber to and push events
  2. Can subscribe to many events
  3. Push to any destination (no pulling, retry if failed)
  4. Pay as you go
Azure Event Hub
  1. Use to ingest massive amount of data
  2. Allow multiple sender and receiver
  3. Message consists on Key/Value pair (for additional information)
  4. Body can be binary, json, text)
  5. Message size limit upto 256KB
  6. Replay events
  7. Retention between 1–7 days
  8. Event data archive (in BLOB storage)
Azure IOT hub
  1. Use to ingest massive amount of data
  2. Allow multiple sender and receiver
  3. Message consists on Key/Value pair (for additional information)
  4. Body can be binary, json, text)
  5. Message size limit upto 256KB
  6. Manage Security devices
  7. Bidirectional (device to cloud and vice versa)
Azure Notification Hubs
  1. Use it to push to many subscribers
  2. Platform Notification Services (PNS) — Androind, iOS, Kindle etc
  3. Easily integrate with Azure mobile apps
  4. Workflow
  5. Register device PNS handle
  6. Register PNS handle with Hub
  7. Send notification to hub and hub forward to subscribers
Comparison

Azure Monitoring Services Comparison

TLDR;

There are an excess of 100 Azure services which I doubt can be aced by anybody however this article should give pretty good idea to developers and development architects which one they should concentrate based on their application needs.

We use cookies to give you the best online experience. Please let us know if you agree to all of these cookies.

Back to top