All Projects → kelda → Kelda

kelda / Kelda

Licence: mit
Kelda is an approachable way to deploy to the cloud.

Programming Languages

javascript
184084 projects - #8 most used programming language
go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to Kelda

Addon Lxdone
Allows OpenNebula to manage Linux Containers via LXD
Stars: ✭ 36 (-91.69%)
Mutual labels:  cloud, infrastructure, containers
Awesome Scalability Toolbox
My opinionated list of products and tools used for high-scalability projects
Stars: ✭ 34 (-92.15%)
Mutual labels:  cloud, networking, containers
Terrahub
Terraform Automation and Orchestration Tool (Open Source)
Stars: ✭ 148 (-65.82%)
Mutual labels:  cloud, infrastructure, containers
Nff Go
NFF-Go -Network Function Framework for GO (former YANFF)
Stars: ✭ 1,036 (+139.26%)
Mutual labels:  cloud, networking, containers
Pulumi Aws
An Amazon Web Services (AWS) Pulumi resource package, providing multi-language access to AWS
Stars: ✭ 169 (-60.97%)
Mutual labels:  cloud, infrastructure
Foreman
an application that automates the lifecycle of servers
Stars: ✭ 2,102 (+385.45%)
Mutual labels:  cloud, infrastructure
Linode Cli
The Linode CLI
Stars: ✭ 198 (-54.27%)
Mutual labels:  cloud, infrastructure
Drago
A flexible configuration manager for Wireguard networks
Stars: ✭ 204 (-52.89%)
Mutual labels:  cloud, networking
Kubicorn
kubicorn is a free and open source project that solves the Kubernetes infrastructure problem and gives users a rich golang library to work with infrastructure.
Stars: ✭ 1,671 (+285.91%)
Mutual labels:  cloud, infrastructure
Mongoke
Instant Graphql for MongoDb (active branch is golang, rewrite in process)
Stars: ✭ 203 (-53.12%)
Mutual labels:  cloud, containers
Doctl
The official command line interface for the DigitalOcean API.
Stars: ✭ 2,856 (+559.58%)
Mutual labels:  cloud, infrastructure
My Links
Knowledge seeks no man
Stars: ✭ 311 (-28.18%)
Mutual labels:  cloud, containers
E Books
A collections of FREE ebooks
Stars: ✭ 143 (-66.97%)
Mutual labels:  cloud, networking
Deploykit
A toolkit for creating and managing declarative, self-healing infrastructure.
Stars: ✭ 2,237 (+416.63%)
Mutual labels:  cloud, infrastructure
Ladder
A general purpose extensible autoscaler for the cloud
Stars: ✭ 143 (-66.97%)
Mutual labels:  cloud, containers
Oci Cli
Command Line Interface for Oracle Cloud Infrastructure
Stars: ✭ 207 (-52.19%)
Mutual labels:  cloud, infrastructure
Suzieq
A framework and application for network observability
Stars: ✭ 266 (-38.57%)
Mutual labels:  networking, infrastructure
Adapt
ReactJS for your infrastructure. Create and deploy full-stack apps to any infrastructure using the power of React.
Stars: ✭ 317 (-26.79%)
Mutual labels:  cloud, containers
Devops Guide
DevOps Guide - Development to Production all configurations with basic notes to debug efficiently.
Stars: ✭ 4,119 (+851.27%)
Mutual labels:  networking, containers
Vorteil
turn your applications and containers into micro virtual machines
Stars: ✭ 120 (-72.29%)
Mutual labels:  cloud, containers

Deprecation Notice

This project is no longer being maintained by the Kelda team. To get updated when our next project is ready, sign up for our mailing list!

Build Status Go Report Card Code Coverage

Kelda

A straightforward way to configure containerized applications.

What is Kelda?

Kelda is a simple way to configure, run, and manage containerized applications in the cloud.

No more YAML, templating, complicated CLIs, and new domain specific languages. Kelda’s intuitive JavaScript API makes it easy to describe what you want to run in the cloud — that is, the virtual machines, containers, network policies, and more.

Using Kelda's CLI, simply pass your high-level blueprint to Kelda’s Kubernetes-based deployment platform. We'll take care of the nitty gritty details needed to get your system up and running in your cloud of choice.

Install

Install Kelda with npm:

$ npm install -g @kelda/install

Check out more in our Quick Start tutorial.

Deploy Quickly On...

providers

How Do I Use It?

  1. Describe your application using Kelda's JavaScript API (or use a pre-made blueprint).

    const kelda = require('kelda');
    
    // A Docker container running your application.
    const app = new kelda.Container({
      name: 'my-app',
      image: 'myDockerImage',
    });
    
    // Expose the application to the public internet on port 80.
    kelda.allowTraffic(kelda.publicInternet, app, 80);
    
  2. Describe where to run the application.

    // A virtual machine with 8 GiB RAM and 2 CPUs on Amazon EC2.
    const virtualMachine = new kelda.Machine({
      provider: 'Amazon', // 'Google', 'DigitalOcean'.
      ram: 8,
      cpu: 2,
    });
    
    // An infrastructure with one Kelda Master machine and 6 Worker machines -- all in EC2.
    const infrastructure = new kelda.Infrastructure({
      masters: virtualMachine,
      workers: virtualMachine.replicate(6),
    });
    
    // Deploy the app to the infrastructure.
    app.deploy(infrastructure);
    
  3. Boot the application to your preferred cloud using Kelda's CLI.

    $ kelda run ./myBlueprint.js
    Your blueprint is being deployed. Check its status with `kelda show`.
    
  4. Manage your deployment from the command line.

    Keep track of virtual machines and containers.

    $ kelda show
    MACHINE         ROLE      PROVIDER    REGION       SIZE         PUBLIC IP         STATUS
    i-0d1d363a57    Master    Amazon      us-west-1    m3.medium    54.149.85.24      connected
    i-0b6ef239c7    Worker    Amazon      us-west-1    m3.medium    54.218.19.34      connected
    ...
    
    CONTAINER       MACHINE         COMMAND          HOSTNAME    STATUS     CREATED           PUBLIC IP
    bce2362f3a1f    i-0b6ef239c7                     my-app      running    20 seconds ago    54.218.19.34:80
    ...
    

    SSH into containers and machines (here, the my-app container).

    $ kelda ssh my-app
    

    Stop the deployment.

    $ kelda stop
    

    And more...

Learn more in our Quick Start tutorial.

API

Here are a some of the cool things you can do with Kelda's API.

Share and Reuse Configuration

Don't waste time combing through reams of application specific documentation. Share and reuse configuration like you do with other software libraries.

const Redis = require('@kelda/redis');
const redisDB = new Redis(3, 'ADMIN_PASSWORD'); // A Redis database with 3 workers.

Configure a Secure Network

Only allow the traffic your application needs.

// Let the app send traffic to the Redis database on port 6379.
kelda.allowTraffic(app, redisDB.master, 6379);

Run Containers

Quickly get running in the cloud.

const otherApp = new kelda.Container({
  name: 'my-other-app',
  image: 'myOtherImage',
});

Keep Sensitive Data Safe

We keep your keys, certificates, and passwords encrypted and in the right hands.

otherApp.env['GITHUB_OATH_TOKEN'] = new kelda.Secret('githubOathToken');

Deploy Anywhere

Kelda's API is cloud agnostic, so you, your users, and colleagues can run the same blueprint in any of Kelda's supported clouds.

const machine = new kelda.Machine({
  provider: 'Google', // 'Amazon', 'DigitalOcean'.
  size: 'n1-standard-2', // 'm3.medium', '1gb'.
});

See the full API reference in our docs.

Reference Blueprints

Kelda blueprints have been written for many popular applications. Here are some that we recommend checking out:

  • Apache Spark. Deploy a multi-node Spark cluster for data processing.
  • HAProxy. Load balance traffic across different applications.
  • Kibana. Vizualize data from a hosted Elasticsearch instance.

Get Involved

We would love to work with you, get your feedback, or answer any questions you have!

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].