Azure OnBoarding - Jump Start to Optimize solution on Azure
Recently, I have come across ISVs having phenomenally exciting products and they would like to optimize their solution for cloud. However, just like any other new technology, for any novice, cloud is an ocean which is having no single starting point and one can be lost easily. So to curb this learning curve, I have consolidated the azure documentation references.
The intent of this article is to provide single starting point to get you quickly started on Azure and lead through optimizing the solution for Cloud. To Start with, I would like to highlight the major categories of cloud services:
- IaaS (Infrastructure-as-a-Service): Typically, virtual machine falls in this category in which you take care of everything starting from operating system. In this category, cloud provider is only responsible for Hardware, power & virtualization. It is best suited for the simplest form of migration to cloud and we termed it as Lift-&-Shift.
- PaaS (Platform-as-a-Service): Most optimized services in the cloud in which the platform e.g. IIS, Tomcat, SQL Server etc. will be responsibility of the cloud provider. Each category of PaaS Service you select will have pre-defined performance and advanced monitoring tools will be bundled with the service. This is step further from Lift-&-Shift and provide optimization onto cloud.
- SaaS (Software-as-a-Service): This is a prepackaged service where the application’s responsibility will be of the cloud provider e.g. Azure Active Directory etc.
Generally, a cloud optimized application uses two or more above mentioned categories of the cloud services. To start, signup with the free trial which will provide you $200 worth of credit for your POC, refer https://azure.microsoft.com/en-us/free/
Lift-&-Shift:
Create Virtual Machine: Once the account is setup then setup virtual machine.
For Windows & SQL Server workload:
Step-1: Configure virtual network, refer to https://aka.ms/createvnet
Step-2: Configure Virtual Machine, refer https://aka.ms/createvmwindows, select Virtual Network & Resource Group, created in above step. (Select windows for application VM & select SQL Server for database VM)
Step-3 (Optional): This step is recommended for disk intensive workload e.g. database etc. Attach premium disk to virtual machine, refer /en-us/azure/virtual-machines/virtual-machines-windows-attach-disk-portal
Step-4: To manage virtual machine's availability, refer https://azure.microsoft.com/en-us/documentation/articles/virtual-machines-manage-availability/
For Linux workload:
Step-1: Configure virtual network, refer https://aka.ms/createvnet
Step-2: Configure Linux Virtual Machine, refer https://aka.ms/createvmlinux. Please make sure you select Linux flavor you need. Choose virtual network & Resource group created in step-1.
Step-3 (Optional): This step is recommended for disk intensive workload e.g. database etc. Attach premium disk to virtual machine, refer /en-us/azure/virtual-machines/linux/add-disk
Step-4: To manage virtual machine's availability, refer https://azure.microsoft.com/en-us/documentation/articles/virtual-machines-manage-availability/
Secure your deployment using Azure VPN Gateway: Because you have deployed virtual machine onto VPN, hence you need not to expose any sensitive ports (e.g. RDP, SSH, SQL ports etc.) to the internet. There are two types of VPN you can configure, site-to-site or point-to-site. Refer, /en-us/azure/vpn-gateway/vpn-gateway-about-vpngateways for overview of virtual Network Gateway
For Configuring Site-to-Site VPN:
Step-1: Configure site to site VPN, refer https://docs.microsoft.com/en-us/azure/vpn-gateway/vpn-gateway-site-to-site-create
For Configuring Point-to-Site VPN:
Step-1: Configure point to site VPN, refer /en-us/azure/vpn-gateway/vpn-gateway-howto-point-to-site-classic-azure-portal
Balance the load with multiple application servers: Once you configure multiple servers of the same workload then you can balance the load using load balancer, there are three kinds of load balancer SKU exists in Azure: Azure Load Balancer, Azure Traffic Manager & Azure application gateway, refer /en-us/azure/application-gateway/application-gateway-introduction#load-balancer-differences, for comparison and selecting the right one.
Configure Azure Load Balancer: Refer /en-us/azure/load-balancer/load-balancer-overview for overview
Step-1: Configure basic load balancer, /en-us/azure/application-gateway/application-gateway-create-gateway-portal
Configure advanced Load Balancer (Application Gateway): For overview, refer /en-us/azure/application-gateway/application-gateway-introduction
Step-1: Configure Azure Application Gateway, refer /en-us/azure/application-gateway/application-gateway-create-gateway-portal
Step-2 (Optional): Offload SSL on Application Gateway, refer /en-us/azure/application-gateway/application-gateway-ssl-portal
Step-3 (Optional): Configure Web Application Firewall to protect your application with most common web attacks e.g. Cross Site Scripting, SQL Injection etc.
Configure Traffic Manager: For overview, refer /en-us/azure/traffic-manager/traffic-manager-overview
Step-1: Configure Azure Traffic Manager, refer /en-us/azure/traffic-manager/traffic-manager-create-profile
Step-2: Configure End Points, refer https://docs.microsoft.com/en-us/azure/traffic-manager/traffic-manager-create-profile
Optimize application with PaaS
- Azure WebApp for hosting Web Application:
- Redis Cache for session offloading or Cache, refer here
- SQL Azure Database:
- Azure Search:
- Azure Active Directory:
- Add training/media content in your application, refer here
Advanced Services:
DocumentDB: A NoSQL database with Guaranteed Read & Write performance.
- Geo-Replication on set of collection or instance. The answer is the instance. Here is the architecture of geo-distribution. It guarantees latency, consistency, throughput & availability, also we have >10 fault domains which ensures guarantees for prevention on “data loss�.
- Automated Backup & restore strategy, refer https://docs.microsoft.com/en-us/azure/documentdb/documentdb-online-backup-and-restore
- To do versioning of documents you can use track changes with change feed, refer here.
- Refer Request Unit calculator for sizing, here & also consider these performance levels against the pricing tiers, https://docs.microsoft.com/en-us/azure/documentdb/documentdb-performance-levels (this article will also help estimating throughput needs with an example estimation)
- Migrating from MongoDB to DocumentDB without changing any code. It is called MongoDB protocol support Refer here
- There are two ways to migrate the documents:
- Security & Permission structure in DocumentDB, refer here
- DocumentDB Firewall support, refer here
- Multi-region failover, refer here
- Social Application using DocumentDB, refer here
Azure Machine Learning: https://azure.microsoft.com/en-us/documentation/articles/machine-learning-create-experiment/
- Azure ML (Help in Algorithms): https://msdn.microsoft.com/library/azure/dn905974.aspx?f=255&MSPPError=-2147217396
- Azure ML Modules: https://msdn.microsoft.com/en-us/library/azure/dn905870.aspx
- R Language Modules: https://msdn.microsoft.com/en-us/library/azure/dn905920.aspx
- Python Modules: https://msdn.microsoft.com/en-us/library/azure/dn927167.aspx
- Retrain Models: https://azure.microsoft.com/en-us/documentation/articles/machine-learning-retrain-models-programmatically/
- Analyze Customer Churn example algorithm: https://azure.microsoft.com/en-us/documentation/articles/machine-learning-azure-ml-customer-churn-scenario/
- Ready to use application examples: https://datamarket.azure.com/browse?query=machine+learning
- Market place for ML: https://azure.microsoft.com/en-us/documentation/articles/machine-learning-example-apps-marketplace/
- Machine Learning Studio: https://studio.azureml.net/
Azure HD Insight (Hadoop Cluster): https://azure.microsoft.com/en-us/documentation/articles/hdinsight-hadoop-linux-tutorial-get-started/
- Apache Storm: https://azure.microsoft.com/en-us/services/hdinsight/apache-storm/
- Apache spark: https://azure.microsoft.com/en-us/services/hdinsight/apache-spark/
- R Server: https://azure.microsoft.com/en-us/services/hdinsight/r-server/
Azure SQL Datawarehouse as a service: https://azure.microsoft.com/en-us/services/sql-data-warehouse/
- Migrate with utility as simple as four clicks: https://azure.microsoft.com/en-us/documentation/articles/sql-data-warehouse-get-started-migration-utility/
- Scale as much as you want: https://azure.microsoft.com/en-us/documentation/articles/sql-data-warehouse-performance-scale/
- Pause it whenever not required to save costs: https://azure.microsoft.com/en-us/documentation/articles/sql-data-warehouse-overview-workload/
Stream Analytics: Analyze data while it is in-flight
- Overview of stream analytics, refer https://docs.microsoft.com/en-us/azure/Stream-Analytics/stream-analytics-introduction
- Sample of IoT solution & Stream Analytics, refer https://docs.microsoft.com/en-us/azure/Stream-Analytics/stream-analytics-build-an-iot-solution-using-stream-analytics
- Configure input from IotHub, refer https://docs.microsoft.com/en-us/azure/Stream-Analytics/stream-analytics-define-inputs#create-an-iot-hub-data-stream-input
- Configure output to DocumentDB, refer https://docs.microsoft.com/en-us/azure/Stream-Analytics/stream-analytics-define-outputs#documentdb
Azure Data Factory: To copy data from on-premise to Cloud:
- Overview, refer https://docs.microsoft.com/en-us/azure/data-factory/data-factory-data-movement-activities
- Security data movement to Azure, refer https://docs.microsoft.com/en-us/azure/data-factory/data-factory-data-management-gateway
- Step by Step to on-premise & Azure, refer https://docs.microsoft.com/en-us/azure/data-factory/data-factory-move-data-between-onprem-and-cloud
- Using Stored Proc, refer https://docs.microsoft.com/en-us/azure/data-factory/data-factory-invoke-stored-procedure-from-copy-activity
- Transformation of data, refer https://docs.microsoft.com/en-us/azure/data-factory/data-factory-data-transformation-activities
- Pricing of data factory, refer https://azure.microsoft.com/en-us/pricing/details/data-factory/
Analyzing data using Azure Data Lake Analytics: To perform aggregation of data:
Completing analytics story through PowerBI Dashboard: https://powerbi.microsoft.com/
- Refer here for overview.
- Refer here to get started
- Refer here to connect PowerBI with analysis services.
To calculate the Bill of Material (BOM), please refer here for Azure pricing calculator.
Please note that this just to get you started and for full information please navigate here then refer to individual service's documentation.
Happy optimizing!