Architecture and concepts

Overview

Cloudinary is a software–as-a-service (SaaS) solution hosted in the cloud.

Cloudinary manages your web application’s resources in the cloud. The resources are delivered from high-performance servers through Content Delivery Networks.

Resources are uploaded, managed, and transformed using Cloudinary’s easy to use APIs. Image upload, processing, and delivery are done on Cloudinary’s servers and automatically scale for handling high load and bursts of traffic.

Resource Storage

Resources uploaded to Cloudinary and all generated resources are safely stored and managed by Cloudinary.

High-performance cloud-based storage solutions such as Amazon’s Simple Storage Service (S3) are leveraged for resource management:

  • High performance servers that supports fast upload and download rates.
  • Highly available storage that promises that your resources are always available and safe.

Resources are stored in S3 buckets that are privately accessed for writing. We can use shared buckets, dedicated buckets or private buckets.

Resource Delivery

Your web page’s loading times are a basic factor in visitor satisfaction.

Cloudinary integrates with leading Content Delivery Networks - Akamai and Amazon CloudFront, with thousands of global delivery servers. Correctly utilizing the CDNs with advanced caching techniques allows Cloudinary to offer efficient delivery of web resources to your visitors all around the world.

Cloudinary’s integration and optimization magic is performed behind-the-scenes and is completely transparent to our clients.

Scaling

Cloudinary’s architecture was built from the ground up to support high load and practically unlimited amount of resources and usage.

Cloudinary’s service includes a multitude of powerful cloud-based upload and transformation servers. Each server is optimized to handle a very high rate of uploads, downloads, and complex image transformations.

Cloudinary’s servers automatically scale and will easily manage large traffic peaks. Advanced load balancers are used to distribute the load between all our servers.

Finally, an enterprise-grade content delivery network delivers resources quickly and efficiently through thousands of global delivery servers.

URL-based and REST API

Cloudinary offers two kinds of APIs - a secured management API and a URL-based API for downloading and transforming resources.

The secure API is used for management actions such as resource uploading and management. Requests are authenticated and all parameters are signed using unique and private Cloudinary identifiers assigned to each client.

The URL-based APIs offer public access to your websites’ resources. The resource URLs can include hints on how the resource should be downloaded, such as specific image transformation instructions. URLs are dynamically mapped to CDN distributions that forward the requests to Cloudinary servers which generate the transformed resource on-demand and deliver them optimized to users.

See API, URLs and access identifiers for more details.

HTTP and HTTPS access

Web resources managed by Cloudinary are publicly available for download. Your web application can use either standard HTTP communication or secured HTTPS communication. Cloudinary APIs support uploading and transforming resources in both HTTP and HTTPS. Each client is assigned with plain and secure URLs for dynamically accessing any resource. Delivering resources using both kinds of communication methods can be done through the high-performance CDN.

If you are using our client-side libraries, we automatically detect whether the visited page is delivered using HTTP or HTTPS and dynamically build the correct resource URLs.

Lazy and Eager transformation

When visitors upload images to your web application, you will need to transform their dimensions to match the graphics design of your website.

Cloudinary provides a 'lazy' mechanism for generating image transformations. Simply point your users to a dynamic URL that include specific transformation parameters. Cloudinary dynamically generates the transformed images on demand, stores them persistently and delivers them to your users through a CDN. This method allows you to enjoy full flexibility and also save unnecessary storage and processing time.

Cloudinary also supports an 'eager' mechanism that generates all transformed versions during the upload process.

See Image transformations for more details.