System for Solving Rolling Updates
I built a system which solves rolling updates with zero downtime.It is something like when any company do some updates in their products generally in the case of website or any mobile app but you rarely feel any downtime means site or app is not working well. It do everything just after commiting in git. I have used dynamic master slave architecture which launches completely a different container or pod(O.S) only for doing rolling update but behind the scene it uses kubernetes and dockerfile for this.
So lets begin with project explanation
-This dockerfile is for the rolling updates.I have used httpd server and php interpreter.But you can use anything for deploying and doing rolling updates.
-And this dockerfile is for dynamic slave worker for master node in jenkins.This contains setup of kubectl (client software for Kubernetes ) and for remote login ssh is configured.I launched one container image using this dockerfile which helps in setup of slave worker for master node in jenkins.
.I did this task using two jobs.
-JOB1, it downloads code from github, makes one container image and pushes in docker repository.
-> And this is the output of job1
-JOB2, it do the task of rolling updates with the help of kubernetes on the slave node of jenkins master node.
-> And this is the rolling ouput of this job2
-This is cloud setup for slave node.For remote login i have used ssh-keygen concept of opnessh server.
-But before this we have to enable tcp protocol in docker configuration file and in jenkins too because bydefault docker don't support networking.
-Now this is build pipeline view of jenkins jobs.
-See the pod is deployed for deploying the code with automation for rolling updates. And this container will never go off due to kubernetes cluster.
And lastly this is my output with simple html code. I created for testing purpose but you can put you real html pages and then you will able to see the real power of this project.
-These are the master and slave nodes.
And this is the githhub webhook for triggering the job remotely created with the help of ngrok.
So it was a quite interesting for me to do this kind of integration. I hope you all will surely like it.
This is my github url.