Move How-To Guides into Docs

This commit is contained in:
Aaron Crawfis 2020-09-16 12:52:13 -07:00
parent 0ad1a6050f
commit f70c7554bd
66 changed files with 245 additions and 149 deletions

View File

@ -1,3 +0,0 @@
# documentation
Content for this file to be added

View File

@ -1,110 +0,0 @@
# How Tos
Here you'll find a list of "How To" guides that walk you through accomplishing specific tasks.
## Contents
- [Service invocation](#service-invocation)
- [State management](#state-management)
- [Pub/Sub](#pubsub)
- [Bindings](#bindings-and-triggers)
- [Actors](#actors)
- [Observability](#observability)
- [Security](#security)
- [Middleware](#middleware)
- [Components](#components)
- [Hosting platforms](#hosting-platforms)
- [Developer tooling](#developer-tooling)
## Service invocation
* [Invoke other services in your cluster or environment](./invoke-and-discover-services)
* [Create a gRPC enabled app, and invoke Dapr over gRPC](./create-grpc-app)
## State Management
* [Setup a state store](./setup-state-store)
* [Create a service that performs stateful CRUD operations](./create-stateful-service)
* [Query the underlying state store](./query-state-store)
* [Create a stateful, replicated service with different consistency/concurrency levels](./stateful-replicated-service)
* [Control your app's throttling using rate limiting features](./control-concurrency)
* [Configuring Redis for state management ](./configure-redis)
## Pub/Sub
* [Setup Dapr Pub/Sub](./setup-pub-sub-message-broker)
* [Use Pub/Sub to publish messages to a given topic](./publish-topic)
* [Use Pub/Sub to consume events from a topic](./consume-topic)
* [Use Pub/Sub across multiple namespaces](./pubsub-namespaces)
* [Configuring Redis for pub/sub](./configure-redis)
* [Limit the Pub/Sub topics used or scope them to one or more applications](./pubsub-scopes)
## Bindings and Triggers
* [Implementing a new binding](https://github.com/dapr/docs/tree/master/reference/specs/bindings)
* [Trigger a service from different resources with input bindings](./trigger-app-with-input-binding)
* [Invoke different resources using output bindings](./send-events-with-output-bindings)
## Actors
For Actors How Tos see the SDK documentation
* [.NET Actors](https://github.com/dapr/dotnet-sdk/blob/master/docs/get-started-dapr-actor.md)
* [Java Actors](https://github.com/dapr/java-sdk)
## Observability
### Metrics and Logs
* [Set up Azure Monitor to search logs and collect metrics for Dapr](./setup-monitoring-tools/setup-azure-monitor.md)
* [Set up Fleuntd, Elastic search, and Kibana in Kubernetes](./setup-monitoring-tools/setup-fluentd-es-kibana.md)
* [Set up Prometheus and Grafana in Kubernetes](./setup-monitoring-tools/setup-prometheus-grafana.md)
* [Observe metrics with Grafana](./setup-monitoring-tools/observe-metrics-with-grafana.md)
### Distributed Tracing
* [Diagnose your services with distributed tracing](./diagnose-with-tracing)
* [Use W3C Trace Context](./use-w3c-tracecontext)
## Security
### Dapr APIs Authentication
* [Enable Dapr APIs token-based authentication](./enable-dapr-api-token-based-authentication)
### Mutual Transport Layer Security (mTLS)
* [Setup and configure mutual TLS between Dapr instances](./configure-mtls)
### Secrets
* [Configure component secrets using Dapr secret stores](./setup-secret-store)
* [Using the Secrets API to get application secrets](./get-secrets)
## Middleware
* [Configure API authorization with OAuth](./authorization-with-oauth)
## Components
* [Limit components for one or more applications using scopes](./components-scopes)
## Hosting Platforms
### Kubernetes Configuration
* [Production deployment and upgrade guidelines](./deploy-k8s-prod)
* [Sidecar configuration on Kubernetes](./configure-k8s)
* [Autoscale on Kubernetes using KEDA and Dapr bindings](./autoscale-with-keda)
* [Deploy to hybrid Linux/Windows Kubernetes clusters](./windows-k8s)
## Developer tooling
### Using Visual Studio Code
* [Using Remote Containers for application development](./vscode-remote-containers)
* [Developing and debugging Dapr applications](./vscode-debugging-daprd)
* [Setup development environment for Dapr runtime development ](https://github.com/dapr/dapr/blob/master/docs/development/setup-dapr-development-using-vscode.md)
### Using IntelliJ
* [Developing and debugging with daprd](./intellij-debugging-daprd)
### SDKs
* [Serialization in Dapr's SDKs](./serialize)

View File

@ -1,4 +1,8 @@
# Send events to external systems using Output Bindings
---
title: "Guide: Interface with external resource using bindings"
linkTitle: "State Management"
weight: 2000
---
Using bindings, its possible to invoke external resources without tying in to special SDK or libraries.
For a complete sample showing output bindings, visit this [link](https://github.com/dapr/quickstarts/tree/master/bindings).

View File

@ -1,4 +1,8 @@
# Create an event-driven app using input bindings
---
title: "Guide: Input Bindings"
linkTitle: "State Management"
weight: 1000
---
Using bindings, your code can be triggered with incoming events from different resources which can be anything: a queue, messaging pipeline, cloud-service, filesystem etc.

View File

@ -1,3 +1,9 @@
---
title: "Guide: Publish Message to a Topic with Dapr"
linkTitle: "Guide: Publish"
weight: 4000
---
# Use Pub/Sub to publish a message to a topic
Pub/Sub is a common pattern in a distributed system with many services that want to utilize decoupled, asynchronous messaging.

View File

@ -1,4 +1,8 @@
# Use Pub/Sub to consume messages from topics
---
title: "Guide: Use Pub/Sub to consume messages from topics"
linkTitle: "Guide: Publish"
weight: 3000
---
Pub/Sub is a very common pattern in a distributed system with many services that want to utilize decoupled, asynchronous messaging.
Using Pub/Sub, you can enable scenarios where event consumers are decoupled from event producers.

View File

@ -1,4 +1,8 @@
# Using PubSub across multiple namespaces
---
title: "Use Dapr PubSub with Multiple Namespaces"
linkTitle: "Multiple Namespaces"
weight: 1000
---
In some scenarios, applications can be spread across namespaces and share a queue or topic via PubSub. In this case, the PubSub component must be provisioned on each namespace.

View File

@ -1,4 +1,8 @@
# Limit the Pub/Sub topics used or scope them to one or more applications
---
title: "Limit Application Pub/Sub Topics with Scopes"
linkTitle: "State Management"
weight: 2000
---
[Namespaces or component scopes](../components-scopes/README.md) can be used to limit component access to particular applications. These application scopes added to a component limit only the applications with specific IDs to be able to use the component.

View File

@ -1,4 +1,8 @@
# Access Application Secrets using the Secrets API
---
title: "Guide: Get Secrets with the Dapr Secrets API"
linkTitle: "Guide: Secrets"
weight: 1000
---
It's common for applications to store sensitive information such as connection strings, keys and tokens that are used to authenticate with databases, services and external systems in secrets by using a dedicated secret store.

View File

@ -1,3 +1,10 @@
---
title: "Guide: Invoke & Discover Services"
linkTitle: "Guide: Invoke & Discover Services"
description: "This guide will walk you through configuring and invoking services using dapr"
weight: 100
---
# Invoke remote services
In many environments with multiple services that need to communicate with each other, developers often ask themselves the following questions:

View File

@ -1,7 +1,7 @@
---
title: "Dapr State Management"
linkTitle: "State Management"
weight: 20
weight: 100
---
# State management

View File

@ -1,3 +1,9 @@
---
title: "Guide: Save and Get State Using Dapr"
linkTitle: "Guide: Save/Get State"
weight: 200
---
# Create a stateful service
State management is one of the most common needs of any application: new or legacy, monolith or microservice.

View File

@ -1,4 +1,8 @@
# Create a stateful replicated service
---
title: "Create a stateful replicated service"
linkTitle: "Guide: Stateful Service"
weight: 300
---
In this HowTo we'll show you how you can create a stateful service which can be horizontally scaled, using opt-in concurrency and consistency models.

View File

@ -0,0 +1,5 @@
---
title: "Query Backend State Store"
linkTitle: "Query State Store"
weight: 100
---

View File

@ -1,4 +1,8 @@
# Query Azure Cosmos DB state store
---
title: "Query CosmosDB Store"
linkTitle: "Query CosmosDB"
weight: 1000
---
Dapr doesn't transform state values while saving and retrieving states. Dapr requires all state store implementations to abide by a certain key format scheme (see [Dapr state management spec](../../reference/api/state_api.md). You can directly interact with the underlying store to manipulate the state data, such querying states, creating aggregated views and making backups.

View File

@ -1,4 +1,8 @@
# Query Redis state store
---
title: "Query Redis Store"
linkTitle: "Query Redis"
weight: 2000
---
Dapr doesn't transform state values while saving and retrieving states. Dapr requires all state store implementations to abide by a certain key format scheme (see [Dapr state management spec](../../reference/api/state_api.md). You can directly interact with the underlying store to manipulate the state data, such querying states, creating aggregated views and making backups.

View File

@ -1,4 +1,8 @@
# Query SQL Server state store
---
title: "Query SQL Store"
linkTitle: "Query SQL"
weight: 3000
---
Dapr doesn't transform state values while saving and retrieving states. Dapr requires all state store implementations to abide by a certain key format scheme (see [Dapr state management spec](../../reference/api/state_api.md). You can directly interact with the underlying store to manipulate the state data, such querying states, creating aggregated views and making backups.

View File

@ -0,0 +1,5 @@
---
title: "Dapr Components"
linkTitle: "Components"
weight: 300
---

View File

@ -1,4 +1,8 @@
# Scope components to be used by one or more applications
---
title: "Scope components to one or more applications"
linkTitle: "Scoping"
weight: 1000
---
There are two things to know about Dapr components in terms of security and access.
First, Dapr components are namespaced. That means a Dapr runtime instance can only access components that have been deployed to the same namespace.

View File

@ -1,11 +1,9 @@
---
title: "Referencing Secret Stores in Components"
linkTitle: "Referencing Secrets"
weight: 1
weight: 2000
---
# Referencing Secret Stores in Components
Components can reference secrets for the `spec.metadata` section.
In order to reference a secret, you need to set the `auth.secretStore` field to specify the name of the secret store that holds the secrets.

View File

@ -0,0 +1,5 @@
---
title: "Dapr Configuration"
linkTitle: "Configuration"
weight: 400
---

View File

@ -1,3 +1,9 @@
---
title: "Control Concurrency and Rate Limit Applications"
linkTitle: "Concurrency"
weight: 1000
---
# Rate limiting an application
A common scenario in distributed computing is to only allow for a given number of requests to execute concurrently.

View File

@ -1,3 +1,9 @@
---
title: "Guide: Use gRPC Interface"
linkTitle: "Referencing Secrets"
weight: 2000
---
# Dapr and gRPC
Dapr implements both an http API and a gRPC interface.

View File

@ -1,4 +1,8 @@
# Configuring the Dapr sidecar on Kubernetes
---
title: "Run Dapr in Kubernetes Mode"
linkTitle: "Kubernetes"
weight: 200
---
On Kubernetes, Dapr uses a sidecar injector pod that automatically injects the Dapr sidecar container into a pod that has the correct annotations.
The sidecar injector is an implementation of a Kubernetes [Admission Controller](https://kubernetes.io/docs/reference/access-authn-authz/admission-controllers/).

View File

@ -1,4 +1,8 @@
# Autoscaling a Dapr app with KEDA
---
title: "Autoscaling a Dapr app with KEDA"
linkTitle: "Autoscale"
weight: 3000
---
Dapr is a programming model that's being installed and operated using a sidecar, and thus leaves autoscaling to the hosting layer, for example Kubernetes.
Many of Dapr's [bindings](../../concepts/bindings#supported-bindings-and-specs) overlap with those of [KEDA](https://github.com/kedacore/keda), an Event Driven Autoscaler for Kubernetes.

View File

@ -1,4 +1,8 @@
# Deploy to hybrid Linux/Windows Kubernetes clusters
---
title: "Deploy to hybrid Linux/Windows Kubernetes clusters"
linkTitle: "Hybrid Clusters"
weight: 2000
---
Dapr supports running on kubernetes clusters with windows nodes. You can run your Dapr microservices exclusively on Windows, exclusively on Linux, or a combination of both. This is helpful to users who may be doing a piecemeal migration of a legacy application into a Dapr Kubernetes cluster.

View File

@ -1,4 +1,8 @@
# Guidelines for production ready deployments on Kubernetes
---
title: "Guidelines for production ready deployments on Kubernetes"
linkTitle: "Production"
weight: 1000
---
This section outlines recommendations and practices for deploying Dapr to a Kubernetes cluster in a production ready configuration.

View File

@ -0,0 +1,5 @@
---
title: "Securing Dapr Deployments"
linkTitle: "Security"
weight: 500
---

View File

@ -1,4 +1,8 @@
# Enable Dapr APIs token-based authentication
---
title: "Enable API Token Based Authentication"
linkTitle: "API Token Auth"
weight: 3000
---
By default, Dapr relies on the network boundary to limit access to its public API. If you plan on exposing the Dapr API outside of that boundary, or if your deployment demands an additional level of security, consider enabling the token authentication for Dapr APIs. This will cause Dapr to require every incoming gRPC and HTTP request for its APIs for to include authentication token, before allowing that request to pass through.

View File

@ -1,4 +1,8 @@
# Setup and configure mutual TLS
---
title: "Setup & configure mutual TLS"
linkTitle: "mTLS"
weight: 1000
---
Dapr supports in-transit encryption of communication between Dapr instances using Sentry, a central Certificate Authority.

View File

@ -1,4 +1,8 @@
# Configure API authorization with OAuth
---
title: "Configure API Authention with OAUTH"
linkTitle: "OAuth"
weight: 2000
---
Dapr OAuth 2.0 [middleware](../../concepts/middleware/README.md) allows you to enable [OAuth](https://oauth.net/2/)
authorization on Dapr endpoints for your web APIs,

View File

@ -0,0 +1,5 @@
---
title: "Run Dapr in Self Hosted Mode"
linkTitle: "Self-Hosted"
weight: 100
---

View File

@ -1,3 +1,9 @@
---
title: "Run Dapr in Self Hosted Mode Without Docker"
linkTitle: "Without Docker"
weight: 2000
---
# Self hosted mode without containers
This article provides guidance on running Dapr in self-hosted mode without Docker.

View File

@ -1,3 +1,9 @@
---
title: "Run Dapr in Self Hosted Mode with Docker"
linkTitle: "Run with Docker"
weight: 1000
---
# Run with Docker
This article provides guidance on running Dapr with Docker outside of Kubernetes. There are a number of different configurations in which you may wish to run Dapr with Docker that are documented below.

View File

@ -1,4 +1,8 @@
# Debugging and Troubleshooting
---
title: "Debugging and Troubleshooting"
linkTitle: "Troubleshooting"
weight: 700
---
This section describes different tools, techniques and common problems to help users debug and diagnose issues with Dapr.

View File

@ -1,4 +1,8 @@
# Common Issues
---
title: "Common Issues"
linkTitle: "Common Issues"
weight: 1000
---
This section will walk you through some common issues and problems.

View File

@ -1,4 +1,8 @@
# Logs
---
title: "Dapr Logs"
linkTitle: "Logs"
weight: 2000
---
This section will assist you in understanding how logging works in Dapr, configuring and viewing logs.

View File

@ -1,4 +1,8 @@
# Profiling and Debugging
---
title: "Profiling & Debugging"
linkTitle: "Debugging"
weight: 4000
---
In any real world scenario, an app might start exhibiting undesirable behavior in terms of resource spikes.
CPU/Memory spikes are not uncommon in most cases.

View File

@ -1,4 +1,8 @@
# Tracing
---
title: "Tracing"
linkTitle: "Tracing"
weight: 3000
---
Dapr integrates with Open Census for telemetry and tracing.

View File

@ -0,0 +1,5 @@
---
title: "Dapr IDE Integrations"
linkTitle: "IDEs"
weight: 200
---

View File

@ -1,4 +1,8 @@
# Configuring IntelliJ Community Edition for debugging with Dapr
---
title: "Configuring IntelliJ Community Edition for debugging with Dapr"
linkTitle: "IntelliJ"
weight: 1000
---
When developing Dapr applications, you typically use the Dapr CLI to start your 'Daprized' service similar to this:

View File

@ -1,4 +1,8 @@
# Application development with Visual Studio Code
---
title: "Application development and debugging with Visual Studio Code"
linkTitle: "VSCode Debugging"
weight: 2000
---
## Visual Studio Code Dapr extension
It is recommended to use the *preview* of the [Dapr Visual Studio Code extension](https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-dapr) available in the Visual Studio marketplace for local development and debugging of your Dapr applications.

View File

@ -1,4 +1,8 @@
# Application development with Visual Studio Code
---
title: "Application development and debugging with Visual Studio Code rmeote containers"
linkTitle: "VSCode Remote Containers"
weight: 3000
---
## Using remote containers for your application development

View File

@ -0,0 +1,5 @@
---
title: "Dapr Integrations with Monitoring Tools"
linkTitle: "Monitoring"
weight: 400
---

View File

@ -1,4 +1,8 @@
# Set up Azure Monitor to search logs and collect metrics
---
title: "Set up Azure Monitor to search logs and collect metrics"
linkTitle: "Azure Monitor"
weight: 2000
---
This document describes how to enable Dapr metrics and logs with Azure Monitor for Azure Kubernetes Service (AKS).

View File

@ -1,4 +1,8 @@
# Set up Fluentd, Elastic search and Kibana in Kubernetes
---
title: "Set up Fluentd, Elastic search and Kibana in Kubernetes"
linkTitle: "FluentD"
weight: 1000
---
This document descriebs how to install Fluentd, Elastic Search, and Kibana to search logs in Kubernetes

View File

@ -1,4 +1,8 @@
# Observe metrics with Grafana
---
title: "Observe metrics with Grafana"
linkTitle: "Grafana"
weight: 3000
---
This document describes how to view Dapr metrics in a Grafana dashboard. You can see example screenshots of the Dapr dashboards [here](../../reference/dashboard/img/).

View File

Before

Width:  |  Height:  |  Size: 338 KiB

After

Width:  |  Height:  |  Size: 338 KiB

View File

Before

Width:  |  Height:  |  Size: 360 KiB

After

Width:  |  Height:  |  Size: 360 KiB

View File

Before

Width:  |  Height:  |  Size: 238 KiB

After

Width:  |  Height:  |  Size: 238 KiB

View File

Before

Width:  |  Height:  |  Size: 248 KiB

After

Width:  |  Height:  |  Size: 248 KiB

View File

Before

Width:  |  Height:  |  Size: 501 KiB

After

Width:  |  Height:  |  Size: 501 KiB

View File

Before

Width:  |  Height:  |  Size: 373 KiB

After

Width:  |  Height:  |  Size: 373 KiB

View File

Before

Width:  |  Height:  |  Size: 440 KiB

After

Width:  |  Height:  |  Size: 440 KiB

View File

@ -1,4 +1,8 @@
# Set up Prometheus and Grafana in Kubernetes
---
title: "Set up Prometheus and Grafana in Kubernetes"
linkTitle: "Prometheus/Grafana"
weight: 5000
---
This document describes how to install Prometheus and Grafana on a Kubernetes cluster which can then be used to view the Dapr metrics dashboards.

View File

@ -1,4 +1,8 @@
# Observe Metrics with Prometheus locally
---
title: "Observe Metrics with Prometheus locally"
linkTitle: "Prometheus"
weight: 4000
---
Dapr exposes a Prometheus metrics endpoint you can use to collect time-series
data relating to the execution of the Dapr runtime itself.

View File

@ -0,0 +1,5 @@
---
title: "Dapr Developer SDKs"
linkTitle: "SDKs"
weight: 100
---

View File

@ -1,4 +1,8 @@
# Serialization in Dapr's SDKs
---
title: "Serialization in Dapr's SDKs"
linkTitle: "Serialization"
weight: 1000
---
An SDK for Dapr should provide serialization for two use cases. First, for API objects sent through request and response payloads. Second, for objects to be persisted. For both these use cases, a default serialization is provided. In the Java SDK, it is the [DefaultObjectSerializer](https://dapr.github.io/java-sdk/io/dapr/serializer/DefaultObjectSerializer.html) class, providing JSON serialization.