Python has number of packages which can be used to enhance shell scripts. It is easier to convert Shell scripts to Python.
We can install Jenkins in different ways but sometimes we just need Jenkins with minimal resources and configuration.
Running JupyterHub on Kubernetes is easy with Kubespawner, you can attach PV to each spawned user pod to persist data.
In containerization world we run Jenkins pipeline on Kubernetes platform as a pod instead of running it on legacy nodes.
Jenkins provides REST API to automate actions from external systems. We can create, update, delete and trigger Jenkins Jobs/Pipeline using API.