AAC : Technology Choices - amitbhilagude/userfullinks GitHub Wiki
- Technology Choices
-
Choose Compute Technology(Compute stands for Hosting models for applications)
- Comparision diagram to choose between all Azure Services https://docs.microsoft.com/en-us/azure/architecture/guide/technology-choices/compute-decision-tree
- Microservices Choice
- .Net based application with more integration or with or without container choose Service Fabric
- Container Application then AKS
- Low code with serverless then choose FaaS.
- Web Application Choice
- Traditional Web-Based have most of the logic at the server-side.
- SPA has some logic at the Browser level and Run back end API. Front-end technology frameworks like Angular, React, Vue, and Microsoft Framework like Blazor.
- Blazor App allows you to write C# code for UI without any knowledge of front-end technologies
- Multi-party computing
- Especially used for Blockchain use cases when they are many organizations involved. (Need to explore more)
-
Choose Container Options
- Container Options
- Azure App Service: Good for Web applications and Web APIs in a container or native code
- Azure Container Instances: Good for scheduled operation with pay as go options
- AKS and Service fabric: Microservices architecture
- Spring boot container: Good for Sprint Boot(Java-based Framework) for Microservices
- Kubernetes at Edge options
- Baremetal Kubernetes: Setup Kubernetes on their own infrastructure
- Kubernetes on Azure Stack Edge: Azure stack edge devices support the computing, networks on edge location.
- AKS on HCI(in Preview): Support of AKS Azure Stack HCI. Azure Stack HCI is a new hyper-converged infrastructure (HCI) operating system delivered as an Azure service
- Container Options
-
Choose Identity Services
- Active Directory Services
- Active Directory Domain Services (AD DS): On-Prem AD to support Account login, Group policies, and Computer management E.g. OS settings disables
- Azure Active Directory: Support of Cloud and Mobile application. Sync with on-prem AD. Support of Open-Id and Oauth auth.
- Azure Active Directory Domain Services (Azure AD DS): Full features of Azure AD and support of the cloud-based applications. It also supports the NTLM\Kerbores authentication.
- Hybrid Identity Authentication Methods
- Azure AD password hash synchronization: Hashed password synced to cloud and authentication happens in cloud-only.
- Azure AD Passed through authentication: Request route to On-prem AD for authentication where there auth agent running on on-prem to validate it.
- Federated Authentication system: External system which interacts with on-Prem for authentication. Azure AD route to the Federated auth system.
- Active Directory Services
-
Choose Storage Options
- Disks required for VMs - Azure Managed Disk
- Types of Disks and ordered with Max throughput and I\O operations to low: Ultra, Premium SSD(solid-state drives), Standard SSD, Standard HDD(hard disk drives)
- Store Images, Documents, and Other media files - Blob Storage
- Store VM Logs, Application Logs, Azure Monitor Logs - Blob Storage. Then logs analytics or Azure Monitor can query these logs.
- Backups of Databases like SQL - Blob Storage
- Analytics Data - Azure Data Lake Storage Gen V2
- Replacement of on-Prem file share with support of SMTP or Server Message Block(SMB) or Https Protocol or Network File System(NFS)- Azure Files(Gives similar functionalities like Files explorer). There is an additional option called Azure Net App Files which is used for SAP stores with a high workload.- > AWS File system
- Hybrid Cloud Storage for high-performance and accessible in on-Prem: Avere vFXT for Azure
- Syncing large data from the on-prem cloud with archiving mechanism - Azure Data Box Gateway along with Azure Stack edge. - AWS Snowball\Snowmobile
- Syncing of On-Prem files to Azure Files - Azure File Sync -> AWS Data sync
- Disks required for VMs - Azure Managed Disk
-
Choose Data Store
- Relational Database and normalized data -> RDs in AWS
- Azure SQL DB
- Azure Database for MySQL
- Azure Database for PostgreSQL
- Azure Database for MariaDB
- Key-Value Store -> Dynamo in AWS
- Azure Cosmos DB Table API
- Azure Cache for Redis
- Azure Table Storage
- Document Store( Document is collection of fields like JSON) -> Daynamo in AWS
- Azure Cosmos DB Table API
- Graph Database
- Azure Cosmos DB Gremlin API
- Azure SQL DB
- Data Analytics
- Data Lake Storage Gen V2
- Azure Synapse SQL -> Redshift in AWS
- Column-Family database (Denormilised data)
- Azure Cosmos DB Cassandra API
- HBase in HDInsight
- Search Engine Database
- Azure Cognitive Search - Elastic Search
- Time Series Database (Collect data real-time)
- Azure Time Series Insights
- Azure Data Explorer
- Database scenarios:
- Data Transfer to and From Azure Options
- Physical Transfer
- Azure Import/export Service: to import\Export data to Physical Hard Disk and ship Physical Hard disk to Azure Datacenter.
- Azure Data box: Microsoft provided device so no additional Hard disk is required.
- Command-line tools
- Azure CLI: Upload into Azure Storage
- Az Copy: Windows or Linux tool to copy over Azure Storage from machine
- Powershell
- Adl copy: Blob to Data Lake
- Polybase: Copy to relation DB like SQL Server
- Physical Transfer
- Relational Database and normalized data -> RDs in AWS
-
Choose Analytical Option
- Analytical store and services options
- Azure Synapse Analytics: is upgraded version SQL DW + ML +Power BI that integrates with ADLS + Data Bricks.
- Azure Analysis Service: this is an upgraded version of the SQL Server Analysis Service on the cloud.
- Apache Spark in Azure Synapse Analytics: Support to Store spark data
- Azure Data Bricks : AWS Data bricks
- Azure Data Explorer: Used for real-time analytics
- Azure SQL DB or other offerings managed instance or in VM
- Apache HBase in Azure HDInsight: Support of Apache HBase
- Interactive Query In Azure HDInsight: Apache query in HD insight
- Cosmos DB
- Reporting Options
- Power BI
- Jupyter Notebooks
- Zeppelin Notebooks
- Microsoft Azure Notebooks(Online Jupyter Notebook)
- Batch Processing Options
- All mentioned in point 1
- Stream Processing
- Azure Stream Analytics
- HDInsight with Spark Streaming
- Apache Spark in Azure Databricks
- HDInsight with Storm
- Azure Function
- Azure App Service WebJobs
- Apache Kafka streams API
- Analytical store and services options
-
Choose AI/ML Technologies
-
Choose Networking Services
- Networking options
- PaaS-based service doesn't need virtual networking. Mostly we can use its advanced features like IP restriction. However, there could be below scenarios where you need to integrate virtual networking but PaaS most don't deployed in Virtual network
- PaaS requires reading a backend database that has networking and firewall enabled and access it through service endpoint, you may integrate it with vnet. E.g. App service will have outbound integration with vnet which has service endpoint enabled for DB.
- PasS have integration with on-Premises which is going to used the express route. Express route always deployed in vnet.
- Paas have integration with IaaS(VM) which is deployed in vnet.
- Scenarios
- Setup networking infrastructure to connect VPN and VMs - Virtual Network
- Managed inbound-Out bound connections and request to the Application - Azure Load Balancer
- Increase application security with WAF - Azure Front door and Application Gateway
- Securely access the internet within vnet and VPN - Azure VPN Gateway
- Custom DNS mapping - Azure DNS
- Deliver static content close to the region - CDN
- Protect Azure Application using DDoS attack - Azure DDoS Protection
- Distribute traffic in Global Region - Azure Front Door and Azure Traffic Manager
- Distribute traffic in Global Region with Microservices - Azure Front Door
- Private connectivity from Azure to on-prem - Express route
- Separate firewall Service - Azure Firewall
- Connectivity between different business offices and locations: Azure Virtual WAN
- HTTPS traffic with SSL Termination - Application Gateway
- HTTPS traffic with Geo distributed - Azure Front Door
- Non-Https traffic - Azure Standard Load balancer
- Non-Https traffic with geo-distributed - Traffic Manager
- Networking Architecture scenarios:
- Only PaaS services - Networking is not required
- IaaS services without on-prem connectivity - Cloud-native
- Cloud services with very less on-prem connectivity and considered azure traffic is untrusted - Cloud DMZ
- Cloud services with on-prem connectivity - Hybrid
- Cloud services with on-prem connectivity with complex networking - Hub and Spoke
- Connectivity between different business offices and locations: Azure Virtual WAN
- PaaS-based service doesn't need virtual networking. Mostly we can use its advanced features like IP restriction. However, there could be below scenarios where you need to integrate virtual networking but PaaS most don't deployed in Virtual network
- Vnet peering vs VPN Gateway
- Vnet peering: Virtual network peering connects two Azure virtual networks. Traffic between virtual machines in the peered virtual networks is routed through the Microsoft backbone infrastructure, through private IP addresses only.No public internet is involved. You can also peer virtual networks across Azure regions (global peering).
- VPN Gateway: Used to send traffic between an Azure virtual network and an on-premises location over the public internet. you can also use a VPN gateway to send traffic between Azure virtual networks without peering. Each virtual network can have at most one VPN gateway.
- Networking options
-
Choose Messaging Service
- Service Bus: Messaging -> SNS or SQL in aws
- Event Grid: Reactive messaging for some action happens -> Event bridge in AWS
- Event Hub: Big Data events streaming can handle massive events -> Event Kinesis
-
Choose IoT Solutions
-
Choose Mobile Development Framework
- Native Platform development
- App built per OS like windows, ios and android
- Better performance
- Respective OS SDKs are used
- Cross-Platform development
- App built to support multiple OS
- Slightly lower Performance
- Programming options: Xamarin, Mavi, React Native, Unity
- Hybrid Platform Development
- Build an app to support mobile and web
- Programming options: Cordova
- Native Platform development
-