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

feat(article): devops as a culture #153

Open
wants to merge 3 commits into
base: develop
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.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
7 changes: 7 additions & 0 deletions data/authors/michael-agboola.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
name: Michael Agboola
avatar: /authors/michael-agboola.jpg
occupation: Senior Software Engineer
twitter: https://twitter.com/drexlar01
github: https://github.com/drexlar5
---
73 changes: 73 additions & 0 deletions data/blog/devops-as-a-culture.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
---
title: 'DevOps as a Culture'
date: '2023-02-02'
tags: ['ops', 'devOps', 'software']
summary: 'An article on devops and why it should be everyones responsibility'
authors: ['michael-agboola']
---

## DevOps as a culture

DevOps is often thought of as a set of tools and processes for automating software delivery, but it's also a culture that fosters collaboration and communication between development and operations teams. The objective of a DevOps culture is to break down silos between teams and promote a shared sense of ownership and responsibility for the software delivery process.

One of the key elements of a DevOps culture is its focus on continuous improvement. Teams are encouraged to continually evaluate and improve their processes and tools to make the software delivery process faster, more reliable and more efficient. This requires a culture of experimentation where teams try new things, fail fast and learn from their mistakes.

Another important aspect of the DevOps culture is transparency and openness. Teams are encouraged to share information and knowledge and make processes and tools visible to others. This improves collaboration and communication and builds trust between her members of the team.

DevOps is required in organizations because it brings together two key aspects of software development namely development and operations. Traditionally, these two functions have operated in silos, but as software systems become more complex and the need for faster, more reliable software delivery is recognized, these functions work more closely together.

#### The major reasons why devOps is needed are:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You don't need to add ':' in headlines

so just 'The major reasons why devOps is needed'

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Agreed


- Faster time to market
- Improved collaboration
- More reliable software
- Better scalability
- Increased efficiency

DevOps is essential for organizations that want to remain competitive in today's fast-paced business environment. By bringing together development and operations teams, DevOps can help organizations deliver software faster, more reliably, and with greater efficiency.

My personal experience as a software engineer trying to imbibe the devOps culture involves helping out in areas like setting up environment on staging and production, setting up and maintaining continuous delivery pipeline using circleCI, researching and proposing ways to improve the system which will ease the development to production process, monitoring production environment and troubleshooting errors that may arise.

One clear advantage of devOps as a culture is that there is continuous improvement of development process. As an example, I proposed in one of my previous organizations that each engineer be given his/her development server to run the code and serve as a two-factor UAT environment for testing the fix or feature added with a replica of the production environment before pushing it to production. This will in turn reduce bugs that are promoted to the production environment for users to see.

To soak up the DevOps culture and gain expertise in this area, I created a personal account on some popular cloud computing platforms and was able to experiment to my heart's content. This is not a capital intensive undertaking as most cloud platforms offer 6-12 months of free use of the basic tools that individuals or small businesses need. These experiments gave me the knowledge and confidence to improve our development process and also advocate that DevOps operations should be viewed as a cross-team work culture rather than as a role dedicated to one department.

#### Most of the skills needed as a DevOps engineer are:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Skills needed as a DevOps engineer


- `Strong Linux/Unix administration skills`: Familiarity with command-line tools and basic system administration tasks is essential for a DevOps engineer.

- `Version control`: Understanding of version control systems such as Git is important for managing code and collaboration among developers.

- `Scripting skills`: Knowledge of at least one scripting language such as Python, Bash, Ruby, or Perl is essential for automating tasks and provisioning infrastructure.

- `Continuous integration and delivey tools (CI/CD)`: Familiarity with tools for automating the build and deployment process, such as Jenkins, Travis CI, CircleCI.

- `Containerization and orchestration`: Understanding containerization and orchestration concepts and tools like Docker and Kubernetes is important for managing and scaling applications.

- `Infrastructure as Code tools (IAC)`: Knowledge of tools like Terraform, Ansible, and Puppet to provision and manage infrastructure.

- `Cloud computing`: Familiarity with cloud platforms such as AWS, Azure, and GCP, and ability to deploy and manage applications in cloud environments

- `Networking`: Understanding networking concepts, protocols, and security best practices is critical to managing and troubleshooting problems encountered in a production environment.

- `Monitoring and logging`: Familiarity with monitoring and logging tools such as Prometheus, Grafana, and Elasticsearch to ensure application health and availability.

- `Problem solving and critical thinking`: DevOps engineers must be able to detect, troubleshoot and resolve issues quickly and effectively.

Adopting a devOps culture can be a big change for your organization, but it's essential to staying competitive in today's fast-paced software development environment as a devOps culture includes a state of continuous learning and improvement rather than the final state of the application lifecycle.

#### Here are some steps you can take as an organization to start adopting a DevOps culture:

- `Start with a pilot project`: When adopting DevOps practices, it's often a good idea to start small. Choose a pilot that is not overly complicated and has clear business goals. This allows you to test your DevOps practices in a controlled environment before scaling.
- `Break down silos`: DevOps requires a culture of collaboration between development and operations teams. Encourage teams to collaborate and share knowledge, and avoid creating silos in which teams work independently.
- `Automate processes`: Automation is an important part of DevOps. Find ways to automate manual tasks like testing and deployment to speed up the development process and reduce the risk of human error.
- `Emphasize continuous testing`: Continuous testing is a fundamental principle of DevOps. Make sure that testing is an integral part of the development process and that testing is automated and run regularly.
- `Encourage experimentation`: DevOps culture values ​​experimentation and innovation. Encourage teams to try new ideas and technologies, and learn from both successes and failures.
- `Implement feedback loops`: DevOps is about continuous improvement. Establishing feedback loops allows teams to learn from their mistakes and make iterative improvements to processes and products.
- `Foster a culture of learning`: DevOps requires a culture of continuous learning and improvement. Encourage teams to learn new skills and stay up to date with the latest technologies and trends.

### Conclusion

Implementing a DevOps culture in your organization requires the right leadership and support. This includes training and educating team members and adopting new technologies and practices. Additionally, it is important to have a clear understanding of the organization's goals and objectives and to align the organization's culture and practices with those goals.

In summary, a DevOps culture is a set of values and practices that foster collaboration, communication, and continuous improvement between development and operations teams. It aims to break down silos between teams and promote shared ownership and responsibility for the software delivery process. By implementing a DevOps culture, organizations can achieve faster, more reliable software delivery and improve the overall performance and scalability of their systems.
Binary file added public/authors/michael-agboola.jpg
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The picture looks distorted (vertically squashed) in the circle in which it is presented. Could be deliberate but it's probably not

Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.