- Acumos Agile Development Guide
- Acumos Architecture Mapping to Repos Jira etc
- Best Practices
- Community Roles
- Getting Involved
- Tool Guides
Other quick links to info you may need:
Table of Contents:
This page is intended to introduce those interested in Acumos or joining Acumos in some role, to the Acumos community and how it will support the various roles of Acumos project developers, modelers, and model users. In addition to the child pages shown above, the information below is being prepared for the "Acumos Community Deep-Dive" session as planned for Acumos at ONS 2018. This is a work in progress, intended to be a walkthru at a high level of the community for Acumos members and those interested in joining Acumos, and will reference other content on this wiki through links.
It Takes a Community
Acumos Community Roles: Developers, Modelers, Model Users
The Acumos project will serve three distinct communities with varying and somewhat overlapping roles in the community. These include Acumos project developers, modelers that will use an Acumos Portal to develop, publish, and collaborate on models, and model end-users that will apply those models for deployed applications. Acumos will establish specific support measures for these communities, to ensure they are getting the most value for their engagement with Acumos. Details will be finalized by the Acumos TSC, but such measures could include subcommittees focused on serving these distinct communities, or distinct approaches to collaboration tools, processes, and establishing best practices.
Getting Started with the Acumos Community
The first step for anyone who wants to get directly involved in any role for Acumos is to visit the Acumos wiki (you are here... OK!) and create an LF account. Through this wiki you can find a wealth of guidance and documentation on Acumos. While currently focused on what was needed to get the project launched and new project developers on-boarded, there is substantial help already here for modelers and users, and we will be enhancing it much further as the wider project community forms.
Roles and Focuses for Community Members
The Acumos project offers members the opportunity to take on some typical open source project roles, as well as roles specific to further developing the Acumos Portal and its integration with the model ecosystem it will enable. Collectively these can be referred to as the Acumos platform, since it represents an enabler far beyond its core functions of facilitating model design, publication, and collaboration. Roles typical to open source projects that develop code for platforms include 1) being contributors or committers to code, documentation, and supporting infrastructure for the platform; 2) building it; 3) testing it; 4) tracking its progress; and 5) managing releases. Developer focuses for the Acumos platform as a more-or-less typical content collaboration framework based around a web portal, include the portal presentation layer, content on-boarding, cataloging, backend content management and databases, and operations support. Developer focuses perhaps more specific to Acumos as an AI model focused platform include its integration with various modeling toolkit developer environments, the Design Studio for composing modeled solutions, model training, helping others learn how to use it though sample applications, and integrating with with other AI focused projects. Finally, since a key Acumos goal is to build a wide community of Acumos portals through which a rich set of models are collaboratively developed, there is the key function of federating those portals into an effective ecosystem.
Model Collaboration Through the Acumos Community
The Acumos platform's ultimate goal is to foster a vibrant ecosystem of collaboratively developed AI solutions. For that purpose, the Acumos community will establish ways of working for that ecosystem, directly supporting collaborative relationships between solution developers and users. What exists at launch is just the start. As the community and solution ecosystem takes off, specific goals and challenges for that ecosystem will be addressed by the Acumos project, with resulting processes, best practices, and supporting infrastructure. In particular, the goals for enabling iterative, collaborative development and application of modeled solutions will be supported by a roadmap of new features for the Acumos Portal and the wider platform. These include model training, training data source creation and curation, model versioning, and processes for forking and subsequent merging of models and solutions.
How to Learn About It
The seed code for the Acumos project, representing a set of components and supporting tools for the Acumos Platform, is summarized on the wiki at Acumos Architecture Mapping to Repos Jira etc. Documentation for the components is available from the Acumos Documentation page, as well through links on the Acumos AI Wiki main page, and the various subpages focused on the architecture and specific components.
How to Get It
The Acumos project code is available in publicly accessible git repositories, which you can see from the Acumos Gerrit projects page, as well as through direct links for each component at the Acumos Architecture Mapping to Repos Jira etc page. You can use any git client to clone the repos using the links provided at the repo-specific pages at the Gerrit projects page.
The Acumos repos are also mirrored to github at https://github.com/acumos and clonable from there.
How to Deploy It
As of launch, there are two main approaches to deploying your own Acumos portal. First, you can use a partial manual process for deploying and configuring the components in a production-oriented, multi-node environment as described on the Acumos Installation wiki page. Second, if you need a more automated approach which can support an all-in-one and developer focused deployment, you can see the page for Acumos All-In-One Deployment Instructions. The all-in-one deployment can typically be completed in under 20 minutes on bare metal host machine with as little as 16GB of RAM, or in a single virtual machine.
How to Use It
User guides to the Acumos Portal and each component are available from the Acumos Documentation page, and include specific guides:
- Portal and Marketplace User Guide
- Portal and Marketplace Admin Guide
- On-Boarding User Guide
- various operator guides
Use of the the Acumos portal is intended to be intuitive, but like any new web portal it's helpful to review the documentation, and reach out to the community via email at firstname.lastname@example.org, or on Stackoverflow.
How to Enhance It
As typical for most open source projects, you can contribute enhancements to any Acumos project repo or component once you have joined the Acumos project by:
- creating an account with the LF
- logging into the Acumos Gerrit site and accepting the offered contributor license agreement if the company associated with your email address hasn't agreed to the Acumos corporate contributor license agreement
- cloning the Acumos repos you are interested in contributing to, as described before
- updating something in the repo clone and submitting a patch as described on the Your First Patch
- adding reviewers to your patch and going thru the process with those reviewers and the repo committers of getting your patch approved
As the Acumos TSC establishes additional project management practices, additional steps are likely to be required so that the project can evolve in a planned, orderly manner. These steps might include pre-release planning such as collection and review of proposals for new features, which provide an overview of the goals of proposed changes, design requirements, technical approach, etc. Such specifications are referred to in other projects as blueprints, and can help project teams ensure that the planned work for a release is clearly understood, and agreed by consensus as something that the project should take on in the release. A key decision point in that agreement is the availability of developers who can ensure the new features are delivered on time and with the required qualities. Those qualities are likely to be further established by the TSC as developer best practices and policies for code acceptance into the Acumos platform. Examples are ability of the contribution to pass license and security scans, inclusion of component-level unit tests, and updates as needed to documentation and system-level tests.
Acumos Project Infrastructure
The Acumos project will leverage many of the tools common to other open source projects, as shown on the wiki page for Project Infrastructure. Acumos will likely adopt some of the best practices from other LF open source projects in the ways these tools are used, and develop some of its own practices due to its unique nature. The tools fall into several categories as below.
Collaboration and Communication Tools
The heart of cohesive open source communties is the way in which members interact and govern the project. In addition to regular project meetings, collaboration and communication tools are used to ensure transparency, consensus, and progress.
A key collaboration tool for Acumos is Jira. Central to Acumos project management, Jira is the tool through which Acumos will plan and manage what is done in a release and in development sprints of that release, as well as manage issues that arise related to the release. For that purpose, Jira for the Acumos platform is organized into components related to the project repos, as shown on the wiki page Acumos Architecture Mapping to Repos Jira etc. Jira will also likely be used by Acumos for managing other aspects of the Acumos project, including project infrastructure, and as needed in support of the Acumos federated community of modelers and model users. As described before, the Acumos TSC will establish community processes that leverage Jira for these purposes as needed.
Enabling collaboration on the project's core products such as code, documentation, tests, and tools are its git and Gerrit tools for contributing to the project, and collaboratively reviewing/approving those contributions. The Acumos TSC will establish processes for the use of these tools to support the project's goaals for transparency, consensus, and quality.
Supplementing the project's published documentation, this wiki provides quick intros to the Acumos project goals, architecture, components, organization, developer and modeler getting started guides, community event planning, etc. When something important from a release-independent view needs to be established and shared, and isn't itself addressed by some published document, someone will add it to the wiki first, and it potentially will be captured in a document later. Thus this wiki is a collaboratively edited, and more dynamic home for what members and users need to know about the community.
Other conventional tools will be important as well, including various mail lists you can signup for at the Acumos mail archive, and direct communication tools such as IRC. Acumos IRC channels provided through Freenode.net, Acumos members can reach out to the LF release engineering team on #lf-releng. In addition to the general Acumos channel #acumos, the Acumos project will likely setup additional channels which are used for project meetings, with bot support for automatic collection of meeting minutes, as well as other purposes. Although not open to non-members, Acumos Slack channels will provide additional features such as project-internal channels, threaded communication, etc. At the current time Slack is setup primarily as a way to interact with the LF team.
Build, Test, and Repository tools
The Acumos build and test tools are the heart of the factory that produces, verifies, and hosts Acumos platform components. As described on the wiki page Project Infrastructure and in more detail at Acumos Developer's Guide to CI-CD Resources and Processes at the LF, the main tools in the build infrastructure are Jenkins and various tools that it uses to validate, build, test, and archive the results. These results include build job logs. component artifacts saved in Nexus repositories as libraries and docker images, and documents published at Acumos documentation hosted by ReadTheDocs. These tools are configured and managed by the LF infrastructure team in collaboration with Acumos project members that specialize in various focuses such as validating, building, documenting, and testing for Acumos.
Model Collaboration Tools
The Acumos portal provides the main support provided by the Acumos project for model collaboration. This support includes the basic "user journeys" such as onboarding a model, designing composite models, sharing models either privately or publicly, downloading models, etc. The Acumos documentation and "Using Acumos" pages on the Acumos wiki provide modeler intros to these user journeys and Acumos portal tools.
As the modeler community developers around Acumos and the Acumos platform evolves in subsequent releases, additional model collaboration tools and processes are expected to be developed, including those for specific modeling toolkits, such as related to the R Cloud community. Also since the Acumos first release focuses primarily on pre-trained models, a major focus for the next release will be the collaboration on and integration of training data sources, and tools that support those processes.
Community Federation Tools
The Acumos portal is also the main focus for establishing federation relationships between Acumos portals and other systems such as ONAP-based catalog and design environments.
While the processes for arranging federated relationships are largely direct and bilateral at the current time, as the Acumos ecosystem of federated sites grows, the Acumos project may develop additional tools for support of more dynamic and automated federation.
Acumos Project Organization
Acumos in the LF Deep Learning Umbrella Project
The Acumos project is the first of a series of projects expected to be formed under the LF Deep Learning umbrella project. LF Deep Learning will provide new opportunities for these projects to collaborate, and extend the ecosystem of models and applications for deep learning and artificial intelligence. Also since membership in LF Deep Learning is expected to provide Acumos members access to any new projects formed under LF Deep Learning at no additional cost (other than time), it's expected to broaden collaboration generally across deep learning and artificial intelligence communitiues.
LF Deep Learning Board and Board Committees
The LF Deep Learning project will have a typical governance structure including a Board of Directors and committees of the Board with specific focuses, such as Outreach, Budget, Legal, Technical Advisory Council, etc. The initial Board makeup and governance is described by the LF Deep Leaning Foundation Participation Agreement and Funding Charter. The Board's role is typical, focusing on governance of the overall LF Deep Learning Foundation, in collaboration with the Technical Steering Committees of each project under LF Deep Learning through the Technical Advisory Council.
Technical Steering Committee (TSC)
The Acumos TSC is the governing body of the Acumos project as established by the Technical Charter of the Acumos Project. The TSC's role will be similarly typical in that it is responsible for all technical oversight of the Acumos project. Beyond the Technical Charter, the TSC will be responsible for establishing Acumos project and community goals, policies, practices, processes, etc and will establish committees as needed for those purposes. The initial meetup of the Acumos TSC will occur during ONS 2018, although it may still be in preliminary form as new members come on board and TSC representatives from current members are finalized. As the TSC establishes its technical oversight and goals etc, those will be documented on the Acumos wiki. Typical for LF open source projects, the meetings of the TSC will be open, with agendas and minutes published on the Acumos wiki as well.
Acumos Component and Model projects
One of the first tasks of the TSC will be to group the Acumos seed code and broader project needs into a set of projects that will have distinct teams and Project Technical Leads (PTLs). A working proposal for the project organization is shown at the Acumos Architecture Mapping to Repos Jira etc wiki page. This proposal groups the repos into several major areas based with an average of 2 to 3 repos under the scope of each project. The main goal of this organization proposal is to promote teams with comprehensive and cohesive focus within a technical area.
As more model toolkits are adopted and the Acumos model catalog develops, additional repos and related projects are likely to be created. Promoting overall project synergy as a way to manage the potential complexity of an increasingly diverse set of projects is one of the main roles of the TSC.
Modeler and Model User Community
Although the primary initial focus of the Acumos project will be on the Acumos Portal and its community of developers, featured in the initial release are specific tools that will enable the growth of the federated model marketplace and the establishment of communities of modelers and model users. As noted before, this is expected to result in development of new project infrastructure, processes, and Acumos platform capabilities as the needs of these communities become clear. In the meantime, the Acumos TSC may establish committees to help foster the growth of the modeler and model user communities, or this may become just an organically established support role of the Acumos community at large, or of specific project teams under Acumos.