NEW COURSE RELEASED! - 21 HOURS, 200+ VIDEOS - Master DevOps with Docker, Kubernetes and Azure DevOps
In this article, we explore the important non functional requirement called Reliability.
What you will learn
- What Is Reliability?
- Why is Reliability important?
- How do you improve Reliability of your system?
Free Courses - Learn in 10 Steps
- FREE 5 DAY CHALLENGE - Learn Spring and Spring Boot
- Learn Spring Boot in 10 Steps
- Learn Docker in 10 Steps
- Learn Kubernetes in 10 Steps
- Learn AWS in 10 Steps
Non Functional Requirements and Microservices
This is the part of a series of articles on Non Functional Requirements:
- 1 - Microservices Architectures - Non Functional Requirements
- 2 - Security
- 3 - Web Application Security And OWASP - Top Ten Security Flaws
- 4 - Maintainability
- 5 - Scalability
- 6 - Performance
- 7 - Reusability
- 8 - Reliability
- 9 - Modularity
- 10 - Availability
- 11 - Portability
What Is Reliability?
There are two important aspects to application reliability.
- Whatever data that you present to the system user, how accurate is that data? Are there any bugs in the source of that data?
- How reliable is the data present in your database? This is crucial, because such data could be provided to other systems, or be used to generate important analytics.
Improving Application Reliability
Let’s look at some of the things you can do to improve reliability of an application.
Write Great Code
When you write readable code, any bugs present in them would stand out.
Write Great Tests
If you have writing good quality unit tests as part of the development process, it helps build robust software. Not only do they help improve the design, they also help find bugs very early. Following a development process such as Test Driven Development (TDD) is highly recommended for reliable applications.
The same logic extends to component-level and API-level testing as well.
Automate The Testing Process
The integration and system tests must have a high degree of automation. When you depend on manual testing, the chance that a bug leaks over to production is very high. Properly configured automation leads to proper testing of builds, and gives clear and immediate feedback on the build status.
Use Continuous Integration
It is highly recommended that the automated tests be run very frequently, in Continuous Integration, as soon as code is committed into the source repository.
Ensure Proper Database Design
Make sure that your database design is top-class. Normalizing your database helps in eliminating bad data at origin.
Do check out our video on this:
In this short article, we talked about the important concept of application reliability. There are two aspects to it - ensuring data shown to users is reliable, and ensuring data in our data stores is accurate. You can improve reliability by writing great code, writing and automating great unit and system tests, having frequent build testing, and ensuring proper database design.