Technical Infrastructure
Overview
This is an introduction to the CESSDA Technical Infrastructure. It provides both an overview and detail of the various Google Cloud Platform projects that it is composed of, and the Jenkins pipeline that is used to build, test and deploy components.
Read First
Naming Conventions - abbreviations and terminology used in this Wiki. Useful background information.
Technical Infrastructure Overview is the starting point for people who are unfamiliar with CESSDA’s Technical Infrastructure. It gives a broad overview of the purpose and composition of the various components and deployment environments, the deployment process and the responsibilities of developers vs. the CESSDA Platform team. It links to the following pages (which can be read in conjunction with it, or on a standalone basis).
Follow up Reading
GCP Main Project Structure - top down decomposition of the CESSDA Development and CESSDA Production GCP projects.
Deployment Pipeline Overview - shows the deployment pipeline from the moment a developer commits code changes to the deployment of the product to production.
Deployment Workflow - shows the step-by-step process by which application components are deployed and the various technologies that are involved. Helm charts are used to orchestrate the deployment of an application’s components.
Deployment Pipeline Details - a step by step explanation of the build and deployment processes.
Deploying Core Products - explains the responsibilities of various Actors in order to get a new release deployed.
Technical Infrastructure Details - shows a general overview of the GCP projects, Jenkins CI/CD toolchain and Bitbucket code repositories and how they are integrated within the deployment pipeline.
Jenkinsfile Template - This shows the general form of a Jenkinsfile used with a non-Maven project.
Jenkinsfile Template for JDK11 Maven Projects - shows the general form of a Jenkinsfile used with a Maven project based on JDK11.
Table of contents
- Documentation Tooling
- Naming Conventions
- Architectural Principles
- Technical Infrastructure Overview
- GCP Main Project Structure
- Deployment Pipeline Overview
- Deployment Workflow
- Deployment Pipeline Details
- The CESSDA Branching Model for Deployments
- Using Helm to deploy products
- Technical Infrastructure Details
- Building Maven Projects with Jenkins
- Building Docker Images on Jenkins
- Building with Docker
- Deploying Core Products to Production
- Platform Team Responsibilities
- Updating CI Tools
- Jenkinsfile Template
- Jenkinsfile Template for JDK11 Maven Projects
- Setup and Configure oauth2-proxy
- Rate limiting with HAProxy
- Authenticating with eduTEAMS
- Logging Overview