Celery单词中文的意思是“芹菜”,也不知道为什么人家喜欢给起个菜名,实际从功能上跟芹菜一点也扯不上关系,非得往上靠难道国外吃芹菜是在后面吃?大家都知道,如果我们在后端执行一个时间比较长的任务,比如超过10分钟任务都没执行完,这个时候如果让用户在前端页面等待,那是非常恐怖的事情,比如用户点了个执行数据库备份的功能脚本,后台马上执行不完,前端用户就会一直等待,直到备份任务全部完成,天知道什么时候能完成,如果这个时候下班了,你走不走? 所以对一些比较耗时的任务,让用户在前端等待这个不可取,那怎么解决这些问题呢,这个呢,就用到我们刚才说的芹菜的功能了,celery是Python开发的分布式任务调度[……]
记一次生产环境问题排查(k8s环境)
本文为原创文章,转载请注明出处,否则追究责任。
最近线上生产环境出现一些问题,经过排查后进行了解决,记录下来便于总结。
问题1:
最近研发新上一个微服务,上线后启动了6个Pod,运行一段时间后一直很稳定,但有一天用户访问有问题,在手机端打开直接提示“网络错误”。
分析解决:
对于这个报错,研发那边的反馈是运维环境有问题,网络不稳定造成的,但我们实际的生产环境是在K8s上,每个node都在一个网络内,而且都是内网通讯,如果是网络原因,那应该也会影响其他项目的pod,但从现象看,别的同Node节点的服务运行稳定,查了日志,也没有任何报错,后来经过排[……]
2020年下载量最高的102个Django软件包
2020年即将结束,是时候分析2020年最需要的Django软件包了。
在Google Cloud上有相当详细的PyPI软件包存储库下载统计信息。 让我们探索一个简单查询的结果,该查询收集名称为django的任何软件包的下载总数。
1 2 3 4 5 6 7 8 9 |
SELECT file.project, COUNT(*) as total_downloads FROM `the-psf.pypi.file_downloads` WHERE DATE(timestamp) BETWEEN DATE_SUB(CURRENT_DATE(), INTERVAL 360 DAY) AND CURRENT_DATE() AND file.project like '%django%' GROUP BY file.project ORDER BY total_downloads DESC LIMIT 100 |
下载次数超过了最活跃项目中使用的某些软件包,并且没有提供项目用户的真实数目。 但是我认为整个数据集可以很好地概述2020年的使用情况。如果您知道列表中没有好的图书馆,请在评论中注明。 我很乐意用它来更新文章!
0. Django
2020年,Django本身被下载了6550万次! 如果将[……]
更快的Django应用-优化模板,第1部分
首次输入延迟:页面与用户进行交互需要多长时间。这应该少于100毫秒。
累积版式移位:页面内容中意外版式移位所花费的时间;应该小于0.1毫秒。
在本教程中,您将学习如何优化Django模板以提高页面加载速度,以使网站为新的Google更新做好准备。另外,它也会使您的访客高兴!让我们[……]
面试完没有消息是什么情况?
本文为原创文章,转载请注明出处,否则追究责任。
去过面试的人都有过这种经历,当面试完一个公司后,有时聊的也还不错,但后来突然就没有消息了,这是什么情况呢?有的比较好奇会去在问问,但一般得到的都不一定是真实的答案,我自己根据我自己当多年技术面试官的经历,外加经常跟HR小姐姐聊天获得的情况,我总结下来一般分为下面几种情况:
一、实在是技术不行。这个不必多说,一般的技术岗位面试,可能会至少一轮的技术面,也有可能是好几轮技术面试,从多个技术维度审查面试者的技术深度和广度,如果技术面有好几轮一般都是重要切核心的岗位,相对比较高端了,一般的初级运维工程师岗位,可能一般只有一轮技术面试,我想说的[……]
用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[……]