# Cloud-Application-Cloud-Readiness-Check-List
## Introduction

The purpose of this document is to define and describe the standards that are required from any modernized application that about to on-board to SaaS.

## Modernized Applications

Any product/Application that developed for SaaS only and desired to be at some level of Dev/Ops and continuously delivery approach

|                                | **Cloud Readiness**              | **Description**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| ------------------------------ | -------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|                                | Saleable                         | - Complete product definition in Control Tower with SKUs clearly defined <br>- Complete license generation strategy                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| Deployability  Configurability | Cloud Deployment & Configuration | - Cloud Applications can be deployed on a given Cloud platform in a fully or partially automated manner. <br>- All required feature and functional configuration management should be provided through a Web/API enabled interface. Like enable tenant capabilities                                                                                                                                                                                                                                                                                        |
| Availability                   | HA & Self Recovery               | - HA, Load Balancing and Fault Tolerance testing <br>- App recover automatically after machine restart in order to maintain stability - Restarting App service will restore all node functionality and integrations <br>- DB/File System connection should restore automatically after an issue (ex, network connectivity) without restarting the App service and should document the problem in the logs.                                                                                                                                                 |
| Maintainability                | Upgrade/Patch                    | - Cloud application component to be upgraded, patched or functions changed in a standard and predictable manner. Maintainability requires backward compatibility through 2 or more releases to enable maintenance activities to occur online.                                                                                                                                                                                                                                                                                                              |
| Recoverability                 | Backup & Restore                 | - Cloud Application has a complete data backup and recovery solution with well-documented backup and recovery procedures that have been validated and tested                                                                                                                                                                                                                                                                                                                                                                                               |
| Observability                  | Monitoring                       | - Expose application health for monitoring - node\\component\\farm\\tenant\\integration - Implement application monitoring and thresholds based on best practices - Major functionality monitoring (APM/BPM) for SLA calculation - Implement usage\\load\\performance monitoring on farm\\components based on best practices - Runbooks – resolutions for each alert that will be handled by the NOC/Ops                                                                                                                                                   |
|                                | Documentation                    | - SaaS Customer facing documentation portal - Internal documentations for Ops like deployment guide, upgrade, sizing guide, backend integration, APIs, affected functionality in case of a component failure, troubleshooting guide etc.                                                                                                                                                                                                                                                                                                                   |
| Observability                  | Performance & Capacity           | - Measure performance and load and share metrics - number of users\\transactions\\requests the farm can handle - Measure and determine farm capacity in term of number of tenants and their footprint - Provide runbook in case farm limit reached its threshold (Example - Add another Server) - Expose metrics of customer product usage - Can be implemented with the help of Tableau\\Power BI reporting based on what expose. Like License usage, tenant information etc.                                                                             |
| Securability  Defensibility    | Security                         | - Capability and awareness of the application to defend itself against incorrect usage. Both accidental and purposeful. Like develop WAF rules to protect Cloud Applications                                                                                                                                                                                                                                                                                                                                                                               |
|                                | Service Management               | - Define what services from the customer's perspective will need to be fulfilled by the SaaS Ops team when the product goes live. A detailed service catalog needs to be listed as well as an instruction document of the services to be completed - Customer-oriented service catalogs need to be defined as corresponding service offerings and made available to customers through support tooling. The service offering requires a complete definition of the scope of the service and the information, documentation, etc. that needs to be provided. |
