读数据工程之道:设计和构建健壮的数据系统13无服务器

Kubernetes容器编排与云原生部署实战 本文系统阐述云原生与Kubernetes的核心理念,从物理机到云原生的四次演进出发,解析容器化、不可变基础设施、声明式编排与可观测性的技术支柱。深入剖析Kubernetes的控制循环、核心组件架构及工作节点协同机制,结合真实场景提供部署、发布与排障实战指南,助力读者实现应用的可复现、可回滚与高可用管理。 阅读详情

1.       无服务器

1.1.         云供应商的一个大趋势是无服务器,允许开发人员和数据工程师无须在后台管理服务器即可运行应用程序

  • 1.1.1.           无服务器快速将价值投入到其正确的用例

1.2.         无服务器真正开始流行是在2014年AWS Lambda全面投入使用之后

  • 1.2.1.           由于无须管理服务器,只需在无服务器的基础上执行小型所需的代码块,无服务器人气迅速提升

  • 1.2.2.           它受欢迎的主要原因是低成本和便利性

1.3.         无服务器有很多种

  • 1.3.1.           功能即服务(Function as a Service,FaaS)广受欢迎,并早于AWS Lambda的出现

  • 1.3.2.           Google Cloud的BigQuery是无服务器的,因为数据工程师无须管理后端基础设施结构,系统自动扩展以处理从小到大的查询

1.4.         你支付的金额取决于查询消耗的数据量和少量存储数据的成本

  • 1.4.1.           其为消费和存储付费的模式正变得越来越普遍

1.5.         无服务器也有固有的开销低效的问题

  • 1.5.1.           以高事件率处理每个函数调用一个事件会带来灾难性的成本,而更简单的方法(如多线程或多进程)是很好的选择

1.6.         监控确定真实环境中每个事件的成本和无服务器执行的最长时间,并对每个事件的成本建模以确定随着事件速率的增长的总体成本

  • 1.6.1.           建模还应该包括最坏的情况

1.7.         当无服务器的使用和成本已经超过自己维护一个服务器的成本时,选择无服务器就意义不大了

  • 1.7.1.           在一定规模上,无服务器的经济利益可能会减少,并且搭建服务器变得更有吸引力

  • 1.7.2.           定制化、强大功能和易于控制是青睐于服务器的其他主要原因

1.8.         服务器故障将发生

  • 1.8.1.           避免使用“特殊雪花”服务器,它们是高度定制化且脆弱的,这会在你的架构中引入一个明显的薄弱环节

  • 1.8.2.           如果你的应用程序需要在服务器上安装特定代码,请使用启动脚本或者构建镜像,然后使用CI/CD管道将代码部署到服务器

1.9.         使用集群和自动扩展

  • 1.9.1.           利用云能够根据需求的增长和缩减来计算资源的能力

1.10.     将你的基础设施当作代码

  • 1.10.1.      自动化不仅仅适用于服务器,还应该尽可能扩展到你的基础设施中

1.11.     使用容器

  • 1.11.1.      对于更复杂或更繁重的多依赖性工作,考虑在单个服务器上或Kubernetes上使用容器

1.12.     无服务器是否适合你

  • 1.12.1.      工作负载大小和复杂性

    • 1.12.1.1.        无服务器最适合简单、离散的任务和工作负载

    • 1.12.1.2.        如果你有许多活动部件或需要大量计算、内存则不太合适

  • 1.12.2.      执行频率和持续时间

  • 1.12.3.      请求和网络

    • 1.12.3.1.        无服务器平台通常使用某种简化的网络,而不是支持所有云虚拟网络功能
  • 1.12.4.      语言

    • 1.12.4.1.        如果它不是官方无服务器平台支持的语言之一,那么你反而应该考虑容器
  • 1.12.5.      运行时限制

    • 1.12.5.1.        无服务器平台不会为你提供完整的操作系统抽象

    • 1.12.5.2.        相反,你会受限于特定的运行时

  • 1.12.6.      成本

    • 1.12.6.1.        无服务器功能非常方便,但可能很昂贵
  • 1.12.7.      抽象往往更加好

1.13.     建议首先考虑使用无服务器,然后是服务器(如果可能配合容器和编排)​,如果规模较大成本较高,使用服务器

2.       容器

2.1.         将无服务器和微服务相结合,容器是最强的操作技术发展趋势之一

  • 2.1.1.           容器能在无服务器和微服务中都发挥作用

2.2.         容器通常被称为轻量级虚拟机

  • 2.2.1.           传统的VM包括了整个操作系统,而容器只包括了一个孤立的用户空间(例如文件系统和一些进程)​,许多这样的容器可以共同存在于单个主机操作系统上

    • 2.2.1.1.            和完整VM相比,容器集群不提供同样的安全性和隔离性

      2.2.1.1.1.             虽然Amazon EC2是一个真正的多租户的环境,许多客户的虚拟机托管在同一环境硬件中,但Kubernetes集群应该只存放在一个相互信任的环境中

    • 2.2.1.2.            容器逃逸

      2.2.1.2.1.             从广义上解释,指一类利用容器中的代码获得外部操作系统级别权限的漏洞

      2.2.1.2.2.             是很常见的一种多租户的风险

    • 2.2.1.3.            代码审查流程和漏洞扫描对于确保开发人员不引入安全漏洞也至关重要

  • 2.2.2.           这样做的主要好处是虚拟化(即依赖和代码隔离)​,无须支付整个操作系统内核的开销

2.3.         单个硬件节点可以承载多个具有细粒度资源的容器

2.4.         容器上运行的就是一种无服务器环境

  • 2.4.1.           Kubernetes也是一种无服务器环境,因为它允许开发人员和运营团队部署微服务并且无须担心部署的细节

2.5.         容器为分布式单体问题提供了部分解决方案

2.6.         各种类型的容器平台为无服务器增加了新的功能

  • 2.6.1.           功能容器化的平台由事件来触发容器而不是一直运行着容器

2.7.         抽象将继续在数据技术栈中发挥作用

3.       基准战争

3.1.         要么比较针对完全不同用例进行优化的数据库,要么使用与现实世界需求毫无相似之处的测试场景

3.2.         数据领域充满了无意义的基准

3.3.         20世纪90年代的大数据

  • 3.3.1.           声称支持PB级“大数据”的产品通常会使用足够小的基准数据集,可以轻松放入智能手机的存储空间中

3.4.         无意义的成本比较

3.5.         非对称优化

  • 3.5.1.           非对称优化的欺骗以多种形式出现

  • 3.5.2.           标准化数据模型对于基于行的系统是最佳的,但列式系统在其他的框架下才能展示出全部潜力

  • 3.5.3.           供应商通过额外的连接优化来增强它们的系统,而没有在竞争数据库中应用相匹配的调优

3.6.         买者自负

  • 3.6.1.           与数据技术中的所有事物一样,买家要当心

  • 3.6.2.           要先做功课去了解,以避免盲目依赖供应商基准来评估和选择技术

4.       底层设计及其对技术选择的影响

4.1.         无论你选择何种技术,一定要了解它如何支持数据工程生命周期里的底层设计

4.2.         数据管理是一个广泛的领域,就技术而言,一项技术是否将数据管理作为主要关注点并不总是很明显

  • 4.2.1.           合规性、安全性、隐私、数据质量和治理

  • 4.2.2.           你如何保护数据免受来自外部和内部的破坏?

  • 4.2.3.           你的产品是否符合GDPR、CCPA和其他数据隐私法规?

  • 4.2.4.           你是否允许我托管我的数据以遵守这些规定?

  • 4.2.5.           你如何确保数据质量以及我在你的解决方案中查看的数据是否正确?

4.3.         DataOps

  • 4.3.1.           问题总是会出现

    • 4.3.1.1.            服务器或数据库可能会死亡,云的区域可能会中断,你可能会部署错误代码,这可能将错误数据引入你的数据仓库,也可能会出现其他无法预料的问题

4.4.         数据架构

  • 4.4.1.           良好的数据架构意味着评估权衡和选择最适合工作的工具,同时保持你的决定的可逆性

  • 4.4.2.           数据格局以极快的速度变化着,现在最佳工具是一个移动目标

  • 4.4.3.           主要目标是避免不必要的锁定,确保不同技术栈的互操作性,并产生高投资回报率

4.5.         Airflow

  • 4.5.1.           编排领域目前由一种开源技术Apache Airflow主导

4.6.         软件工程

  • 4.6.1.           应该努力简化和抽象整个数据技术栈

  • 4.6.2.           对金融科技平台提供支持的特定的算法

  • 4.6.3.           通过抽象出大量冗余的工作流和过程,你可以继续削减、改进和定制那些推动业务发展的东西

mall 电商项目完整部署---实战 mall 后端 SpringBoot,mall‑admin‑web 后台管理 Vue 前端,mall‑app‑sc 移动端 uni‑app 前端;修改数据库、redis、minio、logstash 地址,容器之间 link 别名:mysql 容器别名。🔔排坑:登录报跨域 / 接口报错,检查 prod.env.js 地址,确认 8080 后端服务正常运行。能打开页面,接口列表展示出来,后端部署完成。,所以打包的时候会自动构建镜像,很慢而且你暂时不需要。,容器数据持久化,删除容器数据不会丢失。 阅读详情

相关推荐

WPF数据可视化:LiveCharts自定义X轴与Y轴的5个实战技巧(附完整代码)

本文详细介绍了在WPF应用中使用LiveCharts进行数据可视化时,自定义X轴与Y轴的5个核心实战技巧。内容涵盖精确控制刻度步距、深度定制视觉样式、实现多轴布局对比、优化显示空间以及构建响应式动态轴,并提供了完整的C#和XAML代码示例,帮助开发者创建专业且用户体验出色的图表。

moss5的博客 692

读数据工程之道:设计和构建健壮的数据系统34读后总结与感想兼导读

读后总结与感想兼导读

lyingSeven的博客 1741

Cadence Virtuoso实战:用gm/Id方法搞定折叠式共源共栅放大器设计(附完整仿真流程)

本文详细介绍了在Cadence Virtuoso设计环境中,运用gm/Id方法高效设计折叠式共源共栅放大器的完整实战流程。该方法通过工艺特征曲线,将设计指标映射到晶体管尺寸与偏置,有效克服深亚微米工艺下传统方法的不足。文章以TSMC 180nm工艺为例,从指标拆解、参数查找、电路搭建、仿真验证到问题调试,提供了清晰、可复现的操作指南,并探讨了自动化脚本与版图考量,助力工程师和学生提升模拟IC设计效率与成功率。

jwt8token的博客 647

EMR Serverless StarRocks 全面支持 Paimon 2.0:构建多模态统一分析与检索

围绕 Paimon 2.0,Stella 将向量与全文检索、标量前置过滤、BLOB 读取及缓存能力接入湖上查询链路,让列式分析与索引检索进入同一套 SQL 执行架构。

科技很有意思 174

python入门:Anaconda和Jupyter notebook的安装与使用

一、安装和使用Anaconda 1、anaconda是什么? Anaconda在英文中是“巨蟒”的意思,与python的意思相近,它是python的包管理器和环境管理器。 2、为什么需要安装anaconda? 原因有以下几点: 附带一大批常用的数据科学包,方便立即开始处理数据 管理包 anaconda是在conda(一个包管理器和环境管理器)上发展来的;而conda可以很方便地对第三方的包进行安装、卸载和更新。 管理环境 conda可以为不同的项目建立不同的运行环境,避免不同的项目或包版本

PY洋洋 1万+

arcgis插件 批量出图 按地块批量出图工具(动态文本、动态节点坐标表)

arcgis插件 批量出图 按地块批量出图工具。

坐听风雨 7067

EMR Serverless Ray:让 AI 推理融入数据处理

EMR Serverless Ray 的 AI Function 将模型调用与分布式数据处理结合,提供从数据准备、并发调用到结果处理和用量观察的完整能力。

科技很有意思 321

SAP 交货成本(运费)

交货成本: 业务场景: 有些产品或供应商,会产生交货成本(运费、关税等) 业务模拟(以运费为例): 1、运费在采购订单体现:计划运费 ME21N创建采购订单,并且包含运费: MIGO收货时: 由上可知,MIGO时运费最终体现在库存(存货)科目中(V),或者价格差异中(S计价时)。 MIRO发票校验: 运费最终体现在单独科目中: 后台配置: 运费在发票时候...

willieyuan的博客 1万+

用友 U9C 单据自动同步到钉钉宜搭:一条 14 张单据的 Serverless 同步链路(真实落地项目)

本文分享用友U9C与钉钉宜搭通过Serverless架构实现14张单据自动同步的完整链路,基于阿里云函数计算(FC)、OSS及Node.js构建,支持小时增量与历史补全。核心挑战包括:U9C WebAPI无文档、Filters无效、字段名为空、子表引用不展开等。通过分页倒序扫描、字段动态探测、去重状态持久化、附件代理等策略,实现精准同步。关键避坑点涵盖发起人控制、时间窗口设计、附件处理与接口兼容性。最终落地为4800行单文件函数,按量计费,零常驻成本,验证通过率超98%。

qq_43407325的博客 227

微信公众号网页H5跳转小程序实战指南(开放标签wx-open-launch-weapp)微信H5跳转小程序、wx-open-launch-weapp、小程序跳转按钮、微信开放标签、H5打开小程序

跳转小程序(wx-open-launch-weapp)唤起App显示支付按钮等等……而我们这次要用的,就是跳转小程序的标签。场景是否支持服务号网页✅ 支持小程序静态网页托管✅ 支持订阅号❌ 不支持微信外部浏览器❌ 不支持这个“开放标签”功能其实很强大,除了跳转小程序,还有唤起APP、跳支付、调用客服等能力。但可惜资料零散,很多坑等着你亲自踩一遍。这篇文章我整理的流程基本涵盖了从“能不能跳”到“怎么跳”的完整路径,希望你能像我一样省下几个小时的踩坑时间。

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 1163

基于单片机的按键加1数码管显示(仿真+程序)5046

1、51+Proteus8.10;2、学习计数统计、数码管显示驱动;

理论结合实践,开启你的电子学习新方案! 1325

Kimi K3.1 Pro 现已上线 DigitalOcean 无服务器推理

Moonshot AI 最新发布的 Kimi K3.1 Pro 现已上线 DigitalOcean 无服务器推理(Serverless Inference)。开发者无需单独管理 Moonshot AI 账号或模型基础设施,即可通过 DigitalOcean API 调用该模型,并按实际 Token 使用量付费。Kimi K3.1 Pro 是 Moonshot AI 在 Kimi K3 基础上进行大规模后训练的升级版本。

了解关于云主机、GPU、AI、数据库托管、Kubernetes等相关技术知识,以及DigitalOcean云平台使用教程 376

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

云原生运维学习笔记:Docker 数据卷、网络管理与镜像自定义深度实践

本文深入探讨Docker数据持久化、网络管理与镜像自定义三大核心运维技术。通过数据卷(Volume)实现容器数据持久化,支持匿名卷、命名卷及宿主机目录绑定;利用--volumes-from构建数据卷容器,实现多容器间数据共享。在网络层面,掌握端口映射(-p/-P)、自定义网络及容器通信机制。最后,基于Dockerfile实现应用镜像的定制化构建,为Kubernetes等云原生平台部署奠定基础。内容涵盖实践操作与原理剖析,是进阶容器运维的关键一环。

2604_96593683的博客 435

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

云原生运维学习笔记:ECShop全链路容器化部署与Docker底层资源隔离深度剖析

本文基于Docker与Harbor私有仓库,实现ECShop电商平台(LNMP架构)全链路容器化部署。通过自定义PHP镜像、创建隔离网络、挂载宿主机配置与数据,解决镜像源失效、端口冲突等实战问题。同时深入Linux Namespace与Cgroups,剖析Docker资源隔离底层机制,掌握云原生环境下应用部署与系统原理的双重能力。

2604_96593683的博客 230

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

云原生项目三:Docker秒级启动NextCloud个人网盘存储办公系统

首先讲解一下我的环境,我没有新建虚拟机,做上一个项目的时候在ping通外网后我给拍摄快照了,所以我就直接恢复快照了,小朋友不要和我学习哦,尽量新建虚拟机or克隆一个node出来,保证环境的干净,不然端口容易冲突,配置文件也是容易改错,最后导致实验失败。这次依旧是openeuler 22.03的镜像,处理器1个2核的,4GB的内存,20GB的存储打开虚拟机后先检查是否ping通外网,然后依旧关闭selinux,firewalld,然后就可以开始接下来的操作了。

zfm242397396的博客 144

Docker 容器入门全实战|曼巴精神打磨云原生基本功

Man!Docker 是云原生的敲门砖,镜像、容器、仓库三大件,Namespace 隔离、Cgroups 限制、分层镜像,这几个核心概念吃透了,后面 K8s、微服务、DevOps 全是水到渠成。别光背命令,动手跑一遍,拉镜像、跑容器、进容器、打包镜像,每个坑都踩一遍,比背十页笔记都管用。万丈高楼平地起,容器基本功打牢了,后面云原生进阶手到擒来。Mamba out!

kkkdoor的博客 375

云原生安全新范式:从“边界防护”到“身份成为新边界”

云原生并没有让安全变得不重要,而是让安全的判断依据发生了根本变化。当网络位置不再稳定、不再可信时,身份成为唯一贯穿请求全过程的稳定信号。把身份作为新边界,意味着以最小权限为前提、以持续验证为手段、以可观测为保障,构建一套随工作负载流动而始终有效的安全体系。这既是技术架构的演进,也是安全治理思路的升级。

2301_78078966的博客 161

云原生可观测性架构设计及其应用

第一,尾部采样的一致性路由在Gateway扩缩容或节点故障时仍可能出现Span分散,导致部分Trace的采样决策基于不完整上下文,遗漏边缘错误链路。第二,高基数治理目前以“禁止进入指标标签”的负向约束为主,缺乏正向的基数预算机制,新服务上线时标签设计的随意性仍可能逐步推高序列基数。:以DaemonSet形式部署,初始CPU request控制在50m量级,日志采集路径避免对全集群Pod的重复list/watch,仅处理本节点流,将采集侧的资源消耗限制在可预算的范围内。是成本与排障能力之间的核心权衡。

jcgu的专栏 263

云原生运维学习笔记:Docker 镜像定制、仓库管理与企业级底层技术剖析

本文系统梳理Docker镜像定制、仓库管理与底层技术。通过Dockerfile实现白盒化镜像构建,掌握RUN、CMD、ENTRYPOINT等核心指令及格式差异;基于私有仓库(Registry/Harbor)实现安全分发;深入剖析Namespace与Cgroups在资源隔离与限制中的作用,为生产环境排障与优化提供底层支撑。

2604_96593683的博客 378

云原生运维学习笔记:容器技术的演进、底层原理与 Docker 全生命周期管理

本文系统梳理容器技术演进脉络,从 chroot、Namespace 与 Cgroups 等 Linux 内核机制出发,揭示容器与虚拟机的本质差异。深入解析 Docker 的 C/S 架构、镜像分层原理及 OCI 标准,并通过实战完成 CentOS 环境下 Docker Engine 的定制部署,涵盖 YUM 源配置、镜像加速与远程访问设置,全面掌握容器全生命周期管理核心能力。

2604_96593683的博客 687

一次完整的云原生迁移:容器化、Kubernetes 与 CI/CD

本文记录一次完整的云原生迁移实践,涵盖容器化、K8s部署与CI/CD流水线搭建。强调迁移前提:服务边界清晰、无状态、可回滚。分三阶段推进:容器化确保镜像一致性;上K8s实现服务发现与弹性伸缩;构建GitOps流水线支持一键发布与回滚。架构采用Ingress+API网关+Service+持久层,决策选用Kustomize管理配置,暂不引入服务网格。可观测性依托Loki、Prometheus与Jaeger三板斧。总结关键踩坑:镜像拉取策略误用、资源限制缺失、健康检查配置不当,并给出针对性解决方案,强调“先夯实基

软件工程师文艺 949

云原生基础之Containerd容器运行时

本文介绍了云原生基础中的Containerd核心组件及其管理命令,涵盖镜像、容器、任务与命名空间的管理操作。通过ctr命令可实现镜像拉取、挂载、推送,容器创建与删除,任务启动、暂停及进程查看等。同时说明了Docker与Containerd的关系,指出Docker使用Containerd的moby命名空间,揭示了二者在容器技术栈中的协作机制。

我的梦想有多远,我就能走多远! 343

【云原生】Ubuntu部署 Kubernetes1.33

本文详细介绍了在Ubuntu 24系统上部署Kubernetes 1.33集群的全过程,涵盖三台主机(master、node1、node2)的基础环境配置,包括主机名设置、hosts绑定、关闭swap、开启IPv4转发及时间同步。重点完成Containerd安装与配置,包括卸载Docker残留、生成配置文件、启用systemd cgroup、添加国内镜像源及修改pause镜像地址。最后通过nerdctl验证容器运行时,为后续kubeadm初始化集群奠定基础。

weixin_73059729的博客 283

Flink 学习日志 03:自定义一个SourceFunction,完成对Redis中数据的读取

本文介绍了在Flink中自定义SourceFunction读取Redis数据的完整流程:通过Jedis客户端连接WSL2中的Redis服务,编写RedisSource实现循环读取所有Key-value并逐条输出,结合Thread.sleep()实现每秒一条的流式效果。关键步骤包括环境准备、添加Jedis依赖、配置IDEA运行时加载provided依赖,并注意生产环境中应避免使用阻塞的keys *,改用scan命令。最终实现动态读取、实时打印,验证了Flink与Redis的数据集成能力。

木木的学习笔记 423

京东 Apache Doris 湖仓查询优化实践:从多引擎统一到百万级查询

京东基于 Apache Doris 构建统一湖仓查询引擎,支撑日均百万级查询与 PB 级数据扫描。深入解析 Presto、StarRocks 迁移、分区裁剪、Split 调度、向量化执行及 AI Agent 混合负载优化实践。

SelectDB 402
上一篇: 读数据工程之道:设计和构建健壮的数据系统12开源软件
下一篇: 读数据工程之道:设计和构建健壮的数据系统14源系统
躺柒
博客等级 码龄4年 7004粉丝 1321原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值