Tlak na digitalizaci

15. 4. 2021

Sdílet

Autor: © Andrea Danti - Fotolia.com
Umíme pomáhat firmám, které tlak okolností nutí rychle digitalizovat, říká Michal Erlich z Digital & Cloud Services, společnosti T-Mobile.

Jak vám s výstavbou a provozem cloudových center pomáhá fakt, že vycházíte z telekomunikačního prostředí?

Benefitů, které jsou spojené s naším působením v rámci telekomunikačního byznysu, je celá řada. Mezi nejvýznamnější určitě patří služby, jež mnoho našich konkurentů musí řešit formou subdodávky, a to právě často z řad operátorů. Příkladem může být konektivita, která má ve výsledku významný dopad na kvalitu poskytované služby. Kromě toho se můžeme opřít o stabilitu a kvalitu zázemí, jímž disponujeme v rámci celé Deutsche Telekom skupiny.

Čím se odlišujete od nabídky jiných dodavatelů cloudových služeb?

Trochu zde navážu na předchozí odpověď. Tím diferenciátorem je právě šíře ICT portfolia, kterou nabízíme. Nejsme pouhým poskytovatelem cloudových a hostingových služeb, ale můžeme též zákazníkům nabídnout veškerou konektivitu postavenou na moderních službách (optická vlákna, SD-WAN, Express-Route připojení), celkové zabezpečení infrastruktury a řadu konzultačních služeb.

Nabízíte pouze služby cloudu, nebo pomáháte aktivně podnikům s digitální transformací?

Digitální transformace je jedním ze strategických témat, kterým se intenzivně věnujeme. Již řadu let děláme konzultační služby týkající se nasazení a využívání cloudových nástrojů. Přechod z on-premise prostředí do světa cloudu ale může znamenat pro jednotlivé firmy zásadní výzvu. Není to jen o technologické migraci, ale zároveň o částečné změně fungování organizace a případné úpravě procesů. Abychom v tom uměli našim zákazníkům pomoci, vybudovali jsme zcela nový tým, který nejen že umí správně navrhnout cílové cloudové prostředí, ale též dokáže zabezpečit celý komplexní projekt, který je spojený právě s nezbytnou transformací.

Jaké typy pomoci vaši zákazníci nejčastěji uvítají?

Jsme v době, která znamená výzvu pro nás všechny. Asi nepřekvapím, když řeknu, že firmy v těchto měsících čelí obrovskému tlaku na digitalizaci procesů a veškeré komunikace. Častá poptávka je tak nyní spojená s nasazením kolaboračních nástrojů, kde zákazníkům nabízíme nejen implementaci Microsoft 365 balíku, ale též například hardwarové vybavení nutné pro vzdálenou komunikaci. Organizace ale zároveň řeší infrastrukturu, která je nyní pod větším tlakem z pohledu nezbytné kapacity, ale také z pohledu bezpečnosti. Právě zde dává cloudové prostředí velký smysl, neboť řeší tato úskalí bez nutnosti velké vstupní investice.

Jaké druhy cloudových služeb nabízíte?

Naše cloudové portfolio se skládá ze dvou pilířů. V tom prvním nabízíme služby virtuálního prostředí, které hostujeme v našich datových centrech umístěných jak v Čechách, tak na Slovensku. Jsme tak schopní zákazníkům nabídnout vysoce dostupné prostředí ve dvou či více lokalitách, a to buď ve formě infrastruktury poskytované na sdílené platformě, anebo v  privátním cloudu, kdy se klientovi kompletně staráme o prostředí na dedikovaném hardwaru.

Druhý pilíř je postavený na produktech Microsoftu – primárně Azure a M365. V této části nabízíme zákazníkům veškeré konzultační služby spojené s analýzou existujícího prostředí, implementací či migrací do cloudu a následné adopci a provozu.

Jak pomáháte klientům v přechodu do cloudového světa?

Nechceme se spokojit s nasazením konkrétního produktu u zákazníka a pouze tzv. lift & shift přesunout infrastrukturu do našeho cloudu či MS Azure. Náš tým je schopný zanalyzovat i aplikace, které zákazník používá, a to až na úrovni zdrojového kódu, a ak je následně přepracovat, tak aby co nejvíce čerpaly výhody, jež cloudové prostředí přináší. V oblasti M365 to pak je i tvorba aplikací skrze PowerPlatformu, které mohou našim zákazníkům usnadnit život a procesní fungování.

hacking_tip

Jaké jsou zásadní důvody zákazníků pro přechod do cloudu?

Ty nejčastější jsou spojené s komplikovaným provozem on-premise infrastruktury, na který potřebujete dostatečně silné a vyškolené IT. Zmínil jsem již oblast bezpečnosti, jež je čím dál více kritická a kde jednotlivé firmy ani nemohou sledovat veškeré bezpečnostní hrozby, které pak následně musejí adresovat. Obecně vnímáme trend přechodu organizací do cloudového prostředí, který bude i nadále sílit.

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