Project Atomic-Nulecule

Lalatendu Mohanty
Lalatendu MohantySoftware Engineer. Free Software, open source contributor, enthusiast and advocate
Project Atomic And Multi-Container
Application Packaging
Lalatendu Mohanty
Senior Software Engineer @ Red Hat
Topics
●
Atomic Host
●
Nulecule
●
Atomic App
●
Getting Involved
Atomic Host
●
It is not a new GNU/Linux distribution.
●
Framework to create an OS from RHEL,
CentOS and Fedora.
●
Optimized for Linux containers.
Why Atomic Host?
●
Our expectation from an OS is not same
anymore.
– Pets vs Cattle.
●
Updating and maintaining the system should be
easy.
●
It needs to be more secure than the traditional
OS
Atomic hosts comprises of
●
Rpm-ostree
●
Cockpit
●
Kubernets
●
/usr/bin/atomic
●
Docker
OSTree
“OSTree was born to help implement a continuous
delivery model for operating systems. One can be a lot
more confident in updating systems if one knows that a
reliable rollback system is always available.”
COLIN WALTERS
Senior Software Engineer, Inventor of OSTree
Red Hat
rpm-ostree
●
Git for operating systems.
●
Update methods of containers and applied
them to operating system.
●
No more half way upgraded systems
# yum update
bash: yum: command not found
# atomic host upgrade
Upgrade prepared for next boot
# atomic host rollback
Successfully reset deployment
Why rpm-ostree?
●
Atomic host would only run containers.
●
Atomic update makes more sense for an
immutable system.
●
Allows reuse of RPMs.
●
No need to re-invent wheel on packaging.
●
Option to rollback to previous state (old good
state).
How rpm-ostree works?
●
Fiilesystem is read-only except /var and /etc
●
All data (e.g. containers) are unchanged on
upgrade.
●
/etc gets updated through a 3-way merge.
/usr/bin/atomic
●
Coherent entry point : manage host and
containers with the atomic command.
●
Fill gaps in Linux container implementations.
– e.g. “atomic install foo” can install a container with
its k8s configuration and/or systemd unit file.
– “atomic run” grabs the LABEL “run” with its all
command line details.
– It can serve as metadata for containers for different
use cases
Cockpit
●
Server manager for administrating Linux servers
via web browser.
●
Designed to be multi-server
●
Support for managing containers, Kubernetes.
●
http://cockpit-project.org/
Want to try?
●
ISOs are available for CentOS and Fedora
Atomic Host.
●
Available in public clouds.
●
For Vagrant users
– vagrant init fedora/23-atomic-host
– vagrant init centos/atomic-host
Any Questions for Atomic Host?
Website: projectatomic.io
IRC: #atomic on Freenode
Containers are great,
but it is not just one container.
In 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
●
Container technology independent
●
Provide a simple, flexible way to describe a
multi-container application, including all
dependencies.
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
●
Providers
– e.g. Kubernetes, OpenShift, Docker Compose, Mesos,
Docker
– Metadata for orchestrators/providers
A complete Nulecule Spec
Atomic App
●
Nulecule app installer
●
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}"
Project Atomic-Nulecule
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
Reference
●
http://www.slideshare.net/VavPavl/nulecule
Thank you :-)
Any questions please?
Contact me: @lalatenduM on Twitter
lalatenduM on Freenode
1 of 32

More Related Content

Similar to Project Atomic-Nulecule(20)

More from Lalatendu Mohanty(13)

OpenShift As A DevOps PlatformOpenShift As A DevOps Platform
OpenShift As A DevOps Platform
Lalatendu Mohanty1.5K views
Contributing To CentOS SIGsContributing To CentOS SIGs
Contributing To CentOS SIGs
Lalatendu Mohanty432 views
Atomic CLI scanAtomic CLI scan
Atomic CLI scan
Lalatendu Mohanty4.2K views
Red Hat Container Development KitRed Hat Container Development Kit
Red Hat Container Development Kit
Lalatendu Mohanty556 views
Introduction to docker and docker composeIntroduction to docker and docker compose
Introduction to docker and docker compose
Lalatendu Mohanty2.8K views
Developer workflow with dockerDeveloper workflow with docker
Developer workflow with docker
Lalatendu Mohanty1.1K views
Vagrant For DevOpsVagrant For DevOps
Vagrant For DevOps
Lalatendu Mohanty10.5K views
GlusterFS And Big DataGlusterFS And Big Data
GlusterFS And Big Data
Lalatendu Mohanty2.9K views
Running A SIG in CentOS @Devconf Brno 2014Running A SIG in CentOS @Devconf Brno 2014
Running A SIG in CentOS @Devconf Brno 2014
Lalatendu Mohanty637 views
Docker quick startDocker quick start
Docker quick start
Lalatendu Mohanty750 views

Project Atomic-Nulecule