Steps:
- Intro
- VSO
- Docker
- xUnit
- Build
- Back end
- Selenium
- Docker
- Release Management
- Testing
This year it was an honor to be selected to speak at Ignite
New Zealand. I wanted the demo during my
second session to be the most technology-packed demo I have ever given. Below is just a sampling of the technology
used:
The demo executed without a hitch. Once I returned from Ignite, there was a lot
of interest in how I could share that demo with others. So I decided to produce a series of blog
posts that will detail exactly how I was able to create the 2015
Ignite New Zealand demo.
The demo flow consists of three environments (Dev, QA,
Prod). Each environment is hosted in
Azure via a Linux VM as the Docker Host, Azure Web App to host Web API, and
Azure SQL for the data store. The demo
begins with a commit to a Git branch hosted in Visual Studio Online. I just want to take a moment to say that this
entire demo would work with TFVC as well.
I only selected Git because of its popularity and it gave me the
opportunity show our Pull request support. TFVC is not going away and is still
a valid source control choice. With the
code committed and pushed to the branch in VSO, I initiate a pull request. Once the pull request is accepted and the merge
to master is pushed, a CI build of the Master branch is triggered.
During the CI build the code is compiled, unit tests are
executed, Docker image is created and pushed to Docker Hub, and the other
projects are packaged and stored in VSO for use with Release Management. Once the release begins as a result of the
completion of the CI build, the database is deployed via dacpac, the Docker
host starts running the new image, and Selenium tests are executed. In addition to Selenium tests in the QA
environment, a load test is also executed.
Once the tests are completed, Release Management waits for an approval.
In future posts in this series, I will show exactly how I
created the projects and configured the environments to complete this end to
end demo.