Vespa Cloud Features

The Vespa Cloud provides the features you need to develop and run Vespa applications in production with confidence at the lowest possible cost. This page explains the features and services that are included.

Serverless operations

Why not let the team that's building Vespa and has years of experience operating it operate your applications as well? Setting up a Vespa instance for production is not hard, but operating securely and with high availability over time is challenging: Procuring and managing machines, upgrading Vespa and OS'es, handling failing nodes, making continuous deployments safe and so on.

The Vespa cloud is already running business critical applications on behalf of many organizations, handling over half a million user requests per second. It performs all routine operations tasks automatically, which ensures they are performed timely, following best practices, every time. This includes tasks such as

This leaves the Vespa Cloud engineers to analyze and work to mitigate problems before they have observable consequences. And for the rare time-critical issues that do happen, our on-call staff is ready to intervene 24/7.

Building out these capabilities is time-consuming and difficult, and performing operations manually is expensive and error-prone. Leaving this to the Vespa Cloud gives the best results at the lowest possible cost.

You want to keep your applications running on the latest certified version of Vespa to get bug fixes, performance improvements and new features. And to make your service secure you must keep your Vespa and OS patch version up to date. Implementing a process for this is similar to automating deployment orchestration, with some additional complexity added on top. This is why most teams who host their own Vespa instances fail to do this and instead resort to spending manual effort and redundant hardware to solve this.

With Vespa Cloud, upgrading and OS patching is a solved problem you never worry about. We reuse the same mechanisms and tests used for continuous deployment to upgrade Vespa safely every day by default. Applications remain in control by having the option to specify when Vespa is allowed to upgrade. Similarly new OS versions are rolled out node by node in the background by an automated process. This keeps Vespa applications current and secure with no additional effort required on the application side.

Support and application tuning

Using the Vespa Cloud gives you access to the world's best Vespa support, period, and there's no other way to buy it. This is because this support is provided by the team that develops Vespa, and we prefer to provide support in an environment which we know is operated according to best practices. Just by using the Vespa Cloud, at no extra cost, you get access to next-business day support from the Vespa team.

Tuning performance on systems that mixes computation and data is a unique challenge with many interesting subtleties. At the same time, gains from tuning may be substantial - it's often possible to cut cost in half. Since Vespa Cloud applications are extensively instrumented automatically, it is feasible for the performance specialists in the core Vespa team to analyze applications for performance optimizations with relatively little effort - applying their expert knowledge to realize these gains.

Included when you deploy to the Vespa Cloud is participation in the Vespa tune-up program where our experts analyze your application for potential gains regularly at least yearly. As applications evolve and Vespa gains new performance optimizations, new opportunities for cost savings and performance improvements keep materializing, and the tune-up program ensures your application is always performing at its best.

Automatic, safe continuous deployment

Continuous deployment - automatically deploying changes as they are made to the application source - has emerged as a best practice across the industry because deploying small increments quickly lowers risk and increases efficiency. However, following this practice on stateful, distributed, always-available systems like Vespa is challenging, as deployments cannot cause service quality impact or risk of downtime.

The Vespa Cloud provides all the necessary mechanisms to implement safe continuous deployment. Applications just create a job in their preferred CI tool which builds their application and submits it to the cloud and Vespa handles the rest. Applications remain in control of how and when changes roll out: The application package can specify allowed deployment time windows, the sequence and of deployment across zones, the delay between them and criteria for progressing with a rollout.

Any deployment is validated in test zones before progressing to production zones: The test zone runs application defined functional tests, and the staging zone validates that the application can smoothly change from the current to the new application revision. The Vespa Cloud console provides a visualization of the status of the whole process and surfaces the information needed to diagnose any issues.

Deployments in each zone happens without service disruption by applying changes without causing restarts. If restarts are necessary to apply changes, the Vespa Cloud will perform them automatically by taking down a single node (or group) of each cluster at a time. When deployments specify a change to the hardware running the application, the cloud will add the new hardware to it while leaving the old in place, and then remove the old later once data is safely migrated. Potentially unsafe changes are detected, and require a validation override as part of the deployment to ensure destructive changes are not made inadvertently.

Continuous deployment is a transformative process that greatly increases productivity and reduces incidents, however implementing it for services on Vespa's complexity level is too hard for teams to do on their own. By deploying to the Vespa Cloud you get this capability out of the box, with safety features already proven to work for large business critical systems where any service disruption is intolerable.

See the automated deployments documentation for more in-depth documentation and production deployment to get started.

Strong security

Keeping online services secure is a never ending task. New attack vectors and vulnerabilities keep appearing and requiring new defences. With the Vespa Cloud you get strong security by default at no additional cost. All communication between nodes is protected by mutual authentication and encryption, ensuring that only the intended nodes can communicate internally, and that only authorized clients can access an application. Data can additionally be secured by encryption. The Vespa security experts keeps Vespa and the underlying OS secure against the latest threats and the cloud keep you updated with those defences.

Application security is an area which must be taken seriously, especially in systems storing and exposing data, and require dedicated experts to do well. With the Vespa Cloud your application is secured with no additional effort required.

See the Vespa Clouds security model for more details.

Autoscaling

You want your application to use as few resources as possible to minimize cost, but at the same time you don't want to run out of resources when traffic is high or you feed more data. If you host yourself, you need to choose between always allocating enough hardware to handle the most load you may theoretically see, or risk running out of resources just when you need them the most.

With the Vespa Cloud you don't have to choose but can let clusters maintain the optimal allocation required to handle the current load at any time. Stateless clusters can typically react to traffic changes on the scale of a few minutes, while content clusters require more time as data need to be redistributed on resource changes. Applications can typically save about half of their hardware cost by enabling this feature, while removing the risk of failing queries during peak or blocking writes due to feeding too much data. As always with the Vespa Cloud, applications remain in control and can set max and min limits on resources to fit their business objectives.

See the autoscaling documentation for more details.

Developer centric

The philosophy of Vespa.as and Vespa Cloud is to empower developers by making it easy to create simple applications which can be scaled incrementally to any size and complexity. We do this by ensuring that all aspects of an application and how it is to be deployed are always specified in the application package, which means developers can always do all their work by changing the source in this repository. Vespa and Vespa Cloud knows how to integrate and orchestrate the various aspects of configuring, changing and managing the details of these applications, empowering developers to focus on more interesting and higher value work.

To make it simple to experiment, Vespa Cloud allows developers to deploy new applications by a single command - whether they are setting up a new application or a copy of one already running. Applications deployed for development are by default automatically downscaled to avoid unnecessary cost, and disused ones are automatically removed.

The development zone allows you to deploy self-hosted applications without change as well - due to the ease of use this brings, even teams that run their own instances in production often use the Vespa Cloud for development as it makes their teams more efficient.

See the developer guide for more details, and getting started to start using the Vespa Cloud for development today.