Jump to: navigation, search

Difference between revisions of "Solum/HighLevelRoadmap"

(Milestone 2014.2.3: Juno-3)
(Solum Roadmap)
Line 19: Line 19:
 
4. '''Developer tooling'''
 
4. '''Developer tooling'''
 
   - IDE plugins, SDK's, CLI, UI console
 
   - IDE plugins, SDK's, CLI, UI console
 +
 +
TBD: Work in Progress
  
 
==Solum Roadmap==
 
==Solum Roadmap==
=== Milestone 2014.1.2: [[Solum/Milestone1|Basic app deployment functionality]] ===
+
=== Previous milestones ===
 
* [[Solum/FeatureBlueprints/ApplicationDeploymentAndManagement|SOLUM-R1]]: Application deployment/management [R1.1 (Story 1 and 2 only), R1.2, R1.3]
 
* [[Solum/FeatureBlueprints/ApplicationDeploymentAndManagement|SOLUM-R1]]: Application deployment/management [R1.1 (Story 1 and 2 only), R1.2, R1.3]
* [[Solum/FeatureBlueprints/LanguagePackFramework|SOLUM-R2]]: Capability: Language pack framework along with automatic selection of packs [R2.1]
 
* [https://blueprints.launchpad.net/solum/+spec/enable-languages SOLUM-R3]: Enable language ‘X’ via the language pack framework [Pick any of Java, Ruby, Python, Node.js, PHP]
 
 
* [https://blueprints.launchpad.net/solum/+spec/user-authentication SOLUM-R4]: User Authentication
 
* [https://blueprints.launchpad.net/solum/+spec/user-authentication SOLUM-R4]: User Authentication
 
* Blueprints: https://launchpad.net/solum/+milestone/milestone-1
 
* Blueprints: https://launchpad.net/solum/+milestone/milestone-1
 
=== '''Milestone 2014.1.3: Get Ready for Atlanta Summit''' ===
 
* UI mockup to reflect program vision
 
 
* Reliability improvements: bug fixes
 
* Reliability improvements: bug fixes
* Usability improvements: documentation, sample apps, better logging
+
* Ability to configure unit tests to be run as part of CI pipeline
 +
* '''Retry on failures''': as an application developer, if the CI invocation faiIs due to any reason, I would be able to trigger rerun of the CI workflow without resubmitting the code.
  
=== '''Milestone 2014.2: Juno-1: Source to Image Pipeline-phase 1''' ===
 
  
[[File:Solum-SourceToImagePipeline.png|framed|center]]
+
=== '''Milestone: Kilo''' ===
 +
* '''Custom Language Pack'''
 +
- '''As an operator''', I can codify setup of custom language stack, and make it available to application developers so that they can start using the custom stack for CI+CD (build, run tests, generate DU).
 +
- '''as an application developer''', I can codify setup of my custom language stack, and have Solum use my custom stack for CI+CD.  
  
* Ability to configure unit tests to be run as part of CI pipeline
+
* Implement Python language pack + sample app
* Postpone: Ability to configure functional tests to be run as part of CI pipeline, via spinning up a temporary test assembly
 
* Postpone: Custom language packs
 
* Nova docker driver improvements
 
* Logging improvements (for operator persona)
 
  
=== '''Milestone 2014.2.2: Juno-2: Source to Image Pipeline-phase 2''' ===
+
* Implement Java Tomcat 7 language pack + sample app
* Postpone: Historical status of CI pipeline runs: status of build, unit tests, functional tests [success/failures, time metrics, execution logs]
 
* Postpone: Streaming logs – consolidated view of logs for a given app (user/developer persona)
 
* Ability for user to configure source to image pipeline (Pipeline resource)
 
* CLI operations to support source to image pipeline
 
* UI console to support source to image pipeline
 
  
=== '''Milestone 2014.2.3: Juno-3''' ===
+
* Implement Ruby on rails language pack + sample app
  
* '''Retry on failures''': as an application developer, if the CI invocation faiIs due to any reason, I would be able to trigger rerun of the CI workflow without resubmitting the code.
+
* Demonstrate MySQL Trove integration with an app deployed on Solum
  
* '''Access to logs''' : as an application developer, I would be able to access build and test logs for my CI invocations on Solum.  
+
* '''Access to logs''' : as an application developer, I would be able to access build, test and deployment logs for my apps on Solum.  
 
  - I want my logs to be accessible only to me
 
  - I want my logs to be accessible only to me
 
  - I want to be able to view summary log data (build pass/pail, test pass/fail, number of tests passed/failed etc)
 
  - I want to be able to view summary log data (build pass/pail, test pass/fail, number of tests passed/failed etc)
Line 62: Line 53:
 
  - on private repos I want all GitHub collaborators on the repo to have access to the test logs. For public repos, I want the public to have access to the test logs.  
 
  - on private repos I want all GitHub collaborators on the repo to have access to the test logs. For public repos, I want the public to have access to the test logs.  
  
* '''Custom Language Pack'''
+
 
- '''As an operator''', I can codify setup of custom build+language stack, and make it available to application developers so that they can start using the custom stack for CI (build, run tests, generate DU).
 
- '''as an application developer''', I can codify setup of my custom build+language stack, and have Solum use my custom stack for CI.
 
  
 
* '''Jenkins Integration''': as a customer already using Jenkins for my CI needs, I would be able to integrate my Jenkins CI instance with Solum and have access to Solum features (i.e. persist build output produced by Jenkins in glance via Solum, automated deployments, etc.)
 
* '''Jenkins Integration''': as a customer already using Jenkins for my CI needs, I would be able to integrate my Jenkins CI instance with Solum and have access to Solum features (i.e. persist build output produced by Jenkins in glance via Solum, automated deployments, etc.)

Revision as of 19:47, 4 February 2015

System Overview

SolumOverview.png

Program Scope

For developers: Provide an easy to use, fast experience developing applications for OpenStack , by providing an automated CI/CD pipeline.

For release managers: Provide streamlined application lifetime management via Environments (dev,test,staging,prod), permissions(I.e. who can deploy to prod),what tests get run in which environment, usage/cost information per environment, etc

The program vision consists of the following 4 items-

1. CI: Source to image (continuous integration pipeline)

 - GIT, build+unit test, generate image, run functional tests, persist image for deployment via Heat

2. CD

 - automated deployment, management of running apps(monitoring, autoscaling, self-healing), blue green deployments, application versioning and rollbacks

3. Environments

 - permissions(I.e. who can deploy to prod),what tests get run in which environment, usage/cost information per environment, etc

4. Developer tooling

 - IDE plugins, SDK's, CLI, UI console

TBD: Work in Progress

Solum Roadmap

Previous milestones

  • SOLUM-R1: Application deployment/management [R1.1 (Story 1 and 2 only), R1.2, R1.3]
  • SOLUM-R4: User Authentication
  • Blueprints: https://launchpad.net/solum/+milestone/milestone-1
  • Reliability improvements: bug fixes
  • Ability to configure unit tests to be run as part of CI pipeline
  • Retry on failures: as an application developer, if the CI invocation faiIs due to any reason, I would be able to trigger rerun of the CI workflow without resubmitting the code.


Milestone: Kilo

  • Custom Language Pack
- As an operator, I can codify setup of custom language stack, and make it available to application developers so that they can start using the custom stack for CI+CD (build, run tests, generate DU). 
- as an application developer, I can codify setup of my custom language stack, and have Solum use my custom stack for CI+CD. 
  • Implement Python language pack + sample app
  • Implement Java Tomcat 7 language pack + sample app
  • Implement Ruby on rails language pack + sample app
  • Demonstrate MySQL Trove integration with an app deployed on Solum
  • Access to logs : as an application developer, I would be able to access build, test and deployment logs for my apps on Solum.
- I want my logs to be accessible only to me
- I want to be able to view summary log data (build pass/pail, test pass/fail, number of tests passed/failed etc)
- I want to view my logs scoped to individual pull requests 
- I want to be able to drill down into detail logs
- I would like to see user friendly logs i.e. logs meant to be consumed by an app developer persona
- on private repos I want all GitHub collaborators on the repo to have access to the test logs. For public repos, I want the public to have access to the test logs. 


  • Jenkins Integration: as a customer already using Jenkins for my CI needs, I would be able to integrate my Jenkins CI instance with Solum and have access to Solum features (i.e. persist build output produced by Jenkins in glance via Solum, automated deployments, etc.)
  • Trove Integration: as an application developer, I would be able to deploy apps that have ready access to trove MySQL service.

Milestone 2015.1

Milestone 2015.1.2

  • Auto scaling
  • Self-healing
  • Custom SSL Certificates
  • Container Sleep/Wake
  • Blue/green deployments

Milestone 2015.1.3

  • Environments (Dev, Test, Prod, custom)
    • Application Lifecycle Management (promote code from dev to test to prod)
  • SDK for interfacing with the PaaS REST API
  • Roles and privileges


Milestone 2015.2

  • Non-web workloads (Background and scheduled jobs)
  • HA via distributed placement of load balanced set of code container instances
  • Network isolation - dedicated private network for applications
  • IDE Plugins for Eclipse, IntelliJ, JBoss Studio, Komodo
  • Integration with online IDE
  • Online developer sandbox
  • Additional services