;

Vyplatí se IaaS?

8. 11. 2013
Doba čtení: 3 minuty

Sdílet

Autor: © rubysoho - Fotolia.com
Cloud je skvělým řešením pro spoustu firem a organizací. A jednou z velmi zajímavých služeb poskytovaných prostřednictvím cloudu je právě IaaS (Infrastructure-as-a-Service) neboli infrastruktura ve formě služby.

V rámci IaaS jsou zdroje a výpočetní kapacita poskytovány zákazníkovi prostřednictvím cloudu. Tam, kde SaaS (Software-as-a-Service) zahrnuje přístup k softwaru a aplikacím v cloudu, IaaS obdobným způsobem zajišťuje hardware, síťové prvky i úložiště (plus případně také OS, které jsou potřebné pro správu těchto zdrojů). Když si pronajímáte infrastrukturu od poskytovatele IaaS, neplatíte mu za fyzický server a další hardware, ale za přístup k infrastruktuře (výpočetní a úložné kapacitě) prostřednictvím cloudu. Podívejme se na čtyři zásadní výhody, které využívání IaaS přináší.

1. Úspora nákladů

Která společnost nehledá způsoby snížení výdajů? Každá! S IaaS získáváte okamžitý přístup k potřebné výpočetní a úložné kapacitě, aniž byste museli vynakládat pořizovací náklady (snížíte tak své kapitálové náklady). Zároveň ušetříte také výdaje za provoz a údržbu infrastruktury, o vše se stará poskytovatel. A nakonec – (často) platíte jen za kapacitu, kterou skutečně využíváte. Kdybyste měli vlastní hardware, musíte za něj platit tak jako tak.

2. Soustřeďte se na jádro svého podnikání

Čas jsou peníze. V případě vlastní rozsáhlé infrastruktury musíte věnovat drahocenný čas i peníze její údržbě. S IaaS se můžete soustředit jen na to, co vás opravdu živí, tedy vlastní podnikání – technické problémy vyřeší poskytovatel. V menších společnostech bez IT oddělení chybí často potřebná odbornost, větší firmy zase díky IaaS uvolní ruce svým IT odborníkům a mohou je přidělit na důležitější projekty, než je údržba vlastní infrastruktury.

3. Snadné a dynamické škálování

V plánovací fázi nikdy neodhadnete přesné budoucí nároky na výpočetní a úložnou kapacitu. Při nákupu vlastní infrastruktury tak často řešíte problém, zda jí raději naddimenzovat a nechat část z ní zákonitě ležet ladem, nebo riskovat nespokojenost zákazníků a nedostupnost vašich systémů tím, že nakoupíte jen minimální objem hardwaru, který ve špičce zkrátka „nebude stíhat“. S IaaS máte k dispozici dynamické škálování, takže kapacitu snadno a okamžitě navýšíte nebo snížíte podle aktuálních potřeb. Tento proces může být automatizován.

4. Šetrnost k životnímu prostředí

Dopad činnosti na životní prostředí se stává stěžejním pro mnoho dnešních společností. Využívání cloudu pro pokrytí vašich infrastrukturních potřeb může být správným krokem vstříc „zelenějším“ zítřkům. Díky tomu, že s IaaS se o infrastrukturu stará váš poskytovatel a kapacita je dostupná odkudkoli, můžete ušetřit např. náklady na cestování a dostát závazkům firemní společenské zodpovědnosti. Negativní dopad na životní prostředí s IaaS je totiž v drtivé většině případů nižší než v případě klasické in-house infrastruktury.

'; 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 »