-
Notifications
You must be signed in to change notification settings - Fork 1
Home
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 built using Microsoft Azure Functions.
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.
Kentico Cloud Documentation operates on 4 different environments:
Master branches of all services + live (published) data prom Kentico Cloud project. Live website runs in this environment as well.
Develop branches of all services + live (published) data from Kentico Cloud project. This environment is used for integration tests and reviewing new features on the web with live data.
Master branch of website + not yet published data from Kentico Cloud project. This environment is used by content writers for previewing changes within content before publishing.
Develop branch of website + not yet published data from Kentico Cloud project. This environment is used by content writers for reviewing new features new features on the web with testing (not published) data.
- Overview
- Website
- Dispatcher
- Notifier
- Search Functionality
- GitHub Integration
- Bulk Publishing / Scheduling to Publish
- API Reference
- Integration Tests
- Content Models