DevOps Case Study
- What is DevOps and its Application in the Software Release Process
- Why We Need DevOps
- Challenges DevOps Aims to solve
DevOps Principles
What is DevOps and how does it apply in the Application release process
When creating the application, there are 2 main departments involved in its successful delivery: Development and Operations
Development: This involves
- Developing the application
- Testing the application
Operations: This involves
- Deploying the application
- Maintaining the application on a server
DevOps is the intersection between the development and the operations
A Typical Software Release Process in the initial launch
Why is there a need between the development and operations departments?
When you have an idea for improving an application,
You implement it in code
You test it
Build and package it
Deploy it
Once the application has been released, you can then observe it in production to see if there are any improvement possibilities or issues that needs to be fixed.
This basically gives a process of continuous delivery of changes (an endless cycle of improvement to the application).
DevOps is about making this process of continuous delivery fast and with minimal error / bugs.
In other words, DevOps = Quickly delivering of High Quality code
How is a DevOps engineer involved in Development? As a DevOps engineer, you need to understand
- The concept of how developers work
- How the application is configured to talk to other services or databases
- The concept of automated testing.
The application being developed will need to be deployed on a server (infrastructure) to enable users to access it, hence the Operations department.
As a DevOps engineer, you would need to prepare the infrastructure (either on-premise, cloud or hybrid) to run the servers.
These servers will need to be configured to run the application. To begin with, you as a DevOps engineer must understand
- The basics of Linux (since most of the servers where applications are running are linux servers)
- The command line interface
- Server management
- Networking and security e.g
- Firewall
- Load balancers
- IP, DNS Resolution
Now, what is DevOps?
DevOps combines cultural philosophies, practices, and tools that increase an organization's ability to deliver applications and services at increased speed and in less time.
This faster delivery of improved and scalable products is made possible through the use of tools that help to operate and evolve applications quickly and reliably. These tools enable engineers to independently accomplish tasks such as deployment and infrastructure provisioning.
Challenges that DevOps tries to solve
During the release process, DevOps aims to provide solutions for
- Fallouts and roadblocks caused by miscommunication and lack of collaboration.
- Conflict of interest between the development and operations team.
- Security
- Application testing
- Manual work
DevOps tries to remove all these roadblocks and things that may slow down the release process.
It aims to achieve Fully Automated and Streamlined Processes
DEVOPS PRINCIPLES
In 2010 Damon Edwards and John Willis came up with the CAMS model to showcase the key values of DevOps. CAMS is an acronym that stands for Culture, Automation, Measurement, and Sharing. These are the main principles of DevOps
Culture DevOps is first and foremost, the culture and mindset, forging strong collaborative bonds between software development and infrastructure operations teams.
Automation Of Processes Automating as many development, testing, configuration, and deployment procedures as possible is the golden rule of DevOps. It allows specialists to get rid of time-consuming repetitive work and focus on other important activities that can’t be automated by their nature.
Measurement of KPIs (Key Performance Indicators) To get optimal performance, it is necessary to keep track of the progress of activities composing the DevOps flow. Gathering various metrics of a system allows better understanding of systems that work and those that can be improved.
Sharing Sharing explains the DevOps philosophy better than anything else as it highlights the importance of collaboration. It is crucial to share feedback, best practices, and knowledge among teams since this promotes transparency, creates collective intelligence and eliminates constraints.
Thank you for reading...😃