-
Development Team:
- Business Requirements -> Application Code -> Store the Code on a centralise location -> Notify the Operations Team
-
Operations Team:
- Download the Code from GitHub -> Perform Manual Testing -> Deploy the Application on the Server
-
Involves two distinct teams: Development and Operations.
-
Development Team: Responsible for application development.
-
Operations Team: Responsible for testing and deploying the application.
The development team develops the application code and stores it in a centralized location on the Internet. They notify the operations team via email about the code completion. The operations team then downloads the code, conducts manual testing, and deploys the application to the server. This model keeps development and operations teams working separately.
- Manual process, leading to time-consuming tasks.
- Prone to errors.
- Longer Time to Market (TTM), making it unsuitable for fast-growing companies.
-
DevOps Team:
- Business Requirements -> Application Code -> Store the Code on GitHub -> Automated Testing -> Deploy the Application on the Server
-
Consists of a single DevOps team responsible for both development and deployment.
DevOps is a methodology that integrates development and operations into a single team. The DevOps team collaboratively develops and deploys applications quickly and with fewer bugs.
DevOps utilizes various tools to automate the development and deployment processes, ensuring efficiency.
- Automated process, reducing time consumption.
- Less error-prone.
- Shorter Time to Market (TTM), suitable for fast-growing companies.
- Git: Version control system for code storage and change tracking.
- Jenkins: Continuous integration tool for automating code building, testing, and deployment.
- Docker: Containerization tool for automated application deployment.
- Kubernetes: Container orchestration tool for managing and scaling applications.
- Ansible: Configuration management tool for automating application configuration.
- Terraform: Infrastructure provisioning tool for automating infrastructure management.
- Monitoring tools: Grafana, Prometheus, Nagios, etc., for application and infrastructure monitoring.
Git is a version control system used to track changes in a local development environment.
Git is essential for storing code and tracking code changes.
- git init: Initializes a Git repository.
- git status: Checks the status of the Git repository.
- git add: Adds files to the staging area.
Linux is an open-source operating system known for its free, secure, flexible, and stable nature. It is used in servers, desktops, and mobiles.
- pwd: Prints the current working directory.
- ls: Lists files and directories.
- cd: Changes the directory.
- mkdir: Creates a directory.
- touch: Creates a file.
- cat: Prints the content of a file.
- id: Prints user and group IDs.
In Linux, all files and directories are stored in the root directory (/).
- Bare Metal: Install Linux OS directly on the hardware.
- Virtualization: Install Linux OS on a virtual machine using tools like VirtualBox or Hyper-V.
- Cloud: Install Linux OS on the cloud using providers like AWS, Azure, or GCP.
- Container: Install Linux OS on containers using tools like Docker or Kubernetes.
- Use the below command to install Apache web server on Linux OS:
sudo yum install -y httpd
- Use the below Command to edit the index.html file:
sudo vi /var/www/html/index.html
- Use the below command to start the Apache web server:
sudo systemctl start httpd
- Use the below command to stop the Apache web server:
sudo systemctl stop httpd
- Use the below command to edit the file using vi editor:
vi <file-name>
- Use the below command to insert the text in the file:
i
- Use the below command to save the file:
:wq
- Use the below command to exit from the file without saving the file:
:q!