Best Web Server Hardware

Application Setup

Introduction

Once your application is up and running in a cloud server environment, you may be wondering how you can improve your server environment to make the leap from "it works" to a full-fledged production environment. This article will help you get started with planning and implementing a production environment by creating a loose definition of "production", in the context of a web application in a cloud server environment, and by showing you some components that you can add to your existing architecture to make the transition.

Your actual setup might be simpler or more complex, but the general ideas and components discussed herein should apply to any server environment to a some extent.

Let's get started with defining what we mean when we say "production environment".

What is a Production Environment?

A server environment for a web application, in a general sense, consists of the hardware, software, data, operational plans, and personnel that are necessary to keep the application working. A production environment typically refers to a server environment that was designed and implemented with utmost consideration for acceptable levels of these factors:

  • Availability: The ability for the application to be usable by its intended users during advertised hours. Availability can be disrupted by any failure that affects a critical component severely enough (e.g. the application crashes due to a bug, the database storage device fails, or the system administrator accidentally powers off the application server).

One way to promote availability is to decrease the number of single points of failure in an environment. For example, using a static IP and a monitoring failover service ensures that users only access healthy load balancers.To learn more, read this section of How To Use Floating IPs and this article on load balancing.

  • Example Backup SystemRecoverability: The ability to recover an application environment in the event of system failure or data loss. If a critical component fails, and is not recoverable, availability will become non-existent. Improving maintainability, a related concept, reduces the time needed to perform a given recovery process in the event of a failure, and therefore can improve availability in the event of a failure
  • Performance: The application performs as expected under average or peak load (e.g. it is reasonably responsive). While very important to your users, performance only matters if the application is available

Take some time to define acceptable levels for each of the items just mentioned, in the context of your application. This will vary depending on the importance and nature of the application in question. For example, it is probably acceptable for a personal blog that serves few visitors to suffer from occasional downtime or poor performance, as long as the blog can be recovered, but a company's online store should strive very high marks across the board. Of course, it would be nice to achieve 100% in every category, for every application, but that is often not feasible due to time and money constraints.

Asustor ASUSTOR AS3202T 2-Bay INTEL Quad-Core NAS
Personal Computer (Asustor)
  • Best cost effective entertainment storage solution
  • Intel 1.6GHz Quad-Core (burst up to 2.24GHz) processor w/ 2GB RAM
  • Tool-less HDD installation, initialize the NAS with your smartphone
  • Cross-platform (PC, Mac, Android, iOS) file sharing with multi-user access
  • Modern and compact design with distinct diamond plate finish

Related posts: