产品的技术加油站

news2024/11/18 14:53:30

作为产品经理的你,每次被喷不懂技术的时候,是否也曾想过暗暗发力,恶补一波技术,然后惊艳所有人?但冷静之后,又觉得无从下手?

是不是还想过要不要学习一下编程?然后被人推荐了什么python、java、php,还在考虑学什么数据结构,算法?

实际上,这些只是技术的局部,如果缺少全局视野,技术问题就永远是一团浆糊。

今天,大王就来给各位产品同学聊一聊那些平时 “耳熟不详” 的问题。通过大王火锅店,建立Web系统部署架构的全局观

第一章 大王火锅店

我们先来看看小明是怎么在大王火锅店里吃上火锅的。

* step1 小明打出租来到大王火锅店门口,首先接待他的是门迎

* step2 门迎看他五官端正,衣着得体,应该是个正常的食客,就让他进去了。

* step3 进到店里面,大堂经理接待了他,把他领到座位,问他要什么菜。

* step4 大堂经理把小明的诉求告诉了服务员

* step5 先后来个四五个服务员,有给他上锅底的,有给他拿果汁的,有给他端菜的,还有给他唱歌的 “对所有的烦恼说拜拜,对所有的快乐说嗨嗨……” 。

 

第二章  大王火锅门户网站 

现在我们把出租车、门迎、大堂经理都换个名字,大王火锅店就会变成大王火锅门户网站。

* step1 小明在浏览器输入大王火锅店网址,浏览器会进行DNS域名解析,将浏览请求路由到大王火锅店门户网站的服务器。

* step2 在正式访问服务器前,访问请求会先进入防火墙,防火墙会判定请求是否合法,如果请求没有问题,就将请求转发给负载均衡。

* step3  负载均衡的作用就像是大堂经理,他并不处理具体的事物,而是将用户请求分发给其他服务,他最重要的任务是合理的分配工作。比如:将查询图片的请求发给图片服务,将处理文字的请求发送给文字服务。(Nginx是时下最常见的负载均衡服务。)

* step4 网站的服务大体可以分为前端服务后端服务,前端服务负责网页的展示,后端服务负责处理数据并将数据传递给前端进行展示。

* step5 前端展示给用户的页面信息,有些是经常用到的,会放在缓存里,用的时候从缓存里去取会非常快。而更多的数据需要经过后端服务的深加工,就需要和后端服务进行交互,这就是服务间调用 。

* step6 数据库里存放着网站全部的数据,当用户需要查询某些信息时,后端服务也会先从缓存里去找,如果找不到,就会去数据库去找,在数据库里找就会比较慢。

到目前为止,我们知道了用户通过浏览器访问大王火锅店门户网站时:用户请求会先经过防火墙,然后经由负载均衡分发给web服务,web服务调用缓存或者数据库将数据返回给浏览器展示给用户。 

第三章  部署大王火锅门户网站 

防火墙+负载均衡+web服务+缓存+数据库,就构成了一个基本的软件架构。这些软件都安装在哪里呢?是随便放在一台电脑上?还是放到专业的服务器上?还是放在什么云服务器上?

答案是:都可以。

早期的时候,这些服务都部署在实体的机器里,通常是高性能的服务器。当然一个小的个人网站部署在个人电脑上也是完全没问题。

再后来,大家发现这样太浪费了,有些服务器性能很高,一个顶10个。就将这些服务器进行了虚拟化,把一个服务器用软件拆成了N份,每一份都相当与一个独立的服务器,这就是所谓的虚拟化部署。

到了现在,随着容器和微服务技术的发展,业务相关的服务会被拆分的非常小。这些微小的服务会被部署到一种叫Docker的容器中。(当然,容器本身也需要运行在实体机或虚拟机中。而且由于容器非常多,人工管理很麻烦,就需要一个叫做k8s 的技术去管理容器)这就是所谓的容器化部署。 

在我们日常工作中经常听到的开发环境、测试环境、生产环境,基本上都是由Linux实体服务器、kvm虚拟机、docker容器或者k8s组成的。

为了方便起见,大王火锅店这个小网站,我们就部署在kvm虚拟机里吧,用kvm将一台高性能的linux服务器虚拟化出7个虚拟机,并分别安装1个防火墙、2个Nginx(负载均衡)、1个前端服务、1个后端服务、1个redis(缓存)、1个mysql(数据库)。ok,至此大王火锅店门户网站,正式上线!

第四章 运维大王火锅门户网站 

软件部署到生产环境中后,就会对外提供服务,用户就可以通过浏览器访问了。这时候,如果软件系统或者部署环境出了问题,网站就会崩溃。

因此,就需要一套监控系统监控服务和环境的健康状态。当出现问题时,发出告警并通知运维人员,运维人员会经过一条秘密通道(vpn),再通过跳板机登陆到出现问题的服务或环境进行修复。

 

第五章 开发大王火锅门户网站

到目前为止,我们了解到大王火锅门户网站的部署架构是个什么样子了:由防火墙、负载均衡、web集群、缓存、和数据库组成,并部署在由kvm虚拟化出的7个linux服务器上。

其中负载均衡、缓存、数据库,这些服务都是现成的。开发团队对他们进行正确安装和配置就可以了。我们主要关注业务相关的web服务是怎么开发出来的。

这里会涉及很多编程语言,比如:java、python、js、php…… ;还会涉及很多技术点,比如:数据库、网络、并发 ...  我们不细究这些技术细节,从工程的角度看看开发阶段程序员都做了那些事情。

* step1 编写网站代码,并将代码推送到gitlab代码仓库中。(gitlab用于存放软件项目的源代码。靠谱的程序员还会顺便写上单元测试用例,确保主要的业务代码能通能通过单元测试。)

* step2使用Jenkins拉取gitlab中的代码,并将代码推送给SonarQube,SonarQube会对代码进行扫描,检测其中的错误。

* step3 通过了单元测试和代码扫描的代码,会进行编译构建生成一个制品,最后再由Jenkins将制品部署到对应的测试环境或生产环境中。 

到这里,我们以大王火锅店门户网站为例,完整的介绍了一个软件项目所涉及的技术框架。

产品同学想了解技术问题,绝不是学学java、python、js 就可以了。这些仅仅是编程语言,更重要的是理解技术的框架并不断完善这个框架的细节。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/451567.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【致敬未来的攻城狮计划】— 连续打卡第十天:FSP固件库开发及FSP配置详解。

系列文章目录 1.连续打卡第一天:提前对CPK_RA2E1是瑞萨RA系列开发板的初体验,了解一下 2.开发环境的选择和调试(从零开始,加油) 3.欲速则不达,今天是对RA2E1 基础知识的补充学习。 4.e2 studio 使用教程 5.…

Gnuplot绘图入门2——根据多列文本数据绘制图形

Gnuplot绘图入门2——根据多列文本数据绘制图形 Gnuplot绘图入门1以绘制sin(x)的函数图形为例,对Gnuplot进行了简要介绍。这个教程将介绍如何使用Gnuplot对保存在文本文件(.txt、.dat文件)中的数据进行可视化。 将下面的数据复制下了&#…

Python高光谱遥感数据处理与机器学习实践技术

目录 第一章 高光谱基础 第二章 高光谱开发基础(Python) 第三章 高光谱机器学习技术(python) 第四章 典型案例操作实践 总结了高光谱遥感技术领域的基础原理与核心概念,采用编程语言复现经典数据处理和应用方法&am…

OpenHarmony应用开发-ArkUI方舟开发框架简析

方舟开发框架(简称ArkUI)为OpenHarmony应用的UI开发提供了完整的基础设施,包括简洁的UI语法、丰富的UI功能(组件、布局、动画以及交互事件),以及实时界面预览工具等,可以支持开发者进行可视化界…

ChatGPT会被人工智能干掉吗?

01 ChatGPT火爆全球 ChatGPT是美国“开放人工智能研究中心”2022年11月30日发布的聊天机器人程序,它是人工智能技术驱动的自然语言处理工具,能通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,真正像人类一样…

pcl中MomentOfInertiaEstimation计算有向包围盒

pcl::MomentOfInertiaEstimation 是 Point Cloud Library (PCL) 中的一个类,用于计算点云中物体的矩。它可以提供点云物体的三个主轴及其长度,以及物体的惯性矩阵等信息。通过使用 pcl::MomentOfInertiaEstimation 类,可以实现物体形状分析、…

C++类和对象-3

承接上一篇博客中内容,讲述完类和对象中构造函数内容之后,这篇博客我们来讲述类和对象中,析构函数的内容。 目录 1.析构函数 2.拷贝构造函数 3.浅拷贝与深拷贝 1.析构函数 在类和对象的构建当中,类中的对象会通过构造函数来…

Jenkins配置邮箱发送报告

本文以qq邮箱为例 1.下载Email Extension Plugin插件 2.在Manage Jenkins--System,Jenkins Location下配置理员邮件 Extended E-mail Notification 下配置Jenkins SMTP server(邮箱服务)、SMTP Port(邮箱端口)、Cred…

c++学习(day4)

文章目录 一. 友元(friend)1 友元函数1.1 全局函数作为友元函数1.2 类的成员函数作为友元函数(了解) 2. 友元类3. 使用友元的注意事项 二. 常成员函数和常对象(const)1. 常成员函数2. 常对象3. mutable关键…

【微服务笔记17】微服务组件之Gateway实现动态路由、配置路由规则、路由过滤器

这篇文章,主要介绍微服务组件之Gateway实现动态路由、配置路由映射规则、路由过滤器。 目录 一、动态路由配置 1.1、动态URI路由配置 (1)引入eureka客户端依赖 (2)添加路由配置 1.2、服务名称转发配置 二、断言配…

基于 Windows 安装 ESP32 Arduino 软件开发环境

ESP32 Arduino 源码库:arduino-esp32ESP32 Arduino 环境搭建说明:About Arduino ESP32 其他软件环境需求: Git 环境 1、安装 Arduino 软件 可在 Arduino 官网 获取 Windows 端 Arduino 安装包,如下: 使用如下 .exe 一…

JVM类加载过程

文章目录 1、加载2、链接2.1 验证2.2 准备2.3 解析 3、初始化3.1 类初始化练习3.2 懒汉式单例练习 4、类加载器4.1 启动类加载器4.2 扩展类加载器4.3 双亲委派模式4.4 线程上下文类加载器4.4 自定义类加载器 5、运行时优化5.1 即时编译逃逸分析方法内联(Inlining&am…

StressAppTest的简介

StressAppTest的全称是Stressful Application Test (stressapptest) 的简称http://code.google.com/p/stressapptest/ 这里我们可以将其简化为SAT。 SAT试图让来自处理器和I/O到内存的数据尽量随机化,以创造出模拟现实的环境来测试现在的硬件设备是否稳定。 SAT的大概作用如…

【Mysql 学习笔记】

Mysql 笔记记录 MySQL学习笔记一、 DDL1. DDL 查询和创建数据库2. DDL 修改、删除、使用数据库3. DDL 查询数据表4. DDL 创建数据表5. DDL 修改数据表6. DDL 删除数据表 二、DML MySQL学习笔记 一、 DDL 1. DDL 查询和创建数据库 #查询所有数据库 SHOW DATABASES; #查询某个数…

PMP项管2023年5月的备考准备攻略!现在看还来得及!

2023年共有4次PMP考试,分别是3月、5月、8月、11月,由于3月份考试不开放新报名,所以第一次备考PMP的同学可以选择参加5月份考试。那么,现在备考5月份PMP考试还来得及吗? 现在开始备考5月PMP考试,时间是非常…

蓝牙技术|消息称三星正研发智能戒指Galaxy Ring

根据韩媒 MT 报道,三星内部正在开发继 Galaxy Watch、Galaxy Fit 之后的另一款健康追踪设备 Galaxy Ring。 报道称这款智能戒指配备 PPG(光电容积脉搏波)传感器和 ECG(心电图)传感器,可以准确追踪佩戴者的…

云智慧助力MLOps加速落地

背景 随着数字化和计算能力的发展,机器学习(Machine Learning)技术在提高企业生产力方面所涌现的潜力越来越被大家所重视,然而很多机器学习的模型及应用在实际的生产环境并未达到预期,大量的ML项目被证明是失败的。从…

云计算中的网络安全技术及其应用

云计算已经成为当今企业信息化的主要选择之一。它提供了可靠的数据存储和处理能力,同时降低了企业的IT成本。然而,云计算的安全问题也随之而来。网络安全技术的应用对于保护云计算的安全至关重要。本文将探讨云计算中的网络安全技术及其应用,…

Golang每日一练(leetDay0041) 股票买卖4题

目录 121. 买卖股票的最佳时机 🌟 122. 买卖股票的最佳时机 II 🌟🌟 123. 买卖股票的最佳时机 III 🌟🌟🌟 188. 买卖股票的最佳时机 IV 🌟🌟🌟 🌟 每…

2023第六届世界燕窝及天然滋补品博览会

2023上海燕窝展|上海燕博会|虫草节、鱼胶、灵芝、海参、滋补品展|滋补大会 摘要:燕博会、上海燕窝展、上海燕博会、2023上海燕博会、2023上海燕窝展、2023中国燕窝展、2023燕窝展,2023原装进口燕窝展,2023干制燕窝展,2023即食燕窝展,2023燕窝…