Azure DevOps – Build and Release pipeline to Azure File Storage
Abs07act
Azure File Storage is an ubiquitous service. It is so useful
that I have hardly seen an enterprise not making use of it. Recently Premium tier
of File storage is in07oduced with IOPS as 1,00,000 as opposed to standard File
storage which used to offer 1000 IOPS only. This premium tier now even makes
Azure File Storage natural choice for high performance demanding applications.
I have been architecting many scenarios and
implementations where I used Azure File Storage for running web applications. In
such a scenario your application binaries, DLLs, application files [or jar, war
files in case Java] are present on Azure File Storage and this Azure File
Storage is mapped as a drive to Azure VMs. This Azure VM then runs web servers
likes Tomcat, IIS and maps their website path to the drive mapped using Azure
File Storage. And this works awesome!
In today’s enterprise world DevOps has become a regular
practice. Naturally when you plan to deploy web applications you use pipelines
in Azure DevOps. In above scenario you would need to create Build and Release
pipeline that will deploy your application to Azure File storage. Unfortunately,
there is no default task exist in Azure DevOps that can publish the build output
to Azure File Storage. This is what I am going to build in this post.
Let’s go!
For this blog post I am going to use .NET Core language
web application as my sample. It doesn’t matter if you use any other language-based
example. So I already have a DevOps Organization created and in the same I have
created one Project named as “MyNETCoreApp” as shown below –
It doesn’t matter which option you select for Agile
process while creating project in Azure DevOps. Selection of Agile process
while creation of project in Azure DevOps will matter in other important cases
of setting up your business process. Not in Build and Release pipeline. But
that is another blog on another day. Not today!
Next part is about creating the project n Visual studio
[or in your favorite IDE] and pushing the same project in this current Azure
DevOps Project Repo. I have it done already because I think this is s07aight forward
and no step by step guide is required. So My project Repo looks as follows –
So we are all set for now to create Build and Release
pipelines to release to Azure File Share.
When I asked my regular blog followers for the current topic
most of them responded saying “Azure DevOps already offers a way/task to release
the code to Azure Files.”. I said where? How and when did this happen? Then my
dearest followers [most of them - not all] sent below screenshot to me [without
Red and Green
highlights]–
They were not wrong because they had just a given a
quick look to the heading. Red highlighted Heading
is perfectly fine and it will make you believe that Azure DevOps do offer a
task to publish and release pipeline to Azure File Share. However if you focus
on description of the task Green highlighted;
you will see that Azure DevOps File Copy tasks do not publish to Azure Files but
to Azure Blob and Virtual Machine only. Confusion because of names!
I am sure you know the difference between Azure Blob
[https] storage and Azure File Share [SMB] storage. So moral of the story – we don’t
have any tasks default provided in Azure DevOps to release the code to Azure
Files share.
Comments
Post a Comment