Class Central is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

Udemy

DevOps Engineering - A Complete Guide

via Udemy

Overview

Learn DevOps with Git, Apache Maven, JUnit, Apache Log4j. Get build automation, testing skills to become DevOps Engineer

What you'll learn:
  • Introduction to DevOps
  • Git and GitHub, Apache Maven, JUnit, Log4j
  • Become a DevOps Engineer and/or Project Manager
  • Version Control System
  • Git Introduction, Installation, Workflow
  • Working with Repositories and Creating Remote Repository
  • Add existing project to GitHub using Git Bash
  • Deleting Files
  • Working with Branches
  • Maven Introduction, Downloading and Installing Maven
  • Maven Repositories
  • Creating Maven Standalone Project in CLI
  • What are JAR, WAR, EAR files
  • Maven Build Life Cycle
  • Developing Standalone Maven Project in Non-Interactive Mode
  • Running Test Cases with Maven
  • Creating Maven Web Project in CLI
  • Creating Maven Standalone Project and Maven Web Project through IDE
  • Adding Dependencies to pom xml
  • Dependency Chain and Maven Scopes
  • JUnit Introduction and Adding JUnit5 dependency in Maven project
  • JUnit5 Annotations and @RepeatedTest Annotation
  • JUnit5 Assertions and Timeouts
  • JUnit5 Expected Exceptions
  • JUnit5 Parameterized Tests
  • JUnit5 How to run Unit Test with Maven
  • JUnit5 Tagging and Filtering
  • Hamcrest Framework
  • Unit Testing on Spring Boot Repository
  • Spring Boot Integration Testing
  • Introduction to Log4j
  • Log4j Components and Implementation
  • Working with Log4j Properties

A warm welcome to the DevOps Engineering course by Uplatz.


Uplatz provides this comprehensive training on DevOps covering four of the most important and popular elements constituting an integrated DevOps system. This DevOps course focuses on the detailed understanding and implementation of:

  1. Git and GitHub - free, open source, distributed version control system

  2. Apache Maven - tool for build automation including software project management and comprehension

  3. JUnit - unit testing framework for the Java programming language

  4. Apache Log4j - java-based logging utility and reliable, fast and flexible logging framework (APIs)


The term 'DevOps' was introduced by combining software “development” (Dev) and “operations” (Ops.) The aforesaid term was coined by Patrick Debois in 2009 to make way for quick and effective delivery of software updates, bug fixes, and features.


DevOps, essentially as an approach or a work culture, is implemented by the right amalgamation of collaboration, automation, integration, continuous delivery, testing and supervising.

Prior to the introduction of DevOps, the traditional or classic waterfall model was followed for software delivery. This process model involved a sequential flow of a defined set of phases where the output of one phase becomes the input of the next phase. Therefore, all the phases are dependent on each other, and the completion of one phase marks the beginning of the other. Despite the simplicity of SDLC, it has been found to have several defects. It has been observed that in the ever-changing contemporary world, a business is met with multifaceted problems which require quick fixes. Changes in the product like adding new features, fixing bugs, etc. require it to go through at least a few different silos in traditional SDLC, causing delays and increasing cost.

DevOps resolves these bottlenecks and is a more inclusive approach to the software development process, where the development and operations teams work collaboratively on the project. Resultantly, the software development life cycle is shortened with the help of faster feedback loops for more frequent delivery of updates and features.

Considering the most important elements of DevOps viz. consistency (version control), build automation, testing, logging & supervision, this course covers the most popular tools & technologies used in DevOps. This DevOps course will help you learn the important DevOps building blocks and tools viz. Git, Maven, JUnit, and Log4j, thus opening a world of opportunities for you in DevOps engineering and project management.


DEVOPS - Course Curriculum

The DevOps course curriculum is divided into:

  1. DevOps Introduction

  2. Git and GitHub

  3. Maven

  4. JUnit 5

  5. Log4j

Detailed course topics of each of the above components are mentioned here.


Git - Course Syllabus


  • Version Control System

  • Git Introduction

  • Git Installation

  • Git Workflow

  • Creating Remote Repository

  • How to add existing project to GitHub using Git Bash

  • Working with Repositories

  • Deleting Files

  • Working with Branches


Apache Maven - Course Syllabus


  • Maven Introduction

  • Downloading and Installing Maven

  • Maven Repositories

  • Creating Maven Standalone Project in CLI

  • What are JAR, WAR, EAR files

  • Maven Build Life Cycle

  • Developing Standalone Maven Project in Non-Interactive Mode

  • Running Test Cases with Maven

  • Creating Maven Web Project in CLI

  • Creating Maven Standalone Project through IDE

  • Creating Maven Web Project through IDE

  • Adding Dependencies to pom.xml

  • Dependency Chain

  • Maven Scopes


JUnit - Course Syllabus


  • JUnit Introduction

  • Adding JUnit 5 dependency in Maven project

  • JUnit 5 Annotations

  • JUnit 5 RepeatedTest Annotation

  • JUnit 5 Assertions

  • JUnit 5 Timeouts

  • JUnit 5 Expected Exceptions

  • JUnit 5 Parameterized Tests

  • JUnit 5 How to run Unit Test with Maven

  • JUnit 5 Tagging and Filtering

  • Hamcrest Framework

  • Unit Testing on Spring Boot Repository

  • Spring Boot Integration Testing


Log4j - Course Syllabus


  • Introduction to Log4j

  • Log4j Components and Implementation

  • Working with Log4j Properties


Git

Git is an open-source distributed version control system. It is designed to handle minor to major projects with high speed and efficiency. It is developed to co-ordinate the work among the developers.

By far, the most widely used modern version control system in the world today is Git. Git is a mature, actively maintained open source project originally developed in 2005 by Linus Torvalds, the famous creator of the Linux operating system kernel. A staggering number of software projects rely on Git for version control, including commercial projects as well as open source. Developers who have worked with Git are well represented in the pool of available software development talent and it works well on a wide range of operating systems and IDEs (Integrated Development Environments).

Git has been designed with the integrity of managed source code as a top priority. The content of the files as well as the true relationships between files and directories, versions, tags and commits, all of these objects in the Git repository are secured with a cryptographically secure hashing algorithm called SHA1. In simple words, Git is a modern and widely used distributed version control system in the world. It is developed to manage projects with high speed and efficiency. The version control system allows us to monitor and work together with our team members at the same workspace.


GitHub

GitHub is a code hosting platform for version control and collaboration. It lets you and others work together on projects from anywhere. GitHub is a web-based platform used for version control. Git simplifies the process of working with other people and makes it easy to collaborate on projects. Team members can work on files and easily merge their changes in with the master branch of the project.

GitHub provides code hosting services that allow developers/people to build software for open source and private projects in organizations. GitHub is a Git repository hosting service, but it adds many of its own features. While Git is a command line tool, GitHub provides a Web-based graphical interface. It also provides access control and several collaboration features, such as a wikis and basic task management tools for every project.

At a high level, GitHub is a website and cloud-based service that helps developers store and manage their code, as well as track and control changes to their code. Specifically, Git is a distributed version control system, which means that the entire codebase and history is available on every developer’s computer, which allows for easy branching and merging.


Apache Maven

Maven is an automation and management tool developed by Apache Software Foundation. It is written in Java Language to build projects written in C#, Ruby, Scala, and other languages. It allows developers to create projects, dependency, and documentation using Project Object Model and plugins. It has a similar development process as ANT, but it is more advanced than ANT. Maven can also build any number of projects into desired output such as jar, war, metadata.

Maven is a powerful software project management and comprehension tool that is based on POM (Project Object Model). It is used for projects build, dependency and documentation. It simplifies the build process like ANT. But it is too much advanced than ANT. In summary, we can say that maven is a tool that can be used for building and managing any Java-based project. maven make the day-to-day work of Java developers easier and generally help with the comprehension of any Java-based project.

No matter how small or large, all applications must undergo a specific series of processes, such as generating and compiling source code. Developers can manually configure these processes, but it’s a time-consuming burden. To solve this issue, we use Apache Maven, which automates the entire process and makes Java developers’ daily work easier.


JUnit

JUnit is a unit testing framework for Java programming language. JUnit has been important in the development of test-driven development, and is one of a family of unit testing frameworks collectively known as xUnit, that originated with JUnit. So in essence, JUnit is an open source Unit Testing Framework for Java and is useful for Java Developers to write and run repeatable tests. Erich Gamma and Kent Beck initially developed it. It is an instance of xUnit architecture. As the name implies, it is used for Unit Testing of a small chunk of code.

A JUnit test is a method contained in a class which is only used for testing. This is called a Test class. To define that a certain method is a test method, annotate it with the Test annotation. This method executes the code under test. JUnit is used primarily to test each and every unit or component of your application like classes and methods. It helps to write and run repeatable automated tests, to ensure your code runs as intended. The framework offers support to Selenium for automation testing web-apps or websites.

Developers who are following test-driven methodology must write and execute unit test first before any code. Once you are done with code, you should execute all tests, and it should pass. Every time any code is added, you need to re-execute all test cases and makes sure nothing is broken.


Apache Log4j

Apache Log4j is a java-based logging utility and can be considered as a reliable, fast and flexible logging framework (APIs) written in Java, which is distributed under the Apache Software License. In other words, Log4j is a popular logging package written in Java. Log4j has been ported to the C, C++, C#, Perl, Python, Ruby, and Eiffel languages.

Log4j is an open-source logging API for java. Simply the logging means some way to indicate the state of the system at runtime. Logs are used to capture and persists the important data and make it available for analysis at any point in time. The API for Log4j is separate from the implementation making it clear for application developers which classes and methods they can use while ensuring forward compatibility. This allows the Log4j team to improve the implementation safely and in a compatible manner.

Log4j is a tool that basically helps the programmer output log statements to a variety of output targets. In case of problems with an application, it is helpful to enable logging so that the problem can be located. With Log4j it is possible to enable logging at runtime without modifying the application binary.


Benefits of DevOps

  1. Ensure faster deployment

  2. Stabilize work environment

  3. Significant improvement in product quality

  4. Automation

  5. Agility

  6. Continuous delivery of software

  7. Fast and reliable problem-solving techniques

  8. Transparency and high productivity

  9. Minimal cost of production

Taught by

Uplatz Training

Reviews

4.3 rating at Udemy based on 152 ratings

Start your review of DevOps Engineering - A Complete Guide

Never Stop Learning.

Get personalized course recommendations, track subjects and courses with reminders, and more.

Someone learning on their laptop while sitting on the floor.