Skip to content

Commit

Permalink
Improve Quickstart and Release Guide for v1.0.0 (feathr-ai#1107)
Browse files Browse the repository at this point in the history
- Update the quickstart guide to make it easier for users to get started, validate feature definitions and develop new things
  • Loading branch information
blrchen authored Mar 1, 2023
1 parent e4f8606 commit 3be8f06
Show file tree
Hide file tree
Showing 4 changed files with 38 additions and 34 deletions.
6 changes: 2 additions & 4 deletions docs/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,6 @@
</h3>
</html>



[![License](https://img.shields.io/badge/License-Apache%202.0-blue)](https://github.com/feathr-ai/feathr/blob/main/LICENSE)
[![GitHub Release](https://img.shields.io/github/v/release/feathr-ai/feathr.svg?style=flat&sort=semver&color=blue)](https://github.com/feathr-ai/feathr/releases)
[![Docs Latest](https://img.shields.io/badge/docs-latest-blue.svg)](https://feathr-ai.github.io/feathr/)
Expand Down Expand Up @@ -56,12 +54,12 @@ The easiest way to try out Feathr is to use the [Feathr Sandbox](https://feathr-
docker run -it --rm -p 8888:8888 -p 8081:80 -p 7080:7080 -e GRANT_SUDO=yes feathrfeaturestore/feathr-sandbox:releases-v1.0.0
```

And you can view default jupyter notebook:
And you can view Feathr quickstart jupyter notebook:
```bash
http://localhost:8888/lab/workspaces/auto-w/tree/local_quickstart_notebook.ipynb
```

After running the Notebooks, all the features will be registered in the UI, and you can visit the Feathr UI at:
After running the notebook, all the features will be registered in the UI, and you can visit the Feathr UI at:

```bash
http://localhost:8081
Expand Down
2 changes: 1 addition & 1 deletion docs/dev_guide/feathr_overall_release_guide.md
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ Once the release branch and release tag are created, the release pipelines will

3. Automated [workflow](https://github.com/feathr-ai/feathr/blob/main/.github/workflows/publish-to-maven.yml) for publishing runtime jar to [maven/sonatype repository](https://oss.sonatype.org/).

4. Automated [workflow](https://github.com/feathr-ai/feathr/blob/main/.github/workflows/publish-fat-jar.yml) for uploading runtime jar to [Azure storage](https://ms.portal.azure.com/#view/Microsoft_Azure_Storage/ContainerMenuBlade/~/overview/storageAccountId/%2Fsubscriptions%2Fa6c2a7cc-d67e-4a1a-b765-983f08c0423a%2FresourceGroups%2Fazurefeathrintegration%2Fproviders%2FMicrosoft.Storage%2FstorageAccounts%2Fazurefeathrstorage/path/public/etag/%220x8D9E6F64D62D599%22/defaultEncryptionScope/%24account-encryption-key/denyEncryptionScopeOverride//defaultId//publicAccessVal/Container).
4. Automated [workflow](https://github.com/feathr-ai/feathr/blob/main/.github/workflows/publish-to-azure-storage.yml) for uploading runtime jar to [Azure storage](https://ms.portal.azure.com/#view/Microsoft_Azure_Storage/ContainerMenuBlade/~/overview/storageAccountId/%2Fsubscriptions%2Fa6c2a7cc-d67e-4a1a-b765-983f08c0423a%2FresourceGroups%2Fazurefeathrintegration%2Fproviders%2FMicrosoft.Storage%2FstorageAccounts%2Fazurefeathrstorage/path/public/etag/%220x8D9E6F64D62D599%22/defaultEncryptionScope/%24account-encryption-key/denyEncryptionScopeOverride//defaultId//publicAccessVal/Container).

## Release PyPI

Expand Down
51 changes: 29 additions & 22 deletions docs/quickstart_local_sandbox.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,12 @@ title: Quick Start Guide with Local Sandbox

We provide a local sandbox so users can use Feathr easily. The goal of the Feathr Sandbox is to:

- make it easier for users to get started,
- make it easy to validate feature definitions and new ideas
- make it easier for Feathr developers to setup environment and develop new things
- Make it easier for users to get started,
- Make it easy to validate feature definitions and new ideas
- Make it easier for Feathr developers to setup environment and develop new things
- Interactive experience, usually try to run a job takes less than 1 min.

As an end user, you can become productive in less than 5 mins and try out Feathr.
As an end user, you can become productive in less than 5 minutes and try out Feathr.

The Sandbox is ideal for:

Expand All @@ -21,39 +21,47 @@ The Sandbox is ideal for:

## Getting Started

First, make sure you have docker installed successfully on your machine by running this command:
### Prerequisites

Make sure Docker is installed on your machine. You can find official installation guide [here]. (https://docs.docker.com/get-docker/#supported-platforms). To make sure Docker is successfully installed on your machine, run a test container as follows:

```bash
docker run hello-world
```

You should see the `Hello from Docker!` message.

### Step 1: Start Sandbox

To get started using Feathr, simply run the command below. Note that the image is around 5GB so it might take a while to pull it from DockerHub.

```bash
# 80: Feathr UI, 8888: Jupyter, 7080: Interpret
docker run -it --rm -p 8888:8888 -p 8081:80 -p 7080:7080 -e GRANT_SUDO=yes feathrfeaturestore/feathr-sandbox:releases-v1.0.0
```

It should pop up a Jupyter link in `http://127.0.0.1:8888/`. Double click on the notebook file to start the Jupyter Notebook, and you should be able to see the Feathr sample notebook. Click the triangle button on the Jupyter notebook and the whole notebook will run locally.

If you see some errors like below, simply change the `-p 8081:80` part to `-p <new port>:80` so the Feathr UI will be redirected to the new port.
If you see errors like below, simply change the `-p 8081:80` part to `-p <new port>:80` so the Feathr UI will be redirected to the new port.

`docker: Error response from daemon: driver failed programming external connectivity on endpoint hardcore_bose (ae107e924cddce6b942f96f2654369345b027ac82e5e44929a9f132e2af71746): Bind for 0.0.0.0:8081 failed: port is already allocated.`

The default jupyter notebook is here:
### Step 2: Run Quickstart Sample Notebooks

Open jupyter notebook with below link and click the triangle button on the Jupyter notebook and the whole notebook will run locally.
```bash
http://localhost:8888/lab/workspaces/auto-w/tree/local_quickstart_notebook.ipynb
```

![Feathr Notebook](./images/feathr-sandbox.png)

### Step 3: Browse Features in Feathr UI
After running the Notebooks, all the features will be registered in the UI, and you can visit the Feathr UI at:

```bash
http://localhost:8081
```

After executing those scripts, you should be able to see a project called `local_spark` in the Feathr UI. You can also view lineage in the Feathr UI and explore all the details.
You should be able to see a project called `product_recommendation` created in the Feathr UI. You can also view lineage in the Feathr UI and explore all the details.
![Feathr UI](./images/feathr-sandbox-ui.png)

![Feathr UI](./images/feathr-sandbox-lineage.png)
Expand All @@ -64,21 +72,12 @@ The Feathr sandbox comes with:
- Built-in Jupyter Notebook
- Pre-installed data science packages such as `interpret` so that data science development becomes easy
- Pre-installed Feathr package
- A local spark environment for dev/test purpose
- Feathr samples that can run locally
- A local Feathr registry backed by SQLite
- Local spark environment for dev/test purpose
- Feathr quickstart notebook sample that can run locally
- Feathr UI
- Feathr Registry API
- Local Feathr Registry API server backed by SQLite
- Local Redis server

## Build Feathr Sandbox Docker Image

If you want to build the Feathr sandbox, run the below command in the Feathr root directory:

```bash
docker build -f FeathrSandbox.Dockerfile -t feathrfeaturestore/feathr-sandbox .
```

## Configuring Feathr Registry backend in Feathr Sandbox

By default, Feathr Sandbox uses a SQLite backend in Feathr registry, and the content will be deleted if you restart the container. If you want to use a persistent registry, say a remote MySQL database or SQL Server, you can configure an environment variable when starting the Feathr Sandbox container like below, by specifying `FEATHR_SANDBOX_REGISTRY_URL` environment variable:
Expand Down Expand Up @@ -109,4 +108,12 @@ In the future, an VSCode Server might be installed so that you can do interactiv

### Feathr UI and Feathr Registry API Server development

When packaging the Feathr Sandbox docker image, Feathr automatically builds the latest UI and Registry server code, and put them into the right folder of the Feathr Sandbox images.
When packaging the Feathr Sandbox docker image, Feathr automatically builds the latest UI and Registry server code, and put them into the right folder of the Feathr Sandbox images.

### Build Feathr Sandbox Docker Image

If you want to build the Feathr sandbox, run the below command in the Feathr root directory:

```bash
docker build -f FeathrSandbox.Dockerfile -t feathrfeaturestore/feathr-sandbox .
```
13 changes: 6 additions & 7 deletions docs/release-announcements/v1.0.0.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,18 +3,17 @@ layout: default
title: Announce Feathr 1.0.0
---

Announce Feathr 1.0.0
# Announce Feathr 1.0.0

Feathr 1.0.0-rc1 is released on February 16, 2023 with following new features
Feathr 1.0.0 is released on February 28, 2023, with following new features

New Features:
## New Features:

- Feathr sandbox: The Feathr sandbox is a pre-configured environment that you can use to learn how to use Feathr, experiment with features, and build proof-of-concept applications locally, without setting up complex infrastructure on the cloud. Please check out [Quick Start Guide with Local Sandbox](https://feathr-ai.github.io/feathr/quickstart_local_sandbox.html) to get started.

- Online Transform: Online Transform is a feature that enables real-time feature transformations as part of the feature retrieval process, here are some use cases examples:

- Featurization source is only available at inference time​.

- Featurization source is only available at inference time.
- Using offline transform might be a waste of storage and compute resources.
- Users would like to decouple featurization work off up-stream online system.
- Users would like to define transformation once for both online and offline consumption. 
Expand Down Expand Up @@ -45,10 +44,10 @@ New Features:

- Use SparkSQL as DataSource, code sample can be found at https://github.com/feathr-ai/feathr/blob/main/feathr_project/test/test_spark_sql_source.py

- Time pattern support in data source path. Please check [Input File for Feathr](https://feathr-ai.github.io/feathr/how-to-guides/feathr-input-format.html#timepartitionpattern-for-input-files) for more details.
- Time pattern support in data source path. Please check [Input File for Feathr](https://feathr-ai.github.io/feathr/how-to-guides/feathr-input-format.html#timepartitionpattern-for-input-files) for more details.

- Feature names conflicts check and auto correction, please check [Getting Offline Features using Feature Query](https://feathr-ai.github.io/feathr/concepts/get-offline-features.html#feature-names-conflicts-check) for more details.

- Feathr MLOps V2 integration with Terrarform Deployment. Please see [Feathr MLOps V2 Integration Deployment Guide](https://github.com/Azure/mlops-v2/blob/feature/feathr/documentation/deployguides/deployguide_fs_ado.md) for more details.
- Feathr MLOps V2 integration with Terraform Deployment. Please see [Feathr MLOps V2 Integration Deployment Guide](https://github.com/Azure/mlops-v2/blob/feature/feathr/documentation/deployguides/deployguide_fs_ado.md) for more details.

For more information, please refer to the official Feathr documentation.

0 comments on commit 3be8f06

Please sign in to comment.