## Table of Contents
– [What is meant by Production Environment](#what-is-meant-by-production-environment
– [Backup System](#backup-system
– [Recovery Plans](#recovery-plans
– [Load Balancing](#load-balancing
– [Centralized Logging](#centralized-logging
If the application is freely running in the cloud environment, then accustomed to the rapid change in application management philosophy of today’s world. To change the planning and implementation of a production environment is to be created. For purpose of demonstration, It will be like two server environment that merely serves a web application:
From the above figure, we can see the setup where the components are involved in the cloud server environment and it serves the web application indeed.
## What is meant by Production Environment
A production environment can be described as the server environment for the web application which consists of hardware, software, data, operational plans which are necessary for the application to work. Production environment depends on factors:
The availability can be defined as the application ability of intended users during the advertised hours and it is disrupted by the failure that will affect a crucial component severely enough. This can be described as the failure in the database storage fails so the administrator will get affected accidentally. The only way to promote is monitoring the availability by decreasing the number of points of the failure.
Recoverability is described as that recovering from its failure or data loss of a system. If any component fails and it is not recoverable then availability will become non-existent.
The application that performs and the average it works for users.
Acceptance levels can be mentioned as depending on the context and the application. It will depend on performance, recoverability, maintainability, and availability. So Here, we did not mention the hardware reliability, this can be described as the amount of time the component will function properly without its failure and will also include the security factors. This is because the cloud servers are reliable and also the potential of the failures and following security practices. Here, are the components that we can set up in the production environment.
## Backup System
Backup system will permit to create the periodic backups of the data and also restore data from backup. Backups will also allow for rollbacks in the data if at all the deletion or insertion in the modification. Every computer has the chance for the failure at any point in time, where we can lose the data so for this retrieve we need the backup of the data. The backup system is required for the production and it has storage locations where the data can be stored as they are selected, extracted, and manipulated.
From the above figure, we can see the backup server resides in the same data center as that of the application servers even the primary or initial backups are created here. Backup has the considerations the following:
## Data Selection and Extraction
Data that is needed to select and extract for backup. For coherent units of data. Most of the modern computers have the storage in the discrete units called files.
## Schedule of Backup Data
How the data is being taken whether it is full or incremental backups are done. It needs to perform at the frequent intervals of time and need to see some data and its considerations which may affect the schedule of the backup.
## Data Retention Period
Policies and regulations can lead to situations where the backups are retained for a particular period. The duration we will keep the backups.
## Disk Space or Storage Space for Backups
Data repository model has the data that has to be copied on to the data storage medium which may be magnetic tape, hard disk, optical storage, floppy or a drive.
Due to the combination of previous items affects the amount of disk space that the backup system should require. We need to take the advantage of the compression for the decrease of disk space.
## Off-site Data Protection
Backup data can be sent to an off-site to protect against any disaster or other sites specific problem. It is better to maintain a copy of the backups in a geographically separate location.
## Backup Restoration Tests
Test the backups restoration whether they are working correctly or not.
## Recovery Plans
Recovery plans can be explained as the set of documented procedures to recover from the failures or administration errors that occur in the production environment.
At the minimum cost, we will need the data recovery plan for the accidental data deletion or hardware failure. The recovery plan can be explained briefly as an example where a basic recovery plan is taken for server failure because the steps or the procedure used to perform initial server development, and the extra procedures are also required for restoration from backups. So, choose of the better recovery plan might help more for the recovery process. A recovery plan is required for the production even then it is not required for the software procedures but it is required for the setup. They will enable the backups effectively.
We can see the overview where the recovery plan plays a crucial role in it. When the database server is failed. It is being recovered by applying redo logs and rollback segments. At first, we can see the mix of committed and uncommitted transactions but after recovery, we can see only committed transactions. Considerations required for the recovery plans:
## Procedure Documentation
The set of documents that required in a failure event. If the document is written clearly with the step by step procedure then we can follow the document to rebuild the server and also we can add some steps for restoration of application data and configuration from backups.
## Automation Tools
The configuration software provides the automation this can improve the deployment and recovery plans. Guides are not adequate for the failure because it is not easy for the person to solve the execution addition of tools are required.
## Critical Components
Components are required for the application to run correctly. Application and the database servers both are required either of the failures will create havoc.
## Single Points of Failure
If the critical components do not have the automatic failover mechanism are consider to be the single point of failure and they should be eliminated. To improve ability. The diagram shows the single point failure in the router.
Update the documentation as the recovery process improves.
## Load Balancing
Load balancing can be explained as the division of work processing between two or more computers or CPUs. This is done because the failure of one server will balance the traffic by providing other platforms until the server recovers in the cloud environment the load balancer server is used to balance the load balance software. The load balancer is not very much essential or required for the production environment but it helps to reduce the single points of failure system.
Check here: [Types of Load Balancing](https://systemongrid.com/guides/an-introduction-to-haproxy-and-load-balancing-concepts#types-of-load-balancing
From the above diagram, one more application server is added to share the load, load balancer spread user requests across the servers. It helps to grow the performance as it has two servers. If one server fails then another server helps to regain the loss. Considerations of the load balancing:
## Load Balanceable Components
The components will not be load balanced easily and some considerations are made and changed for some types of software like databases.
## Application Data Replication
If a loaded application server stores the application locally which can be uploaded files. So, the data must be available to the other application servers through different methods such as replication.
## Performance Bottlenecks
If the load balancer unable to serve enough resources then it will decrease the performance of the application.
## Single Points of Failure
Load balancing is used to eliminate the single points of failure and the poor plan load balance can add single points in the failure.
Monitoring can be described as giving the status of the services and also trends of server resource utilization, monitoring provides the great result if any trigger in the action occurs such as if a server goes down or a resource is over-utilized. Notifications are provided so if any issue occurs to prevent the downtime of the application. Monitoring is not so necessary but improves the recoverability, planning, and maintenance of the setup. Considerations of monitoring:
## Services to Monitor
Monitoring of services indicates the software that we will monitor. We will see whether all services are running in the running state, active and functioning correctly.
## Resources to Monitor
Resources monitoring includes storage, memory, CPU, and network utilization.
## Data Retention
Data retention can be described as the duration of time that will be retained to monitor the data before the discard of it.
## Problem Detection Rules
The rules and thresholds that determine the service or resource are running and are OK. This is because if the server is running and answering the requests. But the resource or storage will trigger if the threshold exceeds.
## Notification rules
The thresholds and rules that exceed then the notification are sent. Notifications are essential but they are too many then the inbox will be full. So, they can also be ignored.
## Centralized Logging
Centralized logging can be defined as every application that runs in the server environment and even generates the logs. Centralized logging management is the logging solution system that will consolidate the log data and pushes to one central, accessible, easy-to-use interface and this allows to quickly detect the issues that will span the multiple servers by correlating their logs and metrics during the time frame and thus not required in the production. It will just provide invaluable insight into the server environment.
The above diagram, where the monitoring and centralized logging both are shown.
Considerations of logging:
## Logs to Gather
Particular logs that will ship from servers to a centralized logging server and gather all the important servers.
## Data Retention
As we know for the period of time the data is retained before we discard it. This will include the logs that we gather and will affect the amount of disk space that the centralized system will require.
## Log Filters
Filters can be explained as the parse plain logs into structured log data. Filtering logs will improve the ability to analyze, query, and graph the data quickly and easily.
## Server Clocks
The clocks of the servers are synchronized and are set to time zone. So, depending on that log time will be running and accurate.
These components will improve the server setup. So based on the resources availability and the balance the design and implementation are done in the production environment it also depends on the production goals.