Skip to content

Commit

Permalink
Roadmap updates
Browse files Browse the repository at this point in the history
  • Loading branch information
nwmac committed Apr 26, 2018
1 parent 655724b commit 91d177a
Show file tree
Hide file tree
Showing 3 changed files with 166 additions and 75 deletions.
86 changes: 86 additions & 0 deletions docs/planning/angular.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
# Technology Refresh

The focus for the first part of 2018 is to complete the move from AngularJS to Angular. This is a significant amount of work.

## Migrate Angular from AngularJS

Move to a newer framework that is being actively developed and will carry us forward for longer. This will make future migrations much easier (Angular 2 => 4 => 5 => 6)

Note:
- Back-end stays the same (folder structure will most likely be moved around)
- Deployment and other scripts, artefacts remain the same (tweaks as necessary to build the V2 code)

Stack:

- Angular 5
- Typescript
- RxJS
- Angular Material

## Migrate to Material Design

Adopt material design while keeping essence of the current Angular 1 app:

- Use Material Design as the visual language for the UX
- Rich language
- Used by a growing number of projects, not just those from Google
- Adopt Material Design approach, patterns and components
- Leverage angular-material library for UI components
- Only create custom components when needed
- Adopt angular-material approach to theming
- Improve layout and use more visual cues to help locate date and issues


# Migration Milestones

> This material is out of date. We will update once schedule planning is complete.
### Milestone 1: CF Applications -> Endpoint mgmt and Application views (Complete in Sprint 22)

- App Wall
- App View
- Edit
- Routes
- Instances
- SSH
- Endpoints

### Milestone 1b (Complete in Sprint 22)

- Deployment of an Application as per V1.

### Milestone 2 (Complete in Sprint 24)

- Cloud Foundry View (excluding "assign users")

### Milestone 3 (Complete in Sprint 26)

- Services view
- Services as a top-level concept
- Improve support for services: Service Keys etc

### Milestone 4: Misc (Complete in Sprint 28)

- Add dashboard
- About page
- User profile viewing and edit

### Milestone 5 (Complete in Sprint 30)

- Equivalent functionality of "Assign Users"

### To be scheduled into Milestones:

- e2e tests
- unit tests
- error handling
- Support for plugins/extensions
- Support for vendor modifications
- Internationalisation (i18n)
- Theming/Branding
- Deployment support
- cf push
- docker compose
- helm
- bosh

67 changes: 63 additions & 4 deletions docs/planning/services.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
# Services

The goal with this feature is to provide first-class Services support in Stratos. Up to now, Services support was limited to:
GitHub issue: [\#1391](https://github.com/cloudfoundry-incubator/stratos/issues/1391)

The goal with this feature is to provide first-class Services support in Stratos. Up until now, Services support was limited to:

- Viewing the service instances in a space and being able to delete these
- Creating a service instance an bind it to an application
Expand All @@ -14,19 +16,76 @@ Going forward, we want to be able to expose all fo the concepts around Services
- User-provided Service Instances
- Service brokers

We also want to track the Open Service Request Broker work and ensure that thi sis reflected in Stratos.

## First Class Support

By "First class Support" we mean that Services will become a top-level item in the side-navigation menu, much like Applications is today.

Since Stratos allows multiple CLoud Foundry deployments to be manged, this means that the Services views we add will need to aggregate service information in the same was that the Applciations view does, including being able ot filter by a specific Cloud Foundry deployment, org and space.
Since Stratos allows multiple Cloud Foundry deployments to be manged, this means that the Services views we add will need to aggregate service information in the same was that the Applications view does, including being able ot filter by a specific Cloud Foundry deployment, org and space.

Unlike the Appliction view, where we only have one entity to display (i.e. Applications), for Services, there are a number of entities that we may wish to choose from:
Unlike the Application view, where we only have one entity to display (i.e. Applications), for Services, there are a number of entities that we may wish to choose from:

- Services (i.e. the marketplace or catalog)
- Service Instances (the actual instances that have been created form the cataalog)
- Service Instances (the actual instances that have been created from the catalog)
- Service Plans
- Service Keys
- Service Plan Visibilities
- User-provided Service Instances

## UX

(Thanks to Guillaume Berche and team for their input)

To distinguish between the Service Catalog (Marketplace) and Service Instances, we will break-out two top-level navigation items that will appear in the left-hand nav bar:

1. Marketplace - showing the Service Catalog

1. Services - showing Service Instances

### Marketplace

This will show the Service Catalog. When multiple Cloud Foundry deployments are connected, we will show a filter control to filter the view by CF/Org/Space as we do with applications.

Provides both a card and list view.

Clicking on a card or name in the list will take the user to a more detailed Service Definition View.


#### Service Definition View

This shows:

- Metadata as per the card/list
- Service long description (although)
- Service plans (and not the aggregated number of service plans) as depending on the current logged in user, the visible service plans differ) along with their description and meta-data (including price)
- Button to enable a service instance to be created for this service

(ref: https://apidocs.cloudfoundry.org/1.27.0/services/retrieve_a_particular_service.html)

### Services

This will show Service Instances. When multiple Cloud Foundry deployments are connected, we will show a filter control to filter the view by CF/Org/Space as we do with applications.

Provides both a card and list view.

This shows:

- General metadata
- Which space the service belongs to
- Which spaces the service has been shared with

Clicking of a Service Instance will drill down into a Service Instance Detail view.

#### Service Instance Detail View

Shows:

- General Metadata
- Service keys for this instance


### Service Instance Creation

TODO

88 changes: 17 additions & 71 deletions docs/roadmap.md
Original file line number Diff line number Diff line change
@@ -1,86 +1,32 @@
# Stratos Roadmap

Last Updated: 31 January 2018

The current high-level features are:

* Angular 2 - move to Angular 2 for the front-end UI
* Services - make Services a first-class citizen in the UI - See [here](planning/services.md)
* Metrics - add metrics to Stratos. See [here](planning/metrics.md) for some initial thoughts

Last Updated: 25 April 2018

## Agile

We work on a 2-week Sprint cycle. Sprints start on Wednesdays. For reference, Sprint 22 started 24 Jan 2018.

We are using GitHub issues to track all work items. We use ZenHub to manage these in an agile fashion - see:

https://app.zenhub.com/workspace/o/cloudfoundry-incubator/stratos/boards

## Angular 2

The focus for the first part of 2018 is to complete the move from AngularJS to Angular. This is a significant amount of work.

Note:
- Back-end stays the same (folder structure will most likely be moved around)
- Deployment and other scrpts, artefacts remaint the sames (tweaks as neccessary to build the V2 code)

Stack:

- Angular 5
- Typescript
- RxJS
- Angular Material
- Material Design => Adopt material design while keeping essence of the current Angular 1 app

We plan to accomplish this work in a number of milestones, so that we reach parity with the AngularJS version.

### Milestone 1: CF Applications -> Endpoint mgmt and Application views (Complete in Sprint 22)

- App Wall
- App View
- Edit
- Routes
- Instances
- SSH
- Endpoints

### Milestonte 1b (Complete in Sprint 22)

- Deployment of an Application as per V1.

### Milestone 2 (Complete in Sprint 24)
We work on a 2-week Sprint cycle. Sprints start on Wednesdays. For reference, Sprint 27 started 4 April 2018.

- Cloud Foundry View (excluding "assign users")
We are using GitHub issues to track all work items. We use ZenHub to manage these in an agile fashion - see: https://app.zenhub.com/workspace/o/cloudfoundry-incubator/stratos/boards

### Milestone 3 (Complete in Sprint 26)
## High-Level Features

- Services view
- Services as a top-level concept
- Improve support for services: Service Keys etc
The high-level features that we schedule into the roadmap are identified by the ```feature-request``` label. You can see the current set of features [here](https://github.com/cloudfoundry-incubator/stratos/issues?q=is%3Aopen+is%3Aissue+label%3Afeature-request).

### Milestone 4: Misc (Complete in Sprint 28)
### Near-term roadmap

- Add dashboard
- About page
- User profile viewing and edit
|#|Description|Issue|Notes|
|---|---|---|---|
|1|Technology Refresh (AngularJS => Angular)|[\#1972](https://github.com/cloudfoundry-incubator/stratos/issues/1972)|[Notes](planning/angular.md)|
|2|1st class support for service plan & service instance|[\#1391](https://github.com/cloudfoundry-incubator/stratos/issues/1391)|[Notes](planning/services.md)|
|3|Add support for Application and CF Metrics|[\#1985](https://github.com/cloudfoundry-incubator/stratos/issues/1985)|[Notes](planning/metrics.md)|
|4|Support UAA login UX directly|[\#1384](https://github.com/cloudfoundry-incubator/stratos/issues/1384)||
|5|Deploy application: Enable deploying from private Git repositories|[\#1442](https://github.com/cloudfoundry-incubator/stratos/issues/1442)||

### Milestone 5 (Complete in Sprint 30)

- Equivalent functionality of "Assign Users"
## Schedule

### To be scheduled into Milestones:
We are currently focused on completing out the core features to get V2 on par with V1.

- e2e tests
- unit tests
- error handling
- Support for plugins/extensions
- Support for vendor modifications
- Internationalisation (i18n)
- Theming/Branding
- Deployment support
- cf push
- docker compose
- helm
- bosh
We will shortly review progress and the remaining work and publish a tentative schedule.

Beyond the release of V2, we expect to move to a sprit-based release schedule, publishing a new release every 2 weeks.

0 comments on commit 91d177a

Please sign in to comment.