Refactoring getting started

This commit is contained in:
Ori Zohar 2021-01-08 09:08:23 -08:00
parent 32e40b4921
commit e0b2ff61a7
10 changed files with 284 additions and 166 deletions

View File

@ -7,50 +7,20 @@ description: "Get up and running with Dapr"
no_list: true
---
The recommended way to get started with Dapr is to setup a local development environment (also referred to as [_self-hosted_ mode]({{< ref self-hosted >}})). This guide will walk you through the required steps to install the Dapr CLI and initialize Dapr on your local machine with components for state store and pub/sub so you get started quickly.
Welcome to the Dapr getting started guide!
{{% alert title="Dapr Concepts" color="primary" %}}
If you are looking for an introductory overview of Dapr and learn more about basic Dapr terminology, it is recommended to visit the [concepts section]({{<ref concepts>}}) in the docs.
{{% /alert %}}
## Step 1: Install the Dapr CLI
This guide will walk you through a series of steps to install, initialize and start using Dapr. The recommended way to get started with Dapr is to setup a local development environment (also referred to as [_self-hosted_ mode]({{< ref self-hosted >}}) which includes the Dapr CLI and Dapr sidecar binaries as well as some default components that can help you start using Dapr quickly.
The Dapr CLI is main tool you'll be using for various Dapr related tasks. Most importantly it is used to run an application with a Dapr sidecar, but it also can review sidecar logs, list running services, and run the Dapr dashboard. The Dapr CLI works with both [self-hosted]({{< ref self-hosted >}}) and [Kubernetes]({{< ref Kubernetes >}}) environments.
The following steps in this guide are:
1. Install the Dapr CLI
1. Initialize Dapr
1. Use the Dapr API
1. Configure a component
1. Explore Dapr quickstarts
Follow the instructions in [How-To: Install the Dapr CLI]({{<ref install-dapr-cli>}})
<a class="btn btn-primary" href="{{< ref install-dapr-cli.md >}}" role="button">Next step: Install the Dapr CLI >></a>
## Step 2: Initialize Dapr
Now that you have the Dapr CLI installed, it's time to initialize Dapr on your local machine using the CLI. This step will install the Dapr sidecar binaries on your machine, spin up Zipkin and Redis Docker containers, adn create default component files to help you get started quickly with state management and Pub/Sub.
Follow the instructions in [How-To: Initialize Dapr in your local environment]({{<ref install-dapr-selfhost>}})
{{% alert title="Docker" color="primary" %}}
This guide recommends and assumes you have Docker Desktop installed and initialize Dapr with Docker containers. If you would like to initialize Dapr without a dependency on Docker see [this guidance]({{<ref self-hosted-no-docker.md>}}).
{{% /alert %}}
## Step 3: Get and set state using the Dapr API
At this point, the `dapr init` command has ensured your local environment has the Dapr sidecar binaries as well as default component definitions for both state management and a message broker (both using Redis). Now you can use the Dapr CLI to run a Dapr sidecar and try out the state API that will allow you to store and retrieve a state.
The way it works is depicted in the illustration below:
<img src="/images/state-management-overview.png" width=600>
Instead of a writing an application to call the API you can use the Dapr CLI to just run the sidecar and then send requests directly using `curl`:
Follow the instructions in [How-To: Save and get state]({{<ref howto-get-save-state>}})
## Step 4: Explore the Dapr quickstarts
Now that you had your first experience calling the Dapr API directly, you can explore how Dapr is used in an application. To get started quickly with existing code that shows various Dapr capabilities, see the Dapr quickstarts and start with the "Hello world" quickstart.
Explore the [Dapr quickstarts]({{<ref quickstarts>}})
{{% alert title="Additional commands" color="primary" %}}
While running these quickstarts, consider trying out some other Dapr CLI commands such as `dapr list` and `dapr dashboard`.
{{% /alert %}}
## Optional next steps
- Explore additional steps to configure a Dapr dev environment - [How-To: Setup a Dapr dev environment]({{<ref dev-environment>}})
- Try running Dapr on Kubernetes - [How-To: Install Dapr into a Kubernetes cluster]({{<ref install-dapr-kubernetes>}})
- Setup a non-default state store or message broker - [How-To: Configure state store and pub/sub message broker]({{<ref configure-state-pubsub>}})

View File

@ -2,7 +2,7 @@
type: docs
title: "How-To: Configure state store and pub/sub message broker"
linkTitle: "Configure state & pub/sub"
weight: 40
weight: 80
description: "Configure state store and pub/sub message broker components for Dapr"
aliases:
- /getting-started/configure-redis/
@ -228,5 +228,4 @@ kubectl apply -f redis-pubsub.yaml
{{< /tabs >}}
## Next steps
- [Setup your development environment]({{< ref dev-environment.md >}})
- [Try out a Dapr quickstart]({{< ref quickstarts.md >}})

View File

@ -1,26 +0,0 @@
---
type: docs
title: "How-To: Setup a Dapr dev environment"
linkTitle: "Setup Dev environment"
weight: 50
description: "How to get up and running with Dapr SDKs, extensions, and tooling"
---
As you get up and running with Dapr there are a variety of SDKs and tools to make things easier for you. Check out the below the options to get up and running in your preferred tools.
## Dapr SDKs
Dapr offers a variety of SDKs for developing with Dapr in your preferred language.
Visit the [Dapr SDK docs]({{< ref sdks>}}) for more information and to get started in your preferred language.
## IDE integrations
For information on the available extensions and integrations with IDEs such as [VS Code]({{< ref vscode.md >}}) and [IntelliJ]({{< ref intellij.md >}}) visit the [Dapr IDE integrations docs]({{< ref ides >}}).
## Dapr Dashboard
For easy access to key information about your Dapr applications and components, make sure to run `dapr dashboard` to launch the [dashboard app](https://github.com/dapr/dashboard).
## Next steps
- [Try out a Dapr quickstart]({{< ref quickstarts.md >}})

View File

@ -0,0 +1,105 @@
---
type: docs
title: "Use the Dapr API"
linkTitle: "Use the Dapr API"
weight: 30
---
After running the `dapr init` command in the previous step, your local environment has the Dapr sidecar binaries as well as default component definitions for both state management and a message broker (both using Redis). You can now try out some of what Dapr has to offer by using the Dapr CLI to run a Dapr sidecar and try out the state API that will allow you to store and retrieve a state.
The way it works is depicted in the illustration below:
<img src="/images/state-management-overview.png" width=600>
The illustration shows how an application calls the Dapr sidecar using the state API. In turn, the sidecar calls a state store component (in this case the local Redis container that was set up in the previous step) to get and set a state.
You will now run the sidecar and call the API directly (simulating what an application would do).
### Run the Dapr sidecar
One the most useful Dapr CLI commands is `dapr run`. This command launches an application together with a sidecar. For the purpose of this tutorial, you'll run the sidecar without an application (see the [CLI reference]({{<ref dapr-run.md>}}) for usage of `dapr run` and more information).
Run the following command to run the Dapr sidecar, indicating it is listening on port 3500 and providing an app-id.
```bash
dapr run --app-id myapp --dapr-http-port 3500
```
### Set a state
In a separate terminal run:
{{< tabs "HTTP API (Bash)" "HTTP API (PowerShell)">}}
{{% codetab %}}
```bash
curl -X POST -H "Content-Type: application/json" -d '[{ "key": "name", "value": "Bruce Wayne"}]' http://localhost:3500/v1.0/state/statestore
```
{{% /codetab %}}
{{% codetab %}}
```powershell
Invoke-RestMethod -Method Post -ContentType 'application/json' -Body '[{ "key": "name", "value": "Bruce Wayne"}]' -Uri 'http://localhost:3500/v1.0/state/statestore'
```
{{% /codetab %}}
{{< /tabs >}}
### Get a state
Now get the state you just stored using a key with the state management API:
{{< tabs "HTTP API (Bash)" "HTTP API (PowerShell)">}}
{{% codetab %}}
With the same dapr instance running from above run:
```bash
curl http://localhost:3500/v1.0/state/statestore/name
```
{{% /codetab %}}
{{% codetab %}}
With the same dapr instance running from above run:
```powershell
Invoke-RestMethod -Uri 'http://localhost:3500/v1.0/state/statestore/name'
```
{{% /codetab %}}
{{< /tabs >}}
### See how the state is stored in Redis
You can look in the Redis container and verify Dapr is using it as a state store. Run the following to use the Redis CLI:
```bash
docker exec -it dapr_redis redis-cli
```
And then see how Dapr created a key value pair (with the app-id you provided to `dapr run` as a prefix to the key):
```bash
keys *
```
```
1) "myapp||name"
```
```bash
hgetall "myapp||name"
```
```
1) "data"
2) "\"Bruce Wayne\""
3) "version"
4) "1"
```
```bash
exit
```
<a class="btn btn-primary" href="{{< ref get-started-component.md >}}" role="button">Next step: Define a component >></a>

View File

@ -0,0 +1,9 @@
---
type: docs
title: "Define a component"
linkTitle: "Define a component"
weight: 40
---
<a class="btn btn-primary" href="{{< ref quickstarts.md >}}" role="button">Next step: Explore Dapr quickstarts >></a>

View File

@ -1,14 +1,17 @@
---
type: docs
title: "How-To: Install Dapr CLI"
title: "Install the Dapr CLI"
linkTitle: "Install Dapr CLI"
weight: 10
description: "Install the Dapr CLI to get started with Dapr"
---
## Dapr CLI installation scripts
The Dapr CLI is main tool you'll be using for various Dapr related tasks. Most importantly it is used to run an application with a Dapr sidecar, but it also can review sidecar logs, list running services, and run the Dapr dashboard. The Dapr CLI works with both [self-hosted]({{< ref self-hosted >}}) and [Kubernetes]({{< ref Kubernetes >}}) environments.
Begin by downloading and installing the Dapr CLI for v0.11. This is used to initialize your environment on your desired platform.
Learn more about the CLI and available commands in the [CLI reference docs]( {{< ref cli >}}).
### Run the installation script
Begin by downloading and installing the latest version of the Dapr CLI:
{{% alert title="Note" color="warning" %}}
This command downloads and install Dapr CLI v0.11. To install the latest preview release, please visit the [v1.0-rc2 version of this page](https://v1-rc2.docs.dapr.io/getting-started/install-dapr-cli/).
@ -54,9 +57,55 @@ Each release of Dapr CLI includes various OSes and architectures. These binary v
{{% /codetab %}}
{{< /tabs >}}
Learn more about the CLI and available commands in the [CLI docs]( {{< ref cli >}}).
## Next steps
- [Init Dapr locally]({{< ref install-dapr-selfhost.md >}})
- [Init Dapr on Kubernetes]({{< ref install-dapr-kubernetes.md >}})
### Verify the installation
You can verify the CLI is installed by running the following:
```bash
dapr
```
The output should look like this:
```bash
____/ /___ _____ _____
/ __ / __ '/ __ \/ ___/
/ /_/ / /_/ / /_/ / /
\__,_/\__,_/ .___/_/
/_/
===============================
Distributed Application Runtime
Usage:
dapr [command]
Available Commands:
completion Generates shell completion scripts
components List all Dapr components. Supported platforms: Kubernetes
configurations List all Dapr configurations. Supported platforms: Kubernetes
dashboard Start Dapr dashboard. Supported platforms: Kubernetes and self-hosted
help Help about any command
init Install Dapr on supported hosting platforms. Supported platforms: Kubernetes and self-hosted
invoke Invoke a method on a given Dapr application. Supported platforms: Self-hosted
list List all Dapr instances. Supported platforms: Kubernetes and self-hosted
logs Get Dapr sidecar logs for an application. Supported platforms: Kubernetes
mtls Check if mTLS is enabled. Supported platforms: Kubernetes
publish Publish a pub-sub event. Supported platforms: Self-hosted
run Run Dapr and (optionally) your application side by side. Supported platforms: Self-hosted
status Show the health status of Dapr services. Supported platforms: Kubernetes
stop Stop Dapr instances and their associated apps. . Supported platforms: Self-hosted
uninstall Uninstall Dapr runtime. Supported platforms: Kubernetes and self-hosted
Flags:
-h, --help help for dapr
--version version for dapr
Use "dapr [command] --help" for more information about a command.
```
<a class="btn btn-primary" href="{{< ref install-dapr-selfhost.md >}}" role="button">Next step: Initialize Dapr >></a>

View File

@ -2,7 +2,7 @@
type: docs
title: "How-To: Install Dapr into a Kubernetes cluster"
linkTitle: "Init Dapr on Kubernetes"
weight: 30
weight: 70
description: "Install Dapr in a Kubernetes cluster"
---

View File

@ -1,32 +1,32 @@
---
type: docs
title: "How-To: Initialize Dapr in your local environment"
title: "Initialize Dapr in your local environment"
linkTitle: "Init Dapr locally"
weight: 20
description: "Initialize Dapr in your local environment for testing and self-hosting"
aliases:
- /getting-started/install-dapr/
---
## Prerequisites
- Install [Dapr CLI]({{< ref install-dapr-cli.md >}})
- Install [Docker Desktop](https://docs.docker.com/install/)
- Windows users ensure that `Docker Desktop For Windows` uses Linux containers.
- (alternately) Install Dapr without Docker using [Dapr slim init]({{< ref self-hosted-no-docker.md >}})
## Initialize Dapr using the CLI
This step installs the latest Dapr Docker containers and setup a developer environment to help you get started easily with Dapr.
- In Linux/MacOS Dapr is initialized with default components and files in `$HOME/.dapr`.
- For Windows Dapr is initialized to `%USERPROFILE%\.dapr\`
{{% alert title="Note" color="warning" %}}
This command downloads and installs Dapr runtime v0.11. To install v1.0-rc2 preview, the release candidate for the upcoming v1.0 release please visit the [v1.0-rc2 docs version of this page](https://v1-rc1.docs.dapr.io/getting-started/install-dapr-selfhost/). Note you will need to ensure you are also using the preview version of the CLI (instructions to install the latest preview CLI can be found [here](https://v1-rc2.docs.dapr.io/getting-started/install-dapr-cli/)).
This page provides instructions for installing Dapr runtime v0.11. To install v1.0-rc2 preview, the release candidate for the upcoming v1.0 release please visit the [v1.0-rc2 docs version of this page](https://v1-rc1.docs.dapr.io/getting-started/install-dapr-selfhost/). Note you will need to ensure you are also using the preview version of the CLI (instructions to install the latest preview CLI can be found [here](https://v1-rc2.docs.dapr.io/getting-started/install-dapr-cli/)).
{{% /alert %}}
1. Ensure you are in an elevated terminal:
Now that you have the Dapr CLI installed, it's time to initialize Dapr on your local machine using the CLI.
Dapr runs as a sidecar alongside your application, and in self-hosted mode this means as a process on your local machine. Therefore, initializing Dapr includes fetching the Dapr sidecar binaries and installing them locally.
In addition, the default initialization process also creates a development environment that helps streamlining application development with Dapr. This includes the following steps:
{{% alert title="Docker" color="primary" %}}
This recommended development environment requires [Docker](https://docs.docker.com/install/). It is possible to initialize Dapr without a dependency on Docker (see [this guidance]({{<ref self-hosted-no-docker.md>}})) but next steps in this guide assume the recommended development environment.
{{% /alert %}}
1. Running a Redis container instance to be used as a local state store and message broker
1. Running a Zipkin container instance for observability
1. Creating a default components folder with component definitions for the above
1. Running a container with a Dapr placement service for local actors
### Ensure you are in an elevated terminal
{{< tabs "Linux/MacOS" "Windows">}}
@ -40,85 +40,75 @@ This command downloads and installs Dapr runtime v0.11. To install v1.0-rc2 prev
{{< /tabs >}}
1. Run the `init` CLI command:
### Run the init CLI command
You can install or upgrade to a specific version of the Dapr runtime using `dapr init --runtime-version`. You can find the list of versions in [Dapr Release](https://github.com/dapr/dapr/releases)
```bash
dapr init
```
1. Verify Dapr version:
```bash
dapr --version
```
Output should look like this:
```
CLI version: 0.11
Runtime version: 0.11
```
1. Verify Dapr containers are running:
```bash
docker ps
```
Make sure the `daprio/dapr`, `openzipkin/zipkin`, and `redis` container images are all running:
```
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
0dda6684dc2e openzipkin/zipkin "/busybox/sh run.sh" 2 minutes ago Up 2 minutes 9410/tcp, 0.0.0.0:9411->9411/tcp dapr_zipkin
9bf6ef339f50 redis "docker-entrypoint.s…" 2 minutes ago Up 2 minutes 0.0.0.0:6379->6379/tcp dapr_redis
8d993e514150 daprio/dapr "./placement" 2 minutes ago Up 2 minutes 0.0.0.0:6050->50005/tcp dapr_placement
```
1. Verify Dapr directory has been initialized
{{< tabs "Linux/MacOS" "Windows">}}
{{% codetab %}}
Run:
```bash
ls $HOME/.dapr
```
Output should look like so:
```
bin components config.yaml
```
{{% /codetab %}}
{{% codetab %}}
Open `%USERPROFILE%\.dapr\` in file explorer
![Explorer files](/images/install-dapr-selfhost-windows.png)
{{% /codetab %}}
{{< /tabs >}}
## Uninstall Dapr in self-hosted mode
This cli command removes the placement Dapr container:
Install the latest Dapr runtime binaries:
```bash
dapr uninstall
dapr init
```
{{% alert title="Warning" color="warning" %}}
This command won't remove the Redis or Zipkin containers by default, just in case you were using them for other purposes. To remove Redis, Zipkin, Actor Placement container, as well as the default Dapr directory located at `$HOME/.dapr` or `%USERPROFILE%\.dapr\`, run:
Instead of the latest Dapr binaries, you can install or upgrade to a specific version of the Dapr runtime using `dapr init --runtime-version`. You can find the list of versions in [Dapr Release](https://github.com/dapr/dapr/releases)
### Verify Dapr version
```bash
dapr uninstall --all
dapr --version
```
{{% /alert %}}
{{% alert title="Note" color="primary" %}}
For Linux/MacOS users, if you run your docker cmds with sudo or the install path is `/usr/local/bin`(default install path), you need to use `sudo dapr uninstall` to remove dapr binaries and/or the containers.
{{% /alert %}}
Output should look like this:
```
CLI version: 0.11
Runtime version: 0.11
```
## Next steps
- [Setup a state store and pub/sub message broker]({{< ref configure-state-pubsub.md >}})
### Verify containers are running
As mentioned above, the `dapr init` command launches several containers that will help you get started with Dapr. Verify this by running:
```bash
docker ps
```
Make sure that instances with `daprio/dapr`, `openzipkin/zipkin`, and `redis` images are all running:
```
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
0dda6684dc2e openzipkin/zipkin "/busybox/sh run.sh" 2 minutes ago Up 2 minutes 9410/tcp, 0.0.0.0:9411->9411/tcp dapr_zipkin
9bf6ef339f50 redis "docker-entrypoint.s…" 2 minutes ago Up 2 minutes 0.0.0.0:6379->6379/tcp dapr_redis
8d993e514150 daprio/dapr "./placement" 2 minutes ago Up 2 minutes 0.0.0.0:6050->50005/tcp dapr_placement
```
### Verify components directory has been initialized
On init, the CLI also creates a default components folder which includes several YAML files with definitions for a state store, pub/sub and zipkin. These will be read by the Dapr sidecar, telling it to use the Redis container for state management and messaging and the Zipkin container for collecting traces.
- In Linux/MacOS Dapr is initialized with default components and files in `$HOME/.dapr`.
- For Windows Dapr is initialized to `%USERPROFILE%\.dapr\`
{{< tabs "Linux/MacOS" "Windows">}}
{{% codetab %}}
Run:
```bash
ls $HOME/.dapr
```
Output should look like so:
```
bin components config.yaml
```
{{% /codetab %}}
{{% codetab %}}
Open `%USERPROFILE%\.dapr\` in file explorer
![Explorer files](/images/install-dapr-selfhost-windows.png)
{{% /codetab %}}
{{< /tabs >}}
<a class="btn btn-primary" href="{{< ref get-started-api.md >}}" role="button">Next step: Use the Dapr API >></a>

View File

@ -0,0 +1,22 @@
---
type: docs
title: "Uninstall Dapr in a self-hosted environment"
linkTitle: "Uninstall Dapr"
weight: 60000
description: "Steps to remove Dapr from your local machine"
---
The following CLI command removes the Dapr sidecar binaries and the placement container:
```bash
dapr uninstall
```
The above command will not remove the Redis or Zipkin containers that were installed during `dapr init` by default, just in case you were using them for other purposes. To remove Redis, Zipkin, Actor Placement container, as well as the default Dapr directory located at `$HOME/.dapr` or `%USERPROFILE%\.dapr\`, run:
```bash
dapr uninstall --all
```
{{% alert title="Note" color="primary" %}}
For Linux/MacOS users, if you run your docker cmds with sudo or the install path is `/usr/local/bin`(default install path), you need to use `sudo dapr uninstall` to remove dapr binaries and/or the containers.
{{% /alert %}}

View File

@ -3,7 +3,7 @@ type: docs
title: "Steps to upgrade Dapr in a self-hosted environment"
linkTitle: "Upgrade Dapr"
weight: 50000
description: "Follow these steps to upgrade Dapr in self-hosted mode and ensure a smooth upgrade."
description: "Follow these steps to upgrade Dapr in self-hosted mode and ensure a smooth upgrade"
---