Overview : In the following article, I will try to explore the different types of Cloud computing, especially Cloud provider Azure and some of the important features packed with Azure.
What are the different types of Cloud computing?
SaaS(Software as a Service) – Provider takes care of services and consumer/customer does not need to worry about any maintenance. E.g. Yahoo email, Salesforce, or similar ERP solutions.
PaaS(Platform as a Service) – Hardware provisioning , configurations, OS maintenance, networking, virtualization etc all been taken care by provider, but the development and management of apps needs to be taken care by customer. Examples are Heroku, Google app engine platform, etc
IaaS(Infrastructure as a Service)- Harware , Data centers, networking, virtualization etc are taken care here by Vendors and consumer can maintain SaaS, PaaS in it. Examples are AWS, Azure, Oracle cloud.
How do I deploy different cloud models?
The options are following,
Public cloud/Cloud-native : here the public cloud of Azure will be used and is most economic compared to other models. This means data centers, storage, networking all done by cloud provider.
Private cloud: Certain organization insists of using their own data centers and make the cloud in their data centers. This is expensive and cloud providers support this.
Hybrid: Orginization picks the options and this is the combination of the above two on how organizations selection.
On premises development are expensive as it comes with complete responsibility starting from procuring servers, networking , virtualization etc. Another note cloud computing side , there can be combination of multiple cloud providers like AWS business application development and Azure for all Microsoft OS related app and dependencies.
What are the different terminologies on cloud computing side?
Scalability vs Elasticity:
- Scalability is the ability to scale based on demand. Example Kubernetes pods can be scaled for higer user demand and similarly server capacity can be scaled quickly.
- Elasticity is the ability to shrink and grow as per low/high demands.
Availability and Disaster recovery(DR)/Higly Durable:
- Availability is the ability to remain services available all the time.
- DR is the ability to recover after a disaster.
What is Hypervisor vs Docker Daemon?
Hypervisor is a software layer that helps to build Virtual machines on top of host machine. VM comes with guest Operating system so the memory consumption from host machine is more.
Docker daemon is software that support Docker containers to run on any host machine or even VMs. The containers are light weight as compared to VMs as it does not need a guest Operating system. Containers can be spun up easily based on Dockerfile is written and build as images.
What is Serverless compute and Functions?
Serverless compute feature is available with cloud providers and is done via managed Servers/VMs and managed containers. So the customer does not need to worry about these aspects and focus on peice of code or Functions that they are responsible for. Costing is minimal and based on computing memory.
How does the Global infrastructure (Regions, Geography) works for cloud computing ?
A Region is ‘group of Datacenters’ or Availabiltiy Zone(AZ). An AZ is one or more datacenter. A region usually conatins 3 AZ.
Azure has 58 regions (1 region = 3 AZ) spreader across 140 countries when I learned about Azure in 2020.
There are paired region Concepts to avoid outage.
Geography is a specific market containing 2 or more Regions. Example US, Canada Geography(group of regions) where companies from respective countries will choose respective Geography as Geography provides a databoundary and specific compliances.
Other Notes:
- We learned a Recommeded Region typically has 3 AZs. However there are regions who does not support AZs which are called as Alternative or other.
- Examples for Regions having AZs are East, West, Central US, West, North EU, France Central, Southeast Asia. But SouthAmerica Brazil South (described as Single AZ) but on console does not show selection for AZ is an example for no AZ.
- An AZ is a combination of Fault Domain(group of VMs share same power and network switch so part failure will not impact other groups) and Update Domain(not all Update domains will be updated same time, so there is no chance for downtime due to updates)
- Availability set makes sure with right combination/grouping of Fault and Update domain so there is no chance for downtime. Each VM in an Availability set is assigned to combination Fault Domain and Update Domain and are Organized using rack design (e.g. 2FD+2UD) to avoid downtime. So each FD/UD goes to different rack.
- VMs can be Windows/Linux(running on windows or Linux OS)
General Availabiltiy: Service is available in General and there are 3,
Azure Storage services:
- Azure Blob storage – store large amount of data.
- Azure Disk storage – SSD/HDD storage and is encrypted.
- Azure file storage – an SMB file server and shared data vloume.
- Azure queueing storage – to store messages send between apps.
- Azure Table storage – NoSQL db and no schema needed.
- Azure Databox heavy – to store terabytes or petabytes of data.
- Azure archive storage – for long term cold storage, low cost VMs used.volume.
- Azure data lake storage – e.g. is big data storage for larger amount of structured/unstructured data.
Azure database services are the following:
- Azure cosmos database – NoSQL db with 99.99% availability.
- Azure SQL database
- Azure database for MySQL, PostgreSQL, MariaDB
- SQL server on VMs
- Azure Synapse Analytics (previously named as Azure SQL Datawarehouse)
- Azure database migration services – for cloud migration of db
- Azure cache for Redis – caches used for static data to reduce data/app latency.
- Azure table storage – NoAQL database and no schema based.
Azure computing Sevices include following:
- VM based
- Container based
- Kubernetes based
- Azure service Fabric – Tier 1 enterprise containers as service and distributed systems platform.
- Azure functions – event driven and Serverless compute(code runs without specifically provisioning servers – behind the screen it is containers manages apps, depedencies and environments). Serverless functions are charged for the duration of code run.
- Azure batch – to run programs in batch mode and low cost VMs are typically used.
Azure Integration Services:
- Azure notification hub – Pub/sub send push notifications to other platforms.
- Azure API Apps – API Gateway will build, route and consume APIs in cloud
- Azure Service Bus – it is Cloud messaging as a service (MaaS)
- Azure Stream Analytics – it is Serverless real-time analytics
- Azure Logic Apps – this is for scheduling and orchestrating tasks.
- Azure API Manangement – cloud management platform for API across environments.
- Azure Queue Storage – it is a data storage for Messaging queueing and delivering purposes between applications
Azure Mobile and Developer tools
- Azure SingnalR Service – it is real time messaging services for Azure.
- Azure App Service – for deploying and scaling web apps using programming languages like Java, Python, .NET, PHP and Node.js etc
- Visual Studio Code Editor – IDE for app development.
- Xamarin – is for mobile applications development in .Net.
Azure DevOps Services :
- Azure Board – you can compare like Jira Agile Kanban board
- Azure pipeline – to support CI/CD
- Azure repo – you can compare like Git repos.
- Azure Test Plan – for manual and exploratory testing.
- AzureDevTest Labs – it is for development and test environment setup.
- Azure Artifacts – you can compare like JFrog artifactory , and is meant to store all test, development artifactories.
Azure Resource Manager(ARM):
- Infrastructure as Code (IaC) – scripted way of building VMs provisioning, DB, App , Web sever setups. ARM is leveraged via JSON templates(pre-made ARM templates)
Azure Virtual Network(vNet) and Subnet:
- vNet is the logical network boarders/sections where Azure resources are residing. This is done by using CIDR range of IPs. Lower the CIDR range higher the count of IPs.
- Further divisioning/sub setting of IPs done via Subnet.
- Public subnet is used for internet exposing web apps
- Private subnet is used for intranet internal app resources like databases.
Azure Cloud Native Networking Services:
- Azure DNS – for domain setups
- Azure vNet – already discussed in above section about Virtual Network.
- Azure load balancer – for OS level load balancing.
- Azure application gateway – for HTTP Load balancing and web applications firewall setups.
- Network Security Group – for subnet level firewall setups.
Azure Networking
- Azure Front Door –
- Azure Express Route – connects On premises to Azure cloud with speed range 50 mbps to 10 Gbps
- Azure WANN
- Azure Virtual Network
Azure IoT
- IoT Central – helps to connect IoT devices to the cloud
- IoT Hub – helps to connect IoT app and devices.
- IoT Edge – services that is built on top of IoT Hub for data processing and analysis.
Azure DNS
- Azure web hosting service from Microsoft for providing DNS name resolution
Azure Scale Set
- For Scale up and down of VMs based on traffic, memory consumption or sche dule needs.
Azure Loadbalancer
- To distribute traffic to different availabiltiy zones and make it 100% available all the time.
Azure Traffic Manager:
- It is DNS based load balancer to controll traffic to Azure global regions.
Azure BigData(unstructured/structured data):
- Azure synapse Analytics(SQL Datawarehouse)- runs sql on dbs for reporting
- HDInsight – runs analytics software Hadoop, Spark, and Kafka.
- Azure Databricks – platform to run spark analytics.
- Data lakes analytics- large amount of data storage.
AI, ML and DL:
- AI , computer tries to mimic human behavior.
- ML, computer autolearn taks and perform.
- DL, computer can have artificial nueral network and does complex work.
- Azure ML service – uses ML/AI to run programs/pipelines and automate workflow. Programming languages like R, Python are used.
- Azure ML studio/service – to manage AI/ML workloads.
- Translator – multi language text translator
- personalizer – to provide personalized user experiences.
- Anomaly detector – detects and troubleshoots issues.
- Azure bot services – serverless , intelligent bot service.
- Form Recognizer – to extract text, tables, key value pairs from documents.
- Computer vision – customize and build computer vision models out of use cases.
- Language understanding – build natural language understanding for apps, Iot Devices
- Ink recognizer – recognizes hand writing, shapes etc.
Serverless services:
Cloud provider takes care of the infrastructure and OS.
Serverless services are economical and faster to implement.
Event driven scale – serverless functions can be triggered and build complex and scalable apps.
Abstraction of servers – here servers are abstracted and code is described as functions
Micro billing – serverless functions run for shorter time and cost is based on run time only.
Blob storage – for Serverless object storage
Azure functions – helps to run small amount of code.
Logic apps – helps to build app workflow
Event grid – helps to react to events using pub/sub messaging and also trigger other serverless services such as functions
Azure CLI:
- CLI is command line interface and can be installed on windows, Mac and Linux.