All Projects → hyscale → Hyscale

hyscale / Hyscale

Licence: apache-2.0
HyScale is an Application Centric Abstraction Framework over K8s.

Programming Languages

java
68154 projects - #9 most used programming language
go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to Hyscale

Falco
Cloud Native Runtime Security
Stars: ✭ 4,340 (+940.77%)
Mutual labels:  containers
Bastille
Bastille is an open-source system for automating deployment and management of containerized applications on FreeBSD.
Stars: ✭ 377 (-9.59%)
Mutual labels:  containers
Bpfd
Framework for running BPF programs with rules on Linux as a daemon. Container aware.
Stars: ✭ 396 (-5.04%)
Mutual labels:  containers
Buildkit
concurrent, cache-efficient, and Dockerfile-agnostic builder toolkit
Stars: ✭ 4,537 (+988.01%)
Mutual labels:  containers
Docker Stacks
DECK is a powerful and high performant local web development studio unlike any other.
Stars: ✭ 376 (-9.83%)
Mutual labels:  containers
Please Contain Yourself
A Docker tutorial written for people who don't actually know Docker already.
Stars: ✭ 385 (-7.67%)
Mutual labels:  containers
Tsuru
Open source and extensible Platform as a Service (PaaS).
Stars: ✭ 3,761 (+801.92%)
Mutual labels:  containers
Go Dexec
It's like Go os/exec package but for Docker. What if you could exec programs remotely with the same interface as os/exec?
Stars: ✭ 407 (-2.4%)
Mutual labels:  containers
Dogvscat
Sample Docker Swarm cluster stack of tools
Stars: ✭ 377 (-9.59%)
Mutual labels:  containers
Kube Spawn
A tool for creating multi-node Kubernetes clusters on a Linux machine using kubeadm & systemd-nspawn. Brought to you by the Kinvolk team.
Stars: ✭ 392 (-6%)
Mutual labels:  containers
Grype
A vulnerability scanner for container images and filesystems
Stars: ✭ 362 (-13.19%)
Mutual labels:  containers
Aws Microservices Deploy Options
This repo contains a simple application that consists of three microservices. Each application is deployed using different Compute options on AWS.
Stars: ✭ 370 (-11.27%)
Mutual labels:  containers
Cinf
Command line tool to view namespaces and cgroups, useful for low-level container prodding
Stars: ✭ 389 (-6.71%)
Mutual labels:  containers
Nelson
Automated, multi-region container deployment
Stars: ✭ 363 (-12.95%)
Mutual labels:  containers
Nuclio
High-Performance Serverless event and data processing platform
Stars: ✭ 4,213 (+910.31%)
Mutual labels:  containers
Containers Roadmap
This is the public roadmap for AWS container services (ECS, ECR, Fargate, and EKS).
Stars: ✭ 4,132 (+890.89%)
Mutual labels:  containers
Storyscript
Magical coding language for tomorrow’s developer; the other 1 billion people not in GitHub. 🧙
Stars: ✭ 381 (-8.63%)
Mutual labels:  containers
Entitycomponentsystemsamples
No description or website provided.
Stars: ✭ 4,218 (+911.51%)
Mutual labels:  containers
Vas Quod
🚡 Minimal linux container runtime.
Stars: ✭ 404 (-3.12%)
Mutual labels:  containers
Picluster
A Simplified Docker Swarm or Kubernetes Alternative to Container Scheduling and Orchestration
Stars: ✭ 390 (-6.47%)
Mutual labels:  containers

HyScale

Actions Status Security Rating Release


Kubernetes (K8s) is complex. This makes application deployment to K8s challenging, time-consuming, tedious and error-prone. But it doesn't have to be that way.

This project is aimed at building an abstraction framework over K8s (for app deployments) in the same vein as jQuery over Javascript or Spring over servlets.

HyScale takes a simple, short Declarative definition of your service config, given the config it generates Dockerfile, Container Image, Kubernetes Manifests (YAMLs) and deploys to any Kubernetes Cluster returning back the app URL. Also it abstracts & simplifies Deployment Troubleshooting and Runtime Ops.

HyScale can be used to deploy either Monolithic or Microservice Applications.

Table of Contents

Abstracting K8s

Containerizing apps and deploying them to K8s can be tedious and error-prone with having to write & maintain large portions of yaml, dealing with cryptic K8s error messages, challenging new ops and keeping up with new K8s versions. An abstraction brings higher-level objects & actions that are intuitively understood by developers & devops professionals alike making deployments, maintenance & troubleshooting a breeze!

Such an abstraction must:
a) be declarative,
b) intuitive to read, and
c) orders of magnitude smaller to write & maintain



Demo

Watch the video

For more detailed information refer the wiki.

Examples

For instance, if your service requires to persist some data at the path /mydata , all you would need to declare is:

volumes:
    - name: myvol
      path: /mydata
      size: 1G

and leave to the abstraction framework all the details of generating the right yamls & labels for stateful sets, persistent volume templates, with PVCs linked to the storage class, etc.

Similarly, if your service needs auto-scaling, the high-level intent declaration would be something like this:

replicas:
      min: 2
      max: 5
      cpuThreshold: 80%

Of course you can have different profiles to override things for different environments of your app.

To see what other things you could specify in an app-centric declarative way and how to write a complete spec file, check out the tutorial here.

You can also find spec files for a few sample applications here.

App2URL | Deploying to K8s

Once you've written the declaration of your service's requirements (we call it a hspec file), deploying and obtaining a URL is a one-line command:

hyscale deploy service -f '<myservice.hspec>' -n '<my-namespace>' -a '<my-app-name>'

HyScale will generate the dockerfile if necessary, build & push the docker image, generate the required K8s yamls and talk to the K8s cluster specified at $HOME/.kube/config . At the end of this command execution, you should see a URL with which to access your app!

Completing the abstraction | Troubleshooting & Ops

If, say, you got an error message such as CrashLoopBackOff, the abstraction would tell you whether that was due to an erroneous CMD in your dockerfile, a failing health-check or a missing entrypoint for your service.

For more on app-centric automated troubleshooting, see here

And if you wanted to perform some operations such as getting the logs of a service, all you would do is say something like hyscale get service logs -s <service-name>

Download & Try

To run HyScale, you need Docker 18.09.x or above, your Kubernetes cluster token at $HOME/.kube/config and registry credentials at $HOME/.docker/config.json. Make sure you have logged into your docker registry using docker login.

If you are on Linux, install using:

curl -sSL https://get.hyscale.io | bash

For more details on pre-requisites as well as instructions for Windows & Mac, see here.

Community

Let us know your experience with HyScale!

Contribute

Our initial goal is to achieve sufficient abstraction levels to satisfy at least 80% of the app deployment use-cases out there.

Do you have any inputs that can make HyScale better? Say, a bug or a feature request? Please open a new issue here.

To contribute, see our architecture & contributor documentation here.

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