优化Django ORM查询

Django ORM(对象关系映射)是Django最强大的功能之一。 它使我们能够使用Python代码而不是SQL与数据库进行交互。

它具有多个优点:

1.数据库引擎是从我们这里抽象出来的,因此可以轻松切换到另一个数据库系统。
2.它支持迁移:我们可以通过更新模型轻松地更改表,并且Django将自动生成更新数据库表所需的迁移脚本。
3.它支持事务:您可以在一个事务中对数据库进行多次更新,如果失败,则将其回滚到开始时的状态。

但这也有一些缺点:

1.由于它是基于SQL的抽象,因此晦涩难懂,因此我们无法确切知道将从我们的Python代码生成哪些SQL查询。
2.Dja[……]

继续阅读

部署之前的Django Web安全清单| 保护您的Django应用

您已经知道Web安全对于防止黑客和网络窃贼访问敏感信息很重要。 因此,在本文中,我们将检查Django安全漏洞以及如何修复它们。

部署清单
首先,请通过以下命令检查您的安全漏洞:

您会看到一些描述,这些描述提供了有关Django Web应用程序漏洞的信息。 尝试搜索这些安全问题,并在生产前修复它们。

Mozilla天文台
如果您已经部署了应用程序,则使用Mozilla站点的Observatory扫描站点的安全状态。 该网站还包括测试您网站其他安全方面的第三方扫描仪。

这是扫描的示例:

跨站[……]

继续阅读

使用Kubeasz部署K8s集群

现在部署一套K8s集群已经很方便了,尤其现在github上有很多ansible自动化安装工具,使用起来非常的方便,只要你懂ansible的技术,就能很快上手熟练掌握如何安装,本文我们就介绍下如果使用Kubeeasz来安装一套集群,当然也有其他类似工具,大家也可以去研究。

清单列表:

 

因为是测试,我没有太多虚拟机,只用了3台,来做演示:

部署资源准备,三台机器:

192.168.248.33 master01

192.168.248.34 node-01

192.168.248[……]

继续阅读

使用Celery和Docker处理Django中的定期任务

在构建和扩展Django应用程序时,不可避免地需要定期在后台自动运行某些任务。

一些例子:

生成定期报告
清除缓存
发送批量电子邮件通知
执行每晚维护工作
这是构建和扩展不属于Django核心的Web应用程序所需的少数功能之一。幸运的是,Celery提供了一个强大的解决方案,该解决方案非常容易实现,称为Celery Beat。

在下面的文章中,我们将向您展示如何使用Docker设置Django,Celery和Redis,以便通过Celery Beat定期运行自定义Django Admin命令。

依存关系:

Django v3.0.5
Docker v19[……]

继续阅读

使用Helm v3在Kubernetes 1.15上安装Elastic Stack

随着Kubernetes的持续流行并已成为编排容器工作负载的事实上的标准,难怪在描述公司的监控堆栈时,Kubernetes和Helm现已成为标准的组合。
Elastic Stack(也称为ELK)与Kubernetes本机集成,是一种流行的开源解决方案,用于收集,存储和分析Kubernetes遥测数据。
虽然使用Kubernetes部署ELK Stack似乎是一项复杂的任务,但围绕这种场景以及Kubernetes原生解决方案的最佳实践越来越多。 这些解决方案之一是使用Helm图表。
标准ELK日志记录解决方案概述

日志:确定要分析的服务器日志
Logstash:数据聚合和[……]

继续阅读

创建第一个Helm Chart

介绍
因此,您已经启动并运行了Kubernetes集群并设置了Helm v3.x,但是如何在其上运行应用程序呢? 本指南将引导您完成创建第一个图表的过程,解释这些软件包中包含的内容以及用于开发它们的工具。 到最后,您应该了解使用Helm将自己的应用程序交付给集群的优势。

对于具有三层体系结构的典型云原生应用程序,下图说明了如何使用Kubernetes对象对其进行描述。 在此示例中,每个层均包含一个Deployment and Service对象,并且可以另外定义ConfigMap或Secret对象。 这些对象中的每一个通常都在单独的YAML文件中定义,并被馈送到kubectl命令行工具[……]

继续阅读

使用RBAC在Kubernetes中配置权限

确保控制谁可以访问您的信息系统以及哪些用户可以访问是身份和访问管理系统的目标。它是安全管理中的基本过程之一,应予以彻底照顾。
在Kubernetes中,身份和用户管理未集成在平台中,应由外部IAM平台(如Keycloak,Active Directory,Google的IAM等)进行管理。但是,身份验证和授权由Kubernetes处理。
在本文中,我们将重点介绍Kubernetes中IAM的授权方面,更具体地说,是如何使用基于角色的访问控制模型来确保用户对正确的资源具有正确的权限。
先决条件
RBAC是Kubernetes 1.8的一项稳定功能。在本文中,我们将假定您正在使用Kuber[……]

继续阅读

像老板一样在Kubernetes中配置RBAC

在这篇文章中,我将解释如何在kubernetes中配置RBAC。我们将使用kubectl和yaml定义来配置RBAC。
什么是RBAC
在kubernetes中,有几种授权机制,例如RBAC,ABAC。
使用RBAC,我们可以添加限制来访问kubernetes资源。例如,我们可以为ServiceAccount授予列出特定名称空间的Pod的权限,并阻止它删除任何资源。我们也可以针对特定的名称空间或整个集群进行此操作。
RBAC的重点
RBAC中有3个重要概念。
主题:用户,组或服务帐户。
资源:我们将在其上运行的Kubernetes API对象。
动词:我们要使用资源进行的操作。[……]

继续阅读

如何使用Prometheus和KEDA自动扩展Kubernetes应用

可伸缩性是云原生应用程序的关键要求。使用Kubernetes,扩展应用程序就像增加相应Deployment或ReplicaSet的副本数一样简单-但这是一个手动过程。 Kubernetes使得可以使用Horizo​​ntal Pod Autoscaler规范以声明的方式自动缩放应用程序(即Deployment或ReplicaSet中的Pod)。默认情况下,支持使用CPU利用率(资源指标)作为自动缩放的条件,但是也可以集成自定义指标和外部提供的指标。

该博客将演示如何使用外部指标自动缩放Kubernetes应用程序。例如,我们将使用通过Prometheus公开的HTTP访问请求指标。与其直[……]

继续阅读

首先应该学习基于功能的视图的3个原因

您是Django的新手,您需要掌握许多不熟悉的概念。对于初学者来说,常见的困惑来源是不同类型的视图:基于函数的视图,基于类的视图,通用视图。您可能对哪种类型的视图最适合您入门或者将来应该使用哪种视图感到困惑。

首先,您现在不需要了解所有类型的视图,只需从一个视图开始。您也不必担心哪种类型是最好的,因为在此过程中,您现在需要选择一种可以帮助您以最简单的方式学习尽可能多的选项。对于初学者来说,最好的视图类型是基于函数的视图(FBV)。为什么要从FBV开始,有三个原因。

函数比类更容易抽象
Django中基本上有两种视图:基于函数的视图和基于类的视图。它们之间的区别归结为功能和面向对象[……]

继续阅读