Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/infosys/openidp

An open source platform to accelerate and scale DevOps adoption across the enterprise
https://github.com/infosys/openidp

automation centralized devops platform simplified

Last synced: about 21 hours ago
JSON representation

An open source platform to accelerate and scale DevOps adoption across the enterprise

Awesome Lists containing this project

README

        

Infosys DevOps Platform



For more information, check out below links:
IDP for Agile and DevOps at Scale for Digital transformation

IDP for accelerated DevOps journey



# About the repository

[![Codacy Badge](https://api.codacy.com/project/badge/Grade/3d3d1f4d519445e88b6c16f1c3ddc5c2)](https://www.codacy.com/app/idp-oss/openIDP?utm_source=github.com&utm_medium=referral&utm_content=Infosys/openIDP&utm_campaign=Badge_Grade)

This repository is intended to hold the code base along with the required dependencies for the Infosys DevOps Platform (IDP) OSS version.

## Getting Started

Below instructions will help the users to get to know the structure of this repository. See [WIKI](https://github.com/Infosys/openIDP/wiki) for notes on how to deploy the platform on a live system.

## Details on project modules

Module/File
Description
Tech-stack details

Dashboard
This microservice is designed for collecting relevant data during pipeline execution in Jenkins with the help of IDP's custom utilities. The data is then stored in Postgres and fed to Grafana dashboard, which is being used as the visualisation tool for providing trends and insights about applications.



  1. Programming Language : Java, for custom utilities

  2. Dependency Management: Maven

  3. Database : Postgres

  4. Metrics Dashboard : Grafana


DSL
This module allows the developer to describe Jenkins jobs using Groovy-based language. The module uses Jenkins Job DSL Plugin which creates, updates and controls the Jenkins jobs. This allows to embrace the concept of "Configuration as a Code", thereby reducing MTTR of CICD Server (Jenkins)


  1. Programming Language : Groovy

  2. Dependency Management: Gradle


UI
This module holds all the IDP user interface code and its related dependencies


  1. Framework : Angular 5

  2. Dependency Management: NPM


Services
This module is divided into number of sub-parts.


  1. Spring RESTful service module for creating stateless services for implementing business logic. These services can be independently deployed and scaled up using a load balancer

  2. OAuth2 authorization module for enhanced security

  3. Module implementing Zuul Proxy to be used as an edge gateway which would route the request through Authorization Server (if Access token is not available/expired)

  4. Database layer for performing CRUD operations on backend database with respect to the operation being performed

  5. Swagger for automatic documentation of RESTful Services






  1. Framework : Spring Boot, Spring MVC, OAUth2.0

  2. Dependency Management: Maven

  3. Database: Postgres


Scheduler
This Java based component is for timed execution of pipelines.


  1. Framework : Spring Boot

  2. Dependency Management: Maven

Jenkins
This folder contains the necessary configuration files and plugins for Jenkins to make it work smoothly with IDP. It also holds the custom tools being used by IDP for performing various operations. These custom tools are placed in Jenkins custom tools directory, from where they can be copied to any of the build agents for running some specific errands, for instance, pushing the analysis results to dashboard while the build is still running.
-

docs
This folder contains the assets used in the Wiki pages.
-

Data Files
This folder contains the database initialization scripts for Postgres. It also consists of the Grafana configuration file (grafana.ini) with all the necessary configurations for integrating Grafana dashboard with IDP
-

Please read [WIKI](https://github.com/Infosys/openIDP/wiki) for detailed documentation.