Docker and Jenkins for DevOps Training Course

Duration

14 hours (usually 2 days including breaks)

Requirements

  • An understanding of software development

Audience

  • DevOps Engineers

Overview

Jenkins is an open sourced automation server for continuous integration and continuous delivery (CI/CD) . Docker is a service platform for delivering software in containers. Jenkins and Docker together optimizes and simplifies the CI/CD process by allowing for more reliable deployment and testing environments.

This instructor-led, live training (online or onsite) is aimed at DevOp engineers who wish to optimize and simplify the CI/CD process with Docker and Jenkins.

By the end of this training, participants will be able to:

  • Automate code delivery and pipeline deployment with Jenkins.
  • Build an application using Docker and Docker File.
  • Configure authentication options to strengthen security.

Format of the Course

  • Interactive lecture and discussion.
  • Lots of exercises and practice.
  • Hands-on implementation in a live-lab environment.

Course Customization Options

  • To request a customized training for this course, please contact us to arrange.

Course Outline

Introduction

Jenkins

  • Installation and configuration
  • Overview of functionality
  • Plugins
  • Pipeline creation tools
  • Reporting

Jenkins Pipeline

  • Jenkinsfile
  • Syntax
  • Blue Ocean
  • Good practices

Docker

  • Installation
  • Overview of functionality
  • Dockerfiles
  • Building images

Distributed environment

  • Adding nodes
  • Preparing SSH keys
  • Launching agents using SSH
  • Managing nodes
  • Security

Troubleshooting

  • Writing integration tests

Performance Testing using Gatling – Beginner Level

Learn performance testing using Gatling

Gatling Recorder with detailed explaination of each option

Gatling Development Environment Setup and Script basics

Script Creation & Enhancement

Workload creation in Gatling with basics of workload modelling

Gatling test report structure and metrics in detail

Requirements

  • Knowledge required to do performance testing from Gatling tool is covered from scratch – hence you are good to go even if you are a beginner in testing or development
  • Basic knowledge of any programming language is good to have

Description

Ensuring user experience when an application gets live is always critical and so is Performance testing. Performance testing already rules the testing domain, and as the trends say, it will remain crucial for businesses. Following Darwin’s theory, it is evolving and adapting to the needs of these days organizations. One cannot afford to stay behind and hence should embrace tools and technologies which meet testing demands of today’s app and environment.

Gatling comes in flying colours as it is powerful and perfect for DevOps environment. Once you know about Gatling, you will love to reap its benefits over traditional performance testing tools.

This course has been designed by two industry experts who excel in the field of performance testing backed by years of experience on complex applications. We have curated this course in such a manner to make our students learn in the simplest way possible. We understand that to learn any new concept hands-on is a must. Keeping this in mind our tutorials first make you comfortable with the concept and then we do a hands-on activity. We have picked real-life examples to demonstrate concepts.

We believe a good learner will always do by their hand and will surely come up with challenges. We are there to answer your queries and look into your issues whenever needed. You will love your decision to learn Gatling and picking our course.

Best of luck and happy learning!!

Who this course is for:

  • Testers, Developers, Test Managers
  • Anyone who wants to implement performance testing in personal or enterprise project
  • Anyone who is already doing traditional performance testing but wants to switch to a tool which matches the ongoing trends in software industry
  • Anyone who wants to reap benefits of powerful performance testing tool – Gatling

Course content

8 sections • 43 lectures • 3h 10m total lengthExpand all sections

Setting the stage5 lectures • 12min

  • Performance Testing Goals05:06
  • Gatling Introduction and Features03:26
  • Course Overview and Approach02:56
  • Questions and Feedback00:38
  • Useful Resources00:00

Get Started2 lectures • 8min

  • Install Gatling05:07
  • Bundle Structure03:14
  • Bundle Structure Quiz1 question

Gatling Recorder6 lectures • 23min

  • What you will learn in this Section01:06
  • Recorder UI01:08
  • Recorder Mode – HTTP Proxy08:19
  • Recorder Mode – HAR Converter04:43
  • Recorded Simulation Structure05:32
  • Run Recorded Simulation02:05
  • Recorder UI3 questions

Gatling Script Development Environment10 lectures • 28min

  • Development Environment – What you Need04:31
  • Create Gatling Project using Maven03:47
  • Understand Project Structure03:03
  • Create First Script – Let’s Start00:49
  • Create First Script – Add package and imports02:00
  • Create First Script – Class declaration and HTTP Config02:27
  • Create First Script – Add Scenario definition02:50
  • Create First Script – Add HTTP Header05:03
  • Create First Script – Add Simulation definition01:21
  • Create First Script – Run completed script01:58
  • Gatling Simulation Structure5 questions

Gatling Script Enhancement10 lectures • 1hr 15min

  • What you will learn in this Section01:38
  • Record a Script07:32
  • Pause Time08:45
  • Silent Requests and Resources09:20
  • Checks – Part 110:50
  • Checks – Part 208:37
  • Assertions09:08
  • Clearing Cache and Cookies02:30
  • Feeders12:44
  • Loops03:56

Simulation Setup2 lectures • 17min

  • User load simulation- Think before you script03:08
  • Load Simulation Using Gatling13:52
  • Simulation Setup2 questions

Gatling Performance Test Reports3 lectures • 15min

  • What you will learn in this Section01:40
  • Report Generation and Structure03:12
  • Gatling Performance Metrics in Detail10:01

Are you Gatling ready? Check yourself!5 lectures • 12min

  • Final Assignment- do it all05:21
  • Thank You00:56
  • References Used00:01
  • What Next – Gatling Advanced Level Course01:54
  • What you will learn in Gatling advanced level course03:55

Introduction to Automated Analysis

About this Course

This course introduces state-of-the-art techniques for automated analysis. Automated analysis encompasses both approaches to automatically generate a very large number of tests to check whether programs meet requirements, and also means by which it is possible to *prove* that software meets requirements and that it is free from certain commonly-occurring defects, such as divide-by-zero, overflow/underflow, deadlock, race-condition freedom, buffer/array overflow, uncaught exceptions, and several other commonly-occurring bugs that can lead to program failures or security problems. The learner will become familiar with the fundamental theory and applications of such approaches, and apply a variety of automated analysis techniques on example programs.

After completing this course, a learner will be able to: – Understand the foundations of automated verification: randomization and symbolic representations – Distinguish the strengths and weaknesses of random testing, symbolic analysis, static analysis, and model checking – Use a variety of state-of-the-art static analysis and automated testing tools for automated verification – Create executable requirements as an oracle suitable for automated testing and symbolic analysis – Understand how the choice of oracle affects fault-finding for automated analysis strategies. – Use automated testing to achieve full mutation coverage – Create a test plan that utilizes both manually-written tests and automated tests towards maximizing rigor, minimizing effort and time, and minimizing test costs. This course is intended for learners interested in understanding the principles of automation and the application of tools for analysis and testing of software This knowledge would benefit several typical roles: Software Engineer, Software Engineer in Test, Test Automation Engineer, DevOps Engineer, Software Developer, Programmer, Computer Enthusiast. We expect that you have some familiarity with the Software development Life-Cycle, an understanding of the fundamentals of software testing, similar to what is covered in the Introduction to Software Testing and Black-box and White-Box Testing Courses. Familiarity with an object-oriented language such as Java or ability to pick-up Java syntax quickly to write and modify code, and willingness to use tools and IDEs are assumed.

SKILLS YOU WILL GAIN

  • Software Testing
  • Formal Verification
  • Test Automation

Syllabus – What you will learn from this course

WEEK1

6 hours to complete

Introduction to Automated Analysis

In this module we will learn about a range of techniques for analysis of programs and methods to automate testing. Along the way we will learn how to specify properties of interest to check about a program and capture assumptions about the environment for effective testing. To reinforce some of the important concepts learned we will practice automated testing using effective tools on a concrete example.

8 videos

  • Introduction to Automated Analysis13m
  • Automated Analysis Techniques9m
  • Symbolic Representations12m
  • Property Specification8m
  • Environmental Specification and Assumptions6m
  • Parameterized Unit Testing using junit-quickcheck12m
  • Environmental Specifications in junit-quickcheck2m
  • (Optional) Installation of Eclipse and Gradle2m

1 reading

Overview and Syllabus10m

5 practice exercises

  • Introduction to Automated Analysis30m
  • Automated Analysis Techniques30m
  • Symbolic Representations30m
  • Property Specification30m
  • Environmental Specifications and Assumptions

WEEK2

6 hours to complete

Automated Test Generation

The focus of this module is to understand how various techniques can help us automate the generation of useful and numerous tests. We will examine ways to specify and use properties of the system and the environment to guide the generation of test data.

  • Overview of Automated Test Generation6m
  • Automated Test Generation using Random Testing14m
  • Automated Test Generation using Symbolic Execution15m
  • Automated Test Generation using Metaheuristic Search16m
  • Property-Based Testing for Real-Time Systems6m
  • Biasing Input Values in junit-quickcheck6m
  • Using Generators to Create Complex Inputs in junit-quickcheck9m
  • Explanation of Test Harness and Assignment for Microwave Example8m

4 practice exercises

  • Overview of Automated Test Generation7m
  • Automated Test Generation using Random Testing30m
  • Automated Test Generation Using Metaheuristic Search12m
  • Property-Based Testing for Real-Time Systems30m

WEEK3

Static Analysis

5 hours to complete

The goal of this module is to introduce the learner to the principles of statically analyzing programs, understand how analysis techniques work by looking at some example analyses, and some good practices to follow when designing programs to enable the tools to help us detect and avoid defects. The learner will gain an understanding of using static analysis tools by looking at one concrete tool.

5 videos

  • What is Static Analysis14m
  • Dataflow Analysis16m
  • Program Wellformedness Properties12m
  • Designing programs for analyzability9m
  • Static Analysis with Infer11m

1 reading

Analysis Exercise with Infer2h

3 practice exercises

  • What is static analysis?30m
  • Designing programs for analyzability30m
  • Summative Review30m

WEEK4

3 hours to complete

Effective Automated Verification

This module will examine how to use effective automation techniques for a variety of purposes such as performing effective regression testing, discovering security vulnerabilities and monitoring software at run-time for critical properties.

6 videos

  • Automating Regression Testing10m
  • Automating Security Testing Using Fuzz Testing14m
  • Runtime Monitoring7m
  • Where Automation Fails9m
  • Using Multiple Methods Effectively9m
  • The Evolution of Software Testing10m

2 readings

  • Fuzz Testing with AFL10m
  • Runtime Monitoring Tools10m

4 practice exercises

  • Automating Regression Testing30m
  • Automating Security Testing Using Fuzz Testing30m
  • Runtime Monitoring30m
  • Summative Review of Week 4 material

Machine Learning for Elasticsearch

The Elasticsearch Platform natively integrates powerful machine learning and AI into solutions — helping you build applications users crave and get work done faster.

Everyone can find answers and insights with Elastic machine learning

Get immediate value from machine learning with domain-specific use cases built right into Elasticsearch. With observability, search, and security solutions, DevOps engineers, SREs, and security analysts can get started right away. No prior experience with machine learning required.

Teams can automate anomaly detection and root cause analysis, reducing mean time to repair (MTTR). In addition, built-in capabilities such as natural language processing (NLP) and vector search help teams implement search experiences that are easier for end users.

Use Elastic machine learning to:

  • Identify unusually slow response times directly from the APM service map
  • Discover unusual behavior and proactively address security threats
  • Customize anomaly detection for any type of data with easy-to-use wizard-based workflows
  • Enhance search experiences by enriching the ingested data with predictions

Automate alerts and identify root cause in observability

Accelerate problem detection and resolution with automated anomaly detection, correlations, and other AIOps capabilities built into Elastic Observability. DevOps and SRE teams can identify unusually slow response times directly from the APM service map. You can apply machine learning without having to configure models.

Threat hunting powered by Machine learning

Machine learning powers threat detection in Elastic Security. You can reduce mean time to resolution (MTTR) by automatically identifying unusual activity in the SIEM app. For threats that are difficult to identify, supervised models can disambiguate suspicious from benign activity, for example for living off the land attacks or domain generated algorithms.

Take search experiences to the next level

With Elasticsearch, you can build search-powered applications using natively run vector search and NLP to achieve superior search relevance, performance, and personalization. Reference the models while configuring the ingestion pipeline, as shown on the right.

Actionable insights in minutes with Elasticsearch machine learning

Apply Elastic machine learning to your data to:

  • Natively integrate machine learning on a scalable and performant platform
  • Apply unsupervised learning and preconfigured models that identify observability and security issues without having to worry about how to train an AI model
  • Leverage actionable analytics that proactively surface threats and anomalies, accelerate problem resolution, identify customer behavioral trends, and improve your digital experiences

To apply Elastic machine learning, you don’t need to have a data science team or design a system architecture. Our machine learning capabilities allow you to quickly get started! There’s no need to move data to a third-party framework for model training.

For those use cases that require custom models and optimized performance, our tools let you adjust parameters and import optimized models from the PyTorch framework.

Elastic machine learning capabilities and their use cases

Ingest, understand and build models with your data

Elastic’s out-of-the-box integrations make data ingestion and connecting to other data sources easy. Once your data is in Elasticsearch, you can visualize and gain initial insights in minutes.

Elastic’s open, common data model, Elastic Common Schema (ECS), gives you the flexibility to collect, store, and visualize any data. This includes metrics, logs, traces, content, and events from your apps and infrastructure. To start, choose your ingest method. Options include Elastic Agent, web crawler, data connectors, and APIs, and we have native integrations with all major cloud providers. Once your data is in Elastic, built-in tools — like Data Visualizer — help you identify fields in your data that would pair well with machine learning.

No experience applying machine learning? Apply the preconfigured models for observability and security. If those don’t work well enough on your data, in-tool wizards guide you through the few steps needed to configure custom anomaly detection and train supervised learning.

  • Ingestion
  • Data Visualizer
  • Machine Learning Wizards

Accurate anomaly and outlier detection out-of-the-box

Unsupervised machine learning with Elastic helps you find patterns in your data. Use time series modeling to detect anomalies in single or multiple time series, population data, and forecast trends based on historical data.

You can also detect anomalies in logs by grouping messages, and uncover root causes by reviewing anomaly influencers or fields correlated with deviations from baselines.

Screenshot of Machine Learning anomaly

Supervised machine learning with operational ease

To categorize your data and make predictions, train classification or regression models using data frame analytics in Elastic. Supervised models get you closer to the root cause of issues and can drive intelligent decisions in your applications.

You can use continuous index to convert application logs index into a user-centric activity view and build a fraud detection model using classification. Then you can apply your models to your incoming data at ingest, all without ever leaving Elastic.

Vector search and modern natural language processing

Vector semantic search lets your users find what they mean, instead of being limited to keywords. They can search through textual data, images, and other unstructured data.

With Elastic machine learning, you can implement semantic search to make digital experiences more intuitive and results more relevant. Examples include:

  • Ecommerce product similarity search that displays relevant alternative products
  • Job recommendation and online dating — match based on profile compatibility, while restricting search by geolocation
  • Patent search — retrieve patents whose textual descriptions are similar

To get started, Elastic lets you import pre-trained BERT-like PyTorch models from hubs, like Huggingface.co, or the CLIP model from OpenAI. Learn more about implementing image similarity with Elastic.