Hello.
Consider the following scenario:
We have two different VS solutions for WCF Services “SVCA” and “SVCB”. Both services are hosted under the same IIS Site “SVCSITE” as two different Applications and AppPools, so the urls are: http://services.domain.com/Services/SVCA/ServiceA.svc and http://services.domain.com/Services/SVCB/ServiceB.svc, respectively.
In terms of infrastructure we use Amazon Web Services (AWS). We have a load balancer “LB” and two identical servers “Server1” and “Server2” behind it.
I have a Team City build server with two separate builds for SVCA and SVCB, both setup for Continuous Integration (CI). I also have an additional step to automatically trigger an Octopus Release and Deployment after a successful build.
In Octopus we defined two separate Projects PRJA and PRJB, one for each service. The deployment process looks like this:
-Parent Rolling Deployment Step (runs on Server1 and Server2)
-Remove Server from LB (using AWS API)
-Deploy NuGet package
-Bring back server to the LB
If I deploy each Project separate everything works fine. The problem is when both builds for SVCA and SVCB are taking place concurrently. PRJA and PRJB Deployments will be triggered concurrently as well, and as a result there are confilcts removing/addings Server1 and Server2 to the LB.
Is there a way to synchronize Projects so they happen sequentially, not concurrently?
I guess this is a common scenario. What’s the proper way to handle it?