The portal’s import, generation and transformation services leverage Azure functions, factories, and GitHub integrations. This system ensures efficient content reception, transformation, validation, and publication across multiple platforms.
High-Level Overview
The diagram represents a system architecture involving various services, factories, and integrations. It includes components for content management, transformation, and generation, integrated with external platforms like GitHub, Azure, and a DevOps wiki.
Key Components and Interactions
-
Azure Function and Cosmos DB
- ContentService: An Azure Function named
ContentService
is configured to interact with Azure Cosmos DB for data storage and retrieval.
- ContentService: An Azure Function named
-
Factories
- ContentReceiverFactory: Creates instances for receiving content.
- ContentTransformationFactory: Creates instances for transforming content.
- ContentGenerationFactory: Creates instances for generating content.
-
Services
-
Content Receiver Services:
- DevopsWikiReceiverService: Receives content from a DevOps wiki.
- GithubReceiverService: Receives content from a GitHub repository.
- ContentmanagerReceiverService: Receives content from a Content Manager system.
-
Content Transformation Services:
- AISummaryTransformationService: Transforms content by generating AI summaries.
- AIMarkdownTransformationService: Transforms content into Markdown format using AI.
-
Content Generation Services:
- ContentGenerationService: Generated markdown files that includes the transformed content, to be published into Developer Portal
- MarkdownService: Specifically processes transformed content into markdown file.
- ValidationService: Validates the content, ensuring it meets certain criteria.
-
-
GitHub Integration
- HttpClientGithubService and OctokitGithubService: These services interact with GitHub repository via GitHub API and Octokit API, to perform a number of operations.
- GitHub CI/CD Pipelines: Continuous Integration and Continuous Deployment pipelines validate the structure of Markdown content and the author information before publishing them to the portal website.
- GitHub Repository: The storage location for the content being processed and validated.
-
External Content
- DevOps Wiki: Source of content for the
DevopsWikiReceiverService
. - Content Manager: System managing the content received by the
ContentmanagerReceiverService
.
- DevOps Wiki: Source of content for the
-
Data Flow
- The
ContentService
function retrieves configurations from Azure Cosmos DB. - Factories generate service instances for handling content reception, transformation, and generation.
- The services interact with various sources like the DevOps wiki, GitHub repo, and content manager.
- Transformed content goes through CI/CD pipelines for validation before being deployed to the portal website.
- The
Detailed Flow
- ContentService retrieves configurations from Azure Cosmos DB.
- ContentReceiverFactory creates instances of services like
DevopsWikiReceiverService
,GithubReceiverService
, andContentmanagerReceiverService
to receive content from different sources. - ContentTransformationFactory creates instances of services like
AISummaryTransformationService
andAIMarkdownTransformationService
to transform the fetched content into Markdown format, using Azure OpenAI. - ContentGenerationFactory creates instances of services like
ContentGenerationService
,MarkdownService
, andValidationService
to generate and validate the content. - Interaction with GitHub repository is done through HttpClientGithubService and OctokitGithubService.
- GitHub CI/CD Pipelines validate the content structure and author information.
- Validated content is deployed to the Developer Portal website.
This system showcases a robust architecture that efficiently handles content from reception to publication. By integrating Azure functions, various service factories, and GitHub automation, the system ensures that content is processed, validated, and published seamlessly. This setup not only maintains content integrity but also optimises the workflow through automation and validation steps.
This post was written in conjunction with ChatGPT.