Skip to content
Snippets Groups Projects
Name Last commit Last update
README.md

PIACERE framework

PIACERE aims to increase the productivity of DevOps teams in the development and operation of IaC through the provisioning of an integrated DevSecOps framework. DevOps teams can program IaC as if they were programming any software application.

Table of Contents

Description

PIACERE enables the automation of several deployment, configuration and management tasks that otherwise would have to be performed manually by an operator. PIACERE solution consists of an integrated DevSecOps framework to develop, verify, release, configure, provision, and monitor infrastructure as code. The main characteristics of this solution are: VISION

PIACERE will support the different DevSecOps activities. Using a single integrated environment to develop (IDE) infrastructural code will unify the automation of the main DevSecOps activities and will shorten the learning curve for new DevSecOps teams.

PIACERE will allow DevSecOps teams to model different infrastructure environments, by means of abstractions, through a novel DevOps Modelling Language (DOML), thus hiding the specificities and technicalities of the current solutions and increasing the productivity of these teams. Moreover, PIACERE will also provide an extensible Infrastructural Code Generator (ICG), translating DOML into source files for different existing IaC tools, to reduce the time needed for creating infrastructural code for complex applications. The provided extensibility mechanisms (DOML-E) shall ensure the sustainability and longevity of the PIACERE approach and tool-suite (new languages and protocols that can appear in the near future). The DevOps Modelling Language (DOML) is one of the key innovations of PIACERE, because it allows modelling the automation of the whole lifecycle of DevSecOps activities, from Creation to Configuration, and from Deployment to Orchestration and producing executable infrastructural code from the DOML model through the ICG code generator.

Repository structure

The Public repository of PIACERE project is organized as follows:

  • /agents: contain the monitoring agents that need to be deployed along with the IaC to monitor the infrastructure
  • /demos: different demos that can serve as a basic examples of using PIACERE
  • /The Platform: is divided in many repositories where the several components of the PIACERE framework can be found

The three branches Y1, Y2, Y3 gather the code developed during the three main milestones of the project (at M12, M24 and M30). The main branch stores the final version of the components, as the code development and fixes could continue until the end of the 36-months long project.

Components

Diagram of the PIACERE framework: FRAMEWORK

Component Repository
CSE - Canary Sandbox Environment The Platform/cse
IOP - IaC Optimized Platform The Platform/iop
Runtime Monitoring The Platform/runtime-monitoring
Runtime security monitoring The Platform/runtime-security-monitoring
DOML - DevSecOps Modelling Language The Platform/doml
DOML Model Checker The Platform/doml-model-checker
IaC Scan Runner The Platform/iac-scan-runner
ICG - Infrastucture as Code Generator The Platform/icg
IDE The Platform/ide
IEM - IaC Executor Manager The Platform/iem
Self-Healing The Platform/self-healing
Self-Learning The Platform/self-learning

Contact

Juncal Alonso, PIACERE project manager, TECNALIA Juncal.Alonso@Tecnalia.com

Acknowledgement

This project has received funding from the European Union’s Horizon 2020 research and innovation programme under Grant Agreement No. 101000162. EU FLAG

===== Uniform approach for component repos =====

  • README file (see model in iac-scan-runner/README.md, Thx @XLAB! :-))

    • Description
    • Installation
    • License
    • Contact
    • Documentation (point to)
    • Acknowledgement
  • Branches:

    • y1, y2, y3 (M30-jun code)
    • main (default, from now on)
      1. Create main if not exist in your repo (Code>Branches>New branch)
      2. Make it the "default" branch (Settings>Repository>Branch defaults)