Keywords: An overview of Jenkins-Kubernetes Integration with screenshots showing Dynamic Slaves-K8 in action. Jenkins Dynamic Slaves overview

Dynamic Pipelines with Jenkins

What is Dynamic Pipelines

The dynamicity refers not only to how flexible your pipelines are around your dev needs but also with hovering infrastructure on both top of it and underneath it.

Dynamic Pipelines are broken down into two mainstreams:

    1. Dynamic Environments
    2. Dynamic Builds

    Dynamic Environments

    Let’s assume you have 3 group of devss, one works on a C++ project, another works on python and coverage and the third group works on NodeJS 

    Ideally your typical DevOps will have roughly one of the following options to go with:

      1. Recommend buying a service that’d do that for them (typical devops)
      2. Build 3 VMs, each has set of required packages to support all 3 build environments, which makes it easier to maintain especially updates without breaking everything in the env
      3. Build a single VM to run all the builds inside of it
      4. Build these pipelines in a docker container on a single machine

    All four choices are least preferable from with a range from costs to proficiency of the build resilience. 

    Limitations stem mainly from the architecture itself, using VMs could either result in high costs, alternatively a dirty env, one where remnants of old builds remain lying around.

    While a docker container would lessens the worsening of the situation, it still doesn’t prevail in a professional Env

    … and that’s where Dynamic Environments come into play

    Dynamic Builds

    Dynamic builds is essentially all about scalability, build parallelism in other words, the more scalable power you possess the faster your builds and more workload absorbed.

    Working with VMs in the past, well, they are limited, their scalability isn’t smooth as you need to work out the underlying software then dynamically provision them which will also require some form of orchestration to handle the scaling in and out.

    These challenges can now be put to bed once and for all with new Jenkins + Kubernetes Architecture that makes scalability an absolute breeze with tons of power on hand and on demand.

    Conclusion

           Leveraging substantially powerful orchestration tool like Kubernetes and a CI/CD tool like Jenkins, we let it do all the dirty work for us. The two of them makes it possible to create multiple dynamic container environments independent of one another for your  C++, python and nodeJS thanks to Jenkins Declarative Pipelines (Pipeline as Code) that makes it solid to auto-select build environments dynamically based on build params while sharing the same pipelines code across different projects.

    Jenkins/Kubernetes Dynamics

    Keywords: An overview of Jenkins-Kubernetes Integration with screenshots showing Dynamic Slaves-K8 in action. Jenkins Dynamic Slaves overview