Skip to content
/ dewy Public

Dewy is a Linux service that enables declarative deployment of applications in non-Kubernetes environments.

License

Notifications You must be signed in to change notification settings

linyows/dewy

Repository files navigation









Dewy







Dewy is a Linux service that enables declarative deployment of applications in non-Kubernetes environments.

GitHub Workflow Status GitHub Release Go Documentation

Installation

To install, use go get:

$ go get -d github.com/linyows/dewy

Usage

When the application functions as a server:

$ cd /opt/yourapp
$ env GITHUB_TOKEN=xxx... SLACK_TOKEN=xxx... \
  dewy server --repository yourname/yourapp \
              --artifact yourapp_linux_amd64.tar.gz \
              --port 3000 \
              -- /opt/yourapp/current/yourapp

When the application and server are separated, or when the server is unnecessary:

$ cd /opt/yourapp
$ env GITHUB_TOKEN=xxx... SLACK_TOKEN=xxx... \
  dewy assets --repository yourname/yourapp \
              --artifact yourapp_linux_amd64.tar.gz

Architecture

Dewy has 3 abstract backends and can be used according to the user's environment.

  • Remote repository backend
  • Notification backend
  • Storage backend

Dewy shares the polling history within the cluster in storage so that it does not communicate excessively to remote repair acquisition.

dewy architecture

👉 Dewy is not CIOps but GitOps. As in the article on weave works, you do not have to grant permissions externally, so it's simple and easy to solve if problems arise.

Kubernetes anti-patterns: Let's do GitOps, not CIOps!
https://www.weave.works/blog/kubernetes-anti-patterns-let-s-do-gitops-not-ciops

Server mode

Process right after startup:

$ ps axf
/usr/bin/dewy server ...(main process)
 \_ /opt/your-app/current/your-app --args server (child process)

When deployment is started, a new child process is created and the old one is gracefully killed.

$ ps axf
/usr/bin/dewy server ...(main process)
 \_ /opt/your-app/current/your-app --args server (old child process) <-- kill
 \_ /opt/your-app/current/your-app --args server (current child process)

Provisioning

Todo

Repository

  • github release
  • git repo

KVS

  • file
  • memory
  • redis
  • consul
  • etcd

Notification

  • slack
  • email

Author

@linyows

About

Dewy is a Linux service that enables declarative deployment of applications in non-Kubernetes environments.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published