Disaster Recovery

[av_one_full first min_height=\’\’ vertical_alignment=\’av-align-top\’ space=\’\’ row_boxshadow_color=\’\’ row_boxshadow_width=\’10\’ custom_margin=\’aviaTBcustom_margin\’ margin=\’0px\’ margin_sync=\’true\’ mobile_breaking=\’\’ border=\’\’ border_color=\’\’ radius=\’0px\’ radius_sync=\’true\’ padding=\’0px\’ padding_sync=\’true\’ column_boxshadow_color=\’\’ column_boxshadow_width=\’10\’ background=\’bg_color\’ background_color=\’\’ background_gradient_color1=\’\’ background_gradient_color2=\’\’ background_gradient_direction=\’vertical\’ src=\’\’ attachment=\’\’ attachment_size=\’\’ background_position=\’top left\’ background_repeat=\’no-repeat\’ highlight_size=\’1.1\’ animation=\’\’ link=\’\’ linktarget=\’\’ link_hover=\’\’ title_attr=\’\’ alt_attr=\’\’ mobile_display=\’\’ id=\’\’ custom_class=\’\’ aria_label=\’\’ av_uid=\’av-1vrra\’]

[av_heading heading=\’AppCan Disaster Recovery\’ tag=\’h1\’ style=\’blockquote modern-quote\’ subheading_active=\’\’ show_icon=\’\’ icon=\’ue800\’ font=\’entypo-fontello\’ size=\’\’ av-desktop-font-size-title=\’\’ av-medium-font-size-title=\’\’ av-small-font-size-title=\’\’ av-mini-font-size-title=\’\’ subheading_size=\’\’ av-desktop-font-size=\’\’ av-medium-font-size=\’\’ av-small-font-size=\’\’ av-mini-font-size=\’\’ icon_size=\’\’ av-desktop-font-size-1=\’\’ av-medium-font-size-1=\’\’ av-small-font-size-1=\’\’ av-mini-font-size-1=\’\’ color=\’\’ custom_font=\’\’ subheading_color=\’\’ seperator_color=\’\’ icon_color=\’\’ margin=\’5px\’ margin_sync=\’true\’ av-desktop-margin=\’\’ av-desktop-margin_sync=\’true\’ av-medium-margin=\’\’ av-medium-margin_sync=\’true\’ av-small-margin=\’\’ av-small-margin_sync=\’true\’ av-mini-margin=\’\’ av-mini-margin_sync=\’true\’ headline_padding=\’\’ headline_padding_sync=\’true\’ av-desktop-headline_padding=\’\’ av-desktop-headline_padding_sync=\’true\’ av-medium-headline_padding=\’\’ av-medium-headline_padding_sync=\’true\’ av-small-headline_padding=\’\’ av-small-headline_padding_sync=\’true\’ av-mini-headline_padding=\’\’ av-mini-headline_padding_sync=\’true\’ padding=\’10\’ av-desktop-padding=\’\’ av-medium-padding=\’\’ av-small-padding=\’\’ av-mini-padding=\’\’ icon_padding=\’10\’ av-desktop-icon_padding=\’\’ av-medium-icon_padding=\’\’ av-small-icon_padding=\’\’ av-mini-icon_padding=\’\’ link=\’\’ link_target=\’\’ id=\’\’ custom_class=\’\’ template_class=\’\’ element_template=\’\’ one_element_template=\’\’ av_uid=\’av-ui8u\’ sc_version=\’1.0\’ admin_preview_bg=\’\’][/av_heading]

[av_hr class=\’custom\’ icon_select=\’no\’ icon=\’ue808\’ font=\’entypo-fontello\’ position=\’center\’ shadow=\’no-shadow\’ height=\’50\’ custom_border=\’av-border-thin\’ custom_width=\’100%\’ custom_margin_top=\’10px\’ custom_margin_bottom=\’10px\’ custom_border_color=\’\’ custom_icon_color=\’\’ id=\’\’ custom_class=\’\’ av_uid=\’av-3fbm\’ admin_preview_bg=\’\’]

[av_textblock fold_type=\’\’ fold_height=\’\’ fold_more=\’Read more\’ fold_less=\’Read less\’ fold_text_style=\’\’ fold_btn_align=\’\’ textblock_styling_align=\’\’ textblock_styling=\’\’ textblock_styling_gap=\’\’ textblock_styling_mobile=\’\’ size=\’\’ av-desktop-font-size=\’\’ av-medium-font-size=\’\’ av-small-font-size=\’\’ av-mini-font-size=\’\’ font_color=\’\’ color=\’\’ fold_overlay_color=\’\’ fold_text_color=\’\’ fold_btn_color=\’theme-color\’ fold_btn_bg_color=\’\’ fold_btn_font_color=\’\’ size-btn-text=\’\’ av-desktop-font-size-btn-text=\’\’ av-medium-font-size-btn-text=\’\’ av-small-font-size-btn-text=\’\’ av-mini-font-size-btn-text=\’\’ fold_timer=\’\’ z_index_fold=\’\’ id=\’\’ custom_class=\’\’ template_class=\’\’ element_template=\’\’ one_element_template=\’\’ av_uid=\’av-ka00b6ed\’ sc_version=\’1.0\’ admin_preview_bg=\’\’]
Policy Statement

AppCan acknowledges the importance of its platform in the day-to-day running for our clients and recognises the need for, and value of, a comprehensive Disaster Recovery (DR) Plan which aims to minimise risk and disruption should a disaster occur.

AppCan also recognises that it is not possible to foresee and anticipate every eventuality, and that some are out of its control.

Introduction

The DR procedures are to be followed in the event of a disaster concerning the AppCan Platform. A disaster will be considered to be a disaster when users are unable to access the AppCan Platform and/or details are lost from the system.

Responsibility for ensuring that these procedures are kept up to date rests with the Directors of AppCan.

Roles & Responsibilities

Owner: AppCan Ltd Directors.

  • Strategic owner of the Business Continuity / Disaster Recovery plan.
  • Takes ownership of all threats identified.
  • Participate in any test and exercise planning and execution.
  • Ensure plans are maintained, located and secured appropriately.
  • Ensure staff are aware of the BCP and their role following an incident.
  • Liaise with Recovery Team to deliver Business Continuity education to all staff.
  • During Incident – Incident Management Team Leader.
  • Liaise with appropriate staff members.

Incident Recovery Team

The Recovery Team will form as soon as any of its members declare the need. On forming, those present can take decisions to apply appropriate resources to deal with an event as it occurs (ideally to prevent it becoming a crisis). It is essential for this reason that the team be made up of individuals representing core areas of the organisation.

All staff has a responsibility to notify their line manager, or other appropriate manager, if they feel AppCan’s ability to operate its systems effectively may be in danger or there may be a need to invoke Business Continuity / Disaster Recovery plan.

All members of the Recovery Team have a responsibility to meet as soon as is reasonable to discuss an incident, or the threat of an incident, which could force plans to be invoked.

Disaster Recovery Procedures

Immediately on the discovery of the disaster the Incident Recovery Team must be notified initially using the appropriate contact numbers.

The Incident Recovery Team will include our software development partner(s), hosting management partner(s) and Microsoft (if required to assist).

In the event of one of these people being unavailable, then an appropriate alternative from the contact list should be contacted.  Having assessed the seriousness of the disaster, the most senior person present will contact other personnel as appropriate.

Disaster Recovery Checklist

  1. Have the Incident Recovery Team been contacted?
  2. Contact partner(s) as required.
  3. Contact client representatives to inform them DR plan being mobilised.
  4. Check all Microsoft Azure services operational.
  5. Check Databases operational.
  6. Check File Storage operational.
  7. Check any DNS settings.
  8. Revert to backup systems as required.
  9. Test backup systems are accessible and working as required.
  10. Advise clients system operational.

[/av_textblock]

[av_hr class=\’custom\’ icon_select=\’no\’ icon=\’ue808\’ font=\’entypo-fontello\’ position=\’center\’ shadow=\’no-shadow\’ height=\’50\’ custom_border=\’av-border-thin\’ custom_width=\’100%\’ custom_margin_top=\’10px\’ custom_margin_bottom=\’10px\’ custom_border_color=\’\’ custom_icon_color=\’\’ id=\’\’ custom_class=\’\’ av_uid=\’av-1u3fcf\’ admin_preview_bg=\’\’]

[av_heading heading=\’AppCan Platform Backups & Replication\’ tag=\’h2\’ style=\’blockquote modern-quote\’ subheading_active=\’\’ show_icon=\’\’ icon=\’ue800\’ font=\’entypo-fontello\’ size=\’\’ av-desktop-font-size-title=\’\’ av-medium-font-size-title=\’\’ av-small-font-size-title=\’\’ av-mini-font-size-title=\’\’ subheading_size=\’\’ av-desktop-font-size=\’\’ av-medium-font-size=\’\’ av-small-font-size=\’\’ av-mini-font-size=\’\’ icon_size=\’\’ av-desktop-font-size-1=\’\’ av-medium-font-size-1=\’\’ av-small-font-size-1=\’\’ av-mini-font-size-1=\’\’ color=\’\’ custom_font=\’\’ subheading_color=\’\’ seperator_color=\’\’ icon_color=\’\’ margin=\’5px\’ margin_sync=\’true\’ av-desktop-margin=\’\’ av-desktop-margin_sync=\’true\’ av-medium-margin=\’\’ av-medium-margin_sync=\’true\’ av-small-margin=\’\’ av-small-margin_sync=\’true\’ av-mini-margin=\’\’ av-mini-margin_sync=\’true\’ headline_padding=\’\’ headline_padding_sync=\’true\’ av-desktop-headline_padding=\’\’ av-desktop-headline_padding_sync=\’true\’ av-medium-headline_padding=\’\’ av-medium-headline_padding_sync=\’true\’ av-small-headline_padding=\’\’ av-small-headline_padding_sync=\’true\’ av-mini-headline_padding=\’\’ av-mini-headline_padding_sync=\’true\’ padding=\’10\’ av-desktop-padding=\’\’ av-medium-padding=\’\’ av-small-padding=\’\’ av-mini-padding=\’\’ icon_padding=\’10\’ av-desktop-icon_padding=\’\’ av-medium-icon_padding=\’\’ av-small-icon_padding=\’\’ av-mini-icon_padding=\’\’ link=\’\’ link_target=\’\’ id=\’\’ custom_class=\’\’ template_class=\’\’ element_template=\’\’ one_element_template=\’\’ av_uid=\’av-lidecggy\’ sc_version=\’1.0\’ admin_preview_bg=\’\’][/av_heading]

[av_textblock fold_type=\’\’ fold_height=\’\’ fold_more=\’Read more\’ fold_less=\’Read less\’ fold_text_style=\’\’ fold_btn_align=\’\’ textblock_styling_align=\’\’ textblock_styling=\’\’ textblock_styling_gap=\’\’ textblock_styling_mobile=\’\’ size=\’\’ av-desktop-font-size=\’\’ av-medium-font-size=\’\’ av-small-font-size=\’\’ av-mini-font-size=\’\’ font_color=\’\’ color=\’\’ fold_overlay_color=\’\’ fold_text_color=\’\’ fold_btn_color=\’theme-color\’ fold_btn_bg_color=\’\’ fold_btn_font_color=\’\’ size-btn-text=\’\’ av-desktop-font-size-btn-text=\’\’ av-medium-font-size-btn-text=\’\’ av-small-font-size-btn-text=\’\’ av-mini-font-size-btn-text=\’\’ fold_timer=\’\’ z_index_fold=\’\’ id=\’\’ custom_class=\’\’ template_class=\’\’ element_template=\’\’ one_element_template=\’\’ av_uid=\’av-lidebgad\’ sc_version=\’1.0\’ admin_preview_bg=\’\’]
There are three core components to the AppCan Platform:

App Services

AppCan Cloud and Admin Portal, as well as associated Function Apps, currently run within an Azure App Service Plan with 99.95% uptime.

The Cloud and Admin portal app services have automatic hourly backups, which can be restored to another location in the event of failure, following Microsoft approved guidance.

If the above solution is unavailable, then the whole system can be re-deployed to a new resource group in another location.

Database

The production database is backed up every 12 hours, and has a point-in-time-recovery (PITR) of 35 days. The backups are restored in Geo-redundant backup storage, allowing them to be accessed in the case of region-wide outage.

In the case of database failure, a backup can be restored, then the existing services can be reconfigured to point to the new database.

Any BI database can be re-created automatically in the same way new BI databases are created.

File Storage

File storage has locally-redundant storage (LRS) configured. LRS replicates data three times within a single data center in the primary region, and provides at least 99.999999999% (11 nines) durability of objects over a given year.

In the case of storage account hardware failure, the files will automatically be available from 2 of the remaining 3 copies.

[/av_textblock]

[av_hr class=\’custom\’ icon_select=\’no\’ icon=\’ue808\’ font=\’entypo-fontello\’ position=\’center\’ shadow=\’no-shadow\’ height=\’50\’ custom_border=\’av-border-thin\’ custom_width=\’100%\’ custom_margin_top=\’10px\’ custom_margin_bottom=\’10px\’ custom_border_color=\’\’ custom_icon_color=\’\’ id=\’\’ custom_class=\’\’ av_uid=\’av-2ko02n\’ admin_preview_bg=\’\’]

[av_heading heading=\’Disaster Recovery Testing\’ tag=\’h2\’ style=\’blockquote modern-quote\’ subheading_active=\’\’ show_icon=\’\’ icon=\’ue800\’ font=\’entypo-fontello\’ size=\’\’ av-desktop-font-size-title=\’\’ av-medium-font-size-title=\’\’ av-small-font-size-title=\’\’ av-mini-font-size-title=\’\’ subheading_size=\’\’ av-desktop-font-size=\’\’ av-medium-font-size=\’\’ av-small-font-size=\’\’ av-mini-font-size=\’\’ icon_size=\’\’ av-desktop-font-size-1=\’\’ av-medium-font-size-1=\’\’ av-small-font-size-1=\’\’ av-mini-font-size-1=\’\’ color=\’\’ custom_font=\’\’ subheading_color=\’\’ seperator_color=\’\’ icon_color=\’\’ margin=\’5px\’ margin_sync=\’true\’ av-desktop-margin=\’\’ av-desktop-margin_sync=\’true\’ av-medium-margin=\’\’ av-medium-margin_sync=\’true\’ av-small-margin=\’\’ av-small-margin_sync=\’true\’ av-mini-margin=\’\’ av-mini-margin_sync=\’true\’ headline_padding=\’\’ headline_padding_sync=\’true\’ av-desktop-headline_padding=\’\’ av-desktop-headline_padding_sync=\’true\’ av-medium-headline_padding=\’\’ av-medium-headline_padding_sync=\’true\’ av-small-headline_padding=\’\’ av-small-headline_padding_sync=\’true\’ av-mini-headline_padding=\’\’ av-mini-headline_padding_sync=\’true\’ padding=\’10\’ av-desktop-padding=\’\’ av-medium-padding=\’\’ av-small-padding=\’\’ av-mini-padding=\’\’ icon_padding=\’10\’ av-desktop-icon_padding=\’\’ av-medium-icon_padding=\’\’ av-small-icon_padding=\’\’ av-mini-icon_padding=\’\’ link=\’\’ link_target=\’\’ id=\’\’ custom_class=\’\’ template_class=\’\’ element_template=\’\’ one_element_template=\’\’ av_uid=\’av-lidew477\’ sc_version=\’1.0\’ admin_preview_bg=\’\’][/av_heading]

[av_textblock fold_type=\’\’ fold_height=\’\’ fold_more=\’Read more\’ fold_less=\’Read less\’ fold_text_style=\’\’ fold_btn_align=\’\’ textblock_styling_align=\’\’ textblock_styling=\’\’ textblock_styling_gap=\’\’ textblock_styling_mobile=\’\’ size=\’\’ av-desktop-font-size=\’\’ av-medium-font-size=\’\’ av-small-font-size=\’\’ av-mini-font-size=\’\’ font_color=\’\’ color=\’\’ fold_overlay_color=\’\’ fold_text_color=\’\’ fold_btn_color=\’theme-color\’ fold_btn_bg_color=\’\’ fold_btn_font_color=\’\’ size-btn-text=\’\’ av-desktop-font-size-btn-text=\’\’ av-medium-font-size-btn-text=\’\’ av-small-font-size-btn-text=\’\’ av-mini-font-size-btn-text=\’\’ fold_timer=\’\’ z_index_fold=\’\’ id=\’\’ custom_class=\’\’ template_class=\’\’ element_template=\’\’ one_element_template=\’\’ av_uid=\’av-lidfcs8h\’ sc_version=\’1.0\’ admin_preview_bg=\’\’]
The process of testing AppCan\’s Disaster Recovery is as follows:

  • Establish which components of the platform are to be included in the test.
  • Document the objectives of the test.
  • Document the measures for successful achievement of the objectives.
  • Carry out the DR tests (e.g Backup / Restore) as prescribed above.
  • Review the test results at the end of the test period.
  • Determine the implications of the test results.
  • Implement any required changes following test.
  • Change the Disaster Recovery plan following test, as required.

Please note: Clients requiring DR tests are required to cover costs of the test.  A quote will be supplied based on the test requirements.
[/av_textblock]

[av_hr class=\’custom\’ icon_select=\’no\’ icon=\’ue808\’ font=\’entypo-fontello\’ position=\’center\’ shadow=\’no-shadow\’ height=\’50\’ custom_border=\’av-border-thin\’ custom_width=\’100%\’ custom_margin_top=\’10px\’ custom_margin_bottom=\’10px\’ custom_border_color=\’\’ custom_icon_color=\’\’ id=\’\’ custom_class=\’\’ av_uid=\’\’ admin_preview_bg=\’\’]

[av_heading heading=\’Disaster Recovery Test Plan\’ tag=\’h2\’ style=\’blockquote modern-quote\’ subheading_active=\’\’ show_icon=\’\’ icon=\’ue800\’ font=\’entypo-fontello\’ size=\’\’ av-desktop-font-size-title=\’\’ av-medium-font-size-title=\’\’ av-small-font-size-title=\’\’ av-mini-font-size-title=\’\’ subheading_size=\’\’ av-desktop-font-size=\’\’ av-medium-font-size=\’\’ av-small-font-size=\’\’ av-mini-font-size=\’\’ icon_size=\’\’ av-desktop-font-size-1=\’\’ av-medium-font-size-1=\’\’ av-small-font-size-1=\’\’ av-mini-font-size-1=\’\’ color=\’\’ custom_font=\’\’ subheading_color=\’\’ seperator_color=\’\’ icon_color=\’\’ margin=\’5px\’ margin_sync=\’true\’ av-desktop-margin=\’\’ av-desktop-margin_sync=\’true\’ av-medium-margin=\’\’ av-medium-margin_sync=\’true\’ av-small-margin=\’\’ av-small-margin_sync=\’true\’ av-mini-margin=\’\’ av-mini-margin_sync=\’true\’ headline_padding=\’\’ headline_padding_sync=\’true\’ av-desktop-headline_padding=\’\’ av-desktop-headline_padding_sync=\’true\’ av-medium-headline_padding=\’\’ av-medium-headline_padding_sync=\’true\’ av-small-headline_padding=\’\’ av-small-headline_padding_sync=\’true\’ av-mini-headline_padding=\’\’ av-mini-headline_padding_sync=\’true\’ padding=\’10\’ av-desktop-padding=\’\’ av-medium-padding=\’\’ av-small-padding=\’\’ av-mini-padding=\’\’ icon_padding=\’10\’ av-desktop-icon_padding=\’\’ av-medium-icon_padding=\’\’ av-small-icon_padding=\’\’ av-mini-icon_padding=\’\’ link=\’\’ link_target=\’\’ id=\’\’ custom_class=\’\’ template_class=\’\’ element_template=\’\’ one_element_template=\’\’ av_uid=\’av-liemozle\’ sc_version=\’1.0\’ admin_preview_bg=\’\’][/av_heading]

[av_textblock fold_type=\’\’ fold_height=\’\’ fold_more=\’Read more\’ fold_less=\’Read less\’ fold_text_style=\’\’ fold_btn_align=\’\’ textblock_styling_align=\’\’ textblock_styling=\’\’ textblock_styling_gap=\’\’ textblock_styling_mobile=\’\’ size=\’\’ av-desktop-font-size=\’\’ av-medium-font-size=\’\’ av-small-font-size=\’\’ av-mini-font-size=\’\’ font_color=\’\’ color=\’\’ fold_overlay_color=\’\’ fold_text_color=\’\’ fold_btn_color=\’theme-color\’ fold_btn_bg_color=\’\’ fold_btn_font_color=\’\’ size-btn-text=\’\’ av-desktop-font-size-btn-text=\’\’ av-medium-font-size-btn-text=\’\’ av-small-font-size-btn-text=\’\’ av-mini-font-size-btn-text=\’\’ fold_timer=\’\’ z_index_fold=\’\’ id=\’\’ custom_class=\’\’ template_class=\’\’ element_template=\’\’ one_element_template=\’\’ av_uid=\’av-lien3qbl\’ sc_version=\’1.0\’ admin_preview_bg=\’\’]
The AppCan Disaster Recovery Test Plan is as follows:

There are two core components of the AppCan Platform which we can complete a Disaster Recovery Test on, App Services and the Database:

Microsoft Azure App Services

Using AppCan\’s Microsoft Azure portal, we will:

  1. Create a new resource group in another region to our main data centre location
  2. Restore the AppCan Cloud and AppCan Admin portal (please note: AppCan Admin portal is an internal AppCan system) app services from backups to the new region
  3. Ensure these are accessible through the default app service URL
  4. Create a new DNS record in with our domain hosting partner for \’*.backup.appcancloud.com\’ to point the new cloud portal and ensure the site works as expected. We can ignore certificate issues for the purposes of testing.
  5. Create a new deployment environment and service connection in DevOps* (see details below regarding DevOps), pointing to the new resource group
  6. Deploy the function apps to the new resource group from DevOps pipelines

* Azure DevOps Server is a Microsoft product that provides version control, reporting, requirements management, project management, automated builds, testing and release management capabilities. It covers the entire application lifecycle and enables DevOps capabilities.

Datebase

To test Database backup & restore, we will:

  1. Create a new resource group in Microsoft Azure
  2. Create a new Azure SQL Database Server
  3. Create a new database, selecting the latest production backup as the existing data source
  4. Update existing app service configuration to point to new database
  5. Test AppCan Cloud and AppCan Admin portal functionality

Please note: The production database is backed up every 12 hours, and has a point-in-time-recovery (PITR) of 35 days. The backups are restored in Geo-redundant backup storage, allowing them to be accessed in the case of region-wide outage.
[/av_textblock]

[/av_one_full]

Scroll to Top