Skip to main content

Hybrid cloud deployment (IaaS/PaaS and FaaS) of Django web applications.

Project description

Django Cloud Deployer

This package facilitates hybrid cloud deployment (IaaS/PaaS and FaaS) of Django web applications. By annotating project urls with the plugin's wrapper functions, a developer can indicate in which cloud deployment model each url resource should be executed.

Requirements

To use this package, you will need the following Software tools:

You will also need the CLI tools of the cloud providers you will be using:

Setup

First, install the package:

pip install django-cloud-deployer

Then, make sure to add the package (and its requirements) to your project's requirements file:

pip freeze > requirements.txt

Usage

The package features two functions, runInPaaS and runInFaaS, that may be used to indicate in which cloud deployment model (PaaS or FaaS, respectively) a url resource should be executed.

Example:

# urls.py

from django.urls import include, path
from django_cloud_deployer import runInPaaS, runInFaaS
from . import views

urlpatterns = [
    path('', views.home, name='home'),
    runInPaaS(path('faq/', views.faq, name='faq')),
    runInPaaS(path('polls/', include('polls.urls'))),
    runInFaaS(path('auth/', include('auth.urls'))),
]

Note that, by default, url resources with run in FaaS.

CLI tool

The package may be used as a CLI tool:

$ python -m django_cloud_deployer

Usage: django_cloud_deployer <operation> 

Available operations:
- deploy 
- check_deploy
- destroy 

Check Deploy

The check_deploy command allows the developer to observe, based on the annotated urls, where each resource will be deployed and executed.

Usage:

$ python -m django_cloud_deployer check_deploy

Example:

$ python -m django_cloud_deployer check_deploy

Please enter the name of the Django settings module (e.g., 'mysite.settings'):
> mysite.settings

The following urls will run in the FaaS provider:
^/?$
^auth/login/?$
^auth/logout/?$

The following urls will run in the PaaS provider:
^polls/?$
^polls/(?P<pk>[0-9]+)/?$
^polls/(?P<pk>[0-9]+)/results/?$
^polls/(?P<question_id>[0-9]+)/vote/?$

Deploy

The deploy command allows the developer to deploy the django project, based on the annotated urls.

Usage:

$ python -m django_cloud_deployer deploy <paas provider> <faas provider>

Available PaaS providers:
- heroku
Available FaaS providers:
- azure

Note that you will need to be logged in to the chosen PaaS and FaaS providers CLIs. If you are not, you will be asked to login first.

After the deployment is completed, a django_cloud_deployer.json configuration file will be produced:

{
        "projectName": "...",
        "paasConfig": {
            "provider": "...",
            "resource": "...",
            "url": "..."
        },
        "faasConfig": {
            "provider": "...",
            "resource": "...",
            "url": "..."
        }
}

Destroy

The destroy command allows the developer to delete all the infrastructure resources created with the deployment of the Django project.

Usage:

$ python -m django_cloud_deployer destroy

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

django_cloud_deployer-1.0.2.tar.gz (9.1 kB view details)

Uploaded Source

Built Distribution

django_cloud_deployer-1.0.2-py3-none-any.whl (68.6 kB view details)

Uploaded Python 3

File details

Details for the file django_cloud_deployer-1.0.2.tar.gz.

File metadata

  • Download URL: django_cloud_deployer-1.0.2.tar.gz
  • Upload date:
  • Size: 9.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.8.5

File hashes

Hashes for django_cloud_deployer-1.0.2.tar.gz
Algorithm Hash digest
SHA256 c7c6b1e03d1bc69af4ebb10deab1bf161cf1b3032ee7a6981bed7ab58f710d18
MD5 e56fe985d98a33b66eec49796359251a
BLAKE2b-256 83caef2e9a2b67f9615e170c4f47464ca8ed3cb6e2d2432322c730388c7e74c0

See more details on using hashes here.

File details

Details for the file django_cloud_deployer-1.0.2-py3-none-any.whl.

File metadata

  • Download URL: django_cloud_deployer-1.0.2-py3-none-any.whl
  • Upload date:
  • Size: 68.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.8.5

File hashes

Hashes for django_cloud_deployer-1.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 44bbb8199f4c08935eb21a22f196e53cc8a38c37b5667f2120ba052ab94b20e6
MD5 c180edc0a686fee4270a1df8a10b3478
BLAKE2b-256 299bc52dd939e2499b6065aa7fe1312e9c11b356bbc41057a6c98dd19faceb95

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page