Building a Better Microservices Platform
Submitted By Jenkins User Tomas Valentukevicius
A Nordic-based telco turns to Jenkins to get Java-based services deployed on Kubernetes in a way that’s easy to onboard for users of Bamboo.
Organization: Headquartered in Stockholm, Sweden, this new generation telco is at the heart of innovation and technology, aiming to change the industry and bring the world even closer for its customers
Programming Language: Java, Node.js, Python
Platform: Docker or Kubernetes, Linux
Version Control System: Bitbucket Server
Build Tool: Gradle, Maven
Community Support: Spoke with colleagues and peers
Creating a multi-tenant platform with a smooth CI/CD experience.
Background: Our services are developed with multi-tenancy in mind, meaning that a single instance of the software and its supporting infrastructure serves multiple users. Each user shares the software application and shares a single database, and each tenant’s data is isolated and remains invisible to other tenants. More than anything, we needed to have a multi-tenant platform with a smooth CI/CD experience that would be easy to maintain and change. We also had to consider that many of our developers came from a Bamboo-based CI server experience used to automate release management.
Goals: More specifically, we needed an easy way to get Java-based services deployed on Kubernetes.
Solution & Results: LDAP (Lightweight Directory Access Protocol) integration allowed us to get groups from there and map those with Jenkins permissions. A common and shared continuous delivery pipeline then helped immensely by enabling teams to reuse most CI/CD logics and not write everything from scratch.
By using Jenkins and Groovy pipelines, we had the following experiences:
- quicker development cycles
- smooth onboarding and easy maintenance
- a familiar experience for developers coming from Bamboo