Skip to content
Juraj Bielik edited this page May 24, 2019 · 19 revisions

Kentico Cloud Documentation Wiki

status badge

Overview

Kentico Cloud Documentation portal is a website that describes Kentico Cloud and provides tutorials for its users. The portal website is server-side rendered and built using NodeJS and its Express framework. The content of the website is stored in Kentico Cloud itself. Additionally, the website is also supported by a backend that provides:

  • Search functionality across the website.
  • Ability to fetch code samples from GitHub repository to Kentico Cloud.
  • Bulk publish functionality for Kentico Cloud.
  • API Reference generation.

The backend utilizes microservice architecture and its services are build using Microsoft Azure Functions.

Backend Architecture

The portal responds instantly to any change of published content in Kentico Cloud. For this reason, it has a Dispatcher function that receives webhooks from Kentico Cloud. It processes the webhook and then publishes an event to Azure Event Grid topic. The topic is consumed by either Search Service or an API Reference Service.

The portal uses Algolia's search as a service solution for its search functionality. The Search Service is thus responsible for indexing the content of the website's tutorials. After receiving an event from Dispatcher, it fetches the relevant content from Kentico Cloud and updates the index accordingly. When a user then searches for a term on the portal, the website communicates directly with Algolia.

Because the portal contains numerous code samples, it is also integrated with GitHub, where all of the code samples are stored. The code samples are being automatically stored in Kentico Cloud as well thanks to GithubSync and CodeSamples Manager.

GithubSync reacts to each commit made to the code samples repository. It fetches files affected by the commit from GitHub, and extracts marked code samples. Then, it stores them both to its own local storage and to an Azure Blob Storage. Code Samples Manager responds to a new blob file created in the blob storage. It reads the stored code samples and updates the corresponding content items in Kentico Cloud.

Finally, the Publisher function simplifies the process of publishing a non-trivial content item. Being triggered every few minutes, it publishes any content item in Kentico Cloud that is in Cascade Publish workflow step, along with all of its linked items and modular content.

Environments

(Environments picture)

Clone this wiki locally