Skip to content

Commit

Permalink
docs(jcloud): update faq and lifetime (#5191)
Browse files Browse the repository at this point in the history
* docs(jcloud): update faq and lifetime

* chore(docs): resolve changes

* docs(jcloud): update restrictions

Co-authored-by: Deepankar Mahapatro <deepankar.mahapatro@jina.ai>
  • Loading branch information
npitsillos and deepankarm committed Sep 22, 2022
1 parent 1eab9ce commit 96c5e7c
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 45 deletions.
25 changes: 14 additions & 11 deletions docs/fundamentals/jcloud/index.md
Expand Up @@ -61,6 +61,10 @@ If you have no access to the web browser in your integration environment, you ca

In Jina's idiom, a project is a [Flow](https://docs.jina.ai/fundamentals/flow/), which represents an end-to-end task such as indexing, searching or recommending. In this README, we will use "project" and "Flow" interchangeably.

```{caution}
Flows have a maximal {ref}`lifetime<jcloud-lifetime>` after which they are automatically deleted.
```

A Flow can have two types of file structure: a single YAML file or a project folder.

#### A single YAML file
Expand Down Expand Up @@ -286,17 +290,16 @@ JCLOUD_LOGLEVEL=DEBUG jc deploy flow.yml

If you don't see any obvious errors, please raise an issue in [JCloud](https://github.com/jina-ai/jcloud/issues/new/choose)

## FAQ

- **Is everything free?**

Yes at the moment! We just need your feedback - use `jc survey` to help us understand your needs.
## Restrictions

- **How powerful is JCloud?**
JCloud scales according to your need. You can demand different resources (GPU / RAM / CPU / Storage / instance-capacity) your Flows & Executors need. We have the following restrictions on its usage. If you have specific resource requirements, please contact us [on Slack](https://slack.jina.ai) or raise a [Github issue](https://github.com/jina-ai/jcloud/issues/new/choose).

JCloud scales according to your need. You can demand all the resources (GPU / RAM / CPU / Storage / instance-capacity) your Flows & Executors need. If there's anything particular you'd be looking for, you can contact us [on Slack](https://slack.jina.ai) or let us know via `jc survey`.

- **What restrictions are there on JCloud?**

- Deployments are only supported in `us-east` region.
- Each Executor is allowed a maximum of 4 GPUs, 16G RAM, 16 CPU cores & 10GB of block storage.
```{admonition} Restrictions
- Deployments are only supported in `us-east` region.
- Each Executor is allowed a maximum of 4G RAM, 2 CPU cores & 10GB of block storage.
- 3 Flows can be deployed at a time, out of which there can be 1 Flow using GPU.
- A maximum of 2 GPUs are allowed per Flow.
- Flows with Executors using GPU are removed after 12hrs, whereas other Flows are removed after 72hrs.
```
44 changes: 10 additions & 34 deletions docs/fundamentals/jcloud/yaml-spec.md
Expand Up @@ -40,7 +40,7 @@ By default, `0.1 (1/10 of a core)` CPU is allocated to each Executor. You can us

JCloud offers the general Intel Xeon processor (Skylake 8175M or Cascade Lake 8259CL) by default.

```{note}
```{hint}
Maximum of 16 cores is allowed per Executor.
```

Expand All @@ -62,8 +62,8 @@ JCloud supports GPU workloads with two different usages: `shared` or `dedicated`

If GPU is enabled, JCloud will provide NVIDIA A10G Tensor Core GPUs with 24G memory for workloads in both usage types.

```{note}
When using GPU resources, it may take few extra mins until all Executors ready to serve traffic.
```{hint}
When using GPU resources, it may take a few extra minutes before all Executors are ready to serve traffic.
```

#### Shared GPU
Expand Down Expand Up @@ -116,7 +116,7 @@ executors:

By default, `100M` of RAM is allocated to each Executor. You can use `memory` arg under `resources` to customise it.

```{note}
```{hint}
Maximum of 16G RAM is allowed per Executor.
```

Expand All @@ -135,7 +135,7 @@ executors:

JCloud supports 2 kinds of Storage types [efs](https://aws.amazon.com/efs/) (default) and [ebs](https://aws.amazon.com/ebs/). The former one is a network file storage, whereas the latter is a block device.

````{note}
````{hint}
By default, we attach an `efs` to all the Executors in a Flow. The benefits of doing so are
Expand Down Expand Up @@ -193,7 +193,7 @@ executors:

JCloud autoscaling leverages [Knative](https://knative.dev/docs/) behind the scenes, and `jinahub+serverless` uses a set of Knative configurations as defaults.

```{note}
```{hint}
For more information about the Knative Autoscaling configurations, please visit [Knative Autoscaling](https://knative.dev/docs/serving/autoscaling/).
```

Expand Down Expand Up @@ -221,7 +221,7 @@ executors:
Below are the defaults and requirements for the configurations:

| Name | Default | Allowed | Description |
|--------|-------------|--------------------------|-------------------------------------------------|
| ------ | ----------- | ------------------------ | ----------------------------------------------- |
| min | 1 | int | Minimum number of replicas (0 means serverless) |
| max | 2 | int, up to 5 | Maximum number of replicas |
| metric | concurrency | `concurrency` / `rps` | Metric for scaling |
Expand All @@ -237,8 +237,8 @@ To expose users' Flows to the public Internet with TLS, JCloud provides support

In JCloud. We use [Let's Encrypt](https://letsencrypt.org/) for TLS.

```{note}
The JCloud gateway is different from Jina's Gateway. In JCloud, a gateway works as a proxy to distribute internet traffic between Flows, each of which has a Jina Gateway (which is responsible to manage external gRPC/HTTP/Websocket traffic to your Executors)
```{hint}
The JCloud gateway is different from Jina's Gateway. In JCloud, a gateway works as a proxy to distribute internet traffic between Flows, each of which has a Jina Gateway (which is responsible for managing external gRPC/HTTP/Websocket traffic to your Executors)
```

### Set timeout
Expand Down Expand Up @@ -341,7 +341,7 @@ executors:
uses: jinahub+docker://Executor1
```

```{note}
```{hint}
Keys in `labels` have the following restrictions.
- Must be 63 characters or less.
Expand All @@ -351,27 +351,3 @@ Keys in `labels` have the following restrictions.
- jina-version
- retention-days
```


### Lifetime

A Flow that receives no traffic in 24 hours will be automatically deleted by default.

To ignore the lifetime reclaim policy of a Flow, you can use the `retention_days` parameter in the Flow yaml. `retention_days` will keep the flow alive for `x` days (0<x<365). flows is going to be removed after `x` days regardless of above reclaim policy. `-1` is to keep the flow alive regardless of the reclaim policy.

```{note}
- If {ref}`retention-days <retention-days>` argument configured as `x` (0<x<365). Flows will be removed after `retention-days`, regradless of the usage.
- If {ref}`retention-days <retention-days>` argument configured as `-1`. Flows will not be removed, regradless of the usage.
- If {ref}`retention-days <retention-days>` argument not configured, or set to `0`. We will detect if flows are idle daily, they will be terminated if they are not serving requests for the last 24hrs.
```

```yaml
jtype: Flow
jcloud:
retention_days: 7
executors:
- name: executor1
uses: jinahub+docker://Executor1
```

0 comments on commit 96c5e7c

Please sign in to comment.