Exploring Dapr: Open-Source Runtime for Cloud and Edge with @marcduiker

10 Aug 2024 (1 month ago)
Exploring Dapr: Open-Source Runtime for Cloud and Edge with @marcduiker

GitHub Models

  • The speaker introduces GitHub Models, a platform for exploring and experimenting with AI models.
  • GitHub Models offers a curated collection of models with entitlements attached to GitHub accounts.
  • Users can interact with models through a playground, adjust parameters, and simulate their use in applications.
  • The speaker demonstrates how to switch between different models and access detailed information about them.
  • GitHub Models provides code integration, allowing users to start using models with code and access preconfigured development environments.
  • The speaker highlights the use of GitHub Models in the GitHub CLI, enabling developers to call AI models for tasks like generating questions or summarizing code.
  • The speaker concludes by encouraging viewers to join the waitlist for GitHub Models and explore the possibilities of building AI-powered applications.

Dapr: An Open-Source Runtime for Microservices

  • Dapr is an open-source project that has been in development for almost five years.
  • Dapr originated from Microsoft Research and was quickly moved to open source.
  • Dapr was submitted to the Cloud Native Computing Foundation (CNCF) in 2021 and is expected to graduate this year.
  • Dapr is designed for building distributed applications, particularly those using microservices.
  • Dapr addresses cross-cutting concerns in distributed applications, such as reliable communication, security, and state management.
  • Dapr runs as a sidecar process alongside applications, allowing it to be used with any programming language.
  • Dapr is an open-source runtime that can be used for cloud and edge applications.
  • Dapr can be used with applications that communicate via HTTP or gRPC.
  • Dapr offers client SDKs for various languages, including Node.js, Python, .NET, and Go.
  • Dapr provides a toolbox of APIs for microservice developers, including workflow, pub/sub, service invocation, and state management.
  • Dapr typically runs on top of Kubernetes, but can also be run on-premise or in major cloud providers.
  • Dapr uses a sidecar model, where a Dapr sidecar runs alongside each application service.
  • All communication between services and other resources, such as message brokers and storage systems, is done through the Dapr sidecar.
  • The sidecar model provides built-in resiliency, including retrying failed calls.
  • Dapr offers APIs for various functionalities, such as state management, pub/sub, and secret management.
  • Dapr itself is not a state store or message broker, but can integrate with hundreds of different resources.
  • Dapr's state management API can be configured to use various storage options, such as Azure Blob Storage or Redis.
  • Dapr is a flexible system that can be used for multi-cloud deployments.
  • Dapr allows developers to switch between local development environments and cloud environments with minimal code changes.
  • Dapr provides APIs that simplify common tasks, such as state management and pub/sub messaging.
  • Dapr can save developers time by allowing them to focus on domain logic rather than infrastructure concerns.
  • Dapr is often compared to service meshes, but they have different focuses.
  • Service meshes primarily deal with network routing and traffic management, while Dapr focuses on providing APIs for developers.
  • Both Dapr and service meshes can be deployed as sidecars.
  • Dapr is open-source and has a large community of developers.
  • Dapr provides quick start repositories with code samples in various languages.
  • Dapr offers both HTTP and client SDK APIs.

Dapr: State Management Example

  • The code snippet demonstrates saving state data using Dapr's State Management API.
  • The code defines a state object with a key and value, where the key is "order" and the value is the order itself.
  • The code uses the Dapr client to save the state to a state store, but the specific state store is not explicitly defined in the code.
  • The state store name is defined as "stateStore" and is mapped to a specific state store configuration in a separate file.
  • The Dapr CLI is used to run the application, specifying a configuration file that includes the state store configuration.
  • The configuration file defines the state store type, which in this case is a local Redis container.
  • The code saves 10 records to the Redis state store.
  • The example demonstrates switching state stores without modifying the application code by changing the configuration file extension.
  • The new configuration file points to an Azure DocumentDB state store, while maintaining the same metadata name "stateStore".
  • This allows the application to seamlessly switch between different state stores without code changes.

Dapr: Configuration and Security

  • Dapr can be used to switch out underlying resources without changing application code.
  • Dapr uses configuration files to define resources and secrets.
  • Dapr works with various secret stores, including local files and cloud-based secret stores.
  • Dapr uses Scopes to define security policies for services and resources.
  • Each Dapr microservice has a unique application ID.
  • Dapr uses YAML files for configuration, including resiliency policies.
  • Dapr provides default security and resiliency settings, but these can be overridden.
  • Dapr allows for flexible retry policies, including constant and exponential retry intervals.

Dapr: Community and Resources

  • Dapr is an open-source runtime for cloud and edge applications.
  • Dapr offers a variety of APIs for building microservices.
  • Dapr's documentation is comprehensive and detailed, covering various topics like building blocks and configurations.
  • Dapr has a YouTube channel with recordings of community calls, live streams, and user stories.
  • Dapr's YouTube channel also features recordings of longer sessions that delve into specific topics.
  • Dapr is designed to be gradually adopted, allowing developers to start with a few microservices and expand their use over time.
  • Dapr welcomes contributions and maintainers from the community.
  • Dapr has a variety of repositories for contributions, including the Dapr runtime itself, SDKs for different languages, and documentation.
  • Contributions to the Dapr documentation are highly encouraged, as they can improve the onboarding experience for new users.
  • Dapr has a dedicated Chinese translation of its documentation, but other language translations are welcome.
  • Before starting any work on a contribution, it is recommended to check if an issue already exists that matches the desired contribution. If not, create a new issue.
  • Dapr is an open-source project that allows backend developers to build microservices more efficiently.
  • Dapr is available worldwide and can be downloaded and installed anywhere.
  • Dapr can be run on top of Kubernetes, a Kubernetes-like environment, or locally.
  • Dapr has a large community and a Discord server for users to connect and collaborate.
  • The speaker encourages users to provide feedback on Dapr through LinkedIn, Twitter, or X.
  • The speaker is open to receiving both positive and negative feedback.
  • The speaker is excited to grow the Dapr community and improve the user experience.
  • The speaker is planning to do a hands-on Dapr live stream with Cecil, a Dapr community manager.

Overwhelmed by Endless Content?