;

Můžeme nechat AI, aby převzala řízení datových center?

22. 3. 2021
Doba čtení: 4 minuty

Sdílet

Autor: Depositphotos
Výrobci serverů, zejména Oracle, intenzivně prosazují automatizované serverové technologie založené na umělé inteligenci. Je bezpečné a rozumné předat jim řízení?

Provoz datových center s minimálními zásahy člověka není nijak nový koncept. „Provoz se zhasnutými světly" se praktikuje už více než deset let a většinu datových center obsluhuje jen několik málo pracovníků, kteří řeší především poruchy hardwaru.

Rozvoj umělé inteligence (AI) a strojového učení (ML) v posledních letech umožnil výrobcům serverů posunout automatizaci na zcela novou úroveň, zvláště u hyperkonvergované infrastruktury. AI přebírá monotónní a repetitivní úkony a uvolňuje ruce pracovníkům k důležitějším činnostem.

Je ale umělá inteligence připravená převzít řízení? Někteří se domnívají, že ano. Tvrdí, že inteligentní automatizace dokáže vykonávat opakované činnosti lépe než člověk, u něhož hrozí riziko chyb s potenciálně fatálními důsledky, zatímco autonomní procesy chyby nedělají. Automatizace navíc dovoluje, aby určité práce mohl vykonávat řadový pracovník namísto vysoce kvalifikovaného odborníka, což je aspekt obzvlášť důležitý při dnešním nedostatku pracovních sil v oboru IT.

Oracle tlačí na pilu

Nikdo nepropaguje AI vehementněji než Oracle. Konference OpenWorld v roce 2018 byla celá o autonomní databázi s automatickou optimalizací výkonu. V roce 2019 Oracle tlačil autonomní servery a Oracle Linux, který se sám opravuje, záplatuje a optimalizuje. Dnes je celý soubor technologií Oracle od hardwaru po aplikace vybavený funkcemi automatických oprav a automatické optimalizace.

Viceprezident společnosti Oracle Cloud Steve Daheb tvrdí, že je umělá inteligence připravená hrát první housle, a zajímají se o ni tisíce zákazníků. Někteří udávají až stonásobný nárůst výkonu jenom u databáze. Kromě toho automatizace přináší výrazné snížení spotřeby energie.

Oracle je možná v marketingu nejrazantnější, ale HP Enterprise (HPE), Dell Technologies, Lenovo a Cisco také nabízejí řízení provozu zařízení v datových centrech pomocí AI. Například HPE se zaměřuje na prediktivní analýzu, která vyhledává potenciální technické a bezpečnostní problémy a poskytuje doporučení ohledně výkonu. Cílem do budoucna je, aby umělá inteligence řešila problémy dříve, než nastanou – například automaticky zadávala požadavky na helpdesk a objednávala náhradní díly, než dojde k závadě.

Dokážou všichni spolupracovat?

Jednou ze závažných překážek autonomie je heterogenita. Jedna věc je, že Oracle automatizuje svůj vlastní hardware, OS, databázi a aplikační vrstvu. Ale co se stane v prostředí – jakých je většina –, kde se mísí produkty různých výrobců? Odpověď je snadná – nastanou potíže, protože autonomie vyžaduje homogenitu. A nestačí API rozhraní, nutné je vyvinout individuální řešení, které si vyžádá čas a peníze.

Důvod k optimismu zavdává přístup společnosti HPE. Ta sice souhlasí s tím, že autonomie je jednodušší dosáhnout v homogenním prostředí, ale věří, že AI dokáže fungovat i v heterogenním prostředí, a reálně na takovém řešení pracuje.

Za vším hledej bezpečnost

Faktorů, které nahrávají automatizaci, je celá řada. Ale prim mezi nimi hraje bezpečnost. V 85 % případů, kdy došlo k narušení bezpečnosti, byla více než rok k dispozici záplata.

Cyber25

Z hlediska počítačové kriminality je nutné brát v úvahu, že útočníci využívají pokročilé perzistentní hrozby a automatizaci k narušení bezpečnosti a není v lidských silách proti nim účinně zakročit. K boji proti stroji je nutný opět stroj a umělá inteligence se této role může velmi dobře zhostit.
Bez problémů není ani automatizovaná aplikace oprav, kde velmi záleží na kvalitě. Stačí připomenout bezpečnostní aktualizace Windows, kdy Microsoft musel opakovaně některé stáhnout, protože způsobovaly pády systému a jiné potíže.

V počátcích lze očekávat i „hororové" příběhy, kdy algoritmy nebudou připravené na reálné situace, které mohou nastat. Klíčová rozhodnutí proto nejspíš ještě zůstanou v rukách lidí nebo alespoň pod jejich kontrolou, zatímco autonomní systémy převezmou hlavní roli v oblastech jako zabezpečení nebo doporučení pro optimalizaci. Prozatím. 

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