OverviewβοΈ
EPAM Delivery Platform (EDP) is an open-source cloud-agnostic SaaS/PaaS solution for software development, licensed under Apache License 2.0. It provides a pre-defined set of CI/CD patterns and tools, which allow a user to start product development quickly with established code review, release, versioning, branching, build processes. These processes include static code analysis, security checks, linters, validators, dynamic feature environments provisioning. EDP consolidates the top Open-Source CI/CD tools by running them on Kubernetes/OpenShift, which enables web/app development either in isolated (on-prem) or cloud environments.
EPAM Delivery Platform, which is also called "The Rocket", is a platform that allows shortening the time that is passed before an active development can be started from several months to several hours.
EDP consists of the following:
- The platform based on managed infrastructure and container orchestration
- Security covering authentication, authorization, and SSO for platform services
- Development and testing toolset
- Well-established engineering process and EPAM practices (EngX) reflected in CI/CD pipelines, and delivery analytics
- Local development with debug capabilities
FeaturesβοΈ
- Deployed and configured CI/CD toolset (Tekton, ArgoCD, Nexus, SonarQube, DefectDojo)
- GitHub(by default), GitLab or Gerrit as a version control system for your code
- Tekton is a pipeline orchestrator
-
Language Framework Build Tool Application Library Autotest Java Java 8, Java 11, Java 17 Gradle, Maven Python Python 3.8, FastAPI, Flask Python C# .Net 3.1, .Net 6.0 .Net Go Beego, Gin, Operator SDK Go JavaScript React, Vue, Angular, Express, Next.js, Antora NPM HCL Terraform Terraform Helm Helm, Pipeline Helm Groovy Codenarc Codenarc Rego OPA OPA Container Docker Kaniko
- Portal UI as a single entry point
- Environments for Microservice Deployment
- Kubernetes native approach (CRD, CR) to declare CI/CD pipelines
What's InsideβοΈ
EPAM Delivery Platform (EDP) is suitable for all aspects of delivery starting from development including the capability to deploy production environment. EDP architecture is represented on a diagram below.
EDP consists of four cross-cutting concerns:
- Infrastructure as a Service;
- GitOps approach;
- Container orchestration and centralized services;
- Security.
On the top of these indicated concerns, EDP adds several blocks that include:
- EDP CI/CD Components. EDP component enables a feature in CI/CD or an instance artifacts storage and distribution (Nexus or Artifactory), static code analysis (Sonar), etc.;
- EDP Artifacts. This element represents an artifact that is being delivered through EDP and presented as a code.
Artifact samples: frontend, backend, mobile, applications, functional and non-functional autotests, workloads for 3rd party components that can be deployed together with applications.
- EDP development and production environments that share the same logic. Environments wrap a set of artifacts with a specific version, and allow performing SDLC routines in order to be sure of the artifacts quality;
- Pipelines. Pipelines cover CI/CD process, production rollout and updates. They also connect three elements indicated above via automation allowing SDLC routines to be non-human;
Technology StackβοΈ
Explore the EDP technology stack diagram
The EDP IaaS layer supports most popular public clouds AWS, Azure and GCP keeping the capability to be deployed on private/hybrid clouds based on OpenStack. EDP containers are based on Docker technology, orchestrated by Kubernetes compatible solutions.
There are two main options for Kubernetes provided by EDP:
- Managed Kubernetes in Public Clouds to avoid installation and management of Kubernetes cluster, and get all benefits of scaling, reliability of this solution;
- OpenShift that is a Platform as a Service on the top of Kubernetes from Red Hat. OpenShift is the default option for on-premise installation and it can be considered whether the solution built on the top of EDP should be cloud-agnostic or require enterprise support;
There is no limitation to run EDP on vanilla Kubernetes.