Canalys: Příprava na AI, investice do cloudové infrastruktury vystřelily o 21 %

22. 11. 2024
Doba čtení: 2 minuty

Sdílet

Autor: Depositphotos
Všichni tři hlavní vendoři rozšiřují infrastrukturu AI nové generace a zároveň pokračují v dvouciferných růstech.

Podle aktuální zprávy společnosti Canalys ve třetím čtvrtletí 2024 stouply celosvětové výdaje na služby cloudové infrastruktury o 21 % na 82 miliard dolarů. Růst nabudily především investice zákazníků do nabídek poskytovatelů hyperškálovatelných služeb v oblasti umělé inteligence.

To na oplátku přimělo přední dodavatele cloudových služeb k výraznému zvýšení investic do umělé inteligence. Pořadí tří největších dodavatelů cloudových služeb – AWS, Microsoft Azure a Google Cloud – zůstalo oproti předchozímu čtvrtletí stabilní, přičemž tito poskytovatelé dohromady pohltí takřka dvě třetiny celkových výdajů.

Souhrnné investice u těchto tří poskytovatelů vzrostly meziročně o 26 % a všichni tři zaznamenali mezičtvrtletní růst. Lídr trhu AWS si udržel meziroční tempo růstu 19 %, což odpovídá předchozímu čtvrtletí.

Co do tempa jej však předstihli Microsoft s 33% růstem i Google Cloud s 36% růstem. Ve skutečném vyjádření v dolarech však AWS předstihlo Microsoft i Google Cloud, když oproti předchozímu roku zvýšilo tržby o téměř 4,4 miliardy dolarů.

Růstová trajektorie zůstane zachovaná

Canalys uvádí, že s rostoucím zaváděním technologií AI se nadále zvyšuje poptávka po vysoce výkonných počítačích a úložištích, což vytváří tlak na poskytovatele cloudových služeb, aby rozšiřovali svou infrastrukturu. V reakci na to přední poskytovatelé cloudových služeb upřednostňují rozsáhlé investice do infrastruktury AI nové generace.

Aby zmírnili rizika spojená s nedostatečnými investicemi, přijali strategie nadměrných investic, které jim zajišťují schopnost škálovat nabídky v souladu s rostoucími potřebami zákazníků v oblasti AI. V souladu s tím všechny signalizovaly, že kapitálové výdaje udrží rychlou růstovou trajektorii, a očekává se, že budou na této cestě pokračovat i v roce 2025.

„Pokračující značné výdaje budou představovat nové výzvy, které budou vyžadovat, aby dodavatelé cloudových řešení pečlivě vyvažovali své investice do umělé inteligence s nákladovou disciplínou potřebnou k financování těchto iniciativ,“ říká Rachel Brindleyová z Canalysu.

„Společnosti by sice měly do AI investovat dostatečné prostředky, aby využily technologického růstu, ale zároveň musí být obezřetné, aby se vyhnuly nadměrným výdajům nebo neefektivní alokaci zdrojů. Zajištění udržitelnosti těchto investic v čase bude mít zásadní význam pro udržení dlouhodobého finančního zdraví a konkurenční výhody,“ dodává.

Graf 1 – Výdaje na cloudovou infrastrukturu v 3Q24

Autor: Canalys

Graf 2 – Vývoj podílu vendorů, 1Q21–3Q24

Autor: Canalys

Čtěte dále

Arrow posiluje nabídku úložišť, podepsalo smlouvu s Object First
Arrow posiluje nabídku úložišť, podepsalo smlouvu s Object First
Firmy by se měly připravovat na Wi-Fi 7, nejde jen o generační obměnu
Firmy by se měly připravovat na Wi-Fi 7, nejde jen o generační obměnu
Podnikatele děsí krádež dat i identity, do zabezpečení ale investují minimálně
Podnikatele děsí krádež dat i identity, do zabezpečení ale investují minimálně
Ruské vojenské jednotky vedou kyberkampaň proti podporovatelům Ukrajiny, varuje NÚKIB
Ruské vojenské jednotky vedou kyberkampaň proti podporovatelům Ukrajiny, varuje NÚKIB
Pavel Cvetler je novým produktovým a IT ředitelem Shoptetu
Pavel Cvetler je novým produktovým a IT ředitelem Shoptetu
Šest značek ovládá více než polovinu světového internetového provozu
Šest značek ovládá více než polovinu světového internetového provozu
'; 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 »