用ldap作为django后端用户登录验证

每个公司在运维平台化过程中,如果以开始没有规划,免不了全面开花,会做成好多个平台,然后每个平台都有自己的认证体系,等平台多了,记录这些账号就变得非常烦人,如果用不同的密码,对人的记忆力是个挑战,所以基于此,大部分公司会有部署Ldap系统,来统一运维系统的账号管理,像我们常用的jenkins也可以做对接到ldap上,这样所有的系统就可以统一用ldap来认证,然后根据不同的人来设置不同的权限,那django怎么使用ldap来做后端验证呢,操作接入非常简单,整个过程可以几乎不改我们之前的代码任何逻辑。

我们先进行第一步,安装依赖,ldap和django-auth-ldap,django-aut[……]

继续阅读

更快更好地构建镜像-docker多阶段构建

现在已经毫无疑问,Docker使一个应用和多个应用部署变得非常容易。无论是同一工具的不同版本,具有不同版本依赖性的不同应用程序-Docker都涵盖了。但是,这种灵活性会带来一些问题-例如高磁盘使用率和大的映像。使用Docker时,必须谨慎有效地编写Dockerfile,以减小映像大小并缩短构建时间。

Docker提供了一组遵循的标准实践,以使镜像尺寸较小-这就用到了我们介绍的多阶段构建功能。

对于构建二进制文件或可执行文件的用例,多阶段构建特别有用。通常,构建二进制文件需要很多依赖项,例如,GCC,Maven,构建必需项等,但是一旦有了可执行文件,就不需要那些依赖项来运行可执行文件[……]

继续阅读

使用Prometheus进行Kubernetes监视-Prometheus操作员教程(第3部分)

在本指南的前几章中,我们介绍了如何安装完整的使用Prometheus监控Kubernetes。 我们最后结束下使用Prometheus Operator框架及其“自定义资源定义”相对于手动添加度量标准目标的优势

这次我们将部署类似的环境,但将更加自动化和灵活。

什么是Kubernetes Operator?
Operator是Kubernetes专用的应用程序(pod),可自动配置,管理和优化其他Kubernetes部署。它们被实现为自定义控制器。

Kubernetes Operator封装了部署和扩展应用程序的专有技术,并直接执行与API通信的算法决策。

Kuber[……]

继续阅读

使用Prometheus进行Kubernetes监视:AlertManager,Grafana,PushGateway(第2部分)

要部署真正的Kubernetes和微服务监控解决方案,需要许多其他支持组件,包括规则和警报(AlertManager),图形可视化层(Grafana),长期指标存储以及与该软件不兼容的其他指标适配器 盒子外面。

在第二部分中,我们将简要介绍所有这些支持组件,前提是已经了解了上一章介绍的部署Prometheus监视服务器的基础知识。

Prometheus监控技术栈–体系结构概述
让我们从部署架构概述开始,将我们将在接下来的部分中讨论的所有组件放入其中。

1、在第1部分中介绍的Prometheus服务器是此部署的核心。 Prometheus服务器将警报推送到AlertM[……]

继续阅读

使用Prometheus进行Kubernetes监控-最终指南(第1部分)

Prometheus监控正在迅速成为使用的Docker和Kubernetes监控工具之一。 本指南说明了如何使用Prometheus实施Kubernetes监视。 将介绍如何部署Prometheus服务器,指标导出器,设置kube-state指标,提取,抓取和收集指标,使用Alertmanager配置警报以及使用Grafana配置仪表板。 我们将介绍如何手动执行此操作,以及如何利用Prometheus operators自动部署/安装方法。

为什么使用Prometheus进行Kubernetes监控
因为两项技术的转变,因此我们需要一个新的监视框架:

DevOps文化:在DevO[……]

继续阅读

使用AJAX和Django获取数据

使用Django服务网页时,只要用户执行导致页面更改的操作,即使该更改仅影响页面的一小部分,它都会将完整的HTML模板传递给浏览器。 但是如果我们只想更新页面的一部分,则不必完全重新渲染页面-我们可以使用AJAX代替。

AJAX提供了一种将GET或POST请求发送到Django视图并接收任何返回的数据而无需刷新页面的方法。 现代JavaScript包含fetch API,该API为我们提供了一种纯JavaScript方式来发送AJAX请求。

让我们看一下如何通过获取发出GET和POST请求,以在视图和模板之间传递JSON数据。

GET请求
通过获取发出GET请求
通过向其[……]

继续阅读

理解Django中基于类的视图-创建CBV

在本文中,我们将研究如何创建一个基于类的视图,方法是首先实现一个最小的CBV,然后对其进行扩展以突出如何设计CBV以便重用。 本系列的第一篇文章探讨了如何初始化基于类的视图,以及如何使用View类作为基础来设置视图并初步路由逻辑。 由于View本身不能用作独立的CBV,因此我们需要定义其他逻辑以正确处理请求并向用户提供正确的响应。

先决条件
阅读了上一篇文章-View Base Class
基本了解Python中的类继承
最小的CBV
让我们看一下基于类的视图的最小实现。 我们将通过首先导入View基类在views.py文件中创建CBV。 我们的视图BasicView将是一个从V[……]

继续阅读

理解Django中基于类的视图-视图基类

基于类的视图或CBV是Django中争议最大的功能之一。与基于功能的视图(FBV)相比,CBV似乎更令人困惑和难以理解。在本系列的Django中的《理解基于类的视图》中,我们将详细介绍CBV,以了解它们的工作方式和使用方法。

首先,我们将介绍View基类,如何在URLconf中使用CBV以及View类如何路由从其继承的其他类的视图逻辑。

先决条件
本文针对那些以前可能尝试使用CBV并希望了解其工作原理的人。如果您满足以下条件,您将从本文中获得最大收益:

之前已经用Django建立了一个项目
尝试至少使用一次CBV
对Python中的类有基本的了解
本文包含许多不完整的[……]

继续阅读

如何在django官方文档中快速找到需要的内容

许多新手程序员发现Django文档内容非常庞大。

假设想学习如何为用户执行登录。看着很简单:登录是Django的核心功能。如果搜索“ django登录”或搜索文档,则会看到一些选项,其中“使用Django身份验证系统”是最有希望的结果。单击该链接,很高兴地预料到登录问题将很快就会搞定,但这39页的页面估计会被吓一跳,信息太多了。

另外,也可以在django.contrib.auth上找到一些参考,所有auth内容都在这里,如果浏览此页面,将看到所有不同身份验证模型,字段和功能的罗列,但没有说明它们应该如何组合在一起。

在这时,我们可能想绝望的关闭浏览器,搞得自己要重新考虑学习[……]

继续阅读

使用Prometheus和Thanos进行高可用性Kubernetes监控

背景介绍
对Prometheus高可用性的需求提升
现在很明显,Kubernetes是容器编排方面的老大,但对于k8s的监控是任何基础架构的重要方面,我们应该确保监控设置具有高可用性和高度可扩展性,以适应不断增长的基础架构的需求,尤其是在使用Kubernetes的情况下。

因此,今天,我们将部署群集化的Prometheus设置,该设置不仅可以抵抗节点故障,而且还可以确保适当的数据归档以备将来参考。我们的设置也具有很大的可扩展性,以至于我们可以在同一监控范围内跨越多个Kubernetes集群。

目前现状

大多数Prometheus部署都使用持久性Pod,而Prometheu[……]

继续阅读