Simplifying Build, Test and Deploy at a 3-person Creative Start-up
Submitted By Jenkins User Erik Woitschig
Muzkat, a small creative agency, wanted to simplify the build, test and deploy process. They did so using Jenkins.
Organization: Muzkat, https://muzkat.com
Industry: Creative agency
Programming Language: PHP, Node.js
Version Control System: Bitbucket Server
Build Tool: Gradle, NPM, Composer
Community Support: Jenkins.io websites & blogs, spoke with colleagues and peers
Simplified CI/CD processes for a team with different system configurations allows for sharper focus on deliverables.
Background: Muzkat is a creative agency out of Berlin, Germany. To say they are small would be an understatement. They are a team of 3 and still in the early bootstrapping phase. Because of this, they must carefully monitor the time and money spent in relation to the quality of their software development and deployment. Every team member uses a different setup, different machines, and often, quite different tools.
Goals: Simplify the build, test and deploy process to different stages and hosts, whether they are cloud-based, Virtual Private Server (VPS), or to the local server.
Solution & Results:
It was quite a challenge to streamline and combine all the services to build an artifact to deploy. Because of our micro service-oriented and distributed architecture, the hardest part of rethinking our build, test and deploy process was to figure out how best to sync the deployment of all services. We also had to retest builds properly to go live or initiate a rollback.
With Jenkins and some pipelines, it was relatively simple to create a local and distributed artifact of our application to quickly share and deploy across the team, locally and globally.
Using pipelines — and the easily accessible deployment plugins available with Jenkins — eased everything. The job hook options, in conjunction, along with some scripting, made it easy to create a deployment bus, which was primarily used to send out notifications to our team. Luckily, we have removed some free external services, which gave us more control over our product and associated data; data security is very important to us!
The amazing plugin ecosystem helped us a lot! Specifically, we used FTP publisher, SSH publisher, and the Gradle plugin. As far as pipelines go, Job DSL as code is a huge win. We also like the internal credential/key management arrangement and the master/slave setup.
We’re pleased with the results, including:
- a solution that is central, fast and easy to maintain: especially FOSS build system & deploy every commit
- a laser focus on features only, due to increased productivity
- shared knowledge across a happy team