这是一篇在Stack overflow上很热的帖子。提问者自称已经掌握了有关 Python OOP 编程中的各种概念,但始终觉得元类(metaclass)难以理解。他知道这肯定和自省有关,但仍然觉得不太明白,希望大家可以给出一些实际的例子和代码片段以帮助理解,以及在什么情况下需要进行元编程。于是 e-satis 同学给出了神一般的回复,该回复获得了 985 点的赞同点数,更有人评论说这段回复应该加入到 Python 的官方文档中去。
[阅读全文]这是一篇在Stack overflow上很热的帖子。提问者自称已经掌握了有关 Python OOP 编程中的各种概念,但始终觉得元类(metaclass)难以理解。他知道这肯定和自省有关,但仍然觉得不太明白,希望大家可以给出一些实际的例子和代码片段以帮助理解,以及在什么情况下需要进行元编程。于是 e-satis 同学给出了神一般的回复,该回复获得了 985 点的赞同点数,更有人评论说这段回复应该加入到 Python 的官方文档中去。
[阅读全文]AI 时代,大家都对各种人工智能岗位充满好奇和憧憬,但普遍都不了解,各个岗位具体是做什么工作的。在这里给大家打个比喻,虽然不太恰当,但非常形象!
AI 原本是一个专业领域,没什么特别的。作为码农一枚,笔者的工作内容正好在这个领域。
[阅读全文]今天在项目中遇到一个Django
的大坑,一个很简单的分页问题,造成了数据重复。最后排查发现是DateTimeField
属性引起的。
下面描述下问题,下面是我需要用到的一个 Task Model 基本定义:
[阅读全文]在Kubernetes
中有几种不同的方式发布应用,所以为了让应用在升级期间依然平稳提供服务,选择一个正确的发布策略就非常重要了。
选择正确的部署策略是要依赖于我们的业务需求的,下面我们列出了一些可能会使用到的策略:
重建(recreate):停止旧版本部署新版本
滚动更新(rolling-update):一个接一个地以滚动更新方式发布新版本
蓝绿(blue/green):新版本与旧版本一起存在,然后切换流量
金丝雀(canary):将新版本面向一部分用户发布,然后继续全量发布
A/B 测(a/b testing):以精确的方式(HTTP 头、cookie、权重等)向部分用户发布新版本。A/B测
实际上是一种基于数据统计做出业务决策的技术。在 Kubernetes 中并不原生支持,需要额外的一些高级组件来完成改设置(比如 Istio、Linkerd、Traefik、或者自定义 Nginx/Haproxy 等)。
使用Helm
可以很方便的部署 Kubernetes 应用,但是如果对于线上的应用部署或者更新后出现了问题,要及时回滚到之前的版本该如何去做呢?当然我们可以手动通过kubectl rollout
去进行控制,但是难免需要手动去操作。今天给大家介绍一个 Helm 的插件 Helm monitro,通过监听 Prometheus 或 ElasticSearch 监控或者日志数据,在发生故障时自动回滚 release。
Istio
,是一个由 Google,Lyft,IBM 联合开发的开源项目,是服务网格(Service Mesh)技术的一个标准化的开源实现,致力于解决应用的微服务化组件之间的连接控制与安全、流量管理与可观测性。Istio 是云原生领域在 Kubernetes 之后最受关注的项目,帮助容器技术实践者从基础设施层的“容器编排“进阶到应用层的“服务治理”。Istio 先天与 Kubernetes 无缝衔接,了解并使用 Istio 可以极大地提升研发和运维的工作效率。
本系列课程参考 CKA (Certificted Kubernetes Administrator) 知识体系进行课程设计,并结合华为在 kubernetes 项目推广过程中的实践经验,理论+实践让用户快速掌握 kubernetes 的使用和维护技能。
[阅读全文]在 kubernetes 的网络模型中,基于官方默认的 CNI 网络插件 Flannel,这种 Overlay Network(覆盖网络)可以轻松的实现 pod 间网络的互通。当我们把基于 spring cloud 的微服务迁移到 k8s 中后,无须任何改动,微服务 pod 可以通过 Eureka 注册后可以互相轻松访问。除此之外,我们可以通过 ingress + ingress controller ,在每个节点上,把基于 http 80 端口、https 443 端口的用户请求流量引入到集群服务中。
[阅读全文]有的时候我们可能希望从 Prometheus 中删除一些不需要的数据指标,或者只是单纯的想要释放一些磁盘空间。Prometheus 中的时间序列只能通过 HTTP API 来进行管理。
[阅读全文]前面的课程中和大家一起学习了 Kubernetes 集群中监控系统的搭建,除了对集群的监控报警之外,还有一项运维工作是非常重要的,那就是日志的收集。
[阅读全文]学生 A:今天冬至了,老师你们的课程有没有优惠活动啊?
老师:呃……
学生 B:老师马上圣诞节了,课程可不可以优惠点啊?
老师:呃……
学生 C:老师你看马上就是元旦节了哦,肯定会有优惠的吧?
老师:呃……(为什么会有这么多节日呢?崩溃……)
[阅读全文]上节课我们一起学习了如何在 Prometheus Operator 下面自定义一个监控选项,以及自定义报警规则的使用。那么我们还能够直接使用前面课程中的自动发现功能吗?如果在我们的 Kubernetes 集群中有了很多的 Service/Pod,那么我们都需要一个一个的去建立一个对应的 ServiceMonitor 对象来进行监控吗?这样岂不是又变得麻烦起来了?
[阅读全文]