Skip to content
This repository was archived by the owner on Nov 16, 2020. It is now read-only.

Commit e1e2ced

Browse files
authored
add front content to nav and update roadmap (#109)
1 parent 5b4299e commit e1e2ced

File tree

5 files changed

+119
-8
lines changed

5 files changed

+119
-8
lines changed

docs/_config.yml

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,25 @@ collections:
3737
guides:
3838
output: true
3939
nav: Guides
40+
front:
41+
output: true
4042

43+
defaults:
44+
- scope:
45+
path: ""
46+
type: specs
47+
values:
48+
layout: default
49+
- scope:
50+
path: ""
51+
type: guides
52+
values:
53+
layout: default
54+
- scope:
55+
path: ""
56+
type: front
57+
values:
58+
layout: default
4159
# Exclude from processing.
4260
# The following items will not be processed, by default. Create a custom list
4361
# to override the default setting.

docs/roadmap.md renamed to docs/_front/roadmap.md

Lines changed: 31 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
---
2+
---
13
Dispatch Project Roadmap
24
========================
35

@@ -34,10 +36,10 @@ This will start a more in depth discussion.
3436

3537
## 1.1 Users and Authentication
3638

37-
Currently Dispatch does not contain a user database. Although there is support for a login action against an IDP (GitHub),
38-
this effectively only ensures that the user has a GitHub account. Authentication and authorization is a big value
39-
proposition for Dispatch, and the first step is to maintain a database of users. This is a precursor to full blown
40-
roles and authorization which are also on the roadmap.
39+
Currently Dispatch does not contain a user database. Although there is support for a login action against an IDP
40+
(GitHub), this effectively only ensures that the user has a GitHub account. Authentication and authorization is a big
41+
value proposition for Dispatch, and the first step is to maintain a database of users. This is a precursor to full
42+
blown roles and authorization which are also on the roadmap.
4143

4244
An initial implementation should simply support a database and APIs for managing users. Then the authorization check
4345
should simply ensure that the entity making an API request is included in that user database. Additionally, the user
@@ -47,4 +49,29 @@ metadata should be propogated through the system (associated with the request or
4749

4850
## 1.3 Applications or Groups
4951

52+
Dispatch requires a grouping mechanism in order to better structure resources such as functions and API endpoints.
53+
The suggested name for this grouping is "application", though that is subject to change. Application is itself a
54+
first class resource, belonging to an organization. Application should be a required property of the following
55+
resources:
56+
57+
* Function
58+
* API
59+
* Secret
60+
* Subscription (may be implied through function)
61+
62+
Base-images and images may remain tied to an organization. It's possible that they may optionally be tied to an
63+
application.
64+
65+
Applications should additionally enable per-application hostname (domains?) and certificates on the API gateway.
66+
5067
## 1.4 Image Management
68+
69+
Currently the image support in Dispatch is simply pass-through. See the [image manager spec](image-manager.md) for
70+
feature description.
71+
72+
## 1.5 Multi-Organization Support
73+
74+
Dispatch is a multi-tenant serverless framework. The top unit of tenancy is "organization". Because, Dispatch only
75+
supports a single IDP per installation, organization is akin to a business unit with a larger enterprise. Currently,
76+
a single organization is hard-coded at installation time, however organization is expected to become a configurable
77+
resource.

docs/_layouts/default.html

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,14 @@
3737
<nav>
3838
{% for section in site.collections %}
3939
{% if section.docs.size > 0 %}
40-
<h4>{{ section.nav }}</h4>
40+
<!-- front section is top level and has no label -->
41+
{% if section.label != "front" %}
42+
{% if section.nav %}
43+
<h4>{{ section.nav }}</h4>
44+
{% else %}
45+
<h4>{{ section.label | capitalize }}</h4>
46+
{% endif %}
47+
{% endif %}
4148
<ul>
4249
{% for doc in section.docs %}
4350
{% if doc.url == page.url %}
@@ -53,7 +60,9 @@ <h4>{{ section.nav }}</h4>
5360
</div>
5461
</header>
5562
<section>
56-
63+
<div class="section-header">
64+
<a href="{{ site.baseurl }}/">Dispatch Home</a> &raquo; {{ page.title }}
65+
</div>
5766
{{ content }}
5867

5968
</section>

docs/assets/css/style.scss

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,8 @@
55

66
nav h4 { margin-bottom: 3px; }
77
nav ul { padding-left: 0px; list-style: none; background: initial; border: initial; height: initial; }
8-
nav ul li { float: none; margin-left: 20px; white-space: nowrap; border: initial; height: initial; }
8+
nav ul li { float: none; margin-left: 0px; white-space: nowrap; border: initial; height: initial; }
99
nav ul li a { color: #267CB9; display: initial; height: initial; font-size: 14px; }
1010
nav ul li a:hover, a:focus a:active { color: #069; font-weight: bold; background-color: initial;}
11-
.page-link.selected { color: #069; font-weight: bold; }
11+
.page-link.selected { color: #069; font-weight: bold; }
12+
.section-header { padding-bottom: 20px; font-size: 16px; }

docs/index.md

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,3 +4,59 @@
44
# See: https://jekyllrb.com/docs/themes/#overriding-theme-defaults
55
layout: default
66
---
7+
8+
# Dispatch - more than Functions
9+
10+
Building, deploying and administering serverless applications requires more than just a function scheduler and executor.
11+
Dispatch brings features and services together to easily manage production-caliber applications and services which are
12+
built upon functions.
13+
14+
## A flexible FaaS
15+
16+
Dispatch itself is not a function scheduler and executor. Since there are several open source FaaS implementations, the
17+
Dispatch team decided two things early on. First, we would not create yet another open source FaaS. Second, the space
18+
is too young and immature to predict with any certainty that one FaaS would be the dominant player over others.
19+
20+
Instead, Dispatch abstracts the FaaS implementation via a driver interface allowing integration with one or more
21+
existing or future FaaS implementations. The initial Dispatch release includes drivers for OpenFaaS and Riff. Future
22+
drivers could include support for additional FaaS implementations, including public cloud offerings such as AWS Lambda.
23+
The flexibility to integrate multiple FaaS implementations is more than just future proofing, it also opens the door to
24+
interesting scenarios where the same function can be executed on one or more different environments based on criteria
25+
such as locality, compute resources (GPU) or burst scaling onto the public cloud.
26+
27+
## A secure FaaS
28+
29+
Giving developers direct access to VMs and containers can be problematic. IT can quickly lose control over the
30+
production environment, with no knowledge of what software is actually running in their data center. On the other hand,
31+
if developers have no direct access to VMs and containers this causes bottlenecks in IT and developer frustration.
32+
33+
Function based deployments can alleviate much of this concern. Dispatch provides an environment where everything up to
34+
the actual function code can be managed and inspected. Pivotal Container Service (PKS) from VMware provides a secure
35+
and up-to-date Kubernetes service. Dispatch manages function runtimes and artifacts (containers) built on the latest
36+
Photon OS.
37+
38+
## A multi-tenant FaaS
39+
40+
Dispatch is designed to work in a multi-user and multi-organization environment. Dispatch will integrate with existing
41+
Oauth2 compatible identity providers such as github or Active Directory. Administrators will be able to create roles
42+
and permissions to ensure tight access control around the full Dispatch API.
43+
44+
## A proper API gateway
45+
46+
Whether building a simple web-hook or a richer web-service in order to trigger the functions that make up a deployment,
47+
an API gateway is required. The API gateway provides routing and security. Dispatch integrates the open source Kong
48+
API gateway to provide a production quality solution for applications built on Dispatch. Simply define a route and bind
49+
it to a function to create a secure HTTPS endpoint.
50+
51+
## Plays well with others
52+
53+
Integration with external services and events is critical for any serverless solution. Dispatch includes an external
54+
services interface that allows extending Dispatch to work with just about any other service. These services could be
55+
databases to provide state to applications, or event sources which provide triggers to functions. Included in the
56+
preview release is a vCenter driver which ingests vCenter events which functions can now subscribe to. The interface is
57+
flexible and extensible.
58+
59+
## Join the Dispatch team
60+
61+
You can find Dispatch on Github. Many features are still a work in progress, but we encourage the curious to start
62+
building and imagining with us.

0 commit comments

Comments
 (0)