2 min read
Jenkins is one of the most popular tools for Continuous Integration(CI), a standard practice carried out by many software organizations. CI assists in automatically detecting changes that were committed to one’s software repositories, running them through unit tests, integration tests and functional tests, to finally create an artifact (JAR, Docker image, or binary).
Jenkins helps one to define, build and test a process, then run it continuously against the latest software changes. However, as one scales up their continuous integration practice, one may need to run builds across fleets of machines rather than on a single server.
With the Google Compute Engine Plugin,
- The DevOps teams can intuitively manage instance templates and launch build instances that automatically register themselves with Jenkins.
- The plugin automatically deletes one’s unused instances, once work in the build system has slowed down,so that one only pays for the instances needed.
- One can also configure the Google Compute Engine Plugin to create build instances as Preemptible VMs, which can save up to 80% on per-second pricing of builds.
- One can attach accelerators like GPUs and Local SSDs to instances to run builds faster.
- One can configure build instances as per their choice, including the networking. For instance:
- Disable external IPs so that worker VMs are not publicly accessible
- Use Shared VPC networks for greater isolation in one’s GCP projects
- Apply custom network tags for improved placement in firewall rules
- One can improve security risks present in CI using the Compute Engine Plugin as it uses the latest and most secure version of the Jenkins Java Network Launch Protocol (JNLP) remoting protocol.
- One can create an ephemeral build farm in Compute Engine while keeping Jenkins master and other necessary build dependencies behind firewall while using Jenkins on-premises.
Read more about the Compute Engine Plugin in detail, on the Google Research blog.