micro/runtime
Milos Gajdos 6f7702a093 [WIP] K8s update and runtime package changes (#895)
* First commit: outline of K8s runtime package

* Added poller. Added auto-updater into default runtime

* Added build and updated Poller interface

* Added comments and NewRuntime that accepts Options

* DefaultPoller; Runtime options

* First commit to add Kubernetes cruft

* Add comments

* Add micro- prefix to K8s runtime service names

* Get rid of import cycles. Move K8s runtime into main runtime package

* Major refactoring: Poller replaced by Notifier

POller has been replaced by Notifier which returns a channel of events
that can be consumed and acted upon.

* Added runtime configuration options

* K8s runtime is now Kubernetes runtime in dedicated pkg. Naming kung-fu.

* Fix typo in command.

* Fixed typo

* Dont Delete service when runtime stops.

runtime.Stop stops services; no need to double-stop

* Track runtime services

* Parse Unix timestamps properly

* Added deployments into K8s client. Debug logging
2019-11-02 13:25:10 +00:00
..
kubernetes [WIP] K8s update and runtime package changes (#895) 2019-11-02 13:25:10 +00:00
package Change go-log links 2019-05-31 00:38:05 +01:00
process update runtime to function 2019-09-13 21:33:14 -07:00
proto Add runtime output 2019-09-24 19:00:11 +01:00
source update links 2019-05-31 00:27:41 +01:00
default.go [WIP] K8s update and runtime package changes (#895) 2019-11-02 13:25:10 +00:00
options.go [WIP] K8s update and runtime package changes (#895) 2019-11-02 13:25:10 +00:00
README.md Add runtime => run 2019-05-31 00:26:34 +01:00
runtime.go [WIP] K8s update and runtime package changes (#895) 2019-11-02 13:25:10 +00:00
service.go [WIP] K8s update and runtime package changes (#895) 2019-11-02 13:25:10 +00:00

Runtime

A runtime for self governing services.

Overview

In recent years we've started to develop complex architectures for the pipeline between writing code and running it. This philosophy of build, run, manage or however many variations, has created a number of layers of abstraction that make it all the more difficult to run code.

Runtime manages the lifecycle of a service from source to running process. If the source is the source of truth then everything in between running is wasted breath. Applications should be self governing and self sustaining. To enable that we need libraries which make it possible.

Runtime will fetch source code, build a binary and execute it. Any Go program that uses this library should be able to run dependencies or itself with ease, with the ability to update itself as the source is updated.

Features

  • Source - Fetches source whether it be git, go, docker, etc
  • Package - Compiles the source into a binary which can be executed
  • Process - Executes a binary and creates a running process

Usage

TODO