Curso DevOps for JavaScript
24 horasVisão Geral
Este curso DevOps Foundations for JavaScript com Git, Jenkins e NPMensina aos participantes os fundamentos do DevOps e como construir e implantar continuamente um aplicativo React usando NPM, Git e Jenkins, bem como implementar qualidade contínua de código.
Objetivo
Após realizar este Curso DevOps for JavaScript você será capaz de:
- Implementar controle de versão usando Git
- Ramifique, mescle e trabalhe com dispositivos remotos
- Trabalhe com o fluxo de trabalho GitFlow
- Explorar o NPM
- Crie um aplicativo React com NPM
- Crie um trabalho Jenkins
- Crie um pipeline
Materiais
Inglês + Exercícios + Lab PraticoConteúdo Programatico
DevOps Fundamentals
- Why DevOps
- What is DevOps?
- Collaborative, Matrixed, and Cross-Functional Teams
- Key Components of Successful DevOps Teams
- DevOps-ification
- DevOps Vocabulary
- DevOps Goals
- Not DevOps - Crush Buzzwords
- Driving Business Outcomes with DevOps
- Technology-Enabled Business
- DevOps Key Enabler for Digital Transformation
- Core Values and Mission
- Communication
- Collaboration
- Value Stream Mapping
- Behavioral Patterns for Success
- DevOps Org Structures
- DevOps Team - Separate
- DevOps Merged Organization
- DevOps Overlapped Organization
- Organizational Structure Leadership
- What Does Continuous Delivery Mean?
- Deployment Pipelines
- Your Organization is Doing CD if …
- Pipelining for CD
- Continuous Integration
- CI Pipeline
- CD & CI Methodologies
- Key Tool Categories for CI/CD
Introduction to Git
- What is Git
- Git's Design Goals
- Branching and Merging
- Centralized Version Control
- Distributed Version Control
- Git Basics
- Getting Git
- Git on the Server
- Git Repository Managers
- Git on Somebody Else's Server
Basic Git Operations
- Using Git
- Definitions
- Commit
- How to Think About Commits
- Viewing History
- Configuring Git
- Configuration Scope
- User Identification
- GPG Signing
- Gnu Privacy Guard
- GPG Basics
- GPG and Git
- .gitignore
- Other Useful Configurations
- Git Attributes
- Where Gitattributes are Set
- How Gitattributes are Set
- Git Hooks
- commit-msg Hook with Jira Key
Branching, Merging, and Remotes
- Branching
- Branches in Git
- Merge
- Fast Forward Merge
- --no-ff
- More Than One Repository
- Working with Remotes
- Fetch and Pull
- Push
- Pull Requests
- Tagging a Commit
- Lightweight Tags
- Annotated Tags
- Sharing Tags
- Checking Out a Tag
Introduction to Git Flow
- Why Use an SCM Workflow?
- What is Git Flow
- The Main Branch
- Benefits
- How does Git Flow work?
- Git Flow Extension
- Initializing Git Flow
- Features
- Release
- Hotfixes
- Git Flow and Continuous Integration
- Git Flow – Pros and Cons
- Git Flow – When it Works Best?
- Git Flow – When it Doesn’t Work?
- Git Flow Alternatives
- Trunk-based Development – When it Works?
- Trunk-based Development – When it Doesn’t Work?
- GitHub Flow – Pros and Cons
- GitLab Flow – Environment Branches
- GitLab Flow – Release Branches
Continuous Code Quality
- Continuous Code Quality
- What is SonarQube
- SonarQube - Benefits
- SonarQube (Multilingual)
- Seven Axes of Quality
- Potential Bugs
- Tests
- Comments and Duplication
- Architecture and Design
- Complexity
- SonarQube Installation
- SonarQube Components
- Code Quality
- Common Weakness Enumeration (CWE)
- CWE List Item Example
- OWASP Top Ten
- SANS 25
- SANS 25
- SonarQube Quality Profiles
- SonarQube Quality Gates
- Portfolios
- SonarLint
Introduction to Continuous Integration, Continuous Delivery, and Jenkins-CI
- Foundation of Agile AppDev
- XP Flow
- Extreme Programming
- Agile Development
- What is Continuous Integration
- Typical Setup for Continuous Integration
- Setup Notes for Continuous Integration
- CI with Artifact Management
- What is Continuous Delivery?
- Why Continuous Delivery?
- DevOps and Continuous Delivery
- Continuous Delivery Challenges
- Continuous Delivery vs. Continuous Deployment
- Jenkins Continuous Integration
- Jenkins Features
- Running Jenkins
Getting Started With Node Package Manager (NPM)
- Node Package Manager (NPM)
- History
- Node.js
- The NPM Registry
- Registry UI
- Module Page
- Readme
- Dependencies (upstream)
- Dependencies (downstream)
- Versions
- Other Information
- Installing NPM
- NVM for Linux/MacOS
- NVM for Windows
- The NPM Command Line Interface (CLI)
- Packages and Modules
- package.json
- NPM init
- package.json
- Dependencies
- Installing Dependencies
- Installing Dependencies
- Installing Dependencies from package.json
- Versioning
- NPX
NPM and REACT
- React
- NPM and React
- Create a Simple React App
- Install create-react-app
- Possible Installation Issues
- Examine the Directory
- Create the app
- Examine Created Application
- Details
- Examine package.json
- Install
- Build
- Build Artifacts
- Running the Application
- Tests
Installing and Running Jenkins
- Downloading and Installing Jenkins
- Running Jenkins as a Stand-Alone Application
- Running Jenkins on an Application Server
- The Jenkins Home Folder
- Installing Jenkins as a Windows Service
- Initial Configuration
- Configuration Wizard
- Configuring Tools
- Logging in Jenkins
- Custom Log Recorders
Job Types in Jenkins
- Introduction
- Different types of Jenkins Items
- Configuring Source Code Management (SCM)
- Working with Subversion
- Working with Git
- Storing Credentials
- Service Accounts
- Build Triggers
- Schedule Build Jobs
- Polling the SCM
- Polling vs. Triggers
- Maven Build Steps
Jenkins Plugins
- SCM
- Build and Test
- Analyzers
- Jenkins for Teams
- Installing Jenkins Plugins
Securing Jenkins
- Jenkins Security
- Authentication
- Authorization
- Confidentiality
- Activating Security
- Configure Authentication
- Using Jenkins's Internal User Database
- Creating Users
- Authorization
- Matrix-Based Security
- Note – Create the Administrative User
- Project-based Matrix Authorization
- Project-Based Authentication
- Role-Based Access Control
Distributed Builds with Jenkins
- Distributed Builds - Overview
- Distributed Builds
- Agent Machines
- Configure Jenkins Master
- Configure Projects
Continuous Delivery and the Jenkins Pipeline
- Continuous Delivery
- DevOps and Continuous Delivery
- Continuous Delivery Challenges
- Continuous Delivery with Jenkins
- The Pipeline Plugin
- Defining a Pipeline
- A Pipeline Example
- Parallel Execution
- Creating a Pipeline
- Invoking the Pipeline
- Interacting with the Pipeline
- Pipeline vs. Traditional Jobs
Best Practices for Jenkins
- Secure Jenkins
- Users
- Backups
- Reproducible Builds
- Testing and Reports
- Large Systems
- Distributed Jenkins