APPROACH:
- Setting up a Git and GitHub Repository
- Building a Jenkins Pipeline and writing Jenkinsfile
- Building & Deploying apps via Docker containers
- Pushing Docker Image to DockerHub
DevOps improves collaboration and productivity by:
- Automating infrastructure
- Automating workflow
- Continuously measuring application performance
It happens because it is very iterative process so devOps basically consists of eight majors steps in its life cycle as shown in figure.
DevOps Lifecycle: Plan
First stage of DevOps cycle where you Plan, Track, Visualize and Summarize your project before working/starting it.
DevOps Lifecycle: Code
Second stage of DevOps cycle where the developers write their code by choosing different programming languages. The process of maintaining code is called source code management or SEM. Git is a preferred tool that enables distributed control and facilitates data assurance through circulated non-linear workflows. For larger projects where a vast number of collaborators are involved in the development activity Git establishes reliable communication between teams through commit messages.
DevOps Lifecycle: Build
Build is a pre-release version and is identified by a build number, rather than by a release number.
DevOps Lifecycle: Test
DevOps Lifecycle: Release
DevOps Lifecycle: Deploy
DevOps Lifecycle: Operate
DevOps Lifecycle: Monitor
Key DevOps tools:
These tools are Git, Jenkins and Docker.
Git & GitHub
These Git is a version control system for tracing in the code in computer files and co-ordinating work on those files among multiple users. It is used to manage the project or a set of files as they change over time and Git store this information in a data structure called a git repository, which is actually a directory where all your project files and related metadata resides. It records the current state of the project by creating a tree graph from the index which is usually a form of directed acyclic graph.
Jenkins
These A continuous integration server which manages and control processes such as plan, code, build, test, deploy, operate and monitor in DevOps environment. As it is used to build and test your software projects continuously making it easier for developers to integrate changes into the project and making it easier for user to obtain a fresh build. You can use it to compile and test your code and then have to trigger deployments.
Jenkins Architecture: Jenkins Operation
When you make some changes in your Git, Jenkins is basically going to identify the changes and it is going to get that code build, test and deploy that code into one of three environments which are your test environment, release environment and production environment.
Docker
- Docker is a tool designed to create, deploy and run applications with ease by using containers.
- It allows a developer packaging of an application with all of the requirements such as libraries and other dependencies, ship it all as one package.
- It ensures that your application works seamlessly in any environment