eifert.blogg.se

Teamcity cicd
Teamcity cicd









teamcity cicd

Overall, this was a better solution for our use case given the better performance and the mentioned toolsets availability for extension. A solution that’s tied to a specific service, TeamCity, and any other system needing to implement such scalability would have to implement a similar orchestration in their own ecosystem.Impacted visibility due to an API-only integration between TeamCity and the cloud (GCP), where only the TeamCity server is aware of the autoscaling events and orchestrating the changes to the cloud resources.On the other hand, there are certain things that we may miss out on: The ability to extend an already open sourced solution with the corresponding toolset that the community can also benefit from.An established design using TeamCity plugins that makes use of an event-driven approach for making faster decisions about its autoscaling events.

#TEAMCITY CICD CODE#

Makes use of Google Instance Template’s metadata for bootstrapping from code and detaching the configuration responsibility from the CI/CD system components.This makes the setup a bit more cloud-agnostic. All cloud configurations are done in one place in the Agent Cloud Profiles, with the server acting as a control plane, showing the state of each agent pool at a given time.In addition to the benefits mentioned above, there are some other appealing advantages to this approach over Cloud Instance Group autoscaling: This permits the system to react a lot faster to autoscaling events due to the autoscaler decisions happening within the TeamCity server’s (plugin) code. Once an instance is created, the startup logic of an instance pulls the appropriate configuration for the instance, bootstraps the agent, and registers itself with the server as demonstrated in the previous post in Figure 3. Centralized autoscalingįigure 1: A central autoscaler, and delegation of responsibility to their corresponding componentsĪt the center of operations in Figure 1, TeamCity server acts as an autoscaler that orchestrates creation of Google Compute Instances. Just like the distributed cloud-native approach, the configuration and bootstrapping responsibility is encapsulated and isolated from the CI/CD system and is delegated to the cloud resources, i.e. The second approach to designing auto-scalable agent pools for our CI/CD system was making use of the TeamCity server as an autoscaler or an autoscaling orchestrator. A few limitations and challenges with the distributed approach lead us to further research and design for autoscaling using a central autoscaler, and in this post we talk about how we used the TeamCity server to centrally autoscale our CI/CD system and the positive effect this change has had on the overall system’s cost and developers’ productivity. In the last post we drew a picture of what was detailed as a distributed autoscaling system using Google Cloud Platform’s Compute Engine resources, specifically using Google Compute Managed Instance Groups.











Teamcity cicd