Having recently written about how I became an Azure Solution Architect, I thought it would be valuable to provide some information around getting started with Azure.
Through using Microsoft Azure on a daily basis, it has enabled me to learn some of the clever tricks that should help those who are trying to figure out the Azure Portal.
While Azure is a really big topic, here are some of the key questions we come across:
’When do I start?’
This one is really easy, yesterday J or at least today!
It is really important to get familiar with one of the leading cloud providers.
If you are working in an enterprise Azure is easy to recommend – especially with Azure Active directory. It provides handy services like: Identity Management, Single Sign On to cloud apps, Azure, Office 365.
‘What to start with?’
This question is much harder.
At times, you can feel yourself like a “mosquito at the nudist beach”. You just really do not know where to start from.
On the other hand, again it can be easy. Start with anything that you think can be a good candidate for a test migration. With a small web server or mail server it is easy to use Azure as a backup solution.
You can even have a fail-over pair in your on-premises environment for peace of mind.
‘How to start?’
I know it is hard when you have security teams and other internal rules and regulations.
With that said, I’m quite sure you are capable to convince your team lead, security lead with a few mentionable candidates in your company.
However, until the decision is made, you can start easily with a test account by yourself, as Microsoft generously gives free credit to start a new account with and try the services for a month.
Let’s not be that mosquito and start somewhere!
In order to explain the Azure portal, I thought I would share a little bit about the tools I am using in my day to day job with Azure.
In addition to the tools you are going to need, I’ll talk about the basics of templates.
Azure portal pricing
When it comes to starting with Azure, either you or your company will need to have a subscription.
If you are completely new to Azure, great news. You can register a free azure account with $200 of credit for 30 days.
This seems like a quite generous offer.
While there are other companies who gave you more credit, you can also get a Visual Studio community edition. This can be used for general coding (.NET, python, etc), or Azure Resource Manager based resource deployments – we’ll talk about this later.
You can find more details of the pricing with this calculator, equally if you wish to talk about how this relates to a project, feel free to hit up one of the RedPixie architects.
Azure Portal access
To manage the environment from the portal, the administrator only needs a web browser application, like Edge, Chrome, Firefox.
The latest versions of the following browsers are supported:
- Edge (latest)
- Internet Explorer 11
- Safari (latest, Mac only)
- Chrome (latest)
- Firefox (latest)
If you register and log in, a somewhat similar picture will appear.
The left panel and the dashboard are customizable. You can pin almost everything, or create multiple dashboards if you want to. This is useful for different environments like dev/test/prod.
After logging in with this registered Azure account, you can instantly start to deploy “any” Azure service under your account by clicking on new.
IaaS service like Azure VM, Storage accounts, connected to these VMs. Alternatively, you can deploy Azure SQL, Azure Websites PaaS solution.
But let’s not run too much ahead, let’s talk about the tools.
Great tools for the Microsoft Azure Portal
The Azure portal works in tandem with lots of great tools, here are some of the ones we use on for various clients.
With Visual Studio and the installed Azure SDK it is easy to build, manage, and deploy cloud-scale apps in Azure.
Here are some of the main features:
- Build apps that span IaaS and PaaS
- Deploy in seconds. Automate via VS Team Services, Team Foundation Service, and Git
- Diagnose live apps with world-class debuggers, profilers, and data tools
- Integrate Active Directory, SQL, Office 365, SaaS, and on-premises systems
- Automate service management tasks and deployment with PowerShell cmdlets
Azure Command-Line Interface (Azure CLI) provides a set of open-source shell-based commands for creating and managing resources in Microsoft Azure.
The entire Azure CLI installation can be downloaded here.
One can install the Azure Service Fabric SDK and the Microsoft Azure SDK for .NET as well after the CLI installation has been finished.
Most noteworthy, with the Web Platform installer, it is possible to install any additional products later as well.
PowerShell is the Microsoft scripting environment to manage, support on-premises or remote Microsoft services, servers.
Azure PowerShell is a set of modules that provide cmdlets to manage Azure with Windows PowerShell. The cmdlets can be used to create, test, deploy, and manage solutions and services delivered through the Azure platform.
The latest Azure PowerShell Web Platform Installation package can be downloaded here, or you can install it after the Azure CLI as it does offer you as a possibility.
The necessary modules can also be installed from PowerShell Gallery with the following commands:
Install-Module AzureRM Install-Module Azure
The first command installs the cmdlets for managing Resource Manager based entities the second installs all the classic and general commands.
We always recommend to everyone for the faster, easier resource management to use PowerShell scripts with JSON templates.
However, sometimes I do use the portal. While it is fine to do every now and then, it would be the best practice to not even touch the portal.
In an Azure Resource Manager template, it is possible to define the resources to deploy for a solution and specify parameters and variables that enable one to input values for different environments.
The template consists of JSON expressions which can be used to construct values for the specific deployment.
After having all the tools you’ll need, let’s stop for a moment and think about what you want to implement.
If you are only testing Azure, you probably can start to deploy something right away.
However, if you are implementing something complex, I recommend you to go through the Azure Design patterns, as those could give you some guidance on how to implement something in Azure.
So you have the tools, the registered Azure Subscription, let’s start to build something, but not with the portal, with Visual Studio.
Create a new project, and choose an ‘Azure Resource Group template’ – start with a blank one!
How to deploy on Microsoft Azure
1. ARM (Azure Resource Manager) templates
Firstly, launching the solution explorer after starting a blank ARM template will show that there are three basic files:
- json – this is the main deployment template file
- parameters.json – we can define incoming parameters in this file
- Deploy-AzureResourceGroup.psq – this file will deploy our template
An ARM template usually consists of three different sections – parameters, variables and resources.
While a Simple ARM template has Azure resources in its ‘resource section’ the Nested template has other template references as resources.
First, we are going to walk through some simple template deployments. With a nested template, you can easily deploy a whole environment in Azure, with IaaS, PaaS resources in one go.
In each part of the template, we can only have specific values, additional sections.
2. Parameters section
In the parameters section, we must define all incoming parameters.
When a parameter is defined we must provide the type value, all the other values are optional but recommended. Like minLength, maxLength, allowedValues, defaultValues.
Here in the example, our first parameter is the resource location.
The incoming value of the parameter can come from a parameter file; this file also has to be uploaded with the template during deployment. Or, it can come from one of the wizard windows during deployment, but we will see that in a moment or so.
3. Variables section
In the variables section, we define all the internal variables for the template.
These can be referenced to the incoming parameters, or locally defined variables. A variable is a key-value pair in the following format.
variableName: “value” – where the value can be coming from some external parameter, or a concatenated value of strings and parameters.
4. Resources section
In a simple template solution, the resources section contains Azure Resources, like Storage accounts, VNETs, VMs definitions, etc.
In a Nested template solution, the resources section does not contain any Azure Resources as mentioned before, it only contains other templates as resource references.
There a few basic things that must be defined when we are referencing to another template file.
We must define the template link which points to the location where the template can be found and either we have to define a link to the template parameters file as well, or the list of parameters need to be defined here.
All these parameters defined in this section are passed to the linked template.
Some of the parameters can be incoming parameters of the main template, others are variables of it and some can be defined with their exact value in the parameter reference section of the nested template.
To deploy a template, use Visual Studio’s deployment support.
This will create the necessary temporary storages, allow you to configure the parameter values, and easily repeat the deployment as many times you want if required.
In Visual Studio, right-click on the solution name and choose ‘Deploy’, if you have deployed the template before, you will see all the historical deployments.
These will store all the parameter configurations for you, you can choose any of those, or a new deployment, which is preferable if you are trying to deploy to a new Resource Group, for instance choose new.
If you choose any it will bring up the Deploy to Resource Group wizard, where the right account has to be chosen and credentials must be entered first.
After the successful login, you must choose the Subscript where you want to deploy the machines, choose the Resource Group or deploy the solution to a new resource group. Here we are deploying it to a new one.
Deployment templates, the parameter file for the template also has to be set.
If you are unsure about whether your template is valid or not, you can choose to Validate only.
After choosing the parameter file, the parameters can be modified.
It is possible but not recommended to have a resource group created in another region while the resource itself is located in somewhere else.
During this deployment we are creating only a single storage account, so it is possible to change its type only and the ResourceLocation parameters. As you remember we only had these as parameters, the name is a variable, and as an internal property cannot be modified here.
If everything goes well, the new Resource Group and the resources in it will be successfully deployed.
We can see the new Resource Group and Storage account on the Azure portal.
Along with our defined resources a new storage account was also deployed.
This account stores all the deployment related files, templates, scripts and others.
So this is how easy is to start with Azure, it took some time to get prepared, but after that, it is only a few clicks and minutes to get something up running.
In the next article, I’m planning to introduce a more complex but still single template solution, where a basic IaaS server (Linux) will be deployed, with a custom script extension.
Hope you found this article interesting, informative and helpful! If you do so, please make your comments. Also if you feel like please share with others!
It would be great to hear your thoughts on your intereaction with the Microsoft Azure Portal below. If you would like some more interesting ‘data’ content, see this awesome guide on discovering the hidden capabilities of Excel.
Written by Daniel Koszegi | Cloud Architect, RedPixie | See his LinkedIn Profile