Windows Azure and Continuous Integration
We would like to set up continuous integration (CI) environment for developing an Azure web application. It would be great if:
- We could use any popular CI server (Atlassian Bamboo, for example).
- Deployment to the test environment (exactly the same as production) is performed automatically on each build.
- Deployment to the production environment is performed automatically and triggered manually by selecting some stable build.
What are the best practices for implementing such scenarios?开发者_如何学Go
you might want to check out the built in support for continuous integration and continuous delivery for Azure that came out recently.
For on premise build servers (with or without TFS) there is this guidance: http://www.windowsazure.com/en-us/develop/net/common-tasks/continuous-delivery/
For Team Foundation Service Preview (elastic build in the cloud) there is this guidance: http://www.windowsazure.com/en-us/develop/net/common-tasks/publishing-with-tfs/
For Git and Windows Azure Web Sites there is also guidance sitting next to these links (I'm not allowed yet to post more than two hyperlinks..).
Your deployment process, first and foremost, needs to be as similar as possible between environments so that a deployment to test, tests your deployment along with the code itself. Good continuous delivery tools (my company provides one) will help with that and tie those phases together nice in a build lifecycle or build pipeline.
Depending on who you are, you'll need to think through security and separation of duties when it comes to the prod deployment while leaving self-service open for developers.
Also think through whether you want to deploy builds to test that build successfully but fail some unit tests.
精彩评论