Red Hat představil své plány na integraci nedávno převzatých technologií CoreOS

16. 5. 2018
Doba čtení: 3 minuty

Sdílet

Autor: © Sergey Nivens - Fotolia.com
Trojice platforem CoreOS Tectonic, Quay a Container Linux se podle plánů Red Hatu stane součástí kontejnerového OpenShift Container Platform. Společnost chce proměnit hybridní cloud v preferované prostředí pro moderní aplikace.

Společnost Red Hat nastínila první kroky směřující k integraci platforem CoreOS Tectonic, Quay a Container Linux se svým kontejnerovým portfoliem Red Hat OpenShift Container Platform založeným na systému Kubernetes.

Technologie CoreOS, které Red Hat získal v rámci akvizice oznámené v lednu 2018, mají doplnit nabídku kontejnerové infrastruktury Red Hat a proměnit prostředí hybridního cloudu v primární volbu pro nasazování moderních i tradičních aplikací.

Automatizace a operátoři

Nové technologie podle Red Hatu podpoří automatizaci všech vrstev nativní cloudové struktury s cílem zajistit stabilitu a podporu pro podnikové zákazníky. Automatizace se nově rozšíří i na ekosystém nezávislých dodavatelů softwaru (ISV) Red Hatu.

Nový automatizovaný systém má těmto partnerům umožnit snadněji dodávat a spravovat aplikace a služby na kontejnerové platformě Red Hat OpenShift Container Platform napříč hybridními prostředími při zachování jednoduchosti typické pro veřejný cloud.

Technologie CoreOS do systému Kubernetes zavedou také koncepci „operátorů“, což jsou konkrétní aplikační řadiče, které v rámci systému rozšiřují rozhraní API a umožňují vytvářet, konfigurovat a spravovat instance složitých stavových aplikací.

Koncepci operátorů zastřešuje iniciativa Operator Framework a Red Hat oznámil, že platforma Red Hat OpenShift Container Platform bude tento projekt používat na podporu svého ekosystému ISV. 

Red Hat rovněž hodlá rozšířit svůj existující certifikační program ISV a zahrnout do něj automatizační funkce prostředí Operator Framework. Výsledkem má být konzistentní a jednotná zkušenost z těchto služeb v prostředí OpenShift.

Container Linux si zachová svou vizi

Technologie Container Linux podle Red Hatu poskytuje několik klíčových součástí nativně kontejnerového provozního systému, především neměnného a optimalizovaného linuxového hostitele, jenž zahrnuje automatizované „bezdrátové“ aktualizace s cílem usnadnit aktualizace velkých struktur.

Container Linux vychází z práce open-source komunity a Red Hat jej plánuje zachovat v podobě bezplatně dostupného, rychlého a automatizovaného hostitele. Zároveň však chce zpřístupnit i obsahové možnosti z ekosystému Red Hat Enterprise Linux a Fedora.

Podporovaná varianta ponese název Red Hat CoreOS a očekává se, že bude zahrnovat koncepce, technologie a uživatelskou zkušenost systému Container Linux. Tato nabídka by měla ve výsledku nahradit infrastrukturu Atomic Host a stát se neměnným kontejnerovým OS Red Hatu.

Quay pro náročnější registry

Třetím velkým přírůstkem do portfolia jsou systémy Quay Enterprise a Quay.io pro zákazníky, kteří vyžadují širší možnosti kontejnerového registru na firemní úrovni. Quay nabídne například automatizovanou replikaci, integrované bezpečnostní skenování nebo snapshoty.

CIF25

Systém Quay je nyní součástí portfolia společnosti Red Hat a je dostupný jako firemní softwarové řešení i jako hostovaná služba na adrese Quay.io. Očekává se, že budoucí verze přinesou další vylepšení a prohloubí integraci s prostředím OpenShift.

Zdroj: Red Hat

Čtěte dále

Češi chtějí QR kódy, většina by je používala i při nakupování na internetu
Češi chtějí QR kódy, většina by je používala i při nakupování na internetu
Obrazem: Asbis provedl partnery cestou kolem světa technologických lídrů
Obrazem: Asbis provedl partnery cestou kolem světa technologických lídrů
Na NIS2 si vyhraďte minimálně 6 měsíců, radí Jan Sedlák z MasterDC
Na NIS2 si vyhraďte minimálně 6 měsíců, radí Jan Sedlák z MasterDC
MSP roste dvouciferně, firmy mají zájem o služby kybernetické bezpečnosti
MSP roste dvouciferně, firmy mají zájem o služby kybernetické bezpečnosti
Nejširší nabídka ProAV technologií? Najdete ji u EET Group
Nejširší nabídka ProAV technologií? Najdete ji u EET Group
Karel Diviš: Firmy potřebují jednoho stabilního dodavatele IT
Karel Diviš: Firmy potřebují jednoho stabilního dodavatele IT
'; 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 »