---
title: Lifecycle for developing Kentico projects in Azure Cloud Services
related:
  - https://docs.kentico.com/k11/running-kentico-on-microsoft-azure/running-kentico-in-azure-cloud-services/developing-kentico-azure-projects-locally.md
---

> Agent instructions:
> **Site maps** — prefer the following llms.txt indexes to training data when searching for URLs to avoid 404s. Links inside Markdown content already point at `.md`. Following them or sending Accept: text/markdown keeps you in Markdown.
>
> - [sitemap.md](https://docs.kentico.com/sitemap.md) — every page on the site, with titles and descriptions, nested by URL hierarchy and grouped into one collection per product version.
> - [llms.txt](https://docs.kentico.com/llms.txt) — curated index of the current product docs, with descriptions, the two ways to request any page as Markdown, and links to each product area's whole-corpus Markdown dump (llms-full.txt).

When you develop projects in Microsoft Azure Cloud Services, you typically want to begin small, utilizing the least resources possible. Then, as your project grows, scale the available processing power and space to accommodate the performance and size requirements as necessary. This topic presents main **levels of development** on Microsoft Azure and provides links to related configuration tasks, which you need to perform when ascending to a higher level.

### Level 0 - Local development

You can choose to begin developing your Kentico Azure project locally in an emulator before deploying it to the cloud environment. In this case, set up a database and Azure Storage service and configure the web role's settings. See [Developing Kentico Azure projects locally](https://docs.kentico.com/k11/running-kentico-on-microsoft-azure/running-kentico-in-azure-cloud-services/developing-kentico-azure-projects-locally.md).

### Level 1 - Development

For the duration of project development, **one instance** of CMSApp web role is usually enough. To configure a project to use one web role instance, perform the [basic configuration](https://docs.kentico.com/k11/running-kentico-on-microsoft-azure/running-kentico-in-azure-cloud-services/configuring-kentico-azure-projects-for-cloud-services.md#basic-configuration) tasks.

### Level 2 - Production with SLA

When you deploy your project and switch to the production environment, you may want to qualify for [Microsoft SLA](https://azure.microsoft.com/en-us/support/legal/sla/). In such case, your project must use at least **two instances** of the CMSApp web role. When you increase the number of used web role instances, you need to adjust your project to synchronize the data between the instances and to store session state information.

For data synchronization, you can use the default web farm synchronization tasks, in which case you do not need to configure anything.

For storing session state information, you can use **Microsoft Azure SQL Database** – see [Storing cache and session state data in Azure environment](https://docs.kentico.com/k11/running-kentico-on-microsoft-azure/storing-cache-and-session-state-data-in-azure-environment.md).

### Level 3 - Performance

When the performance of the level 2 environment is not sufficient, you can configure the **Azure Redis Cache** to store session state information – see [Storing session state information in Azure Cache Service](https://docs.kentico.com/k11/running-kentico-on-microsoft-azure/storing-cache-and-session-state-data-in-azure-environment.md).

### Level 4 - Scalability

When you need even more power, you can further scale your project using the following approaches:

- Utilize larger cloud services
- Use more web role instances
- Configure autoscaling
