Damavand is a comprehensive cloud-native application development framework designed to go beyond traditional Infrastructure as Code (IaC). It simplifies both application logic and cloud infrastructure management, providing developers with a unified, Pythonic approach to building, deploying, and scaling cloud-native applications. Damavand implements the ARC (Application, Resource, Controller) design pattern, ensuring that your cloud resources and application logic work seamlessly together without the complexity of deeply understanding cloud provider-specific details.
With Damavand, your focus remains on writing business logic while the framework handles cloud architecture, leveraging Pulumi to generate cloud infrastructure code for multi-cloud environments.
Damavand is built for developers who want to focus on writing applications, not spending countless hours configuring and managing infrastructure. Here’s why Damavand stands out:
Damavand empowers developers to handle both the application layer and resource layer within one framework. By following the ARC design pattern, it decouples business logic from cloud complexities, enabling easy customization and scalability across different cloud providers.
[!TIP] Checkout the examples directory for more examples.
Here's an example using Damavand to create an Spark application on AWS (used AWS Glue for compute infrastructure):
import os
from damavand.cloud.provider import AwsProvider
from damavand.factories import SparkControllerFactory
from applications.orders import CustomerOrders
from applications.products import Products
def main() -> None:
spark_factory = SparkControllerFactory(
provider=AwsProvider(
app_name="my-app",
region="us-west-2",
),
tags={"env": "dev"},
)
spark_controller = spark_factory.new(
name="my-spark",
applications=[
Products(),
CustomerOrders(),
],
)
app_name = os.getenv("APP_NAME", "default_app") # Get app name on runtime
spark_controller.provision()
spark_controller.run_application(app_name)
if __name__ == "__main__":
main()
Damavand is perfect for:
Damavand is not just an Infrastructure as Code (IaC) tool. It is not meant to be a full-fledged cloud platform, but rather a framework that integrates both application development and cloud infrastructure in a seamless, unified approach.
Damavand is developed in Python, with a focus on Python developers looking for a flexible, yet powerful framework for building cloud-native applications.
For support, issues, or feature requests, please open an issue on the Damavand GitHub repository or contact us at support@datachef.co. We're here to help you build your next cloud-native application efficiently and effectively!