Warakorn - Fotolia
Microsoft's focus on working with developers to establish usable, intuitive methods to build and manage applications makes Azure stand out in the cloud market.
That said, the platform can sometimes seem complex -- especially to users. For example, there are various Azure interfaces and ways with which developers can interact with Microsoft cloud services, each of which has its unique benefits and limitations. To get a clear lay of the land, here's an overview of the different entry points and management options for the Microsoft Azure platform.
On the web
App development is commonly associated with command-line interfaces (CLI) and integrated development environments (IDEs). However, the reality of modern application development is everything starts with the web -- and Azure is no exception to that rule.
A major advantage of a web-based Azure interface -- such as the portal or Cloud Shell -- for app development and infrastructure management is it doesn't matter what OS or hardware resources are in use. As long as there is a stable internet connection, developers can build and manage application infrastructure from any device without restrictions.
For users, the Azure portal is their exposure to the cloud platform's management infrastructure. The portal is a GUI that acts as a customizable dashboard to manage applications, data and infrastructure. This Azure interface enables users to learn the platform's layout and design language.
As with all GUIs, there is a tradeoff when compared with a CLI: Azure portal offers a lot of functionality, but it has its limits. As users' needs grow and knowledge of the platform evolves, they'll want more control over how their infrastructure is built, scaled and managed than the portal can provide.
Azure Cloud Shell
Casual users can manage and scale resources via a GUI, such as Azure portal, but power users prefer the command-line experience. Azure Cloud Shell is a browser-based CLI and platform-agnostic shell that manages Azure resources. Offered as an entry point from within the Azure portal, the CLI spins up a temporary host on a per-session basis, but times out after 20 minutes of inactivity. The home directory persists across sessions, which enables users to pick up where they left off, as long as they saved their work.
While users can access Azure Cloud Shell through the portal, it is also accessible through a number of other entry points. This means users can work in their preferred IDE on one machine, move to another machine and then jump right back into Cloud Shell from the browser.
In your machine
While cloud provides flexibility, developers prefer to live within their own ecosystems whenever possible. To address this, Microsoft has released several Azure interfaces and management tools that developers can use directly within their own terminal, regardless of OS.
Azure PowerShell and CLI tools
Azure PowerShell provides a set of cmdlets that use the Azure Resource Manager to manage resources. What Azure Cloud Shell does for Azure infrastructure and what Azure Cloud Shell does for the browser, Azure PowerShell does for your own machines.
If you aren't a PowerShell user, Azure includes a set of platform-agnostic CLI tools that brings the power of the Azure Cloud Shell implementation to your machines. Azure CLI tools are made available directly within Azure Cloud Shell, so regardless of the terminal type -- hosted or browser-based -- it will be a consistent experience across platforms.
Both of these tools utilize the same Azure REST API to manage resources and are more of a matter of preference than feature set. A cross-platform developer will have a much more consistent experience if they use the Azure CLI tools across every OS.
Microsoft Visual Studio and Visual Studio Code
As Microsoft's only commercial IDE, Visual Studio is a top choice when it comes to integration with Azure. Although Visual Studio can work with the Azure platform directly, it also offers an emulation suite to build Azure applications directly within a local development environment -- without having to sign into Azure.
Some developers believe Azure Visual Studio is too robust. Microsoft's response to this sentiment is Visual Studio Code -- an open source code editor that emphasizes usability and speed. With its extensive plugin library, developers can add Azure services, as desired, to any Visual Studio Code implementation, with minimal overhead. While Visual Studio Code's extensions aren't nearly as full-featured as the Visual Studio Azure integration, it is a tool for developers who want editors to stand aside and let them build.
While sometimes impractical, Microsoft Azure mobile applications offer a subset of the functionality that is available within the Azure portal to monitor, diagnose and troubleshoot issues while on the go. A mobile version of Cloud Shell enables you to manage infrastructure as you would in your preferred environment -- as long as you can write code on a 4-inch touchscreen.
There are a number of third-party options, as well. Nearly every editor, from Atom to Vim, has a set of open source plugins that developers can install to add additional Azure management functionality. With a little creativity and elbow grease, developers can also build their own tools to suit their needs.