Mlops Task- 1

Git

Git is a distributed version-control system for tracking changes in source code during software development. It is designed for coordinating work among programmers, but it can be used to track changes in any set of files. Its goals include speed, data integrity, and support for distributed, non-linear workflows

Jenkins

Jenkins is a free and open source automation server. It helps automate the parts of software development related to building, testing, and deploying, facilitating continuous integration and continuous delivery.

Plugins are the primary means of enhancing the functionality of a Jenkins environment to suit organization- or user-specific needs. There are over a thousand different plugins which can be installed on a Jenkins master and to integrate various build tools, cloud providers, analysis tools, and much more.

Docker

Docker is a set of platform as a service products that use OS-level virtualization to deliver software in packages called containers. Containers are isolated from one another and bundle their own software, libraries and configuration files; they can communicate with each other through well-defined channels

Problem Statement

❗️TASK-1 ❗️

JOB#1

If Developer push to dev branch then Jenkins will fetch from dev and deploy on dev-docker environment.

JOB#2

If Developer push to master branch then Jenkins will fetch from master and deploy on master-docke environment.

both dev-docker and master-docker environment are on different docker containers.

JOB#3

Manually the QA team will check (test) for the website running in dev-docker environment. If it is running fine then Jenkins will merge the dev branch to master branch and trigger #job 2

Let Start with the Task

Prerequisite

  • Git
  • GitHub
  • Jenkins Sever
  • Docker Install
  • Apache Web Server running on RHEL-8

In this project we are Using RHEL-8 where Jenkins and Docker are in running state

lets create one Workspace where git is running , In my case in my Windows system

Create Repository using $ git init command

Create Web page

put web Page to staging area so it keep track

$ git add task1.html

To put in Commit Area to do Roll back

$ git commit task1.html -m “first comment”

Before that create one Repository in GitHub

Give the path and push your Code to gitHub

Here the issue is Developer push there Code manually But we want Automation So Set hooks , As soon as developer commit it will Automatically push to GitHub

So set Hooks in Git, Go to

$ notepad .git/hooks/post-commit

Now whenever developer do any change in code and commit it will auto push to git Hub

Now our code is in GitHub we want to Deploy our code or website to webServer

2 way Available

  • Manually

Someone download the code and run the copy the code to configuration file of server and run it

  • Automation

For Automation We use Jenkins , So start your Jenkins server with port :8080

After starting Jenkins Server create one job

As Jenkins is just A tool and its power come from plugins , here we require Git plugin which help us to do automation So install git Plugins and git your GitHub Repository link

Now whenever developer commit it will auto push the code to GitHub and due to Jenkins its come to Jenkins workspace

Now open Jenkins shell and write Command which will copy or deploy your code to Apache web Server running on Rhel-8

$ cp index.html /var/www/html

It will Copy your Code and web Server Start But the issue is operational Team keep on eye on gitHub if any changement done So we again want Automation

We use Triggers in Jenkins , Various Triggers are Available in Jenkins But we use Build Trigger as developer commit , one click complete Automation

In build trigger we have to set token and provide the token to git Hooks

One Click Complete Automation

But the only hard thing is Environment where webServer is running

Now Here we integrate this project with Docker

Docker

Docker is a set of platform as a service products that use OS-level virtualization to deliver software in packages called containers. Containers are isolated from one another and bundle their own software, libraries and configuration files; they can communicate with each other through well-defined channels

As docker in Running on Rhel-8 , So we pull the image from docker hub which provide complete Environment where Apache Web Server is running

# docker pull httpd

Now integrate docker with Jenkins

JOB#1

If Developer push to dev branch then Jenkins will fetch from dev and deploy on dev-docker environment

Create one Developer branch

JOB#2

If Developer push to master branch then Jenkins will fetch from master and deploy on master-docke environment.

JOB#3

Manually the QA team will check (test) for the website running in dev-docker environment. If it is running fine then Jenkins will merge the dev branch to master branch and trigger #job 2

this is complete One click Automation using Git Git-Hub , Jenkins , Docker

Thank You

Any Query or Suggestion feel free to ask

linkedin : linkedin.com/in/aditya-kumar-soni-91370b189

--

--

--

Arth2020 | student

Love podcasts or audiobooks? Learn on the go with our new app.

Recommended from Medium

Community Update, Dev update, FantomSea and more!

[Game Strategy]How to Create a Team

How to Solve “Firefox Couldn’t Load XPCOM” — 4 Solutions

ETCD Quorum and Consensus #k8s

Dynamics 365 - Set Business Process Flow Stage Automatically by Using a Workflow

What Does a Software Architect Really Do?

Man drawing up designs

Cloud Academy

Cloud Academy Enters into Partnership with Arapahoe Community College Computer Networking

Array and Slice in Golang (Basic)

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Backbencher05

Backbencher05

Arth2020 | student

More from Medium

ChannergySE Inventory Management System Honest Review

ChannergySE Inventory Management System

Basic Business Application of Machine Learning

Predicting Drug Toxicity With Chemi-Informatics and Machine Learning

Seattle Airbnb Analysis