AGENDA OF THE FULL STACK DEVELOPERS


  • Lets Understand about Software Development Model
  • Overview of Waterfall Development Model
  • Challenges of Waterfall Development Model
  • Overview of Agile Development Model
  • Challenges of Agile Development Model
  • Requirement of New Software Development Model
  • Understaning a existing Pain and Waste in Current Software Development Model
  • What is DevOps?
  • Transition in Software developement model
    • - Waterfall -> Agile -> CI/CD -> DevOps -> DevSecOps
  • Understand DevOps values and principles
  • Culture and organizational considerations
  • Communication and collaboration practices
  • Improve your effectiveness and productivity
  • DevOps Automation practices and technology considerations
  • DevOps Adoption considerations in an enterprise environment
  • Challenges, risks and critical success factors
  • What is DevSecOps?
  • Lets Understand DevSecOps Practices and Toolsets.
  • What is SRE?
  • Lets Understand SRE Practices and Toolsets.
  • List of Tools to become Full Stack Developer/QA/SRE/DevOps/DevSecOps

Microservices Fundamentals

Microservices Patterns

  • Choreographing Services
  • Presentation components
  • Business Logic
  • Database access logic
  • Application Integration
  • Modelling Microservices
  • Integrating multiple Microservices
What and When to test
Preparing for deployment
Monitoring Microservice Performance
Tools used for Microservices Demo using container



Keeping it simple
  • Avoiding Breaking Changes
  • Choosing the right protocols
  • Sync & Async
  • Dealing with legacy systems
  • Testing
  • Installing CentOS7 and Ubuntu
  • Accessing Servers with SSH
  • Working at the Command Line
  • Reading Files
  • Using the vi Text Editor
  • Piping and Redirection
  • Archiving Files
  • Accessing Command Line Help
  • Understanding File Permissions
  • Accessing the Root Account
  • Using Screen and Script
  • Overview of Hypervisor
  • Introduction of VirtualBox
  • Install VirtualBox and Creating CentOS7 and Ubuntu Vms
  • Understanding Vagrant
  • Basic Vagrant Workflow
  • Advance Vagrant Workflow
  • Working with Vagrant VMs
  • The Vagrantfile
  • Installing Nginx
  • Provisioning
  • Networking
  • Sharing and Versioning Web Site Files
  • Vagrant Share
  • Vagrant Status
  • Sharing and Versioning Nginx Config Files
  • Configuring Synced Folders
  • Introduction of AWS
  • Understanding AWS infrastructure
  • Understanding AWS Free Tier
  • IAM: Understanding IAM Concepts
  • IAM: A Walkthrough IAM
  • IAM: Demo & Lab
  • Computing:EC2: Understanding EC2 Concepts
  • Computing:EC2: A Walkthrough EC2
  • Computing:EC2: Demo & Lab
  • Storage:EBS: Understanding EBS Concepts
  • Storage:EBS: A Walkthrough EBS
  • Storage:EBS: Demo & Lab
  • Storage:S3: Understanding S3 Concepts
  • Storage:S3: A Walkthrough S3
  • Storage:S3: Demo & Lab
  • Storage:EFS: Understanding EFS Concepts
  • Storage:EFS: A Walkthrough EFS
  • Storage:EFS: Demo & Lab
  • Database:RDS: Understanding RDS MySql Concepts
  • Database:RDS: A Walkthrough RDS MySql
  • Database:RDS: Demo & Lab
  • ELB: Elastic Load Balancer Concepts
  • ELB: Elastic Load Balancer Implementation
  • ELB: Elastic Load Balancer: Demo & Lab
  • Networking:VPC: Understanding VPC Concepts
  • Networking:VPC: Understanding VPC components
  • Networking:VPC: Demo & Lab
  • What is Virtualization?
  • What is Containerization?
  • Why Containerization?
  • How Docker is good fit for Containerization?
  • How Docker works?
  • Docker Architecture
  • Docker Installations & Configurations
  • Docker Components
  • Docker Engine
  • Docker Image
  • Docker Containers
  • Docker Registry
  • Docker Basic Workflow
  • Managing Docker Containers
  • Creating our First Image
  • Understading Docker Images
  • Creating Images using Dockerfile
  • Managing Docker Images
  • Using Docker Hub registry
  • Docker Networking
  • Docker Volumes
  • Deepdive into Docker Images
  • Deepdive into Dockerfile
  • Deepdive into Docker Containers
  • Deepdive into Docker Networks
  • Deepdive into Docker Volumes
  • Deepdive into Docker Volume
  • Deepdive into Docker CPU and RAM allocations
  • Deepdive into Docker Config
  • Docker Compose Overview
  • Install & Configure Compose
  • Understanding Docker Compose Workflow
  • Understanding Docker Compose Services
  • Writing Docker Compose Yaml file
  • Using Docker Compose Commands
  • Docker Compose with Java Stake
  • Docker Compose with Rails Stake
  • Docker Compose with PHP Stake
  • Docker Compose with Nodejs Stake
  • Overview of Jira
  • Use cases of Jira
  • Architecture of Jira
  • Installation and Configuraration of Jira in Linux
  • Installation and Configuraration of Jira in Windows
  • Jira Terminologies
  • Understanding Types of Jira Projects
  • Working with Projects
  • Working with Jira Issues
  • Adding Project Components and Versions
  • Use Subtasks to Better Manage and Structure Your Issues
  • Link Issues to Other Resources
  • Working in an Agile project
  • Working with Issues Types by Adding/Editing/Deleting
  • Working with Custom Fields by Adding/Editing/Deleting
  • Working with Screens by Adding/Editing/Deleting
  • Searching and Filtering Issues
  • Working with Workflow basic
  • Introduction of Jira Plugins and Addons.
  • Jira Integration with Github
  • Exploring Confluence benefits and resources
  • Configuring Confluence
  • Navigating the dashboard, spaces, and pages
  • Creating users and groups
  • Creating pages from templates and blueprints
  • Importing, updating, and removing content
  • Giving content feedback
  • Watching pages, spaces, and blogs
  • Managing tasks and notifications
  • Backing up and restoring a site
  • - Add/Edit/Delete new users
  • - Adding group and setting permissions
  • - Managing user permissions
  • - Managing addons or plugins
  • - Customizing confluence site
  • - Evaluation options for Confluence
  • - Supported platforms
  • - Installing Confluence on Windows
  • - Activating Confluence trial license
  • - Finalizing Confluence Installation
  • Introduction
  • Setup Java Development Environment
  • Java Language Fundamental
  • Arrays and Loops
  • Java Methods
  • Conditioning and Looping in Java
  • Exception Handling
  • Basics of Oops in Java
  • Create a Java Package using Jar
  • Creating Basic Java Web Based application
  • Create a Java Package using War
  • Deploy Web App in Tomcat Environment
  • Interpreted languages
  • Advantages and disadvantages
  • Downloading and installing
  • Which version of Python
  • Where to find documentation
  • Running Python Scripts
  • String types: normal, raw and Unicode
  • String operators and expressions
  • Math operators and expressions
  • Writing to the screen
  • Command line parameters
  • Reading from the keyboard
  • Flow Control
  • Using the interpreter interactively
  • Running standalone scripts under Unix and Windows
  • Getting Started
  • Indenting is significant
  • The if and elif statements
  • while loops
  • Using lists
  • Using the for statement
  • The range() function
  • Sequence Data
  • list methods
  • Strings are special kinds of lists
  • tuples
  • sets
  • Dictionaries
  • Defining Functions
  • Opening a text file
  • Reading text files
  • Raw (binary) data
  • Using the pickle module
  • Writing to a text file
  • Dictionaries and Sets
  • Formal parameters
  • Global versus local variables
  • Passing parameters and returning values
  • Working with Files
  • Creating dictionaries
  • Creating dictionaries
  • Fetching keys or values
  • Testing for existence of elements
  • Deleting elements
  • Errors and Exception Handling
  • What is HTML
  • WHY HTML
  • HTML Anatomy
  • Intro To Brackets
  • Introduction
  • HTML First Page
  • Body and self closing tags
  • Headings
  • Paragraph And Span
  • HTML Formating
  • images
  • Brackets Extensions
  • Tables
  • div
  • What is CSS?
  • Why CSS?
  • CSS Syntax And Element Selectors
  • Class Selector
  • ID Selector
  • More About Selectors
  • Chaining Selectors
  • JavaScript
  • Getting Started
  • JavaScript Basics
  • JavaScript Operators
  • JavaScript ControlFlow
  • JavaScript Objects
  • JavaScript Arrays
  • JavaScript Functions
  • Getting Started
  • JavaScript Basics
  • JavaScript Operators
  • JavaScript ControlFlow
  • JavaScript Objects
  • JavaScript Arrays
  • JavaScript Functions

Project - Website Design using HTML, CSS and JS.
  • Understanding version control
  • The history of Git
  • About distributed version control
  • Who should use Git?
  • Installing Git on a Mac
  • Installing Git on Windows
  • Installing Git on Linux
  • Configuring Git
  • Exploring Git auto-completion
  • Using Git help
  • Initializing a repository
  • Understanding where Git files are stored
  • Performing your first commit
  • Writing commit messages
  • Viewing the commit log
  • Exploring the three-trees architecture
  • The Git workflow
  • Using hash values (SHA-1)
  • Working with the HEAD pointer
  • Adding files
  • Editing files
  • Viewing changes with diff
  • Viewing only staged changes
  • Deleting files
  • Moving and renaming files
  • Using Git with a Real Project
  • Introducing the Explore California web site
  • Initializing Git
  • Editing the support phone number
  • Editing the backpack file name and links
  • Undoing working directory changes
  • Unstaging files
  • Amending commits
  • Retrieving old versions
  • Reverting a commit
  • Using reset to undo commits
  • Demonstrating a soft reset
  • Demonstrating a mixed reset
  • Demonstrating a hard reset
  • Removing untracked files
  • Using .gitignore files
  • Understanding what to ignore
  • Ignoring files globally
  • Ignoring tracked files
  • Tracking empty directories
  • Referencing commits
  • Exploring tree listings
  • Getting more from the commit log
  • Viewing commits
  • Comparing commits
  • Branching overview
  • Viewing and creating branches
  • Switching branches
  • Creating and switching branches
  • Switching branches with uncommitted changes
  • Comparing branches
  • Renaming branches
  • Deleting branches
  • Configuring the command prompt to show the branch
  • Merging code
  • Using fast-forward merge vs. true merge
  • Merging conflicts
  • Resolving merge conflicts
  • Exploring strategies to reduce merge conflicts
  • Fast Forward Merge
  • Three way Merge
  • Rebasing
  • Saving changes in the stash
  • Viewing stashed changes
  • Retrieving stashed changes
  • Deleting stashed changes
  • Using local and remote repositories
  • Adding a remote repository
  • Creating a remote branch
  • Cloning a remote repository
  • Tracking remote branches
  • Pushing changes to a remote repository
  • Fetching changes from a remote repository
  • Merging in fetched changes
  • Checking out remote branches
  • Pushing to an updated remote branch
  • Deleting a remote branch
  • Enabling collaboration
  • A collaboration workflow
  • Setting up aliases for common commands
  • Using SSH keys for remote login
  • Exploring integrated development environments
  • Exploring graphical user interfaces
  • Understanding Git hosting
  • Conclusion
  • Lightweight tags
  • Annotated tags
  • Signed Tags
  • Create tags in Git
  • Create tags in Stash
  • Checkout tags in Git
  • How to view tags
  • How to checkout tags
  • Installing SonarQube
  • Analyzing Source Code
  • UI Tips
  • Browsing a Project
  • Issues
  • Measures
  • Plugin Library
  • Local and Branch Analysis
  • Web Services API
  • Coding new Rules
  • API Basics
  • Internationalization
  • Learning MySQL 8
  • Getting to Know the MySQL 8 Architecture
  • Installation via Package Manager
  • Installation via Manual Package
  • Upgrading an Existing Database to MySQL 8
  • Using Tools to Access the Database
  • Getting to Know Your Database
  • Changing Configuration Parameters in my.cnfChanging MySQL Configuration Parameters Online
  • Essential MySQL Configuration Parameters
  • Accessing the Data Dictionary
  • Essential InnoDB
  • Creating Databases and Users for Applications
  • Managing Users
  • Performing Basic Troubleshooting
  • Learning SQL: Querying Data
  • Learning SQL: Inserting and Modifying Data
  • Learning SQL: Design Databasest
  • What is Gradle?
  • Why Gradle?
  • Installing and Configuring Gradle
  • Build Java Project with Gradle
  • Build C++ Project with Gradle
  • Build Python Project with Gradle
  • Dependency Management in Gradle
  • Project Structure in Gradle
  • Gradle Tasks
  • Gradle Profile and Cloud
  • Gradle Properties
  • Gradle Plugins

Artifactory

  • Artifactory Overview
  • Understanding a role of Artifactory in DevOps
  • System Requirements
  • Installing Artifactory in Linux
  • Using Artifactory
  • Getting Started
  • General Information

  • Artifactory Terminology
  • Artifactory Repository Types
  • Artifactory Authentication
  • Deploying Artifacts using Maven
  • Download Artifacts using Maven
  • Browsing Artifactory
  • Viewing Packages
  • Searching for Artifacts
  • Manipulating Artifacts
Packer
  • What is Packer?
  • Save What is Packer?
  • Installing Packer
  • Save Installing Packer
  • The Packer workflow and components
  • Save The Packer workflow and components
  • The Packer CLI
  • Save The Packer CLI
  • Select an AWS AMI base
  • Save Select an AWS AMI base
  • Automate AWS AMI base build
  • Save Automate AWS AMI base build
  • Using build variables
  • Save Using build variables
  • Provision Hello World
  • Save Provision Hello World
  • Provision a basic site
  • Save Provision a basic site
  • Simplify provisioning with a config tool
  • Save Simplify provisioning with a config tool
  • Use ansible to install the webserver
  • Save Use ansible to install the webserver
  • Debugging
  • Save Debugging
  • Use Ansible modules to harden our image
  • Save Use Ansible modules to harden our image
  • Baking a Jenkins image
  • Save Baking a Jenkins image
  • Validate Packer templates
  • Save Validate Packer templates
  • Create a manifest profile
  • Save Create a manifest profile
  • Testing
  • Save Testing
  • CI pipeline
  • Save CI pipeline
  • Bootstrap Overview
  • Bootstrap Environment Setup
  • Bootstrap Grid System
  • Bootstrap CSS Overview
  • Bootstrap Typography
  • Bootstrap Code
  • Bootstrap Tables
  • Bootstrap Forms
  • Bootstrap Buttons
  • Bootstrap Images
  • Bootstrap Helper Classes
  • Bootstrap Responsive utilities
  • Bootstrap Thumbnails
  • Bootstrap Alerts
  • Bootstrap Progress Bars
  • Bootstrap Media Object
  • Bootstrap List Group
  • Bootstrap Panels
  • Bootstrap Wells
  • Bootstrap Tab Plugin
  • Bootstrap Tooltip Plugin
  • Bootstrap Popover Plugin
  • Bootstrap Alert Plugin
  • Bootstrap Button Plugin
  • Bootstrap Collapse Plugin
  • Bootstrap Carousel Plugin
  • Introduction to jQuery
  • Why use jQuery?
  • Getting Started with jQuery
  • Using Content Delivery Networks
  • Using the jQuery ready() Function
  • Getting to Know the jQuery Documentation
  • Using jQuery Selectors
  • Interacting with DOM
  • jQuery Handling Events
  • Working with Ajax features
  • Introduction
  • About NGINX
  • NGINX vs Apache
  • Test your knowledge
  • Server Overview
  • Installing with a Package Manager
  • Building Nginx from Source & Adding Modules
  • Adding an NGINX Service
  • Nginx for Windows
  • Test your knowledge
  • Headers & Expires
  • Compressed Responses with gzip
  • FastCGI Cache
  • HTTP2
  • Server Push
  • HTTPS (SSL)
  • Rate Limiting
  • Basic Auth
  • Hardening Nginx
  • Test your knowledge
  • Let's Encrypt - SSL Certificates
  • Understanding Configuration Terms
  • Creating a Virtual Host
  • Location blocks
  • Variables
  • Rewrites & Redirects
  • Try Files & Named Locations
  • Logging
  • Inheritance & Directive types
  • PHP Processing
  • Worker Processes
  • Buffers & Timeouts
  • Adding Dynamic Modules
  • Test your knowledge
  • What Is Spring?
  • Architecture and Project Setup
  • Spring Configuration Using Java
  • Spring Scopes and Autowiring
  • Spring Configuration Using XML
  • Advanced Bean Configuration
Junit Fundamental
  • What is Unit Testing
  • Tools for Unit Testing
  • What is Junit?
  • How to configure Junit?
  • Writing Basic Junit Test cases
  • Running Basic Junit Test cases
  • Junit Test Results
PyTest Fundamental
  • What is PyTest?
  • How to configure PyTest?
  • Writing Basic PyTest Test cases
  • Running Basic PyTest Test cases
  • PyTest Test Results
  • What is Continuous Integration
  • Benefits of Continuous Integration
  • What is Continuous Delivery
  • What is Continuous Deployment
  • Continuous Integration Tools
  • Jenkins Vs TeamCity Vs Bamboo
  • History of Jenkins
  • Release of Jenkins
  • Jenkins Vs Jenkins Enterprise
  • Prerequisites
  • Installing Jenkins using Yum
  • Installing Jenkins using Apt
  • Installing Jenkins using MSI
  • Installing Jenkins using Tomcat
  • Installing as a Service
  • Starting and Stopping Jenkins
  • Understand Freestyle Project
  • Freestyle General Tab
  • Freestyle Source Code Management Tab
  • Freestyle Build Triggers Tab
  • Freestyle Build Environment
  • Freestyle Build
  • Freestyle Post-build Actions
  • Manage Jenkins
  • My Views
  • Credentials
  • People
  • Build History
  • Simple Java and Maven Based Application
  • Simple Java and Ant Based Application
  • Simple Java and Grovy Based Application
  • Simple DOTNET and MSBuild Based Application
  • Simple C++ using Batch Application
  • Manually Building
  • Build Trigger based on fixed schedule
  • Build Trigger by script
  • Build Trigger Based on pushed to git
  • Jenkins Jobs parameterised
  • Execute concurrent builds
  • Jobs Executors
  • Build Other Projects
  • Build after other projects are built
  • Throttle Builds
  • Installing a Plugin
  • Plugin Configuration
  • Updating a Plugin
  • Plugin Wiki
  • Top 20 Useful Jenkins Plugins
  • Using Jenkins Pluginss Best Practices
  • Adding a Linux Node
  • Adding a Windows Nodes
  • Nodes Management using Jenkins
  • Jenkins Nodes High Availability
  • Jira
  • Git
  • SonarQube
  • Maven
  • Junit
  • Chef
  • Puppet
  • Ansible
  • Docker
  • AWS
  • Jacoco
  • Coverity
  • Selenium
  • Gradle
  • Terraform
  • Packer
  • Junit Report
  • SonarQube Reports
  • Jacoco Reports
  • Coverity Reports
  • Selenium Reports
  • Test Results
  • Cucumber Reports
  • Adding a Linux Node
  • Adding a Windows Nodes
  • Nodes Management using Jenkins
  • Jenkins Nodes High Availability
  • CI Build Pipeline & Dashboard
  • Email Notification
  • Advance Email Notification
  • Slack Notification
  • Security in Jenkins
  • Authorization in Jenkins
  • Authentication in Jenkins
  • Managing folder/subfolder
  • Jenkins Upgrade
  • Jenkins Backup
  • Jenkins Restore
  • Jenkins Command Line