Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Silvestre/midterm #54

Open
wants to merge 2 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file added images/devopsworkflow.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
18 changes: 18 additions & 0 deletions midterm/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
FROM centos:7

ENV MYSQL_ROOT_PASSWORD=root12345

RUN yum update -y

RUN yum install -y wget && \
wget https://dev.mysql.com/get/mysql80-community-release-el7-11.noarch.rpm && \
rpm -ivh mysql80-community-release-el7-11.noarch.rpm

RUN yum install -y mysql-server && \
yum clean all

RUN mysqld --initialize-insecure

CMD ["mysqld"]

EXPOSE 3306
29 changes: 29 additions & 0 deletions midterm/silvestre_question1.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
---
-
- ISDEVOP
- ISDEVOP Midterm Question 2
-
- Author: Franczeska Silvestre
- Date: March 05, 2024
-
---

## In your own words, kindly illustrate an effective DevOps workflow and toolchain.

- An effective DevOps workflow and toolchain utilizes specific tools that supports each phase of the workflow and fulfills the purpose to bridge the gap between the development and operations team. With the roles present such as the developers, QA testers, and IT operations, all of them use various tools to help them fulfill their designated tasks. This workflow can only be deemed effective if it provides the team with features such as integration and automation that can allow them to improve collaboration and speed up the process. This is achieved by following the CI/CD pipeline, the core concepts of DevOps. The DevOps workflow is as follows:

![devopsworkflow](/images/devopsworkflow.png)
[Image retrieved from Simplilearn, 2021](https://www.youtube.com/watch?v=Xrgk023l4lI)

- As illustrated above, it has the phases of:

1. **Planning**: Where the defining of requirements, objectives, and scope for the project occur.
2. **Coding**: Where the developers create the code and integrate their changes, typically using tools such as Visual Studio Code and Git for version control.
3. **Building**: Where the code is built and compiled using automation tools such as Jenkins or Maven.
4. **Testing**: Where there are automated tests to ensure functionality, typically done by QA testers.
5. **Deploying**: Where the code has automated releases either in staging or production after ensuring thorough testing.
6. **Operating**: Where the IT Operations would oversee the transition and coordinate with the developers to ensure smooth operations.
7. **Monitoring**: Where monitoring is done to identify any issues overlooked and can easily be forwarded to respective departments.
8. **Integrating**: Where the process repeats itself to sustain the continuous, effective workflow of the phases aforementioned.

- For an effective toolchain, this continuous cycle uses a specific tool for each phase to implement features such as version control, early issue detection, deployment, and containerization such as Git, Maven, Selenium, Jenkins, and Docker. Each of these tools have features that make DevOps an ideal practice to adopt alongside Agile methodologies. An effective workflow allows all members involved in the process to fully integrate their work with one another in a seamless & cohesive manner which fosters productivity within the organization.
34 changes: 34 additions & 0 deletions midterm/silvestre_question2.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
---
-
- ISDEVOP
- ISDEVOP Midterm Question 2
-
- Author: Franczeska Silvestre
- Date: March 05, 2024
-
---

## Create a dockerfile that creates a CentOS 7 virtual machine and installs a BASIC MySQL database. Basic means no additional configuration file, and I will only be needing the sa user.

- The dockerfile contents are listed below and are in a separate file called `Dockerfile`:

```
FROM centos:7

ENV MYSQL_ROOT_PASSWORD=root12345

RUN yum update -y

RUN yum install -y wget && \
wget https://dev.mysql.com/get/mysql80-community-release-el7-11.noarch.rpm && \
rpm -ivh mysql80-community-release-el7-11.noarch.rpm

RUN yum install -y mysql-server && \
yum clean all

RUN mysqld --initialize-insecure

CMD ["mysqld"]

EXPOSE 3306
```
21 changes: 21 additions & 0 deletions midterm/silvestre_question3.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
---
-
- ISDEVOP
- ISDEVOP Midterm Question 3
-
- Author: Franczeska Silvestre
- Date: March 05, 2024
-
---

## 1. List 3 advantages of using Docker.

1. Docker is **lightweight**, as it uses containers which make it easy to package & deploy applications across different environments.
2. Docker is also **isolated**, which makes for easier management of IT infrastructure since it limits the impact of potential vulnerabilities to affect the whole system.
3. Docker provides **consistency**, as it can ensure that code will run in all supported platforms which helps reduce issues with compatibility.

## 2. List 3 benefits of DevOps framework.

1. By using the DevOps framework, there is an **increase in collaboration**. By eradicating the silos between development and operations, the work can be more effectively done with a continuous feedback loop.
2. The DevOps framework also brings a **quicker workflow** with the help of automation processes and the CI/CD pipeline. Automation ensures repetitive tasks don't consume time and removes room for human error, thus the team can deploy more rapidly.
3. The DevOps framework also provides **scalability** as it utilizes tools such as containerization. With this, organizations can easily adjust the scale of their application depending on the project and optimizes effective resource utilization.