Coder Social home page Coder Social logo

funcnstein's Introduction

funcnstein

funcnstein logo

Kudos to Ashley McNamara, Renee French, and Mat Ryer for the logo, via gopherize.me.


Are you into serverless? Using, for example, AWS Lambda or knative or Apache OpenWhisk? When you're building a non-trivial app based on functions you potentially end up with dozens or hundreds of functions.

How do you manage them? Know what is running, what the dependencies between functions are? Maybe you're manually updating a spreadsheet or perhaps you have put together a nice little shell script that queries the state?

I believe we can do better, better as in great UX, ease of use, and powerful set of operations, but focused on the task of managing functions from an operational point of view. So, you would still use Serverless, CloudFormation, Terraform, or your own tooling to deploy, monitor, or debug your functions.

So this is what the idea of funcnstein is: a multi-platform tool for managing functions.

Exemplary usage

Sample interactions follow below—note, no matter if you're using the CLI tool against Lambda or OpenFaaS or kubeless or whatever target, the UX is always the same.

Getting an overview of what is running

$ functl get
NAME                STATUS    INVOCATIONS   AGE
convertimg          Running   21k           42d
preprocess          Running   29k           42d
limitchecker        Running   40k           30d
compliance          Running    8k           18d
myfirstgofunction   Running   300           10m

Examining a specific function

$ functl describe convertimg
Environment: AWS Lambda
Project: A paying customer, actually
State: Running (since 2018-06-25)
Language: Node.js
Invocations: 20988
Triggers: API Gateway, S3 
Labels: owner=mshelley

Resolving dependencies

$ functl resolve convertimg 
Called by:
- preprocess
Calls:
- limitchecker
- compliance

Organizing stuff

$ functl label convertimg stage=prod
Labels: owner=mshelley, stage=prod

Advanced queries

$ functl get --project='*paying*' --selector='owner=mshelley' --invocations='>20k'
NAME                STATUS    INVOCATIONS   AGE
convertimg          Running   21k           42d

FAQ

Q: How is functl pronounced?
A: fun-kuddle … because you can't control fun

funcnstein's People

Contributors

mhausenblas avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.