{"id":39427,"date":"2025-04-09T21:30:21","date_gmt":"2025-04-09T20:30:21","guid":{"rendered":"https:\/\/fos.consulting\/?page_id=39427"},"modified":"2025-04-09T21:39:00","modified_gmt":"2025-04-09T20:39:00","slug":"plan-de-contingencia","status":"publish","type":"page","link":"https:\/\/fos.consulting\/en\/plan-de-contingencia\/","title":{"rendered":"Contingency plan"},"content":{"rendered":"<div id=\"fws_69e1864cbd3f0\"  data-column-margin=\"default\" data-midnight=\"dark\" data-top-percent=\"5%\" data-bottom-percent=\"5%\"  class=\"wpb_row vc_row-fluid vc_row full-width-section\"  style=\"padding-top: calc(100vw * 0.05); padding-bottom: calc(100vw * 0.05); \"><div class=\"row-bg-wrap\" data-bg-animation=\"none\" data-bg-animation-delay=\"\" data-bg-overlay=\"false\"><div class=\"inner-wrap row-bg-layer\" ><div class=\"row-bg viewport-desktop\"  style=\"\"><\/div><\/div><\/div><div class=\"row_col_wrap_12 col span_12 dark left\">\n\t<div  class=\"vc_col-sm-12 wpb_column column_container vc_column_container col no-extra-padding inherit_tablet inherit_phone\"  data-padding-pos=\"all\" data-has-bg-color=\"false\" data-bg-color=\"\" data-bg-opacity=\"1\" data-animation=\"\" data-delay=\"0\" >\n\t\t<div class=\"vc_column-inner\" >\n\t\t\t<div class=\"wpb_wrapper\">\n\t\t\t\t\n<div class=\"wpb_text_column wpb_content_element\" >\n\t<div class=\"wpb_wrapper\">\n\t\t<h3 class=\"\" data-start=\"468\" data-end=\"490\">1. Introduction<\/h3>\n<p class=\"\" data-start=\"492\" data-end=\"823\">The purpose of this Plan is to guarantee the operability of the Agora software in situations of contingency or infrastructure failure.<\/p>\n<h3 class=\"\" data-start=\"830\" data-end=\"847\">2. Outreach<\/h3>\n<p class=\"\" data-start=\"849\" data-end=\"895\">This plan applies to the following components:<\/p>\n<ul data-start=\"897\" data-end=\"1211\">\n<li class=\"\" data-start=\"897\" data-end=\"960\">\n<p class=\"\" data-start=\"899\" data-end=\"960\"><strong data-start=\"899\" data-end=\"911\">Software<\/strong>\u00c1gora POS (both cloud and hybrid versions)<\/p>\n<\/li>\n<li class=\"\" data-start=\"961\" data-end=\"1044\">\n<p class=\"\" data-start=\"963\" data-end=\"1044\"><strong data-start=\"963\" data-end=\"982\">Infrastructure<\/strong>: Servers, databases, communications, POS devices<\/p>\n<\/li>\n<li class=\"\" data-start=\"1045\" data-end=\"1125\">\n<p class=\"\" data-start=\"1047\" data-end=\"1125\"><strong data-start=\"1047\" data-end=\"1066\">Points of sale<\/strong>: Owned, franchised or mixed model shops<\/p>\n<\/li>\n<li class=\"\" data-start=\"1126\" data-end=\"1211\">\n<p class=\"\" data-start=\"1128\" data-end=\"1211\"><strong data-start=\"1128\" data-end=\"1141\">Services<\/strong>: Backend, Frontend, API, integrations (Sihot, Delivery, payments, etc.)<\/p>\n<\/li>\n<\/ul>\n<h3 class=\"\" data-start=\"1218\" data-end=\"1256\">3. Critical risk analysis<\/h3>\n<div class=\"pointer-events-none relative left-&#091;50%&#093; flex w-&#091;100cqw&#093; translate-x-&#091;-50%&#093; justify-center *:pointer-events-auto\">\n<div class=\"tableContainer horzScrollShadows\">\n<table class=\"min-w-full\" data-start=\"1258\" data-end=\"1969\">\n<thead data-start=\"1258\" data-end=\"1340\">\n<tr data-start=\"1258\" data-end=\"1340\">\n<th data-start=\"1258\" data-end=\"1267\">Risk<\/th>\n<th data-start=\"1267\" data-end=\"1290\">Impact on operation<\/th>\n<th data-start=\"1290\" data-end=\"1312\">Level of criticality<\/th>\n<th data-start=\"1312\" data-end=\"1340\">Mitigation strategy<\/th>\n<\/tr>\n<\/thead>\n<tbody data-start=\"1426\" data-end=\"1969\">\n<tr data-start=\"1426\" data-end=\"1516\">\n<td class=\"\" data-start=\"1426\" data-end=\"1455\">Failure in the main cloud<\/td>\n<td class=\"\" data-start=\"1455\" data-end=\"1470\">Total standstill<\/td>\n<td class=\"\" data-start=\"1470\" data-end=\"1477\">High<\/td>\n<td class=\"\" data-start=\"1477\" data-end=\"1516\">HA, replication and automatic migration<\/td>\n<\/tr>\n<tr data-start=\"1517\" data-end=\"1616\">\n<td class=\"\" data-start=\"1517\" data-end=\"1538\">Local POS failure<\/td>\n<td class=\"\" data-start=\"1538\" data-end=\"1555\">Partial shutdown<\/td>\n<td class=\"\" data-start=\"1555\" data-end=\"1563\">Medium<\/td>\n<td class=\"min-w-&#091;calc(var(--thread-content-max-width)\/3)&#093;\" data-start=\"1563\" data-end=\"1616\">Offline mode enabled, remote support<\/td>\n<\/tr>\n<tr data-start=\"1617\" data-end=\"1709\">\n<td class=\"\" data-start=\"1617\" data-end=\"1650\">Cyber-attack (ransomware, DDoS)<\/td>\n<td class=\"\" data-start=\"1650\" data-end=\"1657\">High<\/td>\n<td class=\"\" data-start=\"1657\" data-end=\"1664\">High<\/td>\n<td class=\"min-w-&#091;calc(var(--thread-content-max-width)\/3)&#093;\" data-start=\"1664\" data-end=\"1709\">Firewall, immutable copies, segmentation<\/td>\n<\/tr>\n<tr data-start=\"1710\" data-end=\"1801\">\n<td class=\"\" data-start=\"1710\" data-end=\"1739\">Internet outage in premises<\/td>\n<td class=\"\" data-start=\"1739\" data-end=\"1747\">Medium<\/td>\n<td class=\"\" data-start=\"1747\" data-end=\"1754\">High<\/td>\n<td class=\"min-w-&#091;calc(var(--thread-content-max-width)\/3)&#093;\" data-start=\"1754\" data-end=\"1801\">Offline operation, subsequent synchronisation<\/td>\n<\/tr>\n<tr data-start=\"1802\" data-end=\"1885\">\n<td class=\"\" data-start=\"1802\" data-end=\"1832\">Database corruption<\/td>\n<td class=\"\" data-start=\"1832\" data-end=\"1843\">Very high<\/td>\n<td class=\"\" data-start=\"1843\" data-end=\"1850\">Under<\/td>\n<td class=\"\" data-start=\"1850\" data-end=\"1885\">Backups + automatic validation<\/td>\n<\/tr>\n<tr data-start=\"1886\" data-end=\"1969\">\n<td class=\"\" data-start=\"1886\" data-end=\"1909\">Human failure at headquarters<\/td>\n<td class=\"\" data-start=\"1909\" data-end=\"1917\">Medium<\/td>\n<td class=\"\" data-start=\"1917\" data-end=\"1925\">Medium<\/td>\n<td class=\"\" data-start=\"1925\" data-end=\"1969\">Standard Operating Procedures<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<h3 class=\"\" data-start=\"1976\" data-end=\"2007\">4. Backup strategy<\/h3>\n<ul data-start=\"2009\" data-end=\"2379\">\n<li class=\"\" data-start=\"2009\" data-end=\"2068\">\n<p class=\"\" data-start=\"2011\" data-end=\"2026\"><strong data-start=\"2011\" data-end=\"2025\">Frequency<\/strong>:<\/p>\n<ul data-start=\"2029\" data-end=\"2068\">\n<li class=\"\" data-start=\"2029\" data-end=\"2068\">\n<p class=\"\" data-start=\"2031\" data-end=\"2068\">Full daily + hourly incremental<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li class=\"\" data-start=\"2069\" data-end=\"2125\">\n<p class=\"\" data-start=\"2071\" data-end=\"2085\"><strong data-start=\"2071\" data-end=\"2084\">Retention<\/strong>:<\/p>\n<ul data-start=\"2088\" data-end=\"2125\">\n<li class=\"\" data-start=\"2088\" data-end=\"2125\">\n<p class=\"\" data-start=\"2090\" data-end=\"2125\">30 days for premium SLA customers<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li class=\"\" data-start=\"2126\" data-end=\"2201\">\n<p class=\"\" data-start=\"2128\" data-end=\"2142\"><strong data-start=\"2128\" data-end=\"2141\">Location<\/strong>:<\/p>\n<ul data-start=\"2145\" data-end=\"2201\">\n<li class=\"\" data-start=\"2145\" data-end=\"2201\">\n<p class=\"\" data-start=\"2147\" data-end=\"2201\">Local + remote ( S3)<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li class=\"\" data-start=\"2202\" data-end=\"2272\">\n<p class=\"\" data-start=\"2204\" data-end=\"2227\"><strong data-start=\"2204\" data-end=\"2226\">Immutable backups<\/strong>:<\/p>\n<ul data-start=\"2230\" data-end=\"2272\">\n<li class=\"\" data-start=\"2230\" data-end=\"2272\">\n<p class=\"\" data-start=\"2232\" data-end=\"2272\">Activated with minimum retention of 7 days<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li class=\"\" data-start=\"2273\" data-end=\"2379\">\n<p class=\"\" data-start=\"2275\" data-end=\"2292\"><strong data-start=\"2275\" data-end=\"2291\">Verification<\/strong>:<\/p>\n<ul data-start=\"2295\" data-end=\"2379\">\n<li class=\"\" data-start=\"2295\" data-end=\"2337\">\n<p class=\"\" data-start=\"2297\" data-end=\"2337\">Daily automated recovery test<\/p>\n<\/li>\n<li class=\"\" data-start=\"2340\" data-end=\"2379\">\n<p class=\"\" data-start=\"2342\" data-end=\"2379\">Quarterly complete restorations<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h3 class=\"\" data-start=\"2386\" data-end=\"2440\">5. High availability infrastructure (HA)<\/h3>\n<ul data-start=\"2442\" data-end=\"2826\">\n<li class=\"\" data-start=\"2442\" data-end=\"2516\">\n<p class=\"\" data-start=\"2444\" data-end=\"2516\"><strong data-start=\"2444\" data-end=\"2453\">Cloud<\/strong>Redundant architecture in different availability zones<\/p>\n<\/li>\n<li class=\"\" data-start=\"2517\" data-end=\"2569\">\n<p class=\"\" data-start=\"2519\" data-end=\"2569\"><strong data-start=\"2519\" data-end=\"2536\">Database<\/strong>Cluster with automatic failover<\/p>\n<\/li>\n<li class=\"\" data-start=\"2570\" data-end=\"2598\">\n<p class=\"\" data-start=\"2572\" data-end=\"2598\"><strong data-start=\"2572\" data-end=\"2598\">Load balancers<\/strong><\/p>\n<\/li>\n<li class=\"\" data-start=\"2599\" data-end=\"2696\">\n<p class=\"\" data-start=\"2601\" data-end=\"2696\"><strong data-start=\"2601\" data-end=\"2646\">Proxmox + Ceph<\/strong>: node, network or storage fault tolerance<\/p>\n<\/li>\n<li class=\"\" data-start=\"2697\" data-end=\"2755\">\n<p class=\"\" data-start=\"2699\" data-end=\"2755\"><strong data-start=\"2699\" data-end=\"2730\">UPS and electrical switching<\/strong> in physical facilities<\/p>\n<\/li>\n<li class=\"\" data-start=\"2756\" data-end=\"2826\">\n<p class=\"\" data-start=\"2758\" data-end=\"2826\"><strong data-start=\"2758\" data-end=\"2786\">Proactive monitoring<\/strong> 24\/7 (Prometheus)<\/p>\n<\/li>\n<\/ul>\n<h3 class=\"\" data-start=\"2833\" data-end=\"2868\">6. Recovery targets<\/h3>\n<div class=\"pointer-events-none relative left-&#091;50%&#093; flex w-&#091;100cqw&#093; translate-x-&#091;-50%&#093; justify-center *:pointer-events-auto\">\n<div class=\"tableContainer horzScrollShadows\">\n<table class=\"min-w-full\" data-start=\"2870\" data-end=\"3221\">\n<thead data-start=\"2870\" data-end=\"2954\">\n<tr data-start=\"2870\" data-end=\"2954\">\n<th data-start=\"2870\" data-end=\"2890\">Type of incident<\/th>\n<th data-start=\"2890\" data-end=\"2921\">RTO (Recovery Time)<\/th>\n<th data-start=\"2921\" data-end=\"2954\">RPO (Maximum Data Loss)<\/th>\n<\/tr>\n<\/thead>\n<tbody data-start=\"3040\" data-end=\"3221\">\n<tr data-start=\"3040\" data-end=\"3099\">\n<td class=\"\" data-start=\"3040\" data-end=\"3072\">Total cloud service failure<\/td>\n<td class=\"\" data-start=\"3072\" data-end=\"3083\">\u2264 1 hour<\/td>\n<td class=\"\" data-start=\"3083\" data-end=\"3099\">\u2264 15 minutes<\/td>\n<\/tr>\n<tr data-start=\"3100\" data-end=\"3153\">\n<td class=\"\" data-start=\"3100\" data-end=\"3126\">Local impact on POS<\/td>\n<td class=\"\" data-start=\"3126\" data-end=\"3141\">\u2264 30 minutes<\/td>\n<td class=\"\" data-start=\"3141\" data-end=\"3153\">\u2264 1 hour<\/td>\n<\/tr>\n<tr data-start=\"3154\" data-end=\"3221\">\n<td class=\"\" data-start=\"3154\" data-end=\"3182\">Restore from backup<\/td>\n<td class=\"\" data-start=\"3182\" data-end=\"3194\">\u2264 4 hours<\/td>\n<td class=\"\" data-start=\"3194\" data-end=\"3221\">Last copy available<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<h3 class=\"\" data-start=\"3228\" data-end=\"3268\">7. Recovery procedures<\/h3>\n<ul data-start=\"3270\" data-end=\"3693\">\n<li class=\"\" data-start=\"3270\" data-end=\"3358\">\n<p class=\"\" data-start=\"3272\" data-end=\"3358\"><strong data-start=\"3272\" data-end=\"3297\">Partial failure (local)<\/strong>Remote intervention in &lt;15 min. Activation of offline mode.<\/p>\n<\/li>\n<li class=\"\" data-start=\"3359\" data-end=\"3436\">\n<p class=\"\" data-start=\"3361\" data-end=\"3436\"><strong data-start=\"3361\" data-end=\"3384\">Total failure (cloud)<\/strong>automatic switchover to the contingency environment.<\/p>\n<\/li>\n<li class=\"\" data-start=\"3437\" data-end=\"3528\">\n<p class=\"\" data-start=\"3439\" data-end=\"3528\"><strong data-start=\"3439\" data-end=\"3468\">Restore from backup<\/strong>: snapshot upload + synchronisation of subsequent changes.<\/p>\n<\/li>\n<li class=\"\" data-start=\"3529\" data-end=\"3693\">\n<p class=\"\" data-start=\"3531\" data-end=\"3558\"><strong data-start=\"3531\" data-end=\"3557\">Crisis communication<\/strong>:<\/p>\n<ul data-start=\"3561\" data-end=\"3693\">\n<li class=\"\" data-start=\"3561\" data-end=\"3640\">\n<p class=\"\" data-start=\"3563\" data-end=\"3640\">Email, telephone and direct channel to our technical team.<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h3 class=\"\" data-start=\"4042\" data-end=\"4082\">8. Validation and revision of the plan<\/h3>\n<ul data-start=\"4084\" data-end=\"4307\">\n<li class=\"\" data-start=\"4084\" data-end=\"4201\">\n<p class=\"\" data-start=\"4086\" data-end=\"4110\"><strong data-start=\"4086\" data-end=\"4109\">Scheduled tests<\/strong>:<\/p>\n<ul data-start=\"4113\" data-end=\"4201\">\n<li class=\"\" data-start=\"4113\" data-end=\"4148\">\n<p class=\"\" data-start=\"4115\" data-end=\"4148\">Full restoration: Quarterly<\/p>\n<\/li>\n<li class=\"\" data-start=\"4151\" data-end=\"4201\">\n<p class=\"\" data-start=\"4153\" data-end=\"4201\">Infrastructure crash drill: Annual<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li class=\"\" data-start=\"4202\" data-end=\"4252\">\n<p class=\"\" data-start=\"4204\" data-end=\"4252\"><strong data-start=\"4204\" data-end=\"4241\">Security audits and backups<\/strong>Monthly<\/p>\n<\/li>\n<li class=\"\" data-start=\"4253\" data-end=\"4307\">\n<p class=\"\" data-start=\"4255\" data-end=\"4307\"><strong data-start=\"4255\" data-end=\"4276\">Review of the plan<\/strong>Annual or in case of critical changes<\/p>\n<\/li>\n<\/ul>\n<h3 class=\"\" data-start=\"4314\" data-end=\"4362\">9. Additional information for the customer<\/h3>\n<ul data-start=\"4364\" data-end=\"4607\">\n<li class=\"\" data-start=\"4454\" data-end=\"4542\">\n<p class=\"\" data-start=\"4456\" data-end=\"4542\">Access to the fos.consulting technical portal (FAQs, updates, service status)<\/p>\n<\/li>\n<li class=\"\" data-start=\"4543\" data-end=\"4607\">\n<p class=\"\" data-start=\"4545\" data-end=\"4607\">Possibility of specific training for the client's team<\/p>\n<\/li>\n<\/ul>\n\t<\/div>\n<\/div>\n\n\n\n\n\t\t\t<\/div> \n\t\t<\/div>\n\t<\/div> \n<\/div><\/div>","protected":false},"excerpt":{"rendered":"1. Introducci\u00f3n El presente Plan tiene como finalidad garantizar la operatividad del software \u00c1gora en situaciones de contingencia o fallo de infraestructura. 2. Alcance Este...","protected":false},"author":162,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-39427","page","type-page","status-publish"],"jetpack_sharing_enabled":true,"jetpack-related-posts":[],"jetpack_shortlink":"https:\/\/wp.me\/PfY7gm-afV","_links":{"self":[{"href":"https:\/\/fos.consulting\/en\/wp-json\/wp\/v2\/pages\/39427","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fos.consulting\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/fos.consulting\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/fos.consulting\/en\/wp-json\/wp\/v2\/users\/162"}],"replies":[{"embeddable":true,"href":"https:\/\/fos.consulting\/en\/wp-json\/wp\/v2\/comments?post=39427"}],"version-history":[{"count":4,"href":"https:\/\/fos.consulting\/en\/wp-json\/wp\/v2\/pages\/39427\/revisions"}],"predecessor-version":[{"id":39434,"href":"https:\/\/fos.consulting\/en\/wp-json\/wp\/v2\/pages\/39427\/revisions\/39434"}],"wp:attachment":[{"href":"https:\/\/fos.consulting\/en\/wp-json\/wp\/v2\/media?parent=39427"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}