All Projects → mikelangelo-project → capstan

mikelangelo-project / capstan

Licence: other
Capstan, a tool for packaging and running your application on OSv.

Projects that are alternatives of or similar to capstan

Peru
a generic package manager, for including other people's code in your projects
Stars: ✭ 913 (+4705.26%)
Mutual labels:  package-manager, packaging
ansible-role-pip
Ansible Role - Pip (for Python)
Stars: ✭ 147 (+673.68%)
Mutual labels:  package-manager, packaging
Hatch
A modern project, package, and virtual env manager for Python
Stars: ✭ 2,268 (+11836.84%)
Mutual labels:  package-manager, packaging
Poet
Poet helps you declare, manage and install dependencies of Python projects, ensuring you have the right stack everywhere.
Stars: ✭ 312 (+1542.11%)
Mutual labels:  package-manager, packaging
Poetry
Python dependency management and packaging made easy.
Stars: ✭ 17,543 (+92231.58%)
Mutual labels:  package-manager, packaging
cget-recipes
Recipes for cget
Stars: ✭ 17 (-10.53%)
Mutual labels:  package-manager
exosphere
A user-friendly, extensible OpenStack client. This is a mirror. See GitLab for issues and PRs: https://gitlab.com/exosphere/exosphere
Stars: ✭ 20 (+5.26%)
Mutual labels:  openstack
openstack-image-manager
Easily manage and keep up to date a large number of images on an OpenStack environment
Stars: ✭ 19 (+0%)
Mutual labels:  openstack
upstream-institute-virtual-environment
A Vagrant-based image creator for OpenStack Upstream Training sessions
Stars: ✭ 18 (-5.26%)
Mutual labels:  openstack
poetry.el
Python dependency management and packaging in Emacs
Stars: ✭ 110 (+478.95%)
Mutual labels:  package-manager
software-factory
The ready to use Continuous Integration platform
Stars: ✭ 17 (-10.53%)
Mutual labels:  openstack
opnfv-cloudify-clearwater
vIMS Clearwater deployment and lifecycle management with Cloudify Orchestrator
Stars: ✭ 32 (+68.42%)
Mutual labels:  openstack
oio-swift
Openio flavor of the Openstack Swift Gateway and middlewares, allowing access to OpenIO SDS via an Openstack Swift gateway.
Stars: ✭ 22 (+15.79%)
Mutual labels:  openstack
dex
docker executables - run applications without installing them or their dependencies
Stars: ✭ 31 (+63.16%)
Mutual labels:  package-manager
otc-tools
(Deprecated) Simple bash/curl/jq based command line tool using the OpenStack and OTC specific REST APIs.
Stars: ✭ 27 (+42.11%)
Mutual labels:  openstack
cppm
c++ package manager only use CMake
Stars: ✭ 37 (+94.74%)
Mutual labels:  package-manager
carbon
Carbon is a package manager for Kubernetes. It allows to operate with your application along with Kubernetes manifests as a holistic package.
Stars: ✭ 12 (-36.84%)
Mutual labels:  package-manager
ansible-nodejs
Ansible role to set up the latest version of Node.js and npm in Debian-like systems
Stars: ✭ 14 (-26.32%)
Mutual labels:  package-manager
aspen
Passerine's package manager.
Stars: ✭ 22 (+15.79%)
Mutual labels:  package-manager
vanat
🔨 Dependency Manager for Vala 🚧 App under development!
Stars: ✭ 14 (-26.32%)
Mutual labels:  package-manager

Capstan

This is an upgraded version of the original Capstan and is maintained by MIKELANGELO consortium. Although it is still possible, joining this repository with the original Capstan is not very likely. We're looking towards the first stable release at the moment.

Capstan is a command-line tool for rapidly running your application on OSv unikernel. It focuses on improving user experience during building the unikernel and attempts to support not only a variety of runtimes (C, C++, Java, Node.js etc.), but also a variety of ready-to-run applications (Hadoop HDFS, MySQL, SimpleFOAM etc.).

Philosophy

Buildning unikernels is generally a nightmare! It is a non-trivial task that requires deep knowledge of unikernel implementation. It depends on numerous installation tools and takes somewhat 10 minutes to prepare each unikernel once configured correctly. But an application-oriented developer is not willing to take a load of new knowledge about unikerel specifics, nor wait long minutes to compile! And that's where Capstan comes in.

Capstan tends to be a tool that one configures with application-oriented settings (Where is application entry point? What environment variables to pass? etc.) and then runs a command or two to quickly boot up a new unikernel with application. Measured in seconds.

To achieve this, Capstan uses precompiled artefacts: precompiled OSv kernel, precompiled Java runtime, precompiled MySQL, and many more. All you have to do is to name what precompiled packages you want to have available in your unikernel and that's it.

Features

Capstan is designed to prepare and run OSv unikernel for you. With Capstan it is possible to:

  • prepare OSv unikernel without compiling anything but your application, in seconds
  • use any precompiled package from the MIKELANGELO package repository, or a combination thereof
  • set arbitrary size of the target unikernel filesystem
  • run OSv unikernel using one of the supported providers

But Capstan is not a magic tool that could solve all the problems for you. Capstan does not:

  • compile your application. If you have Java application, you need to use javac compiler and compile the application yourself prior using Capstan tool!
  • inspect your application. Capstan does nothing with your application but copies it into the unikernel
  • overcome OSv unikernel limits. Consult OSv documentation about what these limits are since they all still apply. Most notably, you can only run single process inside unikernel (forks are forbidden).

Getting started

Capstan can be installed using precompiled binary or compiled from source. Step-by-step Capstan Installation Guide

Using Capstan is rather simple: open up your project directory and create Capstan configuration files there:

$ cd $PROJECT_DIR
$ capstan package init --name {name} --title {title} --author {author}
$ capstan runtime init --runtime {runtime}
# edit meta/run.yaml to match your application structure

Being in project root directory, then use Capstan command to create unikernel (consult CLI Reference for a list of available arguments):

$ capstan package compose {unikernel-name}

At this point, you have your unikernel built. It contains all your project files plus all the precompiled artefacts that you asked for. In other words, the unikernel contains everything and is ready to be started! As you might have expected, there is Capstan command to run unikernel for you (using KVM/QEMU hipervisor):

$ capstan run {unikernel-name}

Congratulations, your unikernel is up-and-running! Press CTRL + C to stop it.

Documentation

License

Capstan is distributed under the 3-clause BSD license.

Acknowledgements

This code has been developed within the MIKELANGELO project (no. 645402), started in January 2015, and co-funded by the European Commission under the H2020-ICT-07-2014: Advanced Cloud Infrastructures and Services programme.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].