技术面面试高频考点总结-云原生篇
大家好呀,这里是小黛!
之前的文章呀,也介绍了大部分计算机基础相关的八股文,操作系统呀,计算机网络呀,Linux呀,今天来介绍一下比较火热的技术,云原生!
如果你的项目涉及到了云原生的技术,面试官肯定会眼前一亮,也会重点考察,那云原生会考察哪些内容呢,今天就来浅谈一下~
本文从两个方面进行介绍,第一是简单介绍云原生,第二是给出对于云原生相关,面试官会考察的问题。
这份考点总结具备的一些特点:
1)贴近面试:几乎百分之百都是本人面试中遇到的问题;
2)简洁实用:不会涵盖各个方面,但会包括每个专题下最重要的知识和最常考的知识。
3)不给出官方标准答案:一方面可以检验自己的掌握情况,一方面也可以在主动搜寻答案中记忆更加深刻。
本系列过往内容:
技术面面试高频考点总结-计算机网络篇:https://mp.weixin.qq.com/s/13oOfB0z4C1wQc301TcLdQ
技术面面试高频考点总结-MySQL篇:https://mp.weixin.qq.com/s/n_lK4P7jF35ow39e3XhHtQ
技术面面试高频考点总结-C++篇:https://mp.weixin.qq.com/s/VRFkrTImrcUo5rH1gIqLfA
技术面面试高频考点总结-Redis篇:https://mp.weixin.qq.com/s/nHKv3ZMpAdoHyBABX1uKzQ
HR面与反问环节考点总结:https://mp.weixin.qq.com/s/_eFbmQgEGvGxM2LFHWUpSQ
技术面面试高频考点总结-Linux篇:https://mp.weixin.qq.com/s/lBA7hSdLnt3VEVO0evCBwA
技术面面试高频考点总结-操作系统篇:https://mp.weixin.qq.com/s/u4vQGw9qK-do1D7qTaTOug
小贴士:虽然这份考点总结不会给出答案,但后续在计算机基础知识这里,会给出Linux、C++、JAVA、计算机网络、操作系统、设计模式、数据结构与算法、Redis、MySQL、JS、CSS、VUE、HTML等知识专题的详细版本八股文PDF,包括题目和题目的详细解答,既包括本推送系列的题目解答,也包括一些考频也很高的考点的题目解答。其中后端知识由我来整理,前端知识由一位前端大佬来整理~已经在整理中啦!
一、云原生简介
先来简单介绍一下云原生吧~
云原生是一种新的软件开发与交付方式,是云计算技术与现代软件开发方法的结合,旨在提高应用程序的可移植性、可扩展性和可维护性。云原生包括容器化、微服务架构、DevOps 工作流程和基于 API 的交互等关键特性。
- 容器化是云原生的核心技术之一,它将应用程序及其依赖项打包成容器,从而实现跨平台和云上部署的标准化。容器可以快速地启动和停止,同时也可以在不同的运行环境中无缝切换,为应用程序的跨云迁移和管理提供了灵活性。
- 微服务架构是另一个重要的云原生特性,将应用程序拆分为多个小型的、自治的服务单元,通过 API 接口进行通信,并能够独立部署、扩展和更新。这有助于提高应用程序的可维护性、可扩展性和可靠性,同时也能够更好地适应云计算环境的快速变化。
- DevOps 工作流程是云原生中的另一个重要部分,通过协作和自动化来加强开发和运维之间的协调和交互,从而增强应用程序的质量和可靠性。
- 基于 API 的交互也是云原生的一个重要特征,通过定义和使用标准的 API 接口来实现服务之间的通信,并支持自动化部署和运维。
总体来说,云原生是一种现代化的软件开发与交付方式,能够帮助企业更快、更灵活地构建和部署应用程序,提高应用程序的可移植性、可扩展性和可维护性。
我们可以看到,云原生,主要有四个部分:微服务架构、DevOps、持续交付和容器化部署
微服务架构:应用之间可以通过RESTful API通信,可以被独立的部署,更新,scale和重启
DevOps:实现快速部署到生产环境,开发人员和运维人员可以协同工作,也提供自动化发布工具,CI工具
持续交付:实现快速交付,频繁交付,快速反馈等功能
容器化部署:容器化是微服务架构的最佳载体
如果面试官问你,请问你了解云原生吗,谈谈你对云原生的理解吧,就可以按照上文进行解答~
这里也给出AWS关于云原生应用程序开发的理解:
来自:https://aws.amazon.com/cn/what-is/cloud-native/
1)持续集成
持续集成(CI)是一种软件实践,在这种实践中,开发人员可以频繁地将更改集成到共享代码库中,而不会出错。小而频繁的更改可以提高开发效率,因为您可以更快发现问题并对其进行问题排查。CI 工具会自动评估每次更改的代码质量,以便开发团队可以更有信心地添加新功能。
2)持续交付
持续交付(CD)是一种支持云原生开发的软件实践。借助 CD,开发团队可确保微服务随时准备部署到云中。他们使用软件自动化工具来降低进行更改时的风险,例如引入新功能和修复应用程序中的错误。CI 和 CD 协同工作,实现高效的软件交付。
3)开发运维
DevOps是一种改善开发和运营团队协作的软件文化。这是一种与云原生模式保持一致的设计理念。DevOps 实践使组织能够加快软件开发生命周期。开发人员和运营工程师使用 DevOps 工具实现云原生开发的自动化。
4)无服务器
无服务器计算是一种云原生模式,云提供商完全管理底层服务器基础设施。开发人员之所以使用无服务器计算,是因为云基础设施会自动扩展和配置以满足应用程序要求。开发人员只需为应用程序使用的资源付费。当应用程序停止运行时,无服务器架构会自动移除计算资源。
二、云原生面试考题列举
接下来的问题,涵盖了云原生,微服务,分布式等热门知识的考题,大家可以有针对性的进行准备~
1)谈谈你对云原生的理解
2)什么是微服务架构,微服务架构和传统架构的区别,微服务架构的优缺点
3)微服务架构如何实现
衍生问题:
- 客户端如何去访问这些服务?
- 各个服务之间如何进行通信?
- 如何去管理这些服务?
- 如果有一个服务挂掉了,怎么处理,会发生什么?
4)什么是RPC
5)RPC协议和HTTP协议的区别
6)介绍RPC协议的原理
7)什么是RPC框架,RPC框架的原理
8)为什么需要注册中心,注册中心一般如何实现
9)什么是gRPC
dubbo,grpc,thrift
10)什么是负载均衡
11)负载均衡的分类,有哪些软件负载均衡方式
12)什么是正向代理和反向代理
13)负载均衡的优缺点
14)常见的负载均衡算法
15)熔断机制和服务降级分别是什么,如何实现
16)高并发怎么实现
集群化部署,数据库主从,缓存,消息中间件技术
17)高可用性如何保证
冗余设计
18)什么是分布式锁,分布式锁的原理
19)分布式锁如何实现,基于数据库如何实现,基于redis如何实现
20)什么是docker,docker里的镜像、容器,dockerfile等概念
21)docker与虚拟机的区别
22)docker的优缺点
23)docker的底层原理
namespace,cgroups,unionFS
24)多个容器之间如何进行通信
docker-compose
25)什么是K8s,K8s与docker的关系,K8s的优缺点和应用场景
26)K8s的几个概念,pod,deployment,service指的是什么
27)K8s中,不同服务之间如何进行通信
28)分布式事务,如何保证一致性
29)什么是强一致性、弱一致性,最终一致性
30)分布式事务一致性算法
2pc,3pc,raft,tcc,原理及优缺点
31)谈谈你对分布式的理解
32)为了保证最终一致性,可以采取哪些方式保证
33)一致性和可用性发生冲突,如何去做取舍
34)什么是CAP理论
35)什么是etcd,etcd的应用场景
36)K8s中,介绍一下什么是Minikube、Kubectl、Kubelet
37)K8s中,如何进行集群管理
三、小结
好的,到此为止,关于云原生的介绍和相关的考题就介绍完了~40来道考题,也是很全面很系统的考察了相关知识了,覆盖面还是非常全的。
另外,在这说明一点,本系列主要是帮助大家查缺补漏,有针对性的去过一遍面试考频最高的问题,并没有给出答案,如果着急的话,大家可以百度一下相关问题,都是有详细的答案的,我这一个专题更新完,就会帮大家整理出带详细答案版本的考点总结的~里面也会包含这一部分问题的答案!
本系列的初衷就是,给大家一个最快的方式上手技术面面试,过一遍题目,就可以乱杀技术面面试的基础问题了~
希望可以帮到大家~
题外话
这里写一点,最近小黛要更新的内容:
主要更新两个专题,加上整理一些PDF:
面试必考专题:Linux,HR面,操作系统,云原生,场景题&智力题,测试开发,前端开发
国企深度揭秘专题:建行运营数据中心,交通银行总行金融科技管培生,航天科工三院三部,交通银行总行软件开发,工商银行软件中心,电信总部云网运营部,渤海银行总行信息科技部,天翼云,中信银行总行信息科技部,中国银行总行信息科技管培生
PDF整理:小黛的秋招百次面经,各地区国企央企推荐,国企央企版本八股文PDF
关于PDF,目前也已经整理了很多PDF资料了,都是免费获取~
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JwPgsuCP-1681190103482)(C:\Users\Zz\AppData\Roaming\Typora\typora-user-images\image-20230403072227142.png)]