Project Name:

  • Proposed name for the project: Docker/OCI Images - Best Practices and Tools

Project description:

Container technology is a popular packaging method for developers and system administrators to build, ship and run distributed applications.

Seventy percent of respondents to a 2017's survey indicated that the existence of tools to accelerate container development is one of the key factors that drives container adoption.

The same is true for the availability of best practices. That's because Image-based container technology requires a disciplined approach to development and writing Dockerfiles and defining containerized applications can become rather complex.

Because has ONAP has adopted Docker technology, the design of good images ultimately boils down to the crafting of good Dockerfiles.

This project takes a communal approach to capturing and developing best practices, guidance, recommendations and common tools for the design of images built using Dockerfiles.

Scope:

This project will develop a specification for the recommended structure of Dockerfiles based on industry best practices

    The following are the outcomes of the project:

  •     Best practices for the design of space-efficient and scalable images built using Dockerfiles
  •     Best practices for crafting Dockerfiles
  •     Best practices for the development of platform-agnostic images
  •     Dockerfile templates to
    •      Capture, automate and share experience across projects
    •      Reduce duplication
    •      Jumpstart image development
    •      Optimize resource consumption
    •      Develop vendor-agnostic images     
  • New Docker builder patterns and tools
    • Explore and issue recommendation on the use of different front-ends
    • Evaluate and issue recommendations on the use of BuildKit

Out of scope:

  This project doesn't tackle the design or architecture of microservices-based applications.

Having said that, the project acknowledges the synergy and expects to collaborate with ONAP projects such as the Microservices project, OOM and Integration.


Architecture Alignment:

    The goals of this project are in perfect alignment with ONAP's architecture principles and architecture quality attributes.

    In particular, this projects suppoorts the themes adopted for Beijing and Casablanca: Platform Maturity Requirements (S3P) and Portability

 S3P:

Quality AttributeBenefit of Image Design Best Practices
Scalability
  • Resource constrained images (small & fast) facilitate single and multiple ONAP instance horizontal scaling.
Manageability
  • Efficient, small images reduce transport, instantiation time and upgrade time.
Usability
  • Dockerfile templates save time and resources by increasing re-usability and reducing development and testing cycles.
  • Re-usable base images reduce project jumpstart overhead.
  • Multi-platform containers based on official multi-cpu architecture base images allows operators to choose among a larger number of cloud/infrastructure providers.

Security
  • Images built using the latest official base images reduce the risk of deploying containers with vulnerabilities.

   

Portability:

Software portability is the ability to use the same software artifacts (images/containers) in different environments.

For ONAP aims at enabling deployments of the orchestration platform and VNFs in different cloud infrastructure providers.

Furthermore, cloud infrastructure providers may choose among variety of hardware/server providers with different OS and cpu architectures.

Having best practices and Dockerfile templates that simplify the use of official multi-platform (OS, CPU) base images makes ONAP portable by enabing  ONAP deployment in diferent environments.   

Other Information:

  • Vendor Neutral
  • Meets Board policy (including IPR)

Use the above information to create a key project facts section on your project page

Project Proposal Deck

Project proposal deck is available here.


Key Project Facts:

Primary contact: Adolfo Perez-Duran

Facts

Info

PTL (first and last name)
Jira Project NameContainer Images
Jira KeyContainer Images
Project IDcia
Link to Wiki Space

Release Components Name:

Note: refer to existing project for details on how to fill out this table

Components Name

Components Repository name

Maven Group ID

Components Description

Dockerfile templatesoparent/cia/templatesorg.onap.cia.templatesDockerfile templates
Docker templates processoroparent/cia/processorsorg.onap.cia.processorsCode to consume templates and generate Dockerfiles
Image design best practicesoparent/cia/docsorg.onap.cia.docsBest practices and guidelines (read-the-docs)

Resources committed to the Release:

Note 1: No more than 5 committers per project. Balance the committers list and avoid members representing only one company. Ensure there is at least 3 companies supporting your proposal.

Note 2: It is critical to complete all the information requested, that will help to fast forward the onboarding process.


Role

First Name Last Name

Linux Foundation ID

Email Address

Location

PTLado496adolfo.perez-duran@oamtechnologies.com

Boulder, CO, USA

(GMT-06:00)

CommitterslubinszBin.Lu@arm.comChina

Sylvain Desbureauxsdesbure

sylvain.desbureaux@orange.com

France,

(GMT+1)


Tal Lirontal.lirontliron@redhat.com

Chicago, USA

(GMT-05:00)


sandovalfrOAMfrank.sandoval@oamtechnologies.com

Denver, CO, USA

(GMT-06:00)

ContributorsHelen Chen



Tianon Gravi
tianon@infosiftr.com


ran.pollak@amdocs.com

IL(GMT +2)


im2bz2peeash@cachengo.com

Chicago, USA

(GMT-05:00)


michaelobrienfrank.obrien@amdocs.comOttawa ON, Canada (GMT-4)

@Khumendra Kumar







@Simon Hbros


  • No labels

5 Comments

  1. Added myself to this project based on an email exchange with Adolfo - support this initiative 100%

    LOG-479 - Getting issue details... STATUS

    Discuss project overlaps

    https://github.com/att/AJSC

    Also I would benefit from using standard docker templates instead of ad hoc containers like

    https://git.onap.org/logging-analytics/tree/reference/logging-docker-root/logging-docker-demo/DockerFile

    Scope will also lead into a common docker build format - as currently we use custom scripts to build dockers per project

    The following is not ready for CI yet - it is provided for development only (parameterization patch pending)

    https://git.onap.org/logging-analytics/tree/reference/logging-docker-root/logging-docker-demo/build.sh


  2. Hello,

    I'm proposing myself to participate on this (important) effort.


    1. Got it. Thank you!

  3. Hi! Not sure ... but was this project already approved? I am asking this because it is not listed here: All Approved Projects ?