Getting Started

Platform structure and introduction

This section provides guidance on leveraging Azure DevOps for managing core platform components and launching new projects efficiently. It highlights the available repositories, tools, and templates that simplify project creation, integration, and deployment.

Azure DevOps projects

eit-mobile-platform

  • Core platform components

eit-white-label

  • Example of a platform-based project
  • A starter kit for launching any new project

New project setup

To set up a new project, follow these steps:

  • Clone and adjust white-label project
    • Refer to detailed documentation for guidance.
    • Use EIT tool Azure Project Cloner
    • A new Azure DevOps project will be created with predefined repositories, pipelines, feeds, etc.
  • Configure and spin up infrastructure
  • Integrate everything togehter
    • Configure and test the integration of Frontend, Backend, and Infrastructure.

BE Platform goals and responsibilities

This technical part of documentation outlines the practical aspects, components, processes, methodologies, best practices, and project standards for building, developing, running, and maintaining backend services.

Service Architecture

  • Adheres to Clean Architecture principles for maintainable and testable codebases.
  • Employs microservices for modularity and scalability.
  • Standardized implementation of CQRS (Command Query Responsibility Segregation) for separating read and write operations.
  • Strictly separates contract definition (presentation layer) from other layers and preferably uses OpenAPI Specification (OAS) contract generation with a C# code-first approach.
  • Automation and DevOps

Service template and host-base (envelope)

The service template and host-base package provide the foundation for consistent and efficient service development across the platform. They ensure that all services share a unified structure and core functionalities while remaining adaptable to evolving project requirements.

Key aspects

  • Service template
    • A pre-configured template that serves as the starting point for developing new services.
    • Customizable to meet specific project needs during initial service setup.
  • Service host-base package (service envelope)
    • A reusable package that acts as a host layer for all services.
    • Provides essential functionalities and configurations required by microservices, including:
      • Service Provider for dependency injection.
      • Serialization setup for consistent data handling.
      • Logging configuration for centralized and structured logs.
      • Startup Configuration to standardize initialization processes.
      • Authentication and Authorization mechanisms for secure access control.
      • Presentation Layer for API exposure and request handling.
      • Health Probes for readiness and liveness checks to monitor service health.
      • etc
    • Upgradability and Flexibility
      • The host-base package can be updated independently during the development and maintenance lifecycle.
      • Enables the introduction of new or improved features without disrupting service functionality.
      • Ensures services stay up to date with platform-wide enhancements.
    • 2 layers
      • Platform host-base - core functionality
      • Project specific host-base which extends the platform one and adds / adjust project specific features

Deployment and Staging

  • Deployment (including continuous deployment) of services to Kubernetes (k8s) clusters using predefined components (e.g., Helm charts) and automations with a GitOps approach.
  • Support for multiple environments (e.g., development, staging, production) with proper isolation.
  • Branching strategy based on GitFlow for managing releases.

Libraries

  • Set of libraries to streamline integration with
    • Persistent layers - Entity Framework for PostgreSQL and MS SQL, and support for NoSQL databases.
    • Messaging – Simplifies communication between services.
    • Authentication and Authorization – Ensures secure access management.
    • Observability – Comprehensive logging, metrics, and tracing using OpenTelemetry.
    • Others

REST API Management

  • OpenAPI Specifications for consistent API contracts.
  • Configuration of endpoints to be exposed on different gateways with the desired settings (e.g., security).
  • By default, no endpoint is exposed publicly.
  • Auto-generated (FE) client SDKs to accelerate integration.
  • Security (OAuth2.0 and JWT for authentication and authorization)

QA and Testing

  • Focus on integration tests within the service itself
    • End-to-end testing of the service in isolation with full integration to the persistence layer.
    • Testing from the presentation layer to the persistence layer and vice versa.
    • Ability to manage the service provider within the running service (powerful!).
  • RestTest for continuous (regression) testing in the cluster.

CI / CD Pipelines and automation tools

  • Pre-prepared set of pipelines, scripts, steps to automate common tasks
  • Streamlined integration and deployment workflows using Azure DevOps pipelines
  • More info

Infrastructure-as-Code:

  • Automated provisioning of infrastructure based on configuration.
  • Teams configure Kubernetes (k8s) namespaces and the required resources, such as databases, storage, caches, messaging systems, etc.

Copyright © 2025. All rights reserved.