All Projects → Blueshoe → django-hurricane

Blueshoe / django-hurricane

Licence: MIT license
Hurricane is an initiative to fit Django perfectly with Kubernetes.

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to django-hurricane

kubecloud
Kubecloud is a multi-cloud container cloud management platform
Stars: ✭ 48 (-9.43%)
Mutual labels:  cloud-native
inclavare-containers
A novel container runtime, aka confidential container, for cloud-native confidential computing and enclave runtime ecosystem.
Stars: ✭ 510 (+862.26%)
Mutual labels:  cloud-native
zeebe-helm
Public Zeebe K8s HELM Charts
Stars: ✭ 13 (-75.47%)
Mutual labels:  cloud-native
meshery
Meshery, the cloud native manager
Stars: ✭ 1,587 (+2894.34%)
Mutual labels:  cloud-native
bridgx
BridgX is an Open Source Cloud-Native infrastructure engine aimed to split and manage Hybrid-Cloud&Multi-Cloud computing power, schedule and scale Containers.
Stars: ✭ 204 (+284.91%)
Mutual labels:  cloud-native
meshery.io
Site for Meshery, the cloud native management plane
Stars: ✭ 135 (+154.72%)
Mutual labels:  cloud-native
Helmet
🐺 A Lightweight Cloud Native API Gateway.
Stars: ✭ 124 (+133.96%)
Mutual labels:  cloud-native
gotway
☸️ Cloud native API Gateway powered with in-redis cache
Stars: ✭ 71 (+33.96%)
Mutual labels:  cloud-native
fixed-wing-sim
Matlab implementation to simulate the non-linear dynamics of a fixed-wing unmanned areal glider. Includes tools to calculate aerodynamic coefficients using a vortex lattice method implementation, and to extract longitudinal and lateral linear systems around the trimmed gliding state.
Stars: ✭ 72 (+35.85%)
Mutual labels:  tornado
tornado-websocket-client-example
Websocket client application example built on top of Tornado.
Stars: ✭ 34 (-35.85%)
Mutual labels:  tornado
everoute
Everoute provide cloud-native networking and security solution
Stars: ✭ 26 (-50.94%)
Mutual labels:  cloud-native
py-healthcheck
Write simple healthcheck functions for your Flask or Tornado apps.
Stars: ✭ 92 (+73.58%)
Mutual labels:  tornado
dubbo-go-pixiu
Based on the proxy gateway service of dubbo-go, it solves the problem that the external protocol calls the internal Dubbo cluster. At present, it supports HTTP and gRPC[developing].
Stars: ✭ 385 (+626.42%)
Mutual labels:  cloud-native
hash-browns
Generate SHA256 hashes in Go with Prometheus metrics
Stars: ✭ 77 (+45.28%)
Mutual labels:  cloud-native
apispec-webframeworks
Web framework plugins for apispec (formally in apispec.ext).
Stars: ✭ 25 (-52.83%)
Mutual labels:  tornado
glossary
The CNCF Cloud Native Glossary Project aims to define cloud native concepts in clear and simple language, making them accessible to anyone — whether they have a technical background or not (https://glossary.cncf.io).
Stars: ✭ 442 (+733.96%)
Mutual labels:  cloud-native
rocketmq-site
Apache RocketMQ is a cloud native messaging and streaming platform, making it simple to build event-driven applications.
Stars: ✭ 41 (-22.64%)
Mutual labels:  cloud-native
workshopctl
A tool to run workshops with
Stars: ✭ 38 (-28.3%)
Mutual labels:  cloud-native
estafette-ci-builder
Component of Estafette CI that executes build steps
Stars: ✭ 16 (-69.81%)
Mutual labels:  cloud-native
awesome-cloudnative-cn
📚收集整理云原生(Cloud Native)技术学习资料,包括Cloud Native和Service Mesh。🎓
Stars: ✭ 51 (-3.77%)
Mutual labels:  cloud-native

PyPI version Build Status Quality Gate Status Coverage Status ReadTheDocs License: MIT Code style: black



Hurricane Logo


Hurricane

An initiative to fit Django perfectly with Kubernetes. It is supposed to cover many capabilities in order to run Django in a cloud-native environment, including a Tornado-powered Django app server.
Explore the docs »

Hurricane website · User's guide · Guide to the first Hurricane-based Application

Intro

Django was developed with the batteries included-approach and already handles most of the challenges around web development with grace. It was initially developed at a time when web applications got deployed and run on a server (physical or virtual). With its pragmatic design it enabled many developers to keep up with changing requirements, performance and maintenance work.
However, service architectures have become quite popular for complex applications in the past few years. They provide a modular style based on the philosophy of dividing overwhelming software projects into smaller and more controllable parts. The advantage of highly specialized applications gained prominence among developers, but introduces new challenges to the IT-operation.
However, with the advent of Kubernetes and the cloud-native development philosophy a couple of new possibilities emerged to run those service-based applications even better. Kubernetes is a wonderful answer for just as many IT-operation requirements as Django is for web development. The inherent monolithic design of Django can be tempting to roll out recurring operation patterns with each application. It's not about getting Django to run in a Kubernetes cluster (you may already solved this), it's about integrating Django as tightly as possible with Kubernetes in order to harness the full power of that platform. Creating the most robust, scalable and secure applications with Django by leveraging the existing expertise of our favorite framework is the main goal of this initiative.

Hurricane is supposed to make the most out of the existing Django ecosystem without reinventing the wheel. We will collect best-practices and opinions about how to run Django in Kubernetes and put them on Hurricane's roadmap.

Application Server

Why another app server instead of uwsgi, gunicorn or mod_wsgi? We need a cloud-native app server which is much more tidily coupled to the Django application itself. Think of special url routes for Kubernetes probes! Building a special View in each and every Django application is not an appropriate solution. What about the Kubernetes Metrics API? That's all something we don't want to take care of in our Django code.
Those traditional app servers (i.e. uwsgi et.al.) have a highly optimized process model for bare-server deployments with many CPUs, multiple threads and so on. In Kubernetes the scaling of an application is done through the Replication-value in a workload description manifest. This is no longer something we configure with app server parameters.

Installation

Hurricane can be installed from a Python Package Index:

pip3 install hurricane

Add "hurricane" to your INSTALLED_APPS:

INSTALLED_APPS += (
    'hurricane',
)

You can start the Hurricane server with a following command:

python manage.py serve --autoreload --static

Ouput of this command looks as following:

System check identified some issues:

2022-05-04 02:19:07,521 INFO     hurricane.server.general Tornado-powered Django web server
2022-05-04 02:19:07,521 INFO     hurricane.server.general Starting probe application running on port 8001 with route liveness-probe: /alive, readiness-probe: /ready, startup-probe: /startup
2022-05-04 02:19:07,523 INFO     hurricane.server.general Starting HTTP Server on port 8000
2022-05-04 02:19:07,524 INFO     hurricane.server.general Startup time is 0.0026285648345947266 seconds

There are many options that can be used in a combination with the serve command. Please refer to the documentation to learn more about the options.

Django-hurricane works best in combination with Kubernetes, as it includes the inbuilt health-probes, i.e. liveness, readiness and startup probes. Additionally, it is possible to implement custom checks. These checks will be executed after the standard django checks. Follow our guide to learn how to write a custom check.

Commercial Support

Hurricane is developed and maintained by Blueshoe. If you need any help implementing with hurricane or you want to tell us about the use-case, how you use hurricane, please contact us: [email protected].

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].