Welcome to linuxnix.com. In this blog, we are going to know about TeamCity, its characteristics, advantages, disadvantages and its comparison with other tools. TeamCity comes under Continuous Integration (CI) tools and gives competition to the tools like Jenkins and Bamboo. If you want to know more about CI-CD, click here. Let’s get started.
What is TeamCity?
Teamcity is Continuous Integration tool written in Java language which supports building and deploying different types of projects, established by Jet brains. It is a commercial tool and licensed under a proprietary license, Freemium software license up to 100 build configurations and 3 free build agents are available.
Features of TeamCity
- It provides several ways to reuse the settings of the parent project to subproject.
- For a single build Teamcity can take source code from two different VCS.
- It can also detect builds which are hung.
- For easy access you can mark build.
- We can run parallel builds simultaneously on different environments.
- Formatted text can be set for Build status which makes server to perform some actions.
- You can build docker images in separate step with the extension to other runners (Gradle, Maven, etc).
- Testers can be replaced with agents.
Architecture of TeamCity
TeamCity used distributed grid architecture. It means TeamCity build system comprises of the server and Build Agents which runs the builds.
Build Agent is the software which actually executes the build process. It is installed and configured in the TeamCity server. It is recommended to install the agents to the different machine for increasing the system performance. TeamCity Server job is to monitor all the builds and the status of the agents too.
Teamcity Terminology
- Build Agent: This is called the engine of TeamCity. It is configured in the Teamcity server, used to build and test the project.
- Teamcity server: It is the place where all the configuration required for the project is done.
- Build Queue: It is the place where you can see list of triggered builds.
- Build: It refers to the process of creation of software/application version.
- Build Artifacts: Results of build are stored here, it may be in the format of Zip, War, etc.
- Project: It is like parent or represent one software/application which contain single or multiple child (codes/Application/sub-projects).
- Build Configuration: It is the combinations of settings used for build, which can be source control, artifacts, deployment, etc.
- Build step: The steps used to build a project. These acts as a task in a TeamCity project.
- Build trigger: It is the part which defines when build should be triggered. It can be scheduled or automated.
Comparison between TeamCity, Bamboo and Jenkins
Teamcity | Jenkins | Bamboo |
Commercial | Open-Source | Commercial |
Easy to setup and UI is attractive | Easy to setup but UI is too ancient. | Easy to setup but UI is not attractive |
Less plugins | More plugins | Less plugins |
Higher integration than bamboo less than jenkins | Higher in integrations | Lower in integrations |
Jet Brains | Sun-micro system | Atlassian |
Freemium after that $299 per year | Free of cost | Most expensive |
Professional Support and user community support | Contributors support | Professional Support and user community support |
Advantages of TeamCity
- Server can be in one operating system and agents can be in different.
- Based upon our setting it can automatically triggers the build once developer commit.
- Running on server and viewing results on web page.
- You can Test your change without committing into the VCS.
- If build fails it shows where it got broke and even report for the builds which are hung.
- There are so many plugins available for TeamCity which makes the integration with other services a bit better.
- There is an all-around customer support for TeamCity under commercial license.
Disadvantages of TeamCity
- Upgrading from one version to another causes a lot of work to be done.
- Teamcity is not open source after 3 agents and 100 builds user need to take license and to be paid.
- The user community for TeamCity is very less as compared to other CI tools in the market.
Conclusion
TeamCity is a powerful tool and best for building .net projects. The server-agent architecture provides extra flexibility on the server. If the task or project is small, it is better to choose Teamcity in freemium where you can explore and learn how it works. Though it is not as reliable as the other tools like Jenkins but with this cost and features, it is a good-to-go application for Continuous Integration.
In this blog, we discussed about the basics of the TeamCity and to learn more about the installation and configuration of TeamCity, click here. To go more deep on all the functionalities of TeamCity, click here.
Stay tuned with linuxnix.com.
Latest posts by Ankesh K (see all)
- Deep-Dive into Jenkins – What are all Jenkins functionalities ? - January 10, 2019
- What are different Maven Plugins and how to build a Maven project? - January 7, 2019
- What is a Maven POM File and what are different Maven Repositories? - January 3, 2019
- What is Maven and what are its benefits? - December 31, 2018
- What are the different ways to install Jenkins ? - December 27, 2018