<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Cloud Storage Archives - Website Admin</title>
	<atom:link href="https://websiteadmin.co.za/topics/cloud-hosting-south-africa/feed/" rel="self" type="application/rss+xml" />
	<link>https://websiteadmin.co.za/topics/cloud-hosting-south-africa/</link>
	<description>Digital Design and Marketing South Africa</description>
	<lastBuildDate>Sun, 17 Mar 2024 12:00:23 +0000</lastBuildDate>
	<language>en-ZA</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.4.3</generator>

<image>
	<url>https://websiteadmin.co.za/wp-content/uploads/2022/12/cropped-favicon-32x32.png</url>
	<title>Cloud Storage Archives - Website Admin</title>
	<link>https://websiteadmin.co.za/topics/cloud-hosting-south-africa/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>A complete overview of Content Delivery Networks (CDNs)</title>
		<link>https://websiteadmin.co.za/blog/a-complete-overview-of-content-delivery-networks-cdns/</link>
					<comments>https://websiteadmin.co.za/blog/a-complete-overview-of-content-delivery-networks-cdns/#respond</comments>
		
		<dc:creator><![CDATA[WDA Digital]]></dc:creator>
		<pubDate>Thu, 14 Dec 2023 16:50:29 +0000</pubDate>
				<category><![CDATA[Cloud Storage]]></category>
		<category><![CDATA[Hosting]]></category>
		<category><![CDATA[Tech Info]]></category>
		<category><![CDATA[cdn]]></category>
		<category><![CDATA[hosting]]></category>
		<guid isPermaLink="false">https://websiteadmin.co.za/?p=2121</guid>

					<description><![CDATA[<p>Content Delivery Networks (CDNs) improve site performance by using a distributed network of servers to deliver resources to users based on their location. Because CDNs reduce server load, they reduce server costs and are well-suited to handling traffic spikes. Overview A content delivery network consists of a network of servers<a class="moretag" href="https://websiteadmin.co.za/blog/a-complete-overview-of-content-delivery-networks-cdns/"> Continue Reading</a></p>
<p>The post <a href="https://websiteadmin.co.za/blog/a-complete-overview-of-content-delivery-networks-cdns/">A complete overview of Content Delivery Networks (CDNs)</a> appeared first on <a href="https://websiteadmin.co.za">Website Admin</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class=" gutenx-wrapper">Content Delivery Networks (CDNs) improve site performance by using a distributed network of servers to deliver resources to users based on their location. Because CDNs reduce server load, they reduce server costs and are well-suited to handling traffic spikes.</p>



<h2 class="wp-block-heading gutenx-wrapper" id="overview">Overview</h2>



<p class=" gutenx-wrapper">A content delivery network consists of a network of servers that are optimized for quickly delivering content to users. Although CDNs are arguably best known for serving cached content, CDNs can also improve the delivery of uncacheable content. Generally speaking, the more of your site delivered by your CDN, the better.</p>



<p class=" gutenx-wrapper">At a high-level, the performance benefits of CDNs stem from a handful of principles: CDN servers are located closer to users than <a href="https://en.wikipedia.org/wiki/Upstream_server">origin servers</a> and therefore have a shorter <a href="https://en.wikipedia.org/wiki/Round-trip_delay">round-trip time (RTT)</a> latency; networking optimizations allow CDNs to deliver content more quickly than if the content was loaded &#8220;directly&#8221; from the origin server; lastly, CDN caches eliminate the need for a request to travel to the origin server.<strong>Key term: </strong><strong>Origin server</strong> refers to the server that a CDN retrieves content from.</p>



<h3 class="wp-block-heading gutenx-wrapper" id="resource_delivery">Resource delivery</h3>



<p class=" gutenx-wrapper">Although it may seem non-intuitive, using a CDN to deliver resources (even uncacheable ones) will typically be faster than having the user load the resource &#8220;directly&#8221; from your servers.</p>



<p class=" gutenx-wrapper">When a CDN is used to deliver resources from the origin, a new connection is established between the client and a nearby CDN server. The remainder of the journey (in other words, the data transfer between the CDN server and origin) occurs over the CDN&#8217;s network &#8211; which often includes existing, persistent connections with the origin. The benefits of this are twofold: terminating the new connection as close to the user as possible eliminates unnecessary connection setup costs (establishing a new connection is expensive and requires multiple roundtrips); using a pre-warmed connection allows data to be immediately transferred at the maximum possible throughput.</p>



<figure class="wp-block-image gutenx-wrapper"><img decoding="async" src="https://web.dev/static/articles/content-delivery-networks/image/comparison-connection-se-9ca81d466f08f.png" alt="Comparison of connection setup with and without a CDN"/></figure>



<div style="height:30px" aria-hidden="true" class="wp-block-spacer gutenx-wrapper"></div>



<p class=" gutenx-wrapper">Some CDNs improve upon this even further by routing traffic to the origin through multiple CDN servers spread across the Internet. Connections between CDN servers occur over reliable and highly optimized routes, rather than routes determined by the Border Gateway Protocol (BGP). Although BGP is the internet&#8217;s de facto routing protocol, its routing decisions are not always performance-oriented. Therefore, BGP-determined routes are likely to be less performant than the finely-tuned routes between CDN servers.</p>



<figure class="wp-block-image gutenx-wrapper"><img decoding="async" src="https://web.dev/static/articles/content-delivery-networks/image/comparison-connection-se-b51422dcc9105.png" alt="Comparison of connection setup with and without a CDN"/></figure>



<div style="height:30px" aria-hidden="true" class="wp-block-spacer gutenx-wrapper"></div>



<h3 class="wp-block-heading gutenx-wrapper" id="caching">Caching</h3>



<p class=" gutenx-wrapper">Caching resources on a CDN&#8217;s servers eliminates the need for a request to travel all the way to the origin in order to be served. As a result, the resource is delivered more quickly; this also reduces the load on the origin server.</p>



<h4 class="wp-block-heading gutenx-wrapper" id="adding_resources_to_the_cache">Adding resources to the cache</h4>



<p class=" gutenx-wrapper">The most commonly used method of populating CDN caches is to have the CDN &#8220;pull&#8221; resources as they are needed &#8211; this is known as &#8220;origin pull&#8221;. The first time that a particular resource is requested from the cache the CDN will request it from the origin server and cache the response. In this manner, the contents of the cache are built-up over time as additional uncached resources are requested.</p>



<h4 class="wp-block-heading gutenx-wrapper" id="removing_resources_from_the_cache">Removing resources from the cache</h4>



<p class=" gutenx-wrapper">CDNs use cache eviction to periodically remove not-so-useful resources from the cache. In addition, site owners can use purging to explicitly remove resources.</p>


<ul class=" gutenx-wrapper axgutenx-styles-uid-ffa167">
<li class=" gutenx-wrapper"><strong>Cache eviction</strong> Caches have a finite storage capacity. When a cache nears its capacity, it makes room for new resources by removing resources that haven&#8217;t been accessed recently, or which take up a lot of space. This process is known as cache eviction. A resource being evicted from one cache does not necessarily mean that it has been evicted from all caches in a CDN network.</li>



<li class=" gutenx-wrapper"><strong>Purging</strong> Purging (also known as &#8220;cache invalidation&#8221;) is a mechanism for removing a resource from a CDN&#8217;s caches without having to wait for it to expire or be evicted. It is typically executed via an API. Purging is critical in situations where content needs to be retracted (for example, correcting typos, pricing errors, or incorrect news articles). On top of that, it can also play a crucial role in a site&#8217;s caching strategy. If a CDN supports near instant purging, purging can be used as a mechanism for managing the caching of dynamic content: cache dynamic content using a long TTL, then purge the resource whenever it is updated. In this way, it is possible to maximize the caching duration of a dynamic resource, despite not knowing in advance when the resource will change. This technique is sometimes referred to as &#8220;hold-till-told caching&#8221;. When purging is used at scale it is typically used in conjunction with a concept known as &#8220;cache tags&#8221; or &#8220;surrogate cache keys&#8221;. This mechanism allows site owners to associate one or more additional identifiers (sometimes referred to as &#8220;tags&#8221;) with a cached resource. These tags can then be used to carry out highly granular purging. For example, you might add a &#8220;footer&#8221; tag to all resources (for example, <code>/about</code>, <code>/blog</code>) that contain your site footer. When the footer is updated, instruct your CDN to purge all resources associated with the &#8220;footer&#8221; tag.</li>
</ul>


<h4 class="wp-block-heading gutenx-wrapper" id="cacheable_resources">Cacheable resources</h4>



<p class=" gutenx-wrapper">If and how a resource should be cached depends on whether it is public or private; static or dynamic.</p>



<h5 class="wp-block-heading gutenx-wrapper" id="private_and_public_resources">Private and public resources</h5>


<ul class=" gutenx-wrapper axgutenx-styles-uid-841cf6">
<li class=" gutenx-wrapper"><strong>Private Resources</strong> Private resources contain data intended for a single user and therefore should not be cached by a CDN. Private resources are indicated by the <code>Cache-Control: private</code> header.</li>



<li class=" gutenx-wrapper"><strong>Public Resources</strong> Public resources do not contain user-specific information and therefore are cacheable by a CDN. A resource may be considered cacheable by a CDN if it does not have a <code>Cache-Control: no-store</code> or <code>Cache-Control: private</code> header. The length of time that a public resource can be cached depends on how frequently the asset changes.</li>
</ul>


<h5 class="wp-block-heading gutenx-wrapper" id="dynamic_and_static_content">Dynamic and static content</h5>


<ul class=" gutenx-wrapper axgutenx-styles-uid-81210b">
<li class=" gutenx-wrapper"><strong>Dynamic content</strong> Dynamic content is content that changes frequently. An API response and a store homepage are examples of this content type. However, the fact that this content changes frequently doesn&#8217;t necessarily preclude it from being cached. During periods of heavy traffic, caching these responses for very short periods of time (for example, 5 seconds) can significantly reduce the load on the origin server, while having minimal impact on data freshness.</li>



<li class=" gutenx-wrapper"><strong>Static content</strong> Static content changes infrequently, if ever. Images, videos, and versioned libraries are typically examples of this content type. Because static content does not change, it should be cached with a long Time to Live (TTL) &#8211; for example, 6 months or 1 year.</li>
</ul>


<h2 class="wp-block-heading gutenx-wrapper" id="choosing_a_cdn">Choosing a CDN</h2>



<p class=" gutenx-wrapper">Performance is typically a top consideration when choosing a CDN. However, the other features that a CDN offers (for example, security and analytics features), as well as a CDN&#8217;s pricing, support, and onboarding are all important to consider when choosing a CDN.</p>



<h3 class="wp-block-heading gutenx-wrapper" id="performance">Performance</h3>



<p class=" gutenx-wrapper">At a high-level, a CDN&#8217;s performance strategy can be thought of in terms of the tradeoff between minimizing latency and maximizing cache hit ratio. CDNs with many points of presence (PoPs) can deliver lower latency but may experience lower cache hit ratios as a result of traffic being split across more caches. Conversely, CDNs with fewer PoPs may be located geographically further from users, but can achieve higher cache hit ratios.</p>



<p class=" gutenx-wrapper">As a result of this tradeoff, some CDNs use a tiered approach to caching: PoPs located close to users (also known as &#8220;edge caches&#8221;) are supplemented with central PoPs that have higher cache hit ratios. When an edge cache can&#8217;t find a resource, it will look to a central PoP for the resource. This approach trades slightly greater latency for a higher likelihood that the resource can be served from a CDN cache &#8211; though not necessarily an edge cache.</p>



<p class=" gutenx-wrapper">The tradeoff between minimizing latency and maximizing cache hit ratio is a spectrum. No particular approach is universally better; however, depending on the nature of your site and its user base, you may find that one of these approaches delivers significantly better performance than the other.</p>



<p class=" gutenx-wrapper">It&#8217;s also worth noting that CDN performance can vary significantly depending on geography, time of day, and even current events. Although it&#8217;s always a good idea to do your own research on a CDN&#8217;s performance, it can be difficult to predict the exact performance you&#8217;ll get from a CDN.</p>



<h3 class="wp-block-heading gutenx-wrapper" id="effects_on_largest_contentful_paint_lcp">Effects on Largest Contentful Paint (LCP)</h3>



<p class=" gutenx-wrapper">As outlined before in this article, the primary purpose of a CDN is to reduce latency by distributing resources to servers that are geographically closer to users. Because of this, a CDN&#8217;s primary benefit is that it improves loading performance. In particular, a resource&#8217;s Time to First Byte (TTFB) can be significantly improved when introducing a CDN into your website&#8217;s server-side architecture.</p>



<p class=" gutenx-wrapper">While TTFB is not a user-centric performance metric, it <em>is</em> an important metric for diagnosing issues with Largest Contentful Paint (LCP), which is a user-centric metric.</p>



<p class=" gutenx-wrapper">CDNs are particularly effective at improving LCP as they can improve both the document delivery (by reducing TTFB in connection setup and in caching the document) and in improving delivery of any static resources needed to render the LCP element.</p>



<h3 class="wp-block-heading gutenx-wrapper" id="additional_features">Additional features</h3>



<p class=" gutenx-wrapper">CDNs typically offer a wide variety of features in addition to their core CDN offering. Commonly offered features include: load balancing, image optimization, video streaming, edge computing, and security products.</p>



<h2 class="wp-block-heading gutenx-wrapper" id="how_to_setup_and_configure_a_cdn">How to setup and configure a CDN</h2>



<p class=" gutenx-wrapper">Ideally you should use a CDN to serve your entire site. At a high-level, the setup process for this consists of signing up with a CDN provider, then updating your CNAME DNS record to point at the CDN provider. For example, the CNAME record for <code>www.example.com</code> might point to <code>example.my-cdn.com</code>. As a result of this DNS change, traffic to your site will be routed through the CDN.</p>



<p class=" gutenx-wrapper">If using a CDN to serve all resources is not an option, you can configure a CDN to only serve a subset of resources &#8211; for example, only static resources. You can do this by creating a separate CNAME record that will only be used for resources that should be served by the CDN. For example, you might create a <code>static.example.com</code> CNAME record that points to <code>example.my-cdn.com</code>. You would also need to rewrite the URLs of resources being served by the CDN to point to the <code>static.example.com</code> subdomain that you created.</p>



<p class=" gutenx-wrapper">Although your CDN will be set up at this point, there will likely be inefficiencies in your configuration. The next two sections of this article will explain how to get the most out of your CDN by increasing cache hit ratio and enabling performance features.</p>



<h2 class="wp-block-heading gutenx-wrapper" id="improving_cache_hit_ratio">Improving cache hit ratio</h2>



<p class=" gutenx-wrapper">An effective CDN setup will serve as many resources as possible from the cache. This is commonly measured by cache hit ratio (CHR). Cache hit ratio is defined as the number of cache hits divided by the number of total requests during a given time interval.</p>



<p class=" gutenx-wrapper">A freshly initialized cache will have a CHR of 0 but this increases as the cache is populated with resources. A CHR of 90% is a good goal for most sites. Your CDN provider should supply you with analytics and reporting regarding your CHR.</p>



<p class=" gutenx-wrapper">When optimizing CHR, the first thing to verify is that all cacheable resources are being cached and cached for the correct length of time. This is a simple assessment that should be undertaken by all sites.</p>



<p class=" gutenx-wrapper">The next level of CHR optimization, broadly speaking, is to fine tune your CDN settings to make sure that logically equivalent server responses aren&#8217;t being cached separately. This is a common inefficiency that occurs due to the impact of factors like query params, cookies, and request headers on caching.</p>



<h3 class="wp-block-heading gutenx-wrapper" id="initial_audit">Initial audit</h3>



<p class=" gutenx-wrapper">Most CDNs will provide cache analytics. In addition, tools like <a href="https://webpagetest.org/">WebPageTest</a> and <a href="https://developer.chrome.com/docs/lighthouse/performance/uses-long-cache-ttl/">Lighthouse</a> can also be used to quickly verify that all of a page&#8217;s static resources are being cached for the correct length of time. This is accomplished by checking the HTTP Cache headers of each resource. Caching a resource using the maximum appropriate Time To Live (TTL) will avoid unnecessary origin fetches in the future and therefore increase CHR.</p>



<p class=" gutenx-wrapper">At a minimum, one of these headers typically needs to be set in order for a resource to be cached by a CDN:</p>


<ul class=" gutenx-wrapper axgutenx-styles-uid-a80cb0">
<li class=" gutenx-wrapper"><code>Cache-Control: max-age=</code></li>



<li class=" gutenx-wrapper"><code>Cache-Control: s-maxage=</code></li>



<li class=" gutenx-wrapper"><code>Expires</code></li>
</ul>


<p class=" gutenx-wrapper">In addition, although it does not impact if or how a resource is cached by a CDN, it is good practice to also set the <a href="https://developer.mozilla.org/docs/Web/HTTP/Headers/Cache-Control#Revalidation_and_reloading"><code>Cache-Control: immutable</code></a> directive.<code>Cache-Control: immutable</code> indicates that a resource &#8220;will not be updated during its freshness lifetime&#8221;. As a result, the browser will not revalidate the resource when serving it from the browser cache, thereby eliminating an unnecessary server request. Unfortunately, this directive is only <a href="https://caniuse.com/#feat=mdn-http_headers_cache-control_immutable">supported</a> by Firefox and Safari &#8211; it is not supported by Chromium-based browsers. This <a href="https://bugs.chromium.org/p/chromium/issues/detail?id=611416">issue</a> tracks Chromium support for <code>Cache-Control: immutable</code>. Starring this issue can help encourage support for this feature.</p>



<p class=" gutenx-wrapper">For a more detailed explanation of HTTP caching, refer to Prevent unnecessary network requests with the HTTP Cache.</p>



<h3 class="wp-block-heading gutenx-wrapper" id="fine_tuning">Fine tuning</h3>



<p class=" gutenx-wrapper">A slightly simplified explanation of how CDN caches work is that the URL of a resource is used as the key for caching and retrieving the resource from the cache. In practice, this is still overwhelmingly true, but is complicated slightly by the impact of things like request headers and query params. As a result, rewriting request URLs is an important technique for both maximizing CHR and ensuring that the correct content is served to users. A properly configured CDN instance strikes the correct balance between overly granular caching (which hurts CHR) and insufficiently granular caching (which results in incorrect responses being served to users).</p>



<h4 class="wp-block-heading gutenx-wrapper" id="query_params">Query params</h4>



<p class=" gutenx-wrapper">By default, CDNs take query params into consideration when caching a resource. However, small adjustments to query param handling can have a significant impact on CHR. For example:</p>


<ul class=" gutenx-wrapper axgutenx-styles-uid-d2612d">
<li class=" gutenx-wrapper"><strong>Unnecessary query params</strong> By default, a CDN would cache <code>example.com/blog</code> and <code>example.com/blog?referral_id=2zjk</code> separately even though they are likely the same underlying resource. This is fixed by adjusting a CDN&#8217;s configuration to ignore the <code>referral\_id</code> query param.</li>



<li class=" gutenx-wrapper"><strong>Query param order</strong> A CDN will cache <code>example.com/blog?id=123&amp;query=dogs</code> separately from <code>example.com/blog?query=dogs&amp;id=123</code>. For most sites, query param order does not matter, so configuring the CDN to sort the query params (thereby normalizing the URL used to cache the server response) will increase CHR.</li>
</ul>


<h4 class="wp-block-heading gutenx-wrapper" id="vary">Vary</h4>



<p class=" gutenx-wrapper">The <a href="https://developer.mozilla.org/docs/Web/HTTP/Headers/Vary">Vary</a> response header informs caches that the server response corresponding to a particular URL can vary depending on the headers set on the request (for example, the <a href="https://developer.mozilla.org/docs/Web/HTTP/Headers/Accept-Language" target="_blank" rel="noreferrer noopener">Accept-Language</a> or <a href="https://developer.mozilla.org/docs/Web/HTTP/Headers/Accept-Encoding" target="_blank" rel="noreferrer noopener">Accept-Encoding</a> request headers). As a result, it instructs a CDN to cache these responses separately. The Vary header is not widely supported by CDNs and may result in an otherwise cacheable resource not being served from a cache.</p>



<p class=" gutenx-wrapper">Although the Vary header can be a useful tool, inappropriate usage hurts CHR. In addition, if you do use <code>Vary</code>, normalizing request headers will help improve CHR. For example, without normalization the request headers <code>Accept-Language: en-US</code> and <code>Accept-Language: en-US,en;q=0.9</code> would result in two separate cache entries, even though their contents would likely be identical.</p>



<h4 class="wp-block-heading gutenx-wrapper" id="cookies">Cookies</h4>



<p class=" gutenx-wrapper">Cookies are set on requests via the <a href="https://developer.mozilla.org/docs/Web/HTTP/Headers/Cookie" target="_blank" rel="noreferrer noopener"><code>Cookie</code></a> header; they are set on responses via the <code>Set-Cookie</code> header. Unnecessary use of <a href="https://developer.mozilla.org/docs/Web/HTTP/Headers/Set-Cookie"><code>Set-Cookie</code></a> header should be avoided given that caches will typically not cache server responses containing this header.</p>



<h2 class="wp-block-heading gutenx-wrapper" id="performance_features">Performance features</h2>



<p class=" gutenx-wrapper">This section discusses performance features that are commonly offered by CDNs as part of their core product offering. Many sites forget to enable these features, thereby losing out on easy performance wins.</p>



<h3 class="wp-block-heading gutenx-wrapper" id="compression">Compression</h3>



<p class=" gutenx-wrapper">All text-based responses should be compressed with either gzip or Brotli. If you have the choice, choose Brotli over gzip. Brotli is a newer compression algorithm, and compared to gzip, it can achieve higher compression ratios.</p>



<p class=" gutenx-wrapper">There are two types of CDN support for Brotli compression: &#8220;Brotli from origin&#8221; and &#8220;automatic Brotli compression&#8221;.</p>



<h4 class="wp-block-heading gutenx-wrapper" id="brotli_from_origin">Brotli from origin</h4>



<p class=" gutenx-wrapper">Brotli from origin is when a CDN serves resources that were Brotli-compressed by the origin. Although this may seem like a feature that all CDNs should be able to support out of the box, it requires that a CDN be able to cache multiple versions (in other words, gzip-compressed and Brotli-compressed versions) of the resource corresponding to a given URL.</p>



<h4 class="wp-block-heading gutenx-wrapper" id="automatic_brotli_compression">Automatic Brotli compression</h4>



<p class=" gutenx-wrapper">Automatic Brotli compression is when resources are Brotli compressed by the CDN. CDNs can compress both cacheable and non-cacheable resources.</p>



<p class=" gutenx-wrapper">The first time that a resource is requested it is served using &#8220;good enough&#8221; compression &#8211; for example, Brotli-5. This type of compression is applicable to both cacheable and non-cacheable resources.</p>



<p class=" gutenx-wrapper">Meanwhile, if a resource is cacheable, the CDN will use offline processing to compress the resource at a more powerful but far slower compression level &#8211; for example, Brotli-11. Once this compression completes, the more compressed version will be cached and used for subsequent requests.</p>



<h4 class="wp-block-heading gutenx-wrapper" id="compression_best_practices">Compression best practices</h4>



<p class=" gutenx-wrapper">Sites that want to maximize performance should apply Brotli compression at both their origin server and CDN. Brotli compression at the origin minimizes the transfer size of resources that can&#8217;t be served from the cache. To prevent delays in serving requests, the origin should compress dynamic resources using a fairly conservative compression level &#8211; for example, Brotli-4; static resources can be compressed using Brotli-11. If an origin does not support Brotli, gzip-6 can be used to compress dynamic resources; gzip-9 can be used to compress static resources.</p>



<h3 class="wp-block-heading gutenx-wrapper" id="tls_13">TLS 1.3</h3>



<p class=" gutenx-wrapper">TLS 1.3 is the newest version of <a href="https://en.wikipedia.org/wiki/Transport_Layer_Security" target="_blank" rel="noreferrer noopener">Transport Layer Security (TLS)</a>, the cryptographic protocol used by <a href="https://en.wikipedia.org/wiki/HTTPS" target="_blank" rel="noreferrer noopener">HTTPS</a>. TLS 1.3 provides better privacy and performance compared to TLS 1.2.</p>



<p class=" gutenx-wrapper">TLS 1.3 shortens the TLS handshake from two roundtrips to one. For connections using HTTP/1 or HTTP/2, shortening the TLS handshake to one roundtrip effectively reduces connection setup time by 33%.</p>



<figure class="ns wp-block-image gutenx-wrapper"><img decoding="async" src="https://web.dev/static/articles/content-delivery-networks/image/comparison-the-tls-12-4f496629b0b9f.png" alt="Comparison of the TLS 1.2 and TLS 1.3 handshakes"/></figure>



<div style="height:30px" aria-hidden="true" class="wp-block-spacer gutenx-wrapper"></div>



<h3 class="wp-block-heading gutenx-wrapper" id="http2_and_http3">HTTP/2 and HTTP/3</h3>



<p class=" gutenx-wrapper">HTTP/2 and HTTP/3 both provide performance benefits over HTTP/1. Of the two, HTTP/3 offers greater <em>potential</em> performance benefits. HTTP/3 isn&#8217;t fully standardized yet, but it will be widely <a href="https://caniuse.com/#feat=http3" target="_blank" rel="noreferrer noopener">supported</a> once this occurs.</p>



<h4 class="wp-block-heading gutenx-wrapper" id="http2">HTTP/2</h4>



<p class=" gutenx-wrapper">If your CDN hasn&#8217;t already enabled <a href="https://almanac.httparchive.org/en/2019/http2">HTTP/2</a> by default, you should consider turning it on. HTTP/2 provides multiple performance benefits over HTTP/1 and is supported by all major browsers. Performance features of HTTP/2 include: multiplexing, stream prioritization, server push, and header compression.</p>


<ul class=" gutenx-wrapper axgutenx-styles-uid-786b0a">
<li class=" gutenx-wrapper"><strong>Multiplexing</strong> Multiplexing is arguably the most important feature of HTTP/2. Multiplexing enables a single TCP connection to serve multiple request-response pairs at the same time. This eliminates the overhead of unnecessary connection setups; given that the number of connections that a browser can have open at a given time is limited, this also has the implication that the browser is now able to request more of a page&#8217;s resources in parallel. Multiplexing theoretically removes the need for HTTP/1 optimizations like concatenation and sprite sheets &#8211; however, in practice, these techniques will remain relevant given that larger files compress better.</li>



<li class=" gutenx-wrapper"><strong>Stream prioritization</strong> Multiplexing enables multiple concurrent streams; stream prioritization provides an interface for communicating relative priority of each of these streams. This helps the server to send the most important resources first &#8211; even if they weren&#8217;t requested first.</li>
</ul>


<p class=" gutenx-wrapper">Stream prioritization is expressed by the browser via a dependency tree and is merely a statement of <em>preference</em>: in other words, the server is not obligated to meet (or even consider) the priorities supplied by the browser. Stream prioritization becomes more effective when more of a site is served through a CDN.</p>



<p class=" gutenx-wrapper">CDN implementations of HTTP/2 resource prioritization vary wildly. To identify whether your CDN fully and properly supports HTTP/2 resource prioritization, check out <a href="https://ishttp2fastyet.com/" target="_blank" rel="noreferrer noopener">Is HTTP/2 Fast Yet?</a>.</p>



<p class=" gutenx-wrapper">Although switching your CDN instance to HTTP/2 is largely a matter of flipping a switch, it&#8217;s important to thoroughly test this change before enabling it in production. HTTP/1 and HTTP/2 use the same conventions for request and response headers &#8211; but HTTP/2 is far less forgiving when these conventions aren&#8217;t adhered to. As a result, non-spec practices like including non-ASCII or uppercase characters in headers may begin causing errors once HTTP/2 is enabled. If this occurs, a browser&#8217;s attempts to download the resource will fail. The failed download attempt will be visible in the &#8220;Network&#8221; tab of DevTools. In addition, the error message &#8220;ERR_HTTP2_PROTOCOL_ERROR&#8221; will be displayed in the console.</p>



<h4 class="wp-block-heading gutenx-wrapper" id="http3">HTTP/3</h4>



<p class=" gutenx-wrapper"><a href="https://caniuse.com/#feat=http3" target="_blank" rel="noreferrer noopener">HTTP/3</a> is the successor to <a href="https://en.wikipedia.org/wiki/HTTP/3" target="_blank" rel="noreferrer noopener">HTTP/2</a>. As of September 2020, all major browsers have experimental <a href="https://caniuse.com/#feat=http3" target="_blank" rel="noreferrer noopener">support</a> for HTTP/3 and some CDNs support it. Performance is the primary benefit of HTTP/3 over HTTP/2. Specifically, HTTP/3 eliminates head-of-line blocking at the connection level and reduces connection setup time.</p>


<ul class=" gutenx-wrapper axgutenx-styles-uid-6062f6">
<li class=" gutenx-wrapper"><strong>Elimination of head-of-line blocking</strong> HTTP/2 introduced multiplexing, a feature that allows a single connection to be used to transmit multiple streams of data simultaneously. However, with HTTP/2, a single dropped packet blocks all streams on a connection (a phenomena known as a head-of-line blocking). With HTTP/3, a dropped packet only blocks a single stream. This improvement is largely the result of HTTP/3 using UDP (HTTP/3 uses UDP via QUIC) rather than TCP. This makes HTTP/3 particularly useful for data transfer over congested or lossy networks.</li>
</ul>


<figure class="wp-block-image gutenx-wrapper"><img decoding="async" src="https://web.dev/static/articles/content-delivery-networks/image/diagram-showing-differen-e7307623724b5.png" alt="Diagram showing the differences in data transmission between HTTP/1, HTTP/2, and HTTP/3"/></figure>



<div style="height:30px" aria-hidden="true" class="wp-block-spacer gutenx-wrapper"></div>


<ul class=" gutenx-wrapper axgutenx-styles-uid-be8712">
<li class=" gutenx-wrapper"><strong>Reduced connection setup time</strong> HTTP/3 uses TLS 1.3 and therefore shares its performance benefits: establishing a new connection only requires a single round-trip and resuming an existing connection does not require any roundtrips.</li>
</ul>


<figure class="ns wp-block-image gutenx-wrapper"><img decoding="async" src="https://web.dev/static/articles/content-delivery-networks/image/comparison-connection-re-303b82d055cb5.png" alt="Comparison of connection resumption between TLS 1.2, TLS 1.3, TLS 1.3 0-RTT, and HTTP/3"/></figure>



<div style="height:30px" aria-hidden="true" class="ns wp-block-spacer gutenx-wrapper"></div>



<p class=" gutenx-wrapper">HTTP/3 will have the biggest impact on users on poor network connections: not only because HTTP/3 handles packet loss better than its predecessors, but also because the absolute time savings resulting from a 0-RTT or 1-RTT connection setup will be greater on networks with high latency.</p>



<h3 class="wp-block-heading gutenx-wrapper" id="image_optimization">Image optimization</h3>



<p class=" gutenx-wrapper">CDN image optimization services typically focus on image optimizations that can be applied automatically in order to reduce image transfer size. For example: stripping <a href="https://en.wikipedia.org/wiki/Exif" target="_blank" rel="noreferrer noopener">EXIF</a> data, applying lossless compression, and converting images to newer file formats (for example, WebP). Images make up ~50% of the transfer bytes on the median web page, so optimizing images can significantly reduce page size.</p>



<h3 class="wp-block-heading gutenx-wrapper" id="minification">Code Minification</h3>



<p class=" gutenx-wrapper">Minification removes unnecessary characters from JavaScript, CSS, and HTML. It&#8217;s preferable to do minification at the origin server, rather than the CDN. Site owners have more context about the code to be minified and therefore can often use more aggressive minification techniques than those employed by CDNs. However, if minifying code at the origin is not an option, minification by the CDN is a good alternative.</p>



<h2 class="wp-block-heading gutenx-wrapper" id="conclusion">Conclusion</h2>


<ul class=" gutenx-wrapper axgutenx-styles-uid-e52590">
<li class=" gutenx-wrapper"><strong>Use a CDN:</strong> CDNs deliver resources quickly, reduce load on the origin server, and are helpful for dealing with traffic spikes.</li>



<li class=" gutenx-wrapper"><strong>Cache content as aggressively as possible:</strong> Both static and dynamic content can and should be cached &#8211; albeit for varying durations. Periodically audit your site to make sure that you are optimally cacheing content.</li>



<li class=" gutenx-wrapper"><strong>Enable CDN performance features:</strong> Features like Brotli, TLS 1.3, HTTP/2, and HTTP/3 further improve performance.</li>
</ul>


<div style="height:100px" aria-hidden="true" class="wp-block-spacer gutenx-wrapper"></div>
<p>The post <a href="https://websiteadmin.co.za/blog/a-complete-overview-of-content-delivery-networks-cdns/">A complete overview of Content Delivery Networks (CDNs)</a> appeared first on <a href="https://websiteadmin.co.za">Website Admin</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://websiteadmin.co.za/blog/a-complete-overview-of-content-delivery-networks-cdns/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Slow internet due to WACS cable snapping</title>
		<link>https://websiteadmin.co.za/blog/slow-internet-due-to-wacs-cable-snapping/</link>
					<comments>https://websiteadmin.co.za/blog/slow-internet-due-to-wacs-cable-snapping/#respond</comments>
		
		<dc:creator><![CDATA[WDA Digital]]></dc:creator>
		<pubDate>Tue, 15 Aug 2023 21:13:49 +0000</pubDate>
				<category><![CDATA[Cloud Storage]]></category>
		<category><![CDATA[Hosting]]></category>
		<category><![CDATA[Tech Info]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[wacs]]></category>
		<guid isPermaLink="false">https://websiteadmin.co.za/?p=1991</guid>

					<description><![CDATA[<p>The West Africa Cable System (WACS) and South Atlantic 3 (SAT-3) cable systems are deployed in the Atlantic Ocean, and it connects South Africa and many other African countries to Europe. The system lands in SA at Yzerfontein, Western Cape, while the SAT-3/WACS system enters the country at Melkbosstrand, Western<a class="moretag" href="https://websiteadmin.co.za/blog/slow-internet-due-to-wacs-cable-snapping/"> Continue Reading</a></p>
<p>The post <a href="https://websiteadmin.co.za/blog/slow-internet-due-to-wacs-cable-snapping/">Slow internet due to WACS cable snapping</a> appeared first on <a href="https://websiteadmin.co.za">Website Admin</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class=" gutenx-wrapper">The West Africa Cable System (WACS) and South Atlantic 3 (SAT-3) cable systems are deployed in the Atlantic Ocean, and it connects South Africa and many other African countries to Europe. The system lands in SA at Yzerfontein, Western Cape, while the SAT-3/WACS system enters the country at Melkbosstrand, Western Cape.</p>



<p class=" gutenx-wrapper">The cable consists of four fibre pairs which is 14 530km long, linking from Yzerfontein in the Western Cape of South Africa, to London in the UK</p>



<p class=" gutenx-wrapper">The WACS and SAT-3 undersea cables snapped simultaneously on Sunday, impacting local fibre players, infrastructure provider Openserve and Broadband Infraco, among others.</p>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer gutenx-wrapper"></div>



<figure class="wp-block-image size-full gutenx-wrapper"><img fetchpriority="high" decoding="async" width="850" height="645" src="https://websiteadmin.co.za/wp-content/uploads/2023/09/seacom-cable.jpg" alt="WACS and SAT Cable Snapping South Africa" class="wp-image-1996" srcset="https://websiteadmin.co.za/wp-content/uploads/2023/09/seacom-cable.jpg 850w, https://websiteadmin.co.za/wp-content/uploads/2023/09/seacom-cable-300x228.jpg 300w, https://websiteadmin.co.za/wp-content/uploads/2023/09/seacom-cable-768x583.jpg 768w" sizes="(max-width: 850px) 100vw, 850px" /></figure>



<div style="height:50px" aria-hidden="true" class="wp-block-spacer gutenx-wrapper"></div>



<p class=" gutenx-wrapper">Openserve in a statement sayd that the impact on its network is limited to customers on the international private leased circuit services.</p>



<blockquote class="wp-block-quote gutenx-wrapper">
<p class=" gutenx-wrapper">“Openserve can confirm the breaks of the WACS and SAT-3 undersea cables. We are collaborating with the consortium partners to facilitate the restoration of these cables.</p>



<p class=" gutenx-wrapper">“The Openserve network remains robust due to our investment in other international cable capacity, hence all Openserve IP Transit services traffic has been automatically re-routed, ensuring our customers stay seamlessly connected.”</p>
<cite>Openserve Statement</cite></blockquote>



<p class=" gutenx-wrapper">According to Openserve, no official restoration timeline has been communicated by the consortium.</p>



<p class=" gutenx-wrapper">In a tweet, state-owned wholesale infrastructure provider Broadband Infraco <a href="https://twitter.com/bbinfraco/status/1688575448761139200" target="_blank" rel="noreferrer noopener">apologised</a> to customers for the connectivity interruptions caused by the cable issues.</p>



<blockquote class="wp-block-quote gutenx-wrapper">
<p class=" gutenx-wrapper">“A WACS cable break has occurred in the subsea nearby DRC Congo Canyon. The break is confirmed at approximately 3 686km from Yzerfontein cable landing station. For more info, please contact +2711 239 8020 or <a href="mailto:opssupport@infraco.co.za" target="_blank" rel="noreferrer noopener">opssupport@infraco.co.za</a>,” says the company in the tweet.</p>
<cite>Infraco Tweet</cite></blockquote>



<p class=" gutenx-wrapper">The disruption has particularly affected online services reliant on local content delivery nodes, including video streaming platforms like YouTube, Netflix, and Disney+, as well as social networks like Facebook and Instagram. </p>



<p class=" gutenx-wrapper">Cloudflare, a major internet infrastructure company, has been rerouting traffic to mitigate the impact, but congestion and slower website performance are expected as repairs are estimated to take several weeks.</p>



<p class=" gutenx-wrapper">If you are looking for a <a href="https://websiteadmin.co.za/website-administrators-south-africa/website-and-email-hosting-south-africa/">reliable hosting company in South Africa</a> then look no further. We provide you with excellent servers, unlimited business email, unlimited traffic and free SSL.  We also have a <a href="https://websiteadmin.co.za/website-administrators-south-africa/cloud-storage-specialists-south-africa/">Cloud Storage</a> solution for any business no matter size or requirements. Make sure your data stays safe.</p>



<h4 class="wp-block-heading gutenx-wrapper">Interested to see what these cables look like?</h4>



<p class=" gutenx-wrapper">The video below shows how divers fix these underwater cables. Really interesting</p>



<p class=" gutenx-wrapper"></p>



<figure class="wp-embed-aspect-16-9 wp-has-aspect-ratio wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube gutenx-wrapper"><div class="wp-block-embed__wrapper">
<iframe title="Inside the Extreme Life of Divers Repairing Billion $ Underwater Cables" width="750" height="422" src="https://www.youtube.com/embed/l1knCR6xAzo?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>
</div><figcaption class="wp-element-caption">Underwater cables being repaired.</figcaption></figure>



<div style="height:100px" aria-hidden="true" class="wp-block-spacer gutenx-wrapper"></div>
<p>The post <a href="https://websiteadmin.co.za/blog/slow-internet-due-to-wacs-cable-snapping/">Slow internet due to WACS cable snapping</a> appeared first on <a href="https://websiteadmin.co.za">Website Admin</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://websiteadmin.co.za/blog/slow-internet-due-to-wacs-cable-snapping/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Every business should consider Cloud Storage</title>
		<link>https://websiteadmin.co.za/blog/every-business-should-consider-cloud-storage-south-africa/</link>
					<comments>https://websiteadmin.co.za/blog/every-business-should-consider-cloud-storage-south-africa/#respond</comments>
		
		<dc:creator><![CDATA[WDA Digital]]></dc:creator>
		<pubDate>Sun, 21 May 2023 12:56:55 +0000</pubDate>
				<category><![CDATA[Cloud Storage]]></category>
		<category><![CDATA[Hosting]]></category>
		<category><![CDATA[cloud]]></category>
		<category><![CDATA[cloud hosting]]></category>
		<guid isPermaLink="false">https://websiteadmin.co.za/?p=1740</guid>

					<description><![CDATA[<p>We have seen quite a massive increase in businesses losing data due to our electricity issues (loadshedding) and crime (break-ins) in South Africa. Having your business configured for cloud storage is an essential requirement. In this post we will discuss why every business should consider cloud storage instead of external<a class="moretag" href="https://websiteadmin.co.za/blog/every-business-should-consider-cloud-storage-south-africa/"> Continue Reading</a></p>
<p>The post <a href="https://websiteadmin.co.za/blog/every-business-should-consider-cloud-storage-south-africa/">Every business should consider Cloud Storage</a> appeared first on <a href="https://websiteadmin.co.za">Website Admin</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class=" gutenx-wrapper" style="font-size:24px">We have seen quite a massive increase in businesses losing data due to our electricity issues (loadshedding) and crime (break-ins) in South Africa. Having your business configured for cloud storage is an essential requirement. </p>



<p class=" gutenx-wrapper" style="font-size:19px">In this post we will discuss why every business should consider cloud storage instead of external hard drive, off-site backups or anything similar to what a lot of businesses are still doing.   </p>



<h2 class="wp-block-heading gutenx-wrapper">Cloud Storage South Africa</h2>



<p class=" gutenx-wrapper">You may be well aware of the term, but unaware of exactly what it means &#8211; so, what is cloud storage? Essentially, cloud storage is a way of storing data off-premise simply and securely. </p>



<p class=" gutenx-wrapper">With cloud storage, your data is stored on servers housed in third-party data centers. Cloud storage takes away the requirement to purchase physical data storage solutions, and instead enables you to store your data online &#8211; off site.&nbsp;</p>



<p class=" gutenx-wrapper">There are several business benefits to cloud storage, including cost efficiency, security, accessibility, and scalability.</p>



<p class=" gutenx-wrapper">From a business perspective, <a href="https://websiteadmin.co.za/website-administrators-south-africa/cloud-storage-specialists-south-africa/">cloud storage</a> is a very attractive alternative to traditional data storage, such as on-premise servers and portable hard drives and the like.</p>



<h3 class="wp-block-heading gutenx-wrapper">Why Consider Cloud Storage</h3>



<h4 class="wp-block-heading gutenx-wrapper" id="scalability">Cloud Storage Scalability</h4>



<p class=" gutenx-wrapper">Many businesses may want to start small in terms of data storage, and increase the size of their solution as they grow. Another major draw to cloud storage solutions is the ability to scale the service depending on your needs. Scalability is a major consideration for businesses in all sectors, and along with factors like the number of staff members and the size of business premises, data storage must be scalable too.&nbsp;</p>



<h4 class="wp-block-heading gutenx-wrapper" id="availability">Cloud Storage Availability</h4>



<p class=" gutenx-wrapper">Data stored in the cloud can be accessed at any time from anywhere, and by anyone with the authorized credentials to do so.&nbsp;With our&nbsp;cloud storage, files are always up to date and can be accessed from any compatible device.&nbsp;As well as simplifying your data storage, our cloud storage will make your data more accessible, too. </p>



<p class=" gutenx-wrapper">This brings tremendous flexibility to your organization, and means you don&#8217;t have to be in the office to access the data you need.</p>



<h4 class="wp-block-heading gutenx-wrapper" id="enterprise-grade-security-xa0">Cloud Storage Security&nbsp;</h4>



<p class=" gutenx-wrapper">Security is a top priority and securing against the most advanced cyber threats is a must have especially if you store customer data, business information or any sensitive data.&nbsp;No matter how much time and money you pour into an on-premise <a href="https://websiteadmin.co.za/website-administrators-south-africa/digital-security-specialists-south-africa/">security solution</a> for your data storage, it&#8217;s unlikely to match the security of our cloud data storage providers. Our cloud storage services offer a level of security that&#8217;s hard to beat.&nbsp;</p>



<h5 class="wp-block-heading gutenx-wrapper">Cloud Storage Partners</h5>



<figure class="ns wp-block-image size-full gutenx-wrapper"><img decoding="async" width="970" height="546" src="https://websiteadmin.co.za/wp-content/uploads/2023/05/cloud-storage-business-south-africa.webp" alt="Business Cloud Storage South Africa" class="wp-image-1743" srcset="https://websiteadmin.co.za/wp-content/uploads/2023/05/cloud-storage-business-south-africa.webp 970w, https://websiteadmin.co.za/wp-content/uploads/2023/05/cloud-storage-business-south-africa-300x169.webp 300w, https://websiteadmin.co.za/wp-content/uploads/2023/05/cloud-storage-business-south-africa-768x432.webp 768w" sizes="(max-width: 970px) 100vw, 970px" /></figure>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer gutenx-wrapper"></div>



<p class=" gutenx-wrapper">We partner with the best cloud storage providers available. Some of our partners include <a href="https://cloud.google.com/" target="_blank" rel="noreferrer noopener">Google Cloud</a>, <a href="https://www.dropbox.com" target="_blank" rel="noreferrer noopener">Dropbox</a>, Microsoft and a few other bespoke services.</p>



<h5 class="wp-block-heading gutenx-wrapper">Cloud Hosting</h5>



<p class=" gutenx-wrapper">We also offer a complete <a href="https://websiteadmin.co.za/website-administrators-south-africa/website-and-email-hosting-south-africa/">cloud hosting</a> solution to clients for Website Testing, Node Applications and other development operations. Our main cloud hosting partner is with <a href="https://vercel.com/" target="_blank" rel="noreferrer noopener">Vercel</a> and <a href="https://github.com" target="_blank" rel="noreferrer noopener">Github</a> for Code storage. Contact our team for more information on how we can assist your business with cloud services.</p>



<h3 class="wp-block-heading gutenx-wrapper">Conclusion</h3>



<p class=" gutenx-wrapper">There are a wide range of benefits to choosing cloud storage over traditional hardware solutions. You&#8217;ll save money, make your data more accessible, scale with ease, and benefit from increased security. </p>



<p class=" gutenx-wrapper">It makes business sense to make the switch from on-premise alternatives, especially if you deal with a lot of data.&nbsp;</p>



<p class=" gutenx-wrapper">We offer <strong>cloud storage services to businesses in South Africa</strong>.</p>



<p class=" gutenx-wrapper">With a better understanding of cloud storage technology, you can optimize the storage solution you need to run your business more effectively. We can assist your business with getting your data on the cloud with ease. Contact us today for more information.</p>



<div style="height:30px" aria-hidden="true" class="wp-block-spacer gutenx-wrapper"></div>



<div class="wp-block-buttons gutenx-wrapper is-layout-flex wp-block-buttons-is-layout-flex"><div class="btn btn-primary wp-block-button gutenx-wrapper axgutenx-styles-uid-1ae366"><a class="wp-block-button__link wp-element-button" href="https://websiteadmin.co.za/website-administrators-south-africa/cloud-storage-specialists-south-africa/">CLOUD SPECIALISTS SOUTH AFRICA</a></div></div>



<div style="height:100px" aria-hidden="true" class="wp-block-spacer gutenx-wrapper"></div>
<p>The post <a href="https://websiteadmin.co.za/blog/every-business-should-consider-cloud-storage-south-africa/">Every business should consider Cloud Storage</a> appeared first on <a href="https://websiteadmin.co.za">Website Admin</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://websiteadmin.co.za/blog/every-business-should-consider-cloud-storage-south-africa/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
