;

Desatero pro disaster recovery

1. 2. 2011
Doba čtení: 4 minuty

Sdílet

Opomenout některých z kritických kroků může znamenat rozdíl mezi úspěšným podnikáním a smutným bankrotem

Na základě zkušeností ze spolupráce s tisíci zákazníky jsme vypracovali následující kontrolní seznam o deseti bodech. Projděte si jej a ujistěte se, že jste neopomněli nějaký kritický krok, který by mohl znamenat rozdíl mezi úspěšným podnikáním a smutným bankrotem!

 

1. Odhalte všechny hrozby

Kromě očividných hrozeb – virů, trojských koňů, červů atd. – je třeba identifikovat také nebezpečí specifické pro váš region. Žijete v místě častých zemětřesení nebo v povodňové zóně? Trpíte díky častým bouřím výpadky elektřiny? Ujistěte se, že při tvorbě plánu pro obnovu po havárii či volbě místa pro nové zařízení DR zvažujete všechny faktory.

2. Zajistěte lidské zdroje

Pro společnosti není ojedinělé mít plán DR závisející na jediném člověku. Ale co když bude daná osoba v okamžiku havárie z nějakého důvodu právě nedostupná? Proto je třeba určit a vyškolit více zaměstnanců schopných v tomto případě reagovat. Je rovněž vhodné, aby tito zaměstnanci působili na geograficky odlišných lokacích pro případ velké přírodní katastrofy, která bude mít dopad na všechny místní pracovní síly.

3. Automatizujte procesy

Pokud ve vašem zařízení nastane výpadek proudu a není tam zrovna nikdo, kdo by to ohlásil, dozví se o tom vaši pracovníci DR? Musíte vytvořit automatizovaný systém (vlastní či zajištěný externím dodavatelem), který upozorní váš IT personál na jakoukoli havárii či výpadek služby.

4. Dimenzujte zálohu

Pokud je vaše zařízení ovlivněno dalekosáhlým environmentálním výpadkem, můžete se ocitnout bez elektrické energie po delší dobu. Proto si pořiďte co nejodolnější záložní zdroj s největší možnou výdrží. Nezapomeňte na dodatečné baterie.

5. Stanovte priority obnovy

Ke kterým z vašich IT aplikací je třeba přistupovat nejdříve? Provozujete nějaké, jejichž znovuzprovoznění může počkat den či dva, aniž tím utrpí podnikání? Je třeba být selektivní ohledně pořadí, ve kterém budou po havárii znovu uváděny do provozu a spouštěny on-line aplikace a služby. Například se rozhodnete, že nejdříve zprovozníte firemní e-mailovou aplikaci, než to samé učiníte se souborovými servery jednotlivých oddělení.

6. Vytvořte dokumentaci

Po vytvoření plánu je třeba krok za krokem sepsat detailní instrukce provedení tohoto plánu. Ujistěte se, že každý proces je dobře popsán. Popište umístění všech systémových zdrojů potřebných k dokončení obnovy. Dokumentaci skladujte na několika místech a ověřte si, že k manuálům má snadný přístup veškerý klíčový personál.

7. Pamatujte na aktuálnost

Nezáleží na kvalitě vašeho plánu DR, pokud máte data, která jsou zastaralá, která se nacházejí v místě ovlivněném havárií nebo jsou poškozená. Provádějte zálohování v přísně vynucených pravidelných intervalech, abyste ochránili integritu informací. Nebo využívejte technologii, jako je virtualizace, pro zprovoznění vzdáleného pracoviště s replikovanými virtuálními stroji pro urychlení obnovy.

8. Trénujte a cvičte

Musíte se ujistit, že váš plán DR bude v případě nouze opravdu účinný! Ačkoli to vypadá zřejmě, mnohé společnosti zapomínají adekvátně ozkoušet své plány. Technologie jako virtualizace VMware a možnost okamžitého (v řádu minut) provisioningu libovolného serveru s potřebnými virtuálními stroji činí testování plánu obnovy rychlým a efektivním.

9. Chraňte hesla

Ačkoli je ochrana pomocí hesel klíčová pro zabezpečení dat, měli byste svá sy­stémová hesla ukládat alespoň na dvou geograficky odlišných a zabezpečených místech. Přístup ke všem heslům a kódům by také neměl zůstat v rukou jediného člověka. Nezapomeňte hesla měnit hned, pokud klíčový personál opustí společnost.

10. Aktualizujte DR plán

Nikdy nezapomeňte aktualizovat svůj plán DR. Po jeho vytvoření jej pravidelně revidujte alespoň čtvrtletně. Sepište si seznam bodů, které by mohly znamenat změnu plánu. Zejména nedávné změny.

 

Autor působí ve společnosti VMware coby regional presales manager Eastern Europe

Cyber25

 

Vyšlo v CIO Business World 12/2010

'; document.getElementById('preroll-iframe').onload = function () { setupIframe(); } prerollContainer = document.getElementsByClassName('preroll-container-iframe')[0]; } function setupIframe() { prerollDocument = document.getElementById('preroll-iframe').contentWindow.document; let el = prerollDocument.createElement('style'); prerollDocument.head.appendChild(el); el.innerText = "#adContainer>div:nth-of-type(1),#adContainer>div:nth-of-type(1) > iframe { width: 99% !important;height: 99% !important;max-width: 100%;}#videoContent,body{ width:100vw;height:100vh}body{ font-family:'Helvetica Neue',Arial,sans-serif}#videoContent{ overflow:hidden;background:#000}#adMuteBtn{ width:35px;height:35px;border:0;background:0 0;display:none;position:absolute;fill:rgba(230,230,230,1);bottom:20px;right:25px}"; videoContent = prerollDocument.getElementById('contentElement'); videoContent.style.display = 'none'; videoContent.volume = 1; videoContent.muted = false; const playPromise = videoContent.play(); if (playPromise !== undefined) { playPromise.then(function () { console.log('PREROLL sound allowed'); // setUpIMA(true); videoContent.volume = 1; videoContent.muted = false; setUpIMA(); }).catch(function () { console.log('PREROLL sound forbidden'); videoContent.volume = 0; videoContent.muted = true; setUpIMA(); }); } } function setupDimensions() { prerollWidth = Math.min(iinfoPrerollPosition.offsetWidth, 480); prerollHeight = Math.min(iinfoPrerollPosition.offsetHeight, 320); } function setUpIMA() { google.ima.settings.setDisableCustomPlaybackForIOS10Plus(true); google.ima.settings.setLocale('cs'); google.ima.settings.setNumRedirects(10); // Create the ad display container. createAdDisplayContainer(); // Create ads loader. adsLoader = new google.ima.AdsLoader(adDisplayContainer); // Listen and respond to ads loaded and error events. adsLoader.addEventListener( google.ima.AdsManagerLoadedEvent.Type.ADS_MANAGER_LOADED, onAdsManagerLoaded, false); adsLoader.addEventListener( google.ima.AdErrorEvent.Type.AD_ERROR, onAdError, false); // An event listener to tell the SDK that our content video // is completed so the SDK can play any post-roll ads. const contentEndedListener = function () { adsLoader.contentComplete(); }; videoContent.onended = contentEndedListener; // Request video ads. const adsRequest = new google.ima.AdsRequest(); adsRequest.adTagUrl = iinfoVastUrls[iinfoVastUrlIndex]; console.log('Preroll advert: ' + iinfoVastUrls[iinfoVastUrlIndex]); videoContent.muted = false; videoContent.volume = 1; // Specify the linear and nonlinear slot sizes. This helps the SDK to // select the correct creative if multiple are returned. // adsRequest.linearAdSlotWidth = prerollWidth; // adsRequest.linearAdSlotHeight = prerollHeight; adsRequest.nonLinearAdSlotWidth = 0; adsRequest.nonLinearAdSlotHeight = 0; adsLoader.requestAds(adsRequest); } function createAdDisplayContainer() { // We assume the adContainer is the DOM id of the element that will house // the ads. prerollDocument.getElementById('videoContent').style.display = 'none'; adDisplayContainer = new google.ima.AdDisplayContainer( prerollDocument.getElementById('adContainer'), videoContent); } function unmutePrerollAdvert() { adVolume = !adVolume; if (adVolume) { adsManager.setVolume(0.3); prerollDocument.getElementById('adMuteBtn').innerHTML = ''; } else { adsManager.setVolume(0); prerollDocument.getElementById('adMuteBtn').innerHTML = ''; } } function onAdsManagerLoaded(adsManagerLoadedEvent) { // Get the ads manager. const adsRenderingSettings = new google.ima.AdsRenderingSettings(); adsRenderingSettings.restoreCustomPlaybackStateOnAdBreakComplete = true; adsRenderingSettings.loadVideoTimeout = 12000; // videoContent should be set to the content video element. adsManager = adsManagerLoadedEvent.getAdsManager(videoContent, adsRenderingSettings); // Add listeners to the required events. adsManager.addEventListener(google.ima.AdErrorEvent.Type.AD_ERROR, onAdError); adsManager.addEventListener( google.ima.AdEvent.Type.CONTENT_PAUSE_REQUESTED, onContentPauseRequested); adsManager.addEventListener( google.ima.AdEvent.Type.CONTENT_RESUME_REQUESTED, onContentResumeRequested); adsManager.addEventListener( google.ima.AdEvent.Type.ALL_ADS_COMPLETED, onAdEvent); // Listen to any additional events, if necessary. adsManager.addEventListener(google.ima.AdEvent.Type.LOADED, onAdEvent); adsManager.addEventListener(google.ima.AdEvent.Type.STARTED, onAdEvent); adsManager.addEventListener(google.ima.AdEvent.Type.COMPLETE, onAdEvent); playAds(); } function playAds() { // Initialize the container. Must be done through a user action on mobile // devices. videoContent.load(); adDisplayContainer.initialize(); // setupDimensions(); try { // Initialize the ads manager. Ad rules playlist will start at this time. adsManager.init(1920, 1080, google.ima.ViewMode.NORMAL); // Call play to start showing the ad. Single video and overlay ads will // start at this time; the call will be ignored for ad rules. adsManager.start(); // window.addEventListener('resize', function (event) { // if (adsManager) { // setupDimensions(); // adsManager.resize(prerollWidth, prerollHeight, google.ima.ViewMode.NORMAL); // } // }); } catch (adError) { // An error may be thrown if there was a problem with the VAST response. // videoContent.play(); } } function onAdEvent(adEvent) { const ad = adEvent.getAd(); console.log('Preroll event: ' + adEvent.type); switch (adEvent.type) { case google.ima.AdEvent.Type.LOADED: if (!ad.isLinear()) { videoContent.play(); } prerollDocument.getElementById('adContainer').style.width = '100%'; prerollDocument.getElementById('adContainer').style.maxWidth = '640px'; prerollDocument.getElementById('adContainer').style.height = '360px'; break; case google.ima.AdEvent.Type.STARTED: window.addEventListener('scroll', onActiveView); if (ad.isLinear()) { intervalTimer = setInterval( function () { // Example: const remainingTime = adsManager.getRemainingTime(); // adsManager.pause(); }, 300); // every 300ms } prerollDocument.getElementById('adMuteBtn').style.display = 'block'; break; case google.ima.AdEvent.Type.ALL_ADS_COMPLETED: if (ad.isLinear()) { clearInterval(intervalTimer); } if (prerollLastError === 303) { playYtVideo(); } break; case google.ima.AdEvent.Type.COMPLETE: if (ad.isLinear()) { clearInterval(intervalTimer); } playYtVideo(); break; } } function onAdError(adErrorEvent) { console.log(adErrorEvent.getError()); prerollLastError = adErrorEvent.getError().getErrorCode(); if (!loadNext()) { playYtVideo(); } } function loadNext() { iinfoVastUrlIndex++; if (iinfoVastUrlIndex < iinfoVastUrls.length) { iinfoPrerollPosition.remove(); playPrerollAd(); } else { return false; } adVolume = 1; return true; } function onContentPauseRequested() { videoContent.pause(); } function onContentResumeRequested() { videoContent.play(); } function onActiveView() { if (prerollContainer) { const containerOffset = prerollContainer.getBoundingClientRect(); const windowHeight = window.innerHeight; if (containerOffset.top < windowHeight/1 && containerOffset.bottom > 0.0) { if (prerollPaused) { adsManager.resume(); prerollPaused = false; } return true; } else { if (!prerollPaused) { adsManager.pause(); prerollPaused = true; } } } return false; } function playYtVideo() { iinfoPrerollPosition.remove(); youtubeIframe.style.display = 'block'; youtubeIframe.src += '&autoplay=1&mute=1'; } }
OSZAR »