Wednesday, February 19, 2020

Continuous Integration, Continuous Delivery, Continuous Testing

What is CI, CD, and CT?

1. Continuous Integration: Continuous Integration (CI) is the process of automating the build and testing of code every time someone commits changes to version control. Many think this is the most critical component to making an effectively agile development team.
CI puts a great emphasis on testing automation to check that the application is not broken whenever new commits are integrated into the main branch. Developers can share their code and unit tests by merging their changes into a shared version control repository after every small task completion. Committing code triggers an automated build system to grab the latest code from the shared repository and to build, test and validate the full master branch. Simply, it ensures bugs are caught earlier in the development cycle, which makes them less expensive to fix - and maintains a consistent quality.

2. Continuous Delivery: Continuous Delivery (CD) is the practice is the practice of streamlining and automating all the processes leading up to deployment. There are a number of steps in CD, such as validating the quality of the build in the previous environment. When done manually these steps can take significant effort and time. However, using cloud technologies and proper orchestration, they can be automated.
Teams should ensure they have a monitoring dashboard for your production environment in place in order to eliminate performance bottlenecks and respond fast to issues. This will complete an efficient CD process.

3. Continuous Testing: Continuous Testing (CT), which can also be referred to as Continuous Quality, is the practice of embedding and automating test activities into every “commit”. CT helps developers use their time more efficiently when trying to fix a bug for code that was written years ago. To fix the bug, developers should first remind themselves of which code it was, undo any code that was written on top of the original code, and then re-test the new code; not a short process. Testing that takes place every commit, every few hours, nightly and weekly, not only increases confidence in the application quality, it also drives team efficiency.

Working together and how to do it well
Image result for what is ci cd ct in devops
These three processes are often viewed as distinctly separate identities, fighting for the top spot in the DevOps pipeline. However, CT, CI and CD are better together.

CT, CI and CD are important to the success of one another throughout the delivery cycle, and it’s only by incorporating the CI/CD/CT trifecta that teams will be able to achieve the velocity and quality needed for success in today’s rapidly transforming industry.

But with distinct personalities and distinct jobs to do, how can DevOps teams bring these jobs together? If avoiding the drama of a love triangle is a priority, what characteristics are necessary to keep business running smoothly?

The first, is perhaps the most obvious - communication. Communication is vital, and this is something that CI enables. It allows teams to be Agile by ensuring they are all on the same page, so if they leave a project or move on to a different step in the process, they can easily integrate once they return without having to start over from the beginning.

The second is trust – CD alleviates any unknowns by automating and streamlining all the processes leading up to deployment, such as validating the quality of the build in the previous environment and promoting to staging. By eliminating the element of doubt, teams can trust both the process and the product - assured that continuous quality is being prioritized.

And finally, honesty. If CT is leveraged when developing apps in different environments and with different criteria, it will prevent larger issues from happening once the app is in the sprint or live, keeping developers honest about the status of their code.

DevOps Practice

(Q). What is DevOps Practice?

For a long time, development and operations were isolated modules. Developers wrote code; the system administrators were responsible for its deployment and integration. As there was limited communication between these two silos, specialists worked mostly separately within a project. That was fine when Waterfall development dominated.  But since Agile and continuous workflow have taken over the world of software development, this model is out of the game. Short sprints and frequent releases occurring every two weeks or even every day require a new approach and new team roles.
DevOps is Development and Operation’s Collaboration, It’s a Union of Process, People and Working Product that enable continuous integration and continuous delivery of value to our end users. DevOps accelerate the process to deliver applications and software services at high speed and high velocity. So that organizations can learn and Adopt the market at its earliest. Also, it minimizing the risk factor by continuously delivering and getting end-users and stakeholders feedback at the early stages.



How DevOps Works
DevOps is the practice of operations and development engineers that work together in the entire project life-cycle, from design and development process to production releases and support.

Starting from design and development to testing automation and from continuous integration to continuous delivery, the team works together to achieve the desired goal. People having both development and operations skill sets working together and use various tools for CI-CD and Monitoring to respond quickly to customers need and fix issues and bugs.

Why DevOps Matters
In today’s competitive software Industry, Automation and AI plays a major role and to stay ahead in the market and attract your stakeholders and customer we must transform and adapt the DevOps Best Practices. So Why you need DevOps in First place, well
  • To stay ahead in the market as competitors are already doing this.
  • To increase velocity of the team as well as product delivery.
  • To reduce downtime and within a minimum time limits, update the changes on the production.
  • To reduce human error by doing all work automated.
Advantages of DevOps
Following are the main benefits of DevOps Practices.

1. Break down the Silos:
I believe the most important benefit using DevOps is to break down the Silos as the Cross-functional development team and operation team works together that is possible due to the self-organized approach of work.
2. Speed:
Delivering the highest business value item quickly and faster product delivery in the market as DevOps follows Agile Principles.
3. Rapid Delivery:
Frequently release the working product in the market to satisfy the market and more importantly customers need, that improves the ROI (Return on investment).
4. Reliability:
By following DevOps best practices and using the best tool for Continuous Integration, Testing Automation, and Continuous Delivery and monitoring the logs helps the team to stay updated and take the real-time decision quickly.
5. Team Collaboration:
DevOps improves the collaborations between the Dev Team and Ops Team, Team works together towards the common business goal.
6. Security:
While implementing automation Security is a very important factor, By Following DevOps model and using Infrastructure as code and by doing automation of process and compliance policies, one can take control security configuration.
7. Risk Management:
Using this practice we can Identify the risk factor early in the application lifecycle stages. Early detection of any issues or bug and quick correction or fixes helps to stay ahead in the competition.

Tuesday, February 18, 2020

Deffered Defect


(Q). When does a defect gets deferred?

If the present bug is not of a prime priority and if it is expected to get fixed in the next release, then status "Deferred" is assigned to such bugs.

The bug, changed to deferred state means the bug is expected to be fixed in next releases. The reasons for changing the bug to this state have many factors. Some of them are priority of the bug may be low, lack of time for the release or the bug may not have major effect on the software.

Image result for deferred defect jira card

Featured Posts