Visão Geral
Curso DevOps Multiplatform Fomacao Microservices, Neste momento da industria 4.0, se você estiver atuando na à indústria de TI ou à comunidade de software, certamente já ouviu falar sobre o conjunto de habilidades de tendência "DevOps". Definitivamente, é benéfico e muito gratificante obter conhecimento e certificação em DevOps.
DevOps é uma abordagem moderna do processo de desenvolvimento de software que supera os desafios dos modelos de trabalho anteriores, onde agora as equipes de desenvolvimento e operação trabalham juntas em colaboração e compartilham responsabilidades de ponta a ponta, desde a coleta de requisitos >> Design do sistema >> Implementação do sistema >> Teste do sistema >> Implantação do sistema >> Manutenção e monitoramento do sistema e coleta de feedback dos usuários finais,
DevOps Como parte deste curso, você seria forte em tecnologia. Você aprenderia Linux, Python, DevOps, Docker, Jira, Git, SonarQube, Maven, Nexus, Ansible, Jenkins, Kubernetes, Datadog, Splunk, NewRelic, Terraform.
Conteúdo Programatico
SDLC Models & Architecture with Agile, DevOps, SRE & DevSecOps, SOA & Micro services - Concept
- Let’s 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
- Understanding an existing Pain and Waste in Current Software Development Model
- What is DevOps?
- Transition in Software development 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?
- Let’s Understand DevSecOps Practices and Toolsets.
- What is SRE?
- Let’s 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
- Keeping it simple
- Avoiding Breaking Changes
- Choosing the right protocols
- Sync & Async
- Dealing with legacy systems
- Testing
- What and When to test
- Preparing for deployment
- Monitoring Microservice Performance
- Tools used for Microservices Demo using container
Platform - Operating Systems - Centos/Ubuntu & VirtualBox & Vagrant
Ubuntu
- 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
Vagrant
- 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
Platform - Cloud - AWS
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
Platform - Containers - Docker
- 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
Planning and Designing - Jira & Confulence
a. Jira
- 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
b. Confluence
- 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
- Admin tasks
- Add/Edit/Delete new users
- Adding group and setting permissions
- Managing user permissions
- Managing addons or plugins
- Customizing confluence site
- Installing Confluence
- Evaluation options for Confluence
- Supported platforms
- Installing Confluence on Windows
- Activating Confluence trial license
- Finalizing Confluence Installation
Backend Programming Language 2 - App Dev with Python/Flask with mysql DB
- Planning - Discuss some of the Small Project Requirement which include
- Login/Registertration with Some Students records CRUD operations.
- Design a Method --> Classes -> Interface using Core Python
- Fundamental of Core Python with Hello-world Program with Method --> Classes
- Coding in Flask using HTMl - CSS - JS - MySql
- Fundamental of Flask Tutorial of Hello-World APP
- UT - 2 Sample unit Testing using Pythontest
- Package a Python App
- AT - 2 Sample unit Testing using Selenium
Technology Demonstration
- Software Planning and Designing using JAVA
- Core Python
- Flask
- mySql
- pytest
- Selenium
- HTMl
- CSS
- Js.
Source Code Versioning - Git using Github
- Introduction of Git
- Installing Git
- Configuring Git
- Git Concepts and Architecture
- How Git works?
- The Git workflow
- Working with Files in Git
- Adding files
- Editing files
- Viewing changes with diff
- Viewing only staged changes
- Deleting files
- Moving and renaming files
- Making Changes to Files
- Undoing Changes
- Amending commits
- Ignoring Files
- Branching and Merging using Git
- Working with Conflict Resolution
- Comparing commits, branches and workspace
- Working with Remote Git repo using Github
- Push - Pull - Fetch using Github
- Tagging with Git
Code Analysis & Securing Code (SAST) - SonarQube & OWASP SonarQube
- What is SonarQube?
- Benefits of SonarQube?
- Alternative of SonarQube
- Understanding Various License of SonarQube
- Architecture of SonarQube
- How SonarQube works?
- Components of SonarQube
- SonarQube runtime requirements
- Installing and configuring SonarQube in Linux
- Basic Workflow in SonarQube using Command line
- Working with Issues in SonarQube
- Working with Rules in SonarQube
- Working with Quality Profiles in SonarQube
- Working with Quality Gates in SonarQube
- Deep Dive into SonarQube Dashboard
- Understanding Seven Axis of SonarQube Quality
- Workflow in SonarQube with Maven Project
- Workflow in SonarQube with Gradle Project
- OWASP Top 10 with SonarQube
Build Management - Maven and Gradle
Maven
- Introduction to Apache Maven
- Advantage of Apache Maven over other build tools
- Understanding the Maven Lifecycle and Phase
- Understanding the Maven Goals
- Understanding the Maven Plugins
- Understanding the Maven Repository
- Understanding and Maven Release and Version
- Prerequisite and Installing Apache Maven
- Understanding and using Maven Archetypes
- Understanding Pom.xml and Setting.xml
- Playing with multiples Maven Goals
- Introducing Maven Dependencies
- Introducing Maven Properties
- Introducing Maven Modules
- Introducing Maven Profile
- Introducing Maven Plugins
- How can Maven benefit my development process?
- How do I setup Maven?
- How do I make my first Maven project?
- How do I compile my application sources?
- How do I compile my test sources and run my unit tests?
- How do I create a JAR and install it in my local repository?
- How do I use plugins?
- How do I add resources to my JAR?
- How do I filter resource files?
- How do I use external dependencies?
- How do I deploy my jar in my remote repository?
- How do I create documentation?
- How do I build other types of projects?
- How do I build more than one project at once?
Gradle
- 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
Package Management - Packer & Artifactory
Artifactory
- 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
- Packer
- Getting to Know 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
- Baking a Website Image for EC2
- 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
- Customization with a Config Management Tool
- 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
- Building Hardened Images
- Use Ansible modules to harden our image
- Save Use Ansible modules to harden our image
- Baking a Jenkins image
- Save Baking a Jenkins image
- Building a Pipeline for Packer 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
Unit Testing & Acceptance Testing & Coverage - Web applications - Junit & Selenium & Jacoco
Junit
- - 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
Selenium
- Introduction to Selenium
- Components of Selenium
- - Selenium IDE
- - Selenium Web driver
- - Selenium Grid
- Installing and Configuring Selenium
- Working with Selenium IDE
- Working With Selenium Web driver with Java Test Case Setup and Working with Selenium Grid
- Setup and Working with Selenium Grid
Jacoco
- Overview of Code coverage process
- Introduction of Jacoco
- How Jacoco works!
- How to install Jaoco?
- Setup testing Environment with Jacoco
- Create test data files using Jacoco and Maven
- Create a Report using Jacoco
- Demo - Complete workflow of Jacoco with Maven and Java Project
Configuration & Deployment Management - Ansible
- Overflow of Configuration Management
- Introduction of Ansible
- Ansible Architecture
- Let’s get startted with Ansible
- Ansible Authentication & Authorization
- Let’s start with Ansible Adhoc commands
- Let’s write Ansible Inventory
- Let’s write Ansible Playbook
- Working with Popular Modules in Ansible
- Deep Dive into Ansible Playbooks
- Working with Ansible Variables
- Working with Ansible Template
- Working with Ansible Handlers
- Roles in Ansible
- Ansible Galaxy
Container Orchestration - Kubernetes & Helm Introduction
- Understanding the Need of Kubernetes
- Understanding Kubernetes Architecture
- Understanding Kubernetes Concepts
- Kubernetes and Microservices
- Understanding Kubernetes Masters and its Component
- kube-apiserver
- etcd
- kube-scheduler
- kube-controller-manager
- Understanding Kubernetes Nodes and its Component
- kubelet
- kube-proxy
- Container Runtime
- Understanding Kubernetes Addons
- DNS
- Web UI (Dashboard)
- Container Resource Monitoring
- Cluster-level Logging
- Understand Kubernetes Terminology
- Kubernetes Pod Overview
- Kubernetes Replication Controller Overview
- Kubernetes Deployment Overview
- Kubernetes Service Overview
- Understanding Kubernetes running environment options
- Working with first Pods
- Working with first Replication Controller
- Working with first Deployment
- Working with first Services
- Introducing Helm
- Basic working with Helm
Infrastructure Coding - Terraform
- Deploying Your First Terraform Configuration
- Introduction
- What's the Scenario?
- Terraform Components
- Updating Your Configuration with More Resources
- Introduction
- Terraform State and Update
- What's the Scenario?
- Data Type and Security Groups
- Configuring Resources After Creation
- Introduction
- What's the Scenario?
- Terraform Provisioners
- Terraform Syntax
- Adding a New Provider to Your Configuration
- Introduction
- What's the Scenario?
- Terraform Providers
- Terraform Functions
- Intro and Variable
- Resource Creation
- Deployment and Terraform Console
- Updated Deployment and Terraform Commands
Continuous Integration - Jenkins
- Lets understand Continuous Integration
- What is Continuous Integration
- Benefits of Continuous Integration
- What is Continuous Delivery
- What is Continuous Deployment
- Continuous Integration Tools
- What is Jenkins
- History of Jenkins
- Jenkins Architecture
- Jenkins Vs Jenkins Enterprise
- Jenkins Installation and Configurations
- Jenkins Dashboard Tour
- 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
- Creating a Simple Job
- Simple Java and Maven Based Application
- Simple Java and Gradle Based Application
- Simple DOTNET and MSBuild Based Application
- Jobs Scheduling in Jenkins
- Manually Building
- Build Trigger based on fixed schedule
- Build Trigger by script
- Build Trigger Based on pushed to git
- Useful Jobs Configuration
- Jenkins Jobs parameterised
- Execute concurrent builds
- Jobs Executors
- Build Other Projects
- Build after other projects are built
- Throttle Builds
- Jenkins Plugins
- Installing a Plugin
- Plugin Configuration
- Updating a Plugin
- Plugin Wiki
- Top 20 Useful Jenkins Plugins
- Using Jenkins Pluginss Best Practices
- Jenkins Node Managment
- Adding a Linux Node
- Adding a Windows Nodes
- Nodes Management using Jenkins
- Jenkins Nodes High Availability
- Jenkins Integration with other tools
- Jira
- Git
- SonarQube
- Maven
- Junit
- Ansible
- Docker
- AWS
- Jacoco
- Coverity
- Selenium
- Gradle
- Reports in Jenkins
- Junit Report
- SonarQube Reports
- Jacoco Reports
- Coverity Reports
- Selenium Reports
- Test Results
- Cucumber Reports
- Jenkins Node Managment
- Adding a Linux Node
- Adding a Windows Nodes
- Nodes Management using Jenkins
- Jenkins Nodes High Availability
- Notification & Feedback in Jenkins
- CI Build Pipeline & Dashboard
- Email Notification
- Advance Email Notification
- Slack Notification
- Jenkins Advance - Administrator
- Security in Jenkins
- Authorization in Jenkins
- Authentication in Jenkins
- Managing folder/subfolder
- Jenkins Upgrade
- Jenkins Backup
- Jenkins Restore
- Jenkins Command Line
Infrastructure Monitoring Tool 2 - Prometheus with Grafana
Prometheus
- Introduction
- Introduction to Prometheus
- Prometheus installation
- Grafana with Prometheus Installation
- Monitoring
- Introduction to Monitoring
- Client Libraries
- Pushing Metrics
- Querying
- Service Discovery
- Exporters
- Alerting
- Introduction to Alerting
- Setting up Alerts
- Internals
- Prometheus Storage
- Prometheus Security
- TLS & Authentication on Prometheus Server
- Mutual TLS for Prometheus Targets
- Use Cases
- Monitoring a web application
- Calculating Apdex score
- Cloudwatch Exporter
- Grafana Provisioning
- Consul Integration with Prometheus
- EC2 Auto Discovery
Grafana
- Installation
- Installing on Ubuntu / Debian
- Installing on Centos / Redhat
- Installing on Windows
- Installing on Mac
- Installing using Docker
- Building from source
- Upgrading
- Administration
- Configuration
- Authentication
- Permissions
- Grafana CLI
- Internal metrics
- Provisioning
- Troubleshooting
Log Monitoring Tool 1 - Splunk
- What Is Splunk?
- Overview
- Machine Data
- Splunk Architecture
- Careers in Splunk
- Setting up the Splunk Environment
- Overview
- Splunk Licensing
- Getting Splunk
- Installing Splunk
- Adding Data to Splunk
- Basic Searching Techniques
- Adding More Data
- Search in Splunk
- Demo: Splunk Search
- Splunk Search Commands
- Splunk Processing Langauge
- Splunk Reports
- Reporting in Splunk
- Splunk Alerts
- Alerts in Splunk
- Enterprise Splunk Architecture
- Overview
- Forwarders
- Enterprise Splunk Architecture
- Installing Forwarders
- Installing Forwarders
- Troubleshooting Forwarder Installation
- Splunking for DevOps and Security
- Splunk in DevOps
- DevOps Demo
- Splunk in Security
- Enterprise Use Cases
- Application Development in Splunkbase
- What Is Splunkbase?
- Navigating the Splunkbase
- Creating Apps for Splunk
- Benefits of Building in Splunkbase
- Splunking on Hadoop with Hunk
- What Is Hadoop?
- Running HDFS Commands
- What Is Hunk?
- Installing Hunk
- Moving Data from HDFS to Hunk
- Composing Advanced Searches
- Splunk Searching
- Introduction to Advanced Searching
- Eval and Fillnull Commands
- Other Splunk Command Usage
- Filter Those Results!
- The Search Job Inspector
- Creating Search Macros
- What Are Search Macros?
- Using Search Macros within Splunk
- Macro Command Options and Arguments
- Other Advanced Searching within Splunk
Performance & RUM Monitoring - NewRelic
- Introduction and Overview of NewRelic
- What is Application Performance Management?
- Understanding a need of APM
- Understanding transaction traces
- What is Application Performance?
- APM Benefits
- APM Selection Criteria
- Why NewRelic is best for APM?
- What is NewRelic APM?
- How does NewRelic APM work?
- NewRelic Architecture
- NewRelic Terminology
- Installing and Configuring NewRelic APM Agents for Application
- Register a Newrelic Trial account
- Installing a JAVA Agent to Monitor your Java Application
- Installing a PHP Agent to Monitor your PHP Application
- Installing New Relic Agent for .NET Framework Application
- Installing a Docker based Agent to Monitor your Docker based Application
- Understanding of NewRelic Configration settings of newrelic.yml
- Understanding of NewRelic Agent Configration settings
- Working with NewRelic Dashboard
- Understanding a transactions
- Understanding Apdex and Calculating and Setting Apdex Threshold
- Understanding Circuit break
- Understanding Throughput
- Newrelic default graphs
- Understanding and Configuring Service Maps
- Understanding and Configuring JVM
- Understanding Error Analytics
- Understanding Violations
- Understanding and Configuring Deployments
- Understanding and Configuring Thread Profiler
- Depp Dive into Transaction Traces
- Profiling with New Relic
- Creating and managing Alerts
- Working with Incidents
- Sending NewRelic Alerts to Slack
- Assessing the quality of application deployments
- Monitoring using Newrelic
- View your applications index
- APM Overview page
- New Relic APM data in Infrastructure
- Transactions page
- Databases and slow queries
- Viewing slow query details
- External services page
- Agent-specific UI
- Viewing the transaction map
- Deep Dive into Newrelic Advance
- Newrelic transaction alerts
- Configure abnd Troubleshoot and Cross Application Traces
- NewRelic Service Level Agreements
- Troubleshooting NewRelic
- Understanding and Configuring NewRelic X-Ray Sessions
- Deep Dive into NewRelic Agent Configuration
- Adding Custom Data with the APM Agent
- Extending Newrelic using Plugins
- Finding and Fixing Application Performance Issues with New Relic APM
- Setting up database montioring using Newrelic APM
- Setting up and Configuring Newrelic Alerts
- Working with NewRelic Performance Reports
- Availability report
- Background jobs analysis report
- Capacity analysis report
- Database analysis report
- Host usage report
- Scalability analysis report
- Web transactions analysis report
- Weekly performance report