Azure: What to use when, Part 1
We live in a privileged era where we have more solutions than problems. Think about it. We used to order coffee in this manner:
“One coffee please.”
“Coming up Sir. Help yourself to milk and sugar.”
However, in modern times we have evolved into coffee connoisseurs. It's now entirely possible to order coffee like this:
“One double Ristretto Venti half-soy non-fat decaf organic chocolate brownie iced vanilla double-shot gingerbread Frappuccino extra hot with foam whipped cream upside down double blended, one sweet’n low and one Nutrasweet, and ice please.”
Microsoft Azure is no different. They offer so many solutions that any business owner would struggle to match them up with their real-world problems. Feeling overwhelmed?
The trick is to know what to use when.
So, without delay, let me introduce you to the most popular Azure services.
Use Virtual Machines to Lift and Shift
Azure Virtual Machines (VMs) are nearly identical to conventional bare-metal servers. The service offers full control over your VMs and allows you to install and run your own software.
Azure Virtual Machines are ideal for lift and shift scenarios for established businesses with the need to move IT infrastructure off-site. That accounting PC under your desk, that build server next to the filing cabinet and that legacy installation that nobody wants to touch and that keeps you awake at night are prime candidates for lifting and shifting to Azure. Simply use the disk2vhd utility to virtualise them and mount them in the cloud.
Note that you are responsible for your own updates and backups when using Azure Virtual Machines.
Use Cloud Services to host your application
Your business may not need to virtualise specific machines, but instead, you may need general purpose virtual machines. Azure Cloud Services are general purpose preconfigured VMs maintained and updated by Microsoft. Many SDKs are available, including .NET, Java, Node.js, PHP, Python and Ruby.
Companies who write their own software can use Azure Cloud Services if they don’t have in-house IT support and they need to deploy their applications to preconfigured VMs.
Licence costs, updates, backups are included, making Cloud Services more affordable and hassle-free than Virtual Machines.
Use App Services to host your code
When I see IT infrastructure expenditure on a start-up company’s business plan, I see red lights.
Most start-ups are born in the cloud so that they can focus on their core business and not on managing IT infrastructure.
That is why Azure App Services is such a good fit for start-ups. It’s a complete Platform as a Service (PaaS) solution for hosting your company’s code. There are no VMs to manage, and there’s nothing to install. Most deployments can be done quickly from Visual Studio, GitHub or VSTS. Your applications can be scaled easily, making them the most affordable option for hosting applications in the cloud.
What about my data?
To minimise network latency and security risks, it goes without saying that your migration plan should include moving your databases to Azure. Let’s look at your options.
Azure SQL Database is a relational database for high availability scenarios. In fact, it is a scaled down version of SQL Server in the cloud, and most SQL Server databases migrate to Azure without any customisations.
Use Azure SQL if you have existing Microsoft SQL Server databases that you’d like to migrate to Azure. After the migration, a simple change to your application’s connection string is all that’s needed. You can also continue to use your favourite Microsoft tools SQL Server Management Studio and Visual Studio to manage and explore your data.
Similarly, Azure Database for MySQL and Azure Database for PostgreSQL are ideal for migrating on premise MySQL and PostgreSQL databases to the cloud.
Enterprises with ETL requirements may opt for Azure SQL Data Warehouse for prepared, structured data reporting over large volumes of data.
Blob Storage is worth considering when storing unstructured data, such as files and other binary content, while Table Storage offers NoSQL access to key-value pairs of semi-structured data. Use Blob Storage or Table Storage when the business requires fast and cost-effective access to larger objects.
Your global company may need to replicate its document data for high availability to a broader international audience. In such cases, use CosmosDB, a high-speed document database for storing key-value data, columnar data and document data. It supports multiple APIs: SQL API, MongoDB API, Apache Cassandra API, and Table API, making it ideal if your developers are already familiar with these APIs.
Note that you need to estimate your CosmosDB requirements upfront, as Microsoft needs to reserve capacity ahead of time.
Software development is expensive. Sometimes it’s necessary to experiment with a business idea before fully committing to the roadmap. Many business processes can be captured in Azure without much code. These can deliver quick gains for the business at low cost, as the serverless components are billed on a pay as you go basis.
“Serverless” means that you don’t have to set up a server to run code.
Azure Logic Apps are ideal for designing Windows Workflows in the cloud. The design process is visual and codeless, enabling non-technical power users to capture their business processes in software. Use Logic Apps if your business needs to create a digital workflow while connecting to other cloud services like Office 365, SalesForce, Dropbox, Google, Twitter and many more.
On the other hand, Azure Functions are ideal for deploying your business logic to the cloud in the form of code. It has an HTTP based API and can be written in many computer languages. Use Azure Functions if your business needs to access a centralised set of business rules via HTTP.
Do you remember how businesses used to submit their mainframe jobs via punch cards? Use Azure Batch if your business needs to run batch jobs that are too large for a single computer. Examples include month end billing, payroll processing, rendering animated films, and advanced risk calculations.
Jobs can scale out and run in parallel to decrease the duration.
How will I start the jobs? Azure Scheduler is a reliable job scheduler in the cloud. Just define the job intervals, and Azure Scheduler will fire any HTTP endpoint, whether cloud-based or not.
Click here to learn more about how DVT can assist you with your Cloud strategy.
Now for that coffee!