;

Citrix NetScaler přináší konsolidaci sítě pro privátní i veřejné cloudy

12. 10. 2011

Sdílet

Společnost Citrix představila čtyři nové přírůstky produktových řad Citrix NetScaler MPX a SDX. Novinky podle tiskového vyjádření Citrixu nabízejí schopnosti v oblasti virtualizace, které podniky potřebují pro přechod do Éry Cloudu.

Virtualizace se postupem času stala vedoucím elementem pro rozvoj privátních cloudů v podnicích, a umožnila tak IT infrastruktuře dosáhnout vysoké elasticity a dříve nevídaných způsobů využití. Zatímco infrastruktury serverů a datových úložišť těší z výhod virtualizace dlouhodobě, síťová infrastruktura, reprezentující více než jednu pětinu nákladů na investice do datových center, se ještě nedočkala masivního nasazení virtualizace svých klíčových služeb. K tomuto účelu je totiž vyžadována síťová platforma, která integruje virtualizaci přímo do síťové infrastruktury za účelem konsolidace síťových služeb a nabízí tak elasticitu Pay-As-You-Grow. Nové platformy NetScaler MPX a SDX, včetně zařízení 50 Gbps SDX 21550, poskytují správné prostředí pro zvládnutí velkokapacitní síťové konsolidace s potřebnou stabilitou a flexibilitou pro škálování bez nutnosti používání dalšího hardware.

Úspěšná konsolidace sítě však vyžaduje více než pouhé vyčlenění síťových funkcí ze závislosti na dedikovaném hardware. Nutností je nativně virtualizovaná architektura schopná efektivně škálovat služby, zabezpečit dodržování SLA prostřednictvím plné izolace jednotlivých zdrojů a doručením elasticity on-demand. Nové platformy NetScaler SDX tyto požadavky splňují a navíc podporují až 40 kompletně nezávislých instancí NetScaleru na každém zařízení – to znamená 2,5x více, než srovnatelné řešení postavené na hardwarovém základu.

NetScaler SDX kompletně izoluje systémové zdroje jako je paměť, CPU a zpracování SSL, takže požadavky kladené na výkon jedné aplikace nedegradují výkon těch dalších. Kromě doručování SSL zdrojů pro každou NetScaler službu v prostředí více uživatelů, nová platforma nastavuje také novou výkonnostní laťku v oblasti zpracování SSL.

Organizace se přesouvají směrem k 2048-bit SSL standardům za účelem dosažení vyšší aplikační bezpečnosti. Tato změna, spolu s rozšiřujícím se využíváním SSL napříč aplikacemi, znamená riziko pro výkon sítě a aplikací v důsledku zvýšení nároků na zpracování delšího SSL klíče. Plynulý přechod na 2048-bitové SSL vyžaduje znovudefinování infrastruktury za účelem zajištění potřebné kapacity pro zpracování. Nové platformy NetScaler MPX a SDX jsou již od samotného základu navrženy tak, aby 2048-bitové šifrování zvládaly bez jakýchkoliv problémů. Nové produkty zvládají až 90 000 SSL 2048-bitových transakcí za vteřinu, což je více než dvojnásobek v porovnání se soudobou konkurencí.  

Novinky:

•     Nová zařízení NetScaler SDX integrují virtualizaci přímo do struktury sítě – ve výsledku tak zajišťují až 40 kompletně nezávislých instancí NetScaleru pro rozsáhlé konsolidační projekty. Každá instance Netscaleru je podporována přiřazením zdrojů pro SSL a kompresi, CPU a paměti, aby bylo možné dodržet SLA u aplikací a splnit požadavky kladené na bezpečnost

•    Nejvyšší výkon v 2048-bit SSL: NetScaler zvládá 90 000 nových SSL transakcí za vteřinu s 2048-bitovými klíči, což je více než dvojnásobný výkon v porovnání s nejbližší konkurencí

Ceny a dostupnost

Citrix NetScaler ve verzích MPX a SDX pro zařízení 17550, 19550, 20550 a 21550 splňují širokou škálu požadavků kladených na cenu a její poměr k výkonu. Tyto modely budou celosvětově dostupné později v tomto kvartálu prostřednictvím partnerské sítě Citrix Solution Advisors. Ceny se pohybují od $145,000 za NetScaler MPX do $220,000 za NetScaler SDX – a to bez dalších nákladů ve spojitosti s dosažením maximálního výkonu v SSL. Zákazníci mohou zvyšovat výkonnost platformy a její škálovatelnost protřednictvím licencí NetScaler Pay-As-You-Grow.

Našli jste v článku chybu?
'; 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 »