MN 2017-01-06 “Planning”

Topic: How should we proceed with the .NET JobServer Jobbr regarding a self manageable project with can be evolved by individuals rather than the main contributors

Participants

  • Oliver Zuercher (@olibanjoli)

  • Michael Schnyder (@MichaelSchnyder)


Short Term

  • Version & Release Strategy?? (1PD)

    • Define the way how we uprelease the packages

    • WHich Packages share the same version?

  • Build Scrips (1PD)

    • GitFlow & GitVersion

    • Reasonable Analyzers and fixes –> StyleCop and FxCop Analyzers V2 (Roslyn)

    • .NET UP 4.6.2, C# 6.0

    • Nuget deps Update

    • DB Migration strategy??? –> keep current solution release notes with sql script

  • Small Features (5 PD)

    • Check for RunnerExe on Start (Improve exception message)

    • Delete Jobfolder when empty after (temp and workdir)

    • Set temp dir in jobrun process

    • check all the warn log messages for missing features

    • downgrade InfoLogs to Debug (too verbose)

    • Bug with filenames with special chars when uploading to remote ExcutorController

    • API Features + Client nachziehen (2 PD)

      • Get 100 runs by date

      • paging

      • Get Type UserName / UserId

        • GetByState

      • (- Swagger)

    • Maintenance Mode / Graceful shutdown before redeployment + API Route/Controller, Doc, Client

  • Landing Page / Docs (Total 5)

    • jobbr.io Landing Page (1)

    • ReadTheDocs / GH Pages Setup (1)

      • include swagger defs

    • Playground on azure with swagger (2PD?)

OOS

  • Arch (8 PD?)

    • IJobService (4PD)

      • “IJobManagementService” <-> API

      • “IStateChange” <- updates state from jobrun <– JobRunContext / Execution Controller

  • Chattier / More Specific Storage Provider Interface to avoid Race Conditions (1PD)

  • Separation of API for RemoteExec and JobbrAdmin and group RemoteEx in separate namespace/asm (2-3PD)

V1

  • Improve Testability (21 PD ???)

    • Testing the Scheduler

    • Manipulate Time

Outlook / Long Term

Small Features
- Retention policy for artefacts & jobruns 
- Create subdirectories for jobruns??? Strategy???
- Classname is validated on JobServer start

 
Extended Features 
- Let the JobRunner run as specific user account

Upcoming
- Client API Authentication
- Remote Execution Authentication
- Web Dashboard as Package (seperate Package that consumes the JobbrService[s])
 - Same Host
 - Separate Host 
 - Current JobRuns / Start 
 - Crud Edit Triggers

- Business Result vs. "Technical Logging"
  - Businesslog vs. Runtime Technical log 
  - Concrete result of job / JobResponse
	- Service Message to set the business state
	- Return an object which is 
	    - stored in db after jobrun
		- serialized to the directory and available in api
	- Client awaits result of jobrun 
  
- Long running Job / keep Job running 

- Run Jobs on remote machine
  - Similar to scale out with multiple servers with runners 

- Performance
  - It takes long to find concrete type by the string provided
  

- Scaling
  - Multiple Servers with Runners with one JobServer 
  - Multiple JobServer with multiple local runners each
  - Multiple All
 
- HA
  - Work with messages against DB Server 
  
  
  
Long Term
- Queuing
- Highproio Queue / vs. Low Prio Queue