Skip to content

Commit b38c817

Browse files
committed
added new documentation
1 parent 2816a40 commit b38c817

File tree

1 file changed

+22
-14
lines changed

1 file changed

+22
-14
lines changed

docs/README.md

Lines changed: 22 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
Overview
22
--------
33

4-
An end-to-end DevOps solution designed to deploy a Django web application securely and efficiently, integrating technologies such as Django (with CRUD operations, authentication, and permissions) [Django Web Appliation](README.md), PostgreSQL database management, Nginx as a reverse proxy web server, Gunicorn application server, UFW firewall for network security, Ubuntu LTS on a Linux virtual machine for isolated deployment, Logical Volume Management (LVM) for scalable storage, automated backups for disaster recovery, Netdata for real-time monitoring, and automated CI/CD pipelines built with GitHub Actions, with a customized GitHub Workflow, see [GitHub Workflow](Git_Strategies.md) supporting GitFlow and trunk-based strategies.
4+
An end-to-end DevOps solution designed to deploy a Django web application securely and efficiently, integrating technologies such as Django (with CRUD operations, authentication, and permissions) [Django Web Appliation](DJANGO-WEBAPP.md), PostgreSQL database management, Nginx as a reverse proxy web server, Gunicorn application server, UFW firewall for network security, Ubuntu LTS on a Linux virtual machine for isolated deployment, Logical Volume Management (LVM) for scalable storage, automated backups for disaster recovery, Netdata for real-time monitoring, and automated CI/CD pipelines built with GitHub Actions, with a customized GitHub Workflow, see [GitHub Workflow](Git_Strategies.md) supporting GitFlow and trunk-based strategies.
55

66

77
Table of Contents
@@ -38,59 +38,67 @@ Components
3838

3939
### 1. Virtual Machine
4040

41-
- **Purpose**:
42-
The virtual machine is the base of the infrastructure. It provides an isolated and secure environment to host the web application, database, and supporting tools. It ensures efficiency in resource management, scalability, and reliability for the production environment.
41+
- **Purpose**:
42+
The virtual machine is the base of the infrastructure. It provides an isolated and secure
43+
environment to host the web application, database and the other supporting tools. It
44+
ensures efficiency in the resource management, scalability, and reliability for the production
45+
environment.
4346

44-
- **Role in the architecture**:
45-
Hosts the Linux environment (Ubuntu LTS) required to safely run all project components. It guarantees system independence, minimizing external interference, and ensures consistent performance. This setup also simplifies future migration to cloud platforms.
47+
- **Role in the architecture**:
48+
It is in charge of providing the Linux environment, Ubuntu LTS, to run all the components
49+
safely and efficiently. It ensures that the system is independent from other environments, so
50+
external interference is minimized. It allocates the CPU, memory and disk resources to
51+
provide consistent performance for the rest of the components, and also gives easiness to a
52+
future migration to a cloud platform without significant amounts of reconfiguration.
4653

4754
### 2. Nginx Web Server
4855

4956
- **Purpose**:
5057
Lightweight, high-performance web server and reverse proxy responsible for handling incoming HTTP/HTTPS requests and routing them to the Django application.
5158

5259
- **Role in the architecture**:
53-
Acts as a reverse proxy, forwarding client requests to the Django application, serving static files, and securing connections by enabling TLS encryption, protecting user requests against interception or modification.
60+
Acts as a reverse proxy, forwarding client requests to the Django application, serving static files, and securing connections by enabling TLS encryption, protecting user requests against interception or modification by encrypting the traffic.
5461

5562
### 3. Django Web Application
5663

5764
- **Purpose**:
5865
The Django web application is the core of the project, responsible for providing CRUD management functionalities for the videogames catalog.
5966

6067
- **Role in the architecture**:
61-
Handles user interactions, manages business logic, and communicates with the PostgreSQL database to retrieve and store data. It runs on a dedicated logical volume (`django_volume`) for improved isolation and simplified storage management.
68+
Handles user interactions as well as business logic, and communicates with the PostgreSQ database to retrieve the stored data, it runs on a dedicated django_volume for isolation and better storage management.
6269

6370
### 4. PostgreSQL Database
6471

6572
- **Purpose**:
6673
Stores all the videogame data managed by the web application.
6774

6875
- **Role in the architecture**:
69-
Manages and stores videogame data such as titles, genres, release dates, and descriptions. It utilizes a dedicated logical volume (`pg_volume`) to separate data storage from other system files, improving security and performance.
76+
Manages and stores videogame data such as titles, genres, release dates, and descriptions. It utilizes a dedicated logical volume volume to separate data storage from other system files, improving security and performance.
7077

7178
### 5. Automated Backups
7279

7380
- **Purpose**:
74-
Ensures data integrity and allows quick recovery in the event of system failure or disasters.
81+
Automated backups are meant to ensure data integrity and recovery in case of disasters
7582

7683
- **Role in the architecture**:
77-
Automatically performs regular backups of the PostgreSQL database and critical application files, storing these backups in a dedicated logical volume (`backup_volume`) to minimize downtime in case of data loss.
84+
Automatically performs regular backups of the PostgreSQL database and critical application files, storing these backups in a dedicated logical volume to minimize downtime in case of data loss.
7885

7986
### 6. Monitoring (Netdata)
8087

8188
- **Purpose**:
82-
Tracks real-time system performance metrics such as memory usage, CPU load, and disk space utilization.
89+
Tracks system performance metrics such as memory usage, CPU load, and disk space.
8390

8491
- **Role in the architecture**:
8592
Detects potential issues like high resource usage early and alerts administrators, enabling proactive management to ensure ongoing system stability.
8693

8794
### 7. UFW Firewall
8895

8996
- **Purpose**:
90-
Secures the virtual machine by controlling incoming and outgoing network traffic.
97+
The Uncomplicated Firewall Network is used to secure the virtual machine by controlling the incoming and outgoing network traffic.
98+
9199

92100
- **Role in the architecture**:
93-
Ensures only essential network ports (SSH, HTTP, HTTPS) are accessible, preventing unauthorized access and protecting the application from external threats.
101+
Ensures only essential network ports SSH, HTTP are accessible, preventing unauthorized access and protecting the application from external threats.
94102

95103
### 8. Logical Volume Management (LVM)
96104

@@ -133,5 +141,5 @@ manual effort for backups is reduced and logical volumes also simplify the disk
133141

134142
## Implementation Guide
135143

136-
For the full implementation Guide see [Linux Environment Documentation PDF](Linux Environment Documentation.pdf)
144+
For the full implementation Guide see [Linux Environment Documentation PDF](Linux.pdf)
137145

0 commit comments

Comments
 (0)