Thought exercise
In this exercise, we will look at our fictitious company, MilesBetter Pizza.
Due to the success of the online pizza delivery service and app, they now need to look at the management tools and understand when to choose one tool over another.
As we have learned, there are two approaches to management tools: GUI and CLI. Which one you choose is horses for courses; that is, better tasks are better suited to different tools.
Whether you use the browser-based portal, the desktop, or the Azure mobile app, the GUI approach is the most common way to interact with Azure resources. It’s simple, intuitive, and has the quickest time to value and the least skill level entry to be productive in creating and managing resources.
The GUI approach does not provide any way to automate repetitive tasks. For example, to set up 15 or 150 VMs, you need to create them one by one by clicking through and completing the wizard each time; this can be time-consuming and error-prone, and allows for configuration drift.
The CLI approach allows repetitive tasks and scripting to be automated. Azure offers the flexibility to choose the CLI tool and the Shell environment that suits the user best for the task they need to do at that moment. Users have the choice of using a local shell on the device terminal they wish to execute CLI commands on or use the browser-based shell environment that Azure provides with Cloud Shell. Irrespective of the terminal environment they wish to use to run the commands, they can choose which CLI tool to use; they may choose to use a Bash experience through the Azure CLI for Linux users and PowerShell for Windows users.
Given that there is some parity regarding how these tools function, other factors must be considered when choosing a given task or scenario:
- Automation: Do you need to repeat a set of repetitive or complex tasks? PowerShell and the Azure CLI support this, while the GUI portal does not.
- Complexity and time: Automation shouldn’t be more complex than the task it is replacing; sometimes, a quick, non-complex manual portal or mobile app task/action is appropriate.
- Learning curve and time: Do you need to complete a task quickly without learning new commands or syntax? PowerShell and the CLI require you to know the detailed syntax, and if you’re not using Cloud Shell, your local terminal device will require you to install the necessary components before you can start. Sometimes, a quick time to value, non-complex manual portal, or mobile app task/action is appropriate here.
- Team skillset: Does the team have existing expertise? Do they come from a developer background where they write code and are more comfortable with a command-line and scripting interface (imperative tools), or do they come from an admin, engineering, or business analyst background and prefer a more visual, low-code/no-code (declarative tools) approach?
While outside of the exam objectives, you should consider that while Azure natively gives you access to tools that allow you to create, configure, and manage Azure resources, there are also third-party tools that should also be considered, and you should evaluate where their use may be appropriate. Some examples of some of the most common third-party tools that you will not be required to know about for the exam objectives, but will almost certainly come across, are Chef, Puppet, and Ansible; we looked at Terraform on Azure earlier in this chapter, which can be used as an integrated Azure tool.
The following diagram visualizes the Azure management tools approach:
Figure 6.14 – Azure management tools
In this section, we looked at the Azure GUI and CLI tools by conducting a thought exercise and looked at the different scenarios and considerations of when you may choose one management tool over another. In the next section, we will look at some hands-on exercises to help you build on the skills you learned about in this chapter.