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

20
Nulecule Packaging multi-container applications Ratnadeep Debnath (@rtnpro) An Open Source contributor, for fun :)

Upload: others

Post on 10-May-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Nulecule - WordPress.comNulecule Packaging multi-container applications Ratnadeep Debnath (@rtnpro) An Open Source contributor, for fun :)

NuleculePackaging multi-container applications

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

Page 2: Nulecule - WordPress.comNulecule Packaging multi-container applications Ratnadeep Debnath (@rtnpro) An Open Source contributor, for fun :)

Topics● Nulecule● Atomic App● Getting Involved

Page 3: Nulecule - WordPress.comNulecule Packaging multi-container applications Ratnadeep Debnath (@rtnpro) An Open Source contributor, for fun :)

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

Page 4: Nulecule - WordPress.comNulecule Packaging multi-container applications Ratnadeep Debnath (@rtnpro) An Open Source contributor, for fun :)

Real life applications are composed of multiple

containers (Micro-services?)

Page 5: Nulecule - WordPress.comNulecule Packaging multi-container applications Ratnadeep Debnath (@rtnpro) An Open Source contributor, for fun :)

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

files to the end-user ?

Page 6: Nulecule - WordPress.comNulecule Packaging multi-container applications Ratnadeep Debnath (@rtnpro) An Open Source contributor, for fun :)

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

Page 7: Nulecule - WordPress.comNulecule Packaging multi-container applications Ratnadeep Debnath (@rtnpro) An Open Source contributor, for fun :)

The application also goes through different stage

Page 8: Nulecule - WordPress.comNulecule Packaging multi-container applications Ratnadeep Debnath (@rtnpro) An Open Source contributor, for fun :)

Metadata changes for each stage.

Page 9: Nulecule - WordPress.comNulecule Packaging multi-container applications Ratnadeep Debnath (@rtnpro) An Open Source contributor, for fun :)

Nulecule● A specification to package multi-container

apps ● Container technology agnostic

Page 10: Nulecule - WordPress.comNulecule Packaging multi-container applications Ratnadeep Debnath (@rtnpro) An Open Source contributor, for fun :)

Understanding Nulecule● Graph

– Directed acyclic graph to define application

dependencies/components.

Page 11: Nulecule - WordPress.comNulecule Packaging multi-container applications Ratnadeep Debnath (@rtnpro) An Open Source contributor, for fun :)

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

Page 12: Nulecule - WordPress.comNulecule Packaging multi-container applications Ratnadeep Debnath (@rtnpro) An Open Source contributor, for fun :)

Understanding Nulecule● Answers.conf

– Porvides answers to question defined by prarameters

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

different environment)

Page 13: Nulecule - WordPress.comNulecule Packaging multi-container applications Ratnadeep Debnath (@rtnpro) An Open Source contributor, for fun :)

Understanding Nulecule● Artifacts for providers

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

Docker

– Metadata for orchestrators/providers

Page 14: Nulecule - WordPress.comNulecule Packaging multi-container applications Ratnadeep Debnath (@rtnpro) An Open Source contributor, for fun :)

A complete Nulecule Spec

Page 15: Nulecule - WordPress.comNulecule Packaging multi-container applications Ratnadeep Debnath (@rtnpro) An Open Source contributor, for fun :)

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

Page 16: Nulecule - WordPress.comNulecule Packaging multi-container applications Ratnadeep Debnath (@rtnpro) An Open Source contributor, for fun :)

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}" \

Page 17: Nulecule - WordPress.comNulecule Packaging multi-container applications Ratnadeep Debnath (@rtnpro) An Open Source contributor, for fun :)
Page 18: Nulecule - WordPress.comNulecule Packaging multi-container applications Ratnadeep Debnath (@rtnpro) An Open Source contributor, for fun :)

Nulecule-library

Page 19: Nulecule - WordPress.comNulecule Packaging multi-container applications Ratnadeep Debnath (@rtnpro) An Open Source contributor, for fun :)

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

ary● https://github.com/projectatomic/atomicapp● #nulecule on Freenode● Mailing List: [email protected]

Page 20: Nulecule - WordPress.comNulecule Packaging multi-container applications Ratnadeep Debnath (@rtnpro) An Open Source contributor, for fun :)

Thank you :-)

Any questions please?

Contact me: @rtnpro on Twitterrtnpro on Freenode