You can read our previous article here.
Nowadays, many IT companies as well as individuals are developing applications but in this process, they don’t spend much time in planning the deployment strategy. During the development phase of an application, there may arise a situation where it is not clear as to who is responsible for a particular piece of work. Hence, the concept of Devop has come into existence. Devops are the people are responsible for both development and deployment .So it is important for a developer to learn deployment methodologies as well. Azure supports plenty of methods but we will briefly categorize them into the following:
1) Deploying from the source control system
2) Deploying Directly from IDE
3) Deploying by FTP Client
4) Using Command Line tools and REST API
Visual Studio Online (VSO), formerly known as Team Foundation Service, is trying to make the lives of fellow developers easy by providing the features of continuous integration and delivery. Here are some key features of VSO:
• It supports both Git (distributed) and TFVC (centralized) source control.
• It supports Source Code management and version management.
• It supports continuous delivery to Azure.
• It supports automated load testing. Load testing is critical to a cloud app but is often neglected until it is too late. Load testing simulates heavy use of an app by thousands of users, enabling you to find bottlenecks and improve throughput before you release the app to production.
• It supports team room collaboration, which facilitates real-time communication and collaboration for small agile teams.
• It supports agile project management.
• The service is free for a team up to 5 Members and paid beyond that. Apart from 5 free members it also offers unlimited license as “Stake Holders”. Stakeholders have access to the project home page and most of the “work” related functionality. This includes the ability to view the backlog, add and edit items, run work item queries and more.
When GIT is used for source control, the user can access the repository with all of its history on his local computer, with the help of it’s local copy. This serves as an added advantage for those people who might not be connected to network at all time. The user has the liberty to continue to do commits and rollbacks, create and switch branches, and so forth. Even when the user is connected to the network, it's easier and quicker to create branches and switch branches when everything is local. The user can also do local commits and rollbacks without having an impact on other developers.
Merculiar is also a source control management tool but it’s not directly supported for continuous Deployment from IDE instead the user needs to push the repo in bitbucket or codeplex and also, one can connect his azure account with it. Both Git and Merculiar works on the same lines but the thing that is common to these approaches is that the user owns the code. E.g. in the GitHub case, you must be an admin on the project. The reason is that Azure needs to set up a hook in the project to enable continuous deployment, and only project owners can do that.
So if a user does not have the ownership of the code he must use Merculiar instead of Git. The downside of this is mode is the unavailability of continuous deployment.
Dropbox is a free service that makes it easy to share files between multiple computers by simply copying files to a local Dropbox folder, and now it’s just as easy to deploy a Web site to Windows Azure. Simply copy files to the Dropbox folder and press a button to deploy. All platforms supported by the Windows Azure SDK are supported, so one can copy sources for .NET, PHP, or Node applications and the right things will happen on the server to deploy and run your site. It’s not basically an IDE but you can use this for publishing the site.
FTP refers to File Transfer Protocol and it is one of the most common method uses for deployment of websites. One can get his deployment credentials and URL from the azure dashboard and publish the application by using FTP client like FileZilla. All that is needed to be mentioned is the source and destination.
Visual Studio and WebMatrix are Microsoft IDEs (integrated development environments) that can be used for web development. Both Use Web Deploy for the deployment. Web Deploy enables the user to package his Web application content, configuration, databases and any other artifacts like registry, GAC assemblies etc., which can be used for storage or redeployment. If the package needs to be redeployed to a different environment, configuration values within the package can be parameterized during deployment without requiring modifications to the packages themselves.
You can use the command line in Mac or Linux machines to deploy by using FTP. If you do that, you can also access the Azure REST management API using the Azure cross-platform command-line interface (xpat-cli). The xpat-cli can also be used on Windows machines. We have cmdlets available for performing all the operations for deployment.
Web Deploy is Microsoft software for deployment to IIS that not only provides intelligent file sync features but also can perform or coordinate many other deployment-related tasks that can't be automated when you use FTP. For example, Web Deploy can deploy a new database or database updates along with your website. Web Deploy can also minimize the time required to update an existing site since it can intelligently copy only changed files. Microsoft Web Matrix, Visual Studio, Visual Studio Online, and Team Foundation Server have support for Web Deploy built-in, but you can also use Web Deploy directly from the command line to automate deploymen.t. Although the learning curve for using Web commands is steep, it is probably the most powerful mode of deployment.
• Azure gives its users a wide variety of options to deploy the application, with the support of git and CLI tools open source developers will find it pretty comfortable in their area of expertise and with the option of deploying directly through the IDE (Visual studio and Web Matrix) as well as with Visual Studio Online one can use both TFS/Git which seems to be a favorite for the Microsoft Developer.
• Users have an option for the legacy FTP, where they can use the FTP client like FileZilla and push the binaries to the desired folder on the server. So Azure has something for every developer and it’s the choice of a developer to select according to his or her preference.
You can see our introductory slideshow here.