Skip to content

End-to-end Project Template (GCP Stack)

AI Singapore's Kapitan MLOps EPTG Banner

Customised for {{cookiecutter.project_name}}.

Project Description: {{cookiecutter.description}}

This template (which also serves as a guide) was generated using the following cookiecutter template: https://github.com/aisingapore/ml-project-cookiecutter-gcp

This mkdocs site is for serving the contents of the end-to-end guide in a more readable manner, as opposed to plain Markdown views. The contents of this guide have been customised according to the inputs provided upon generation of this repository through the usage of cruft, following instructions detailed here .

Inputs provided to cookiecutter/cruft for the generation of this template:

  • project_name: {{cookiecutter.project_name}}
  • description: {{cookiecutter.description}}
  • repo_name: {{cookiecutter.repo_name}}
  • src_package_name: {{cookiecutter.src_package_name}}
  • src_package_name_short: {{cookiecutter.src_package_name_short}}
  • gcp_project_id: {{cookiecutter.gcp_project_id}}
  • gcr_personal_subdir: {{cookiecutter.gcr_personal_subdir}}
  • author_name: {{cookiecutter.author_name}}
  • open_source_license: {{cookiecutter.open_source_license}}

There are two separate guides:

  • User Guide: This guide is for the users of the MLOps platforms and toolings.
  • Admin Guide: This guide is for the administrators and provisioners of the infrastructure required for setting up the components of the MLOps platforms and toolings.

Overview For User Guide

  1. Prerequisites
  2. Preface
  3. MLOps Components & Platform
  4. Development Environment
  5. Virtual Environment
  6. Data Storage & Versioning
  7. Job Orchestration
  8. Deployment
  9. Batch Inferencing
  10. Continuous Integration & Deployment
  11. Documentation
  12. Streamlit

Overview for Admin Guide

Coming soon...

Directory Tree

{{cookiecutter.repo_name}}
    ├── {{cookiecutter.repo_name}}-conda-env.yml
    │                   ^-  The `conda` environment file for reproducing
    │                       the project's development environment.
    ├── LICENSE         <-  The license this repository is to be
    │                       respected under. Can be absent due to
    │                       omission upon generation of repository.
    ├── README.md       <-  The top-level README containing the basic
    │                       guide for using the repository.
    ├── .gitlab-ci.yml  <-  YAML file for configuring instructions for
    │                       GitLab CI/CD.
    ├── .dockerignore   <-  File for specifying files or directories
    │                       to be ignored by Docker contexts.
    ├── .pylintrc       <-  Configurations for `pylint`.
    ├── .gitignore      <-  File for specifying files or directories
    │                       to be ignored by Git.
    ├── aisg-context    <-  Folders containing files and assets relevant
    │   │                   for works within the context of AISG's
    │   │                   development environments.
    │   ├── code-server <-  Directory containing the entry point script
    │   │                   for the VSCode server's Docker image.
    │   ├── guide-site  <-  Files relevant for spinning up the `mkdocs`
    │   │                   site to view the end-to-end guide.
    │   ├── jupyter     <-  Directory containing the entry point scripts
    │   │                   and config for the Jupyter server's Docker
    │   │                   image.
    │   ├── k8s         <-  Manifest files for spinning up Kubernetes
    │   │                   resources.
    │   └── polyaxon    <-  Specification files for services and jobs
    │                       to be executed by the Polyaxon server.
    ├── assets          <-  Screenshots and images.
    ├── conf            <-  Configuration files associated with the
    │                       various pipelines as well as for logging.
    ├── data            <-  Folder to contain any data for the various
    │                       pipelines. Ignored by Git except its
    │                       `.gitkeep` file.
    ├── docker          <-  Dockerfiles associated with the various
    │                       stages of the pipeline.
    ├── docs            <-  A default Sphinx project; see sphinx-doc.org
    │                       for details.
    ├── models          <-  Directory for trained and serialised models.
    ├── notebooks       <-  Jupyter notebooks. Naming convention is a
    │                       number (for ordering), the creator's
    │                       initials, and a short `-` delimited
    │                       description, e.g.
    │                       `1.0-jqp-initial-data-exploration`.
    ├── scripts         <-  Bash scripts for any parts of the pipelines.
    └── src             <-  Directory containing the source code and
        |                   packages for the project repository.
        |── {{cookiecutter.src_package_name}}
        |               ^-  Package containing modules for all pipelines
        |                   except deployment.
        |── {{cookiecutter.src_package_name}}_fastapi
        |               ^-  Package for deploying the predictive models
        |                   within a FastAPI server.
        └── tests       <-  Directory containing tests for the
                            repository's packages.

Reference(s):