nulecule - wordpress.comnulecule packaging multi-container applications ratnadeep debnath (@rtnpro)...

Post on 10-May-2020

4 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

NuleculePackaging multi-container applications

Ratnadeep Debnath (@rtnpro)An Open Source contributor, for fun :)

Topics● Nulecule● Atomic App● Getting Involved

Containers are great, but it is not just one container.

Real life applications are composed of multiple

containers (Micro-services?)

But how to define a multi-container application configuration without distributing instructions and

files to the end-user ?

We have docker compose , kubernetes configuration files, but is it enough?

The application also goes through different stage

Metadata changes for each stage.

Nulecule● A specification to package multi-container

apps ● Container technology agnostic

Understanding Nulecule● Graph

– Directed acyclic graph to define application

dependencies/components.

Understanding Nulecule● Parametrization

– Values/information for deployment

– Default values (Can be overridden by answers.conf)

– Each component has its own parameters

– Supports variable substitution, regular expression etc

Understanding Nulecule● Answers.conf

– Porvides answers to question defined by prarameters

– Override default values of parameters (e.g. for

different environment)

Understanding Nulecule● Artifacts for providers

– e.g. Kubernetes, OpenShift, Docker Compose, Mesos,

Docker

– Metadata for orchestrators/providers

A complete Nulecule Spec

Atomic App● Reference implementation of Nulecule spec● At this moment only supports docker run time● It performs all actions required to run the

application by reading the Nulecule spec.– Downloading all required docker images

– Communicating to providers etc

Using Atomic App● As a docker image● Use atomicapp base image to build nulecule-ized

applications● Running a nulecule-ized applications

– $ atomic run projectatomic/helloapache

● Uses /usr/bin/atomic labels– $ grep Run Dockerfile

RUN="docker run -it --rm \${OPT1} --privileged -v `pwd`:/atomicapp -v

/run:/run -v /:/host --net=host --name \${NAME} -e NAME=\${NAME} -e

IMAGE=\${IMAGE} \${IMAGE} -v \${OPT2} run \${OPT3} \${IMAGE}" \

Nulecule-library

Get involved ● https://github.com/projectatomic/nulecule● https://github.com/projectatomic/nulecule-libr

ary● https://github.com/projectatomic/atomicapp● #nulecule on Freenode● Mailing List: container-tools@redhat.com

Thank you :-)

Any questions please?

Contact me: @rtnpro on Twitterrtnpro on Freenode

top related