;

Obchod s cloudem zůstane lokální

26. 7. 2010
Doba čtení: 5 minut

Sdílet

Karel Schmidtmayer si rozhodně nemyslí, že by IT v českých podnicích za světem zásadně zaostávalo. Kupříkladu zavádění ITIL a dalších metodických rámců je u nás podle něj dále mimo jiné i proto, že IT oddělení byla budována v devadesátých letech od nuly.

Nás ale zajímalo, zda si podle něj čeští CIO dokáží s příchodem výpočetního mraku případný náskok udržet.

Přestože IT bylo v českých podnicích budováno před patnácti lety takříkajíc na zelené louce, jsou naši IT ředitelé a CIO často poměrně konzervativní. Typicky se jedná například o fenomén cloudu, k němuž je řada z nich poměrně skeptická. Proč tomu tak podle vás je?

Vzhledem k tomu, že cloud, a zejména jeho komerční využití, je zatím v plenkách, zůstává v současné ekonomické situaci stranou zájmu, protože může být problém podložit jej nějakou jasnou a hmatatelnou nabídkou s kalkulací návratnosti. Komerčních platforem je zatím poskrovnu – v infrastrukturní oblasti je to v současné době prakticky jen Amazon EC2, teprve v blízké budoucnosti se objeví další významní komerční hráči. Je proto logické, že prim u českých CIO hraje v současné době spíš virtualizace.

Ano, nabídka je prozatím omezená, koneckonců i vaše produkty pro správu virtuální infrastruktury jsou prozatím zaměřeny na EC2. Lze ale opravdu očekávat, že se během nadcházejících dvanácti až osmnácti měsíců objeví několik skutečných konkurentů v oblasti infrastrukturního cloudu?

Jsem o tom přesvědčen, pohyb IT směrem k vyšší efektivitě, kterou právě cloud computing představuje, je nevyhnutelný. V blízké budoucnosti se tak jistě vynoří řada společností nabízejících tyto služby, a posléze proběhnou samozřejmě nevyhnutelné tříbení a konsolidace tohoto trhu, což povede k vyšší důvěře zákazníků.

Cloud či výpočetní mrak není ovšem jen o infrastruktuře, ale také o poskytování aplikací formou hostingu či modelu SaaS. Jaké příležitosti vidíte v této oblasti?

Jako softwarová společnost pochopitelně vnímáme i tento trend a nabízíme vlastní řešení formou aplikačního cloudu – ať už se jedná o řešení pro řízení procesů, nebo řešení pro řízení projektů a portfolií, která lze nakupovat formou softwaru dodávaného jako služba, tedy SaaS. Jelikož jsme technologicky a platformově nezávislým dodavatelem, chceme se podílet též na vytváření podpůrného prostředí pro provozování cloud architektur.

Koncept výpočetního mraku a odklon od klasické klient//server architektury je někdy srovnáván s filozofií mainframe architektury. CA je právě v oblasti mainframe softwarů stále velmi aktivní, zajímalo by nás proto, zda očekáváte nějaké prolnutí či využití zkušeností ze světa mainframe pro architekturu cloud computingu.

Efektivní a bezpečné komerční provozování cloudu před sebou má řadu výzev: schopnost zmapovat infrastrukturu, zjistit, kde a jakým způsobem běží část konkrétní služby, zda byla například degradována či pozastavena – tedy měřit kvalitu a kvantitu dodávaných služeb na komplexní infrastruktuře, provádět změny a automatický provisioning. To vše se navíc bude odehrávat v multi tenancy režimu, tedy při poskytování sdílených služeb více zákazníkům – řadu odpovědí na tyto výzvy již architektura mainframe má.

Mezi hlavní důvody, pro které firmy uvažují o využití cloudu, patří vedle flexibility a dynamiky zejména úspory. Mainframe na druhou stranu zákazníci upřednostňují spíše pro špičkovou spolehlivost, bezpečnost, ovšem při relativně vyšších nákladech. Lze v tomto případě očekávat, že se časem spojí, zejména díky „economies of scale“, to nejlepší z obou světů?

Jednoznačně, to, co cloud rozhýbe, bude okamžik, kdy se první významní zákazníci rozhodnou pro umístění kritických aplikací. A posléze se economies of scale jednoznačně uplatní.

V případě implementace Amazon EC2 byla na počátku situace, kdy společnost měla ve své infrastruktuře volné kapacity a hledala cestu k jejich využití. Myslíte, že dalšími významnými poskytovateli infrastrukturního mraku budou podobné společnosti, nebo že se ve velkém rozjede stavba datových center pro cloud na zelené louce?

Mezi jasné kandidáty pro komerční nabízení cloud služeb patří rozhodně významné telekomunikační společnosti. Ty disponují rozsáhlou infrastrukturou pro dodávku podobných služeb. Klíčová ale bude adaptace zákaznických aplikací pro tato prostředí – to je svým způsobem největší překážka, kterou je pro komerční rozvoj cloudu třeba překonat.

Cyber25

Drtivá většina existujících poskytovatelů cloud služeb jsou dnes zahraniční společnosti. Myslíte, že čeští CIO budou ochotni takříkajíc nakupovat v zahraničí, nebo budou spíše čekat na dodavatele na lokálním trhu, který nabídne užší vztah?

Kvalitní vztah mezi poskytovatelem těchto služeb a zákazníkem se jen stěží vytvoří na základě nabídky poslané přes e-mail. To znamená, že i když cloud bude topologicky umístěn přes několik regionů, navazování obchodních vztahů zůstane do značné míry lokální.

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