Liwaiwai Liwaiwai
  • /
  • Artificial Intelligence
  • Machine Learning
  • Robotics
  • Engineering
    • Architecture
    • Design
    • Software
    • Hybrid Cloud
    • Data
  • About
Liwaiwai Liwaiwai
  • /
  • Artificial Intelligence
  • Machine Learning
  • Robotics
  • Engineering
    • Architecture
    • Design
    • Software
    • Hybrid Cloud
    • Data
  • About
  • Design
  • Engineering

The ABCs Of Building Reliable, Scalable, And Maintainable Web Applications – Reliability

  • March 13, 2023
  • relay

Reliability, Scalability, and Maintainability are some of the least understood concepts of application development. Even with little understanding of these topics, many developers use them on a day-to-day basis during their work conversations. A proper and sound understanding of these concepts enables you to make proper use of these terminologies and think effectively to enforce these vital concepts in applications you build.

As online applications get more sophisticated, efficient scalability, dependability, and maintainability, become increasingly important to ensure smooth performance and user pleasure. Effectively handling these parts of web app development can be difficult, especially for developers who are new to the profession or are unfamiliar with these concepts.

In this series of blog posts, we will be understanding these terminologies inside and out. We will explore ways of thinking about reliability, scalability, and maintainability in the applications we build.

Who loves un-reliability?

Would you, as a user, ever prefer to use an application that crashes frequently, does not work as intended, and perform terribly?

A typical user would have the following expectations from a reliable application –

  1. The application should perform the function as expected by the user.
  2. It can tolerate user’s mistakes
  3. It provides good enough performance
  4. Prevent security and safety

Taking all these things together, we can informally define reliability as – “Continue to work properly, even when things go wrong“.

Faults – The things going wrong

Any component of an application that deviates from its normal functioning is called a Fault. Applications that anticipate faults and can handle them are called Fault-tolerant applications.

Read More  Dynatrace Launches AppEngine To Enable Teams To Build Custom Apps That Unlock Insights And Drive Automation From Cloud Observability, Security, And Business Data

The goal of a reliable application is to minimize the chances of faults occurring. While it is impossible to completely prevent any kind of fault, the application should have measures in place to ensure that a fault does not lead to a catastrophic system failure. This includes providing redundancy, introducing fault tolerance and providing recovery mechanisms in the event of a fault. With the right measures in place, a reliable application can help ensure that the system continues to run smoothly even in the face of faults.

Let us take a look at different kinds of faults that can occur in any application.

Hardware Faults

Hardware faults are the easiest to think of. These can be the result of hard disk crashing, RAM becoming faulty, power outages, or network issues.

One of the simplest ways to prevent hardware faults is to add redundancy to the system. So we may have multiple power supplies, multiple disks with redundant data, and hot-swappable CPUs. When one component faults, the redundant component can take its place.

Software Faults

While hardware faults are random, there is another class of faults that are more systematic. These faults result from something wrong with the software. Following are some of the things that can lead to software faults –

  • Bug in software that causes it to crash whenever a certain input is received
  • A process taking shared resources like RAM or CPU causing other processes to starve
  • A critical service becoming unresponsive or very slow

There is no simple solution for addressing software faults. Because of wide-ranging issues leading to software faults, preventing them also takes several different kinds of measures.

Read More  TI Introduces Industry's First Automotive GaN FET With Integrated Driver, Protection And Active Power Management

It is often a good practice to review the assumptions made while building the system. For example, an e-commerce application might be built on the assumption that users will order only if the item is in stock. But this assumption might be incorrect in the context of the application, paving way for software faults.

Thorough testing is another way of catching software faults before they appear in deployments. Measuring, monitoring, and analyzing running applications are also ways of catching software faults.

Faults due to Human Errors

Humans create and maintain all of the apps. Numerous human decisions and behaviors are the direct sources of application system flaws. Regardless of the extent of automation, we cannot remove humans from the equation. So, how can we make our systems dependable in the face of untrustworthy humans? There are several approaches that we generally take to eliminate human-related faults.

  • Design systems that reduce opportunities for errors.
  • Test thoroughly at all levels.
  • Allow quick and easy recovery from human errors.
  • Set up detailed monitoring.

Why should applications be reliable?

Building reliable applications is the responsibility of every developer. There are situations where we are forced to sacrifice the reliability of applications for things like operational costs or development costs. But these sacrifices should be made with extreme conscious.


With this, we come to the end of this first blog on the reliability of applications. We saw why reliability is a crucial aspect of application development and what kinds of faults we should avoid while creating applications. In the upcoming posts, we will explore the other two aspects of application development. Till then, keep learning and keep growing!

Read More  AI and the Art of Ingenuity: Computational Creativity

Enjoy what you are reading? Consider following me on Twitter!

By: Rishabh Agarwal
Originally published at Hackernoon

Source: Cyberpogo

relay

Related Topics
  • Application Development
  • Design
  • Web Application
You May Also Like
View Post
  • Artificial Intelligence
  • Engineering
  • Tools

The Next Generation Of AI For Developers And Google Workspace

  • March 21, 2023
View Post
  • Data
  • Design
  • Engineering
  • Tools

Sumitovant More Than Doubles Its Research Output In Its Quest To Save Lives

  • March 21, 2023
View Post
  • Data
  • Engineering
  • Tools

Built With BigQuery: How Sift Delivers Fraud Detection Workflow Backtesting At Scale

  • March 20, 2023
View Post
  • Engineering
  • People
  • Software Engineering

A Guide To Managing Your Agile Engineering Team

  • March 15, 2023
View Post
  • Engineering
  • People

10 Ways Wikimedia Does Developer Advocacy

  • March 15, 2023
View Post
  • Data
  • Engineering
  • Machine Learning

Sentiment Analysis With BigQuery ML

  • March 13, 2023
View Post
  • Engineering
  • Software Engineering
  • Tools

Visual Studio Code February 2023

  • March 10, 2023
View Post
  • Data
  • Engineering

Shorten The Path To Insights With Aiven For Apache Kafka And Google BigQuery

  • March 9, 2023
Stay Connected!
LATEST
  • 1
    6 ways Google AI Is Helping You Sleep Better
    • March 21, 2023
  • 2
    AI Could Make More Work For Us, Instead Of Simplifying Our Lives
    • March 21, 2023
  • 3
    Microsoft To Showcase Purpose-Built AI Infrastructure At NVIDIA GTC
    • March 21, 2023
  • 4
    The Next Generation Of AI For Developers And Google Workspace
    • March 21, 2023
  • 5
    Sumitovant More Than Doubles Its Research Output In Its Quest To Save Lives
    • March 21, 2023
  • 6
    How Osmo Is Digitizing Smell With Google Cloud AI Technology
    • March 20, 2023
  • 7
    Built With BigQuery: How Sift Delivers Fraud Detection Workflow Backtesting At Scale
    • March 20, 2023
  • 8
    Building The Most Open And Innovative AI Ecosystem
    • March 20, 2023
  • 9
    Understand And Trust Data With Dataplex Data Lineage
    • March 17, 2023
  • 10
    Limits To Computing: A Computer Scientist Explains Why Even In The Age Of AI, Some Problems Are Just Too Difficult
    • March 17, 2023

about
About
Hello World!

We are liwaiwai.com. Created by programmers for programmers.

Our site aims to provide materials, guides, programming how-tos, and resources relating to artificial intelligence, machine learning and the likes.

We would like to hear from you.

If you have any questions, enquiries or would like to sponsor content, kindly reach out to us at:

[email protected]

Live long & prosper!
Most Popular
  • 1
    The Benefits And Core Processes Of Data Wrangling
    • March 17, 2023
  • 2
    We Cannot Even Agree On Dates…
    • March 17, 2023
  • 3
    Financial Crisis: It’s A Game & We’re All Being Played
    • March 17, 2023
  • 4
    Using ML To Predict The Weather And Climate Risk
    • March 16, 2023
  • 5
    Google Is A Leader In The 2023 Gartner® Magic Quadrant™ For Enterprise Conversational AI Platforms
    • March 16, 2023
  • /
  • Artificial Intelligence
  • Machine Learning
  • Robotics
  • Engineering
  • About

Input your search keywords and press Enter.