Introduction to DevOps
Last updated
Last updated
π Jump to other notes here
DevOps Pipeline
Test β‘οΈ Build β‘οΈ Deploy β‘οΈ Configure β‘οΈ Monitor
DevOps engineers have some know-how from both DEV and OPERATIONs teams, plus additional DevOps specific technical skills, the core one being building CI/CD (Continuous Integration / Continuous Delivery-Deployment) pipelines.
Methodologies of software development:
Waterfall
Agile (newer)
several project phases
each feature is tested, deployed
fast development, testing and deployment cycles
Continuous Integration, Continuous Delivery
it supports the need for DevOps tasks (best practices, automation tools ...)
The DevOps engineer needs to assist developers in building the application. This involves configuring automation tools (CI/CD Pipelines) to handle tests, build processes, and packaging the applications into Docker images. Finally, the DevOps engineer ensures the app runs smoothly on deployment servers.
Artifacts are apps built into a single file (jar
, war
, zip
, tar
, etc). An artifact repository can store many different artifact formats by using a manager for managing them all.
Nexus - private/internal usage
multi-format support
LDAP integration, user token support
REST API integration
Backup, restore
Tagging
Cleanup policies
Search functionality
Maven Repository - public (Java)
npm - public (Javascript)
Major Version
Indicates big changes
Usually involves breaking changes
NOT backward-compatible.
Incompatible API changes are made
Minor Version
Introduces new but backward-compatible changes
May include new API features
Does not break existing functionality
Patch Version
Contains minor changes and bug fixes
Does not alter the API
Infrastructure as a Service (IaaS) offers compute, storage and networking on-demand from the cloud providers.
Cloud computing refers to the delivery of computing services (servers, storage, databases, networking, software, and more) over the internet, allowing users to access and utilize these resources on-demand.
I'm using Ubuntu Desktop LTS as Linux distro and
zsh
as default SHELLThe install commands of the following tools can be found on my notes here - Ubuntu VM - DevOps Tools
Linux Basics from the DevOps Bootcamp by Nana
Package Manager - apt
for Debian/Ubuntu-based Linux distros
git (for Github, GitLab, etc)
Maven (if necessary)
Gradle (if necessary)
CI/CD - Continuous Integration / Continuous Delivery, pipeline
Containers β‘οΈ Image for every server, separate instances
Docker - Dockerfile
Kubernetes (K8s) - automatic deployment, scaling, and management of containerized applications
Terraform - infrastructure automation to provision and manage resources in any cloud or data center
Infrastructure as Code (IaC)
Ansible - automates provisioning, configuration management, application deployment, orchestration, and many other IT processes - more for automation post configuration
Prometheus - systems and service monitoring system
Grafana - visualize data