Over a million developers have joined DZone.
{{announcement.body}}
{{announcement.title}}

Three New Open Source Container Utilities

DZone's Guide to

Three New Open Source Container Utilities

These three tools are helpful for building and operating containers, including microcontainers, and are now open sourced by Oracle.

· Integration Zone ·
Free Resource

The State of API Integration 2018: Get Cloud Elements’ report for the most comprehensive breakdown of the API integration industry’s past, present, and future.

Containers are more popular than ever. Here at Oracle, we use containers for many of our cloud services. While preparing for containers in production, we developed tools to help with building and operating containers. Today we are happy to announce that we are open sourcing these tools so that others can benefit from our work. You can find SmithCrashCart, and RailCar on the Oracle GitHub page. Read on for more information about them.

Smith: Secure Microcontainer Builder

We have run into a number of operational issues with conventional Docker usage. Smith is a tool that solves these issues by making builds more consistent and secure. It builds microcontainers from RPMs, yum repositories, or even "fat" Docker containers. For more information on the operational challenges that led to our usage of microcontainers, check out The Microcontainer Manifesto.

CrashCart: Microcontainer Debugging Tool

When containers are minimized for production use, missing tools make it more challenging for operators to diagnose and remedy any issues that arise. Most debugging can be done from the host, but sometimes you need access to the filesystem as the container sees it. CrashCart was built for this use case. It allows you to load a set of binaries into a running container so that you can figure out what might be going wrong.

RailCar: Alternative Container Runtime

Go is a poor choice of language for a container runtime. To understand some of the problems, you can read this blog post by weaveworks. In order to work around this issue and others, runc (the default implementation of the oci-runtime spec) has some code written in C that runs before the Go runtime starts. Go is a great language, but for small system utilities that need tight control over threads and make a high volume of syscalls, there are better options. Rust gives low-level control like C, but is memory safe and avoids whole classes of bugs and vulnerabilities. There is more information about the development of RailCar in Building a Container Runtime in Rust.

Your API is not enough. Learn why (and how) leading SaaS providers are turning their products into platforms with API integration in the ebook, Build Platforms, Not Products from Cloud Elements.

Topics:
docker ,containers ,integration

Published at DZone with permission of

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}