15:00:40 <farheen_cefalu_a> #startmeeting Architecture Committee
15:00:40 <collabot`> Meeting started Thu Feb 28 15:00:40 2019 UTC.  The chair is farheen_cefalu_a. Information about MeetBot at http://wiki.debian.org/MeetBot.
15:00:40 <collabot`> Useful Commands: #action #agreed #help #info #idea #link #topic.
15:00:40 <collabot`> The meeting name has been set to 'architecture_committee'
15:06:22 <farheen_cefalu_a> #topic Open Design decisions on Open workbench and training
15:12:22 <farheen_cefalu_a> #info Kazi: I have presented the APIs from the ML workbench side.  Chris: has annotated the jira issues with Mvp that will be delivered in boreas timeframe.  I put them in gerrit but have not received any comments.  CDS is ready based on user stories.  These are listed in jira?  The CDS files are in RST.  It would take a lot of time to review on this call.
15:14:36 <farheen_cefalu_a> #info Let's start with Kazi's api.  Kazi: We have 5 apis.  project, pipeline, and notebook service.  I will go through the project service apis in some details.  for the rest of the apis i'll go through critical api definitions.
15:16:08 <farheen_cefalu_a> #info Bryan: Review the  number of emails to the list that are impacting the architecture.  Bring it to peoples attention to make sure people are commenting.
15:18:29 <farheen_cefalu_a> #info Kazi: this is an ML workbench UI.  All services will be docker based ms.  Project, Notebook, and pipeline services will be stored in the back end CDS, jupyterhub, notebook, and nifi servers.  I will be reviewing the empty blue box apis.
15:21:03 <farheen_cefalu_a> #info There are 5 apis for each of the service like create,update, list, delete (archive) the apis.  With all the apis i have defined different sections.  What are the paths.  What triggers the api.  What does the gui do and also the backend business logic which I call behavior.  REST API Path Post /mlWorkbench/.  This API si called when the user request the creation of a new Project in his ML Workbench worspace UI.
15:23:07 <farheen_cefalu_a> #info When this API is successfully executed a named project must be created.  The new project will appear in the new project catalog as well as the acumos bell icon.  User can open a project.  If the api fails the user will receive a notification.  Output is json format.  The json format has already been discussed with the development team and Vaibhav will share.  The backend will make sure the json is valid otherw
15:25:16 <farheen_cefalu_a> #info the uid is there.  Also, the project name is mandatory.  Project name may only contain alpha-numeric characters.  Project version is optional.  Check if the project name and version already exists for that user.   If not the user receives a message.  We are creating a new workbench.  We are creating an entry in the user table.  We are going to populate the authenticated user id.  It will generat a new uuid.  I
15:27:35 <farheen_cefalu_a> #info to create the artifacts in the dbase.  The CDS must return a boolean.  Create a new entry in the project table.  We're going to populate the appropriate fields, id, identifier, version, owner.  Chris: Are there open jira issues? Kazi: I will check.  Chris: Check if these apis already exist.  Kazi: I will share this document with you in the Training project.
15:27:53 <farheen_cefalu_a> #action Kazi put the Training API document to the wiki.
15:29:59 <farheen_cefalu_a> #info Manoop: If you get back to your diagram of list of apis (power point).  Who will be consuming these apis?  ML Workbench.  Who is developing the apis? Vaibhav and team.  UI layer is Sayee.  Sayee: Is this following the existing standard of APIs.
15:32:02 <farheen_cefalu_a> #info Sayee: I'm asking is there a pattern that Acumos follows?  We follow the REST conventions.  We make remote procedure calls and the path indicates the functions.  We follow the standard conventions.  Other than ML Workbench UI will there be any other components consuming these apis?  Kazi: Not in Boreas.
15:34:36 <farheen_cefalu_a> #info We don't need to go into every endpoint.  Sayee: I want to bring up the Nifi and Jupyter apis.  They may fail based on Bryan's feedback.  Some of these apis may change as we evolve.  Kazi: Let me clear I am discussing the north bound APIs.  The two bold black lines may change.  Bryan: We have to conform the apis to jupyter and nifi as a project and they may change over time.  Sayee: Also authenticate ID is not
15:36:39 <farheen_cefalu_a> #info Kazi: The authenticated user id is the login id.  Why is it not obvious to use what we already have.  S: How are the cookies being passed?  ARe we going to make a call to get the id.  Mukesh: I think it is part of a jenkins job to create a nifi node. S: When I click on created project how do i get the id.  JWtoken that is using.  Passing this id to jupyter is not possible.  Not to an external system.
15:38:41 <farheen_cefalu_a> #info Bryan: We also have to work out how we're going to manage the nifi containers.  We need a nifi hub and there is no hub for jupyter.  Sayee: With respect to cluster each node is technically not assigned to a user.  B: A nifi cluster is about spreading a training process across nodes.  S: There are two aspects design time nad content.  How do we manage the containers?  We need a hub.  It's an open question.  We
15:39:14 <farheen_cefalu_a> #info Bryan: I added that to the end of the architecture diagram.
15:40:42 <farheen_cefalu_a> #info K: These are the details that Sayee, Bryan, and I reviewed.  M: no open questions.  the UI developers who will be consuming the apis have to ask questions.
15:41:51 <farheen_cefalu_a> #topic Mukesh Training Project Structures
15:43:17 <farheen_cefalu_a> #info WE will use angular, js along with polymer.  The first option the node modules are checked in at the project level.  The approach that we will get out of this be able to check out the project.  There are maven tools that we are going to be using.
15:45:22 <farheen_cefalu_a> #info M: ML workbench UI infrastructure for the ui.  M: isn't this node module folder obvious?  M: what is the advantage.  This will be a pattern that we will export to the other components to start this.  Manoop: I do not see the pro as an actual pro.  You are saying no need to pre-install
15:47:32 <farheen_cefalu_a> #info Mukesh: You can include the mpm cammands from maven.  The node package has to be installed on the local pc.  Concern we need to have a node package in the individual pcs.  It is for both development and user.  Manoop: Yes, for developer but for production isn't a concern because your module will be packaged as a docker image.
15:49:28 <farheen_cefalu_a> #info Manoop: We have done that in many other open source projects.  They provide us access to run the mpm runtime commands so when the jenkins job kicks in mpm install.  Maven, Jenkins, and fully automated fully install is the std. way everyone is doing in OpenSource.  Mukesh: I will recommend instead of running the mvn modules at shell command.
15:51:17 <farheen_cefalu_a> #info Mukesh: We want to maintain the dependencies.  We should use package.json.  Mukesh: Understood.  The developer needs node package manager installed in maven to make a clean build.  Mukesh: We will have and existing folder Workbench-fe like polymer component.  We would like to move forward.  Sayee: We want to be as pluggable as possible.
15:52:15 <farheen_cefalu_a> #link https://gerrit.acumos.org/r/#/admin/projects/workbench
15:55:53 <farheen_cefalu_a> #info Sayee: The project catalog contains projects.  Mukesh: project catalog is a separate docker container.  Sayee: the project container will have how to modify individual projects.  So this serves a UI? Yes.  It is not user specific?  It can be user specific.  Bryan: A project is a a separate container that runs a subset of ui.  It is a project container per platform.
15:58:35 <farheen_cefalu_a> #info Mukesh: It is better to have one UI that has service.  Bryan and Mukesh are proposing they should be together.  Manoop: I agree with Mukesh and Bryan.  I don't see an advantage in keeping them separate.  We are better off keeping them together.  Sayee: that 's the goal.  As a developer it is easier  to update small containers vs. larger containers.  Bryan: This is important architecture decision.  Chris: YOu t
16:00:28 <farheen_cefalu_a> #info Mukesh: We have to plug them into a logical unit.  It's much easier for developer.  Kazi: I want to make sure that a pipeline catalog and a notebook catalog can exist outside of a project.  Sayee: Agrees.  K: As long as we can create pipeline and notebook outside the catalogs I am fine.
16:01:22 <farheen_cefalu_a> #topic Bryan reviewing acumos-architecture-detail-boreas.png v.6.
16:03:52 <farheen_cefalu_a> #info Bryan: Flink is a new service.  These are all for deployments.  We are going to be using sidecar for licenses tracking.  These are in flight and I'm capturing in diagram.  ML workbench fe and be implement all the web components.
16:06:09 <farheen_cefalu_a> #info Reminder to folks to use the development discussions in the devdiscuss.  Manoop: Have a close discussions with PTLs about their individual components and then bring it to the committees.  B: Get the CMLP to give  a demo to the acumos project.  ML workbench is one example.  That will be essential for ptls to consider.  What is the best code base.
16:06:22 <farheen_cefalu_a> #endmeeting