Giter Club home page Giter Club logo

roadmap's Introduction

Vapor Cloud - Roadmap

This is the official Vapor Cloud roadmap. Here it's possible to follow the priorities in Vapor Cloud.

It's also possible to suggest tasks.

Versions are created as Milestones

Add entry

If you want to add an entry, create an Issue and add as much information as possible.

Add a kind/* and a version/* label fitting to the entry (and area/* if possible).

roadmap's People

Contributors

joscdk avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

roadmap's Issues

Billing

Billing system that will support creditcard payment. The billing system will accumulate charges over the course of a month, and after the months end, it will send out an invoice and try to charge the creditcard, or added credits to the account.

The billing system need to support various discounts.

Charges should occur on a second base, so users are only charged for the seconds a specific product is running.

[Discussion][WIP] Statistics monitoring

Web replica

The idea for web replica monitoring is to get insight into resource usage.

History view

The following historical view are suggested, with the proposed resolution

Past Resolution
6 hours 10 minutes
24 hours 10 minutes
7 days 2 hours
30 days 1 day

Proposed metrics

We suggest the following metrics

Metric Available Alerting available
CPU Usage Beta Yes
Memory usage Beta Yes
Request count Beta/GA No
Events Beta No

Database metrics

Not planned yet

Redis metrics

Not planned yet

Delete features

Allow people to delete

  • User
  • Organization
  • Application
  • Environment
  • Database
  • Redis

Create/view/scale database servers

Allow users to create and scale database servers. A database server is linked to an organization, and after this, the user can link environments to the specific server.

New custom docker and and cloud.yml system

For Cloud 2 we will support multiple replicas, and custom Docker files. This will make a change for how we will handle building containers.

As Cloud 2 is still early, this is still work in progress and can change with time.

cloud.yml file

In cloud 2 we will completely remove the cloud.yml file, as we can achieve the needed functionality without.

Multiple replicas

In Cloud 2 it will be possible to have multiple replicas running with different docker templates, per default all applications will have a web replica, which is the default for running the application. Other types could be offloading large tasks to a queue replica. More information on this system will be added during the beta phase.

Custom docker files

Per default Cloud 2 will always use the latest Swift release to build the project.

All Vapor templates will be updated to include a Dockerfile that will be used during build. If a different Swift version is required, people will need to add a different Dockerfile to their projects.

The Dockerfile naming should be like this:

<replicaName>.Dockerfile

For example

web.Dockerfile

Per default all docker files will automatically be loaded on port 80, so all Vapor apps will be set to use port 80 instead of 8080. A different port can be set from the dashboard on the replica settings once we release multiple replicas in the beta.

Developer tokens

Allow users to create developer tokens for use with the public API.

When creating the token, the user should be able to set how long it should be able to live.

Create/view/scale redis servers

Allow users to create and scale redis servers. A redis server is linked to an environment, and can only be used for this specific environment.

2 Factor Authentication

Allow users to enable 2FA on their account. It should also be able to show under an organization which users have 2FA enabled.

2FA will only be app based, no SMS

Custom domain

Allow users to create a domain. When creating a domain, you should also be able to set path based routing. So e.g.:

mydomain.com/foo -> foo(application)
mydomain.com/bar -> bar(application)

Feedback system

We should have an easy way to provide feedback from Vapor Cloud 2. This should also be available after we launch Cloud 2, so people can give easy feedback, especially from the Dashboard.

The best system would be a button e.g. In the footer, that gives a popup. After sending, it should create a ticket in our new support system.

However don't think we should prioritize the ticket system right now, maybe it will just send us an email for now @tanner0101 what do you think?

List releases

Show a list of recent releases for an application.

This will show:

  • date
  • who did the releases
  • Type (Scale, Deploy etc.)
  • Message (Including git hash for deploy etc.)

[RFC] Cloud 2 Jobs

We are now quite far in the planning of our new Jobs system. This is the system used for running both one time jobs and periodic jobs (Cronjobs)

One-time jobs

One-time jobs is a command you run one time in your app, this can e.g. Be a revert or similar command.
When starting this, the command will start running in the background, it's then possible to go in and start following the log output of the command (The toolbox and dashboard does this automatically)

Completed jobs will be visible in the dashboard for 30 days after completion, after this, the details of that specific job will be deleted.

Cronjobs

Cronjobs are a way to specify periodic jobs to run in specified times. This can for example be every second monday of every month, or even simpler every 5 minutes.

Cronjobs can be created either from the dashboard or toolbox. The system will store the details of the last 10 run though of each job.

Payment of jobs

Both types of jobs will start up a separate replica to run the specified command. This will give a slight delay in execution, however it will make sure that the web requests of an application aren't affected.

Billing is like replica payment, so prorated down to the second the job is running, and it will be possible to decide which plan the job should run on.

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.