数据上云------科技感满满

1 为什么要上云

① 公司发展规划,需要上云
如果我自己公司是自研的
② 国家要求,第二:自研产品,但是公司不是纯靠销售来去盈利发展,而还会设计需要将我们的技术服务,提供给客户,所以我们
只是自研的自己产品,但是给客户使用的时候,客户是要求上云的,所以我们上云
③ 成本、运维成本、随着公司发展,面向的市场不断扩展,公司内部交付、运维、开发以及硬件成本会不断提高,所以也考虑到这
点,上云,是现阶段比较合适公司指向的一种发展和运作方向

2 架构上云

资源规划、环境规划对应的资源成本
架构上云之后,是安装原本的服务体系搭建,还是直接租赁
如果租赁的话,我们的原有架构/项目体系对接上需要注意哪些,实现后会不会有一些风险、漏洞或者性能下降等情况
如果租赁的话,服务如何组合,是自己设计,还是购买方案(钱)

中小公司,有一些对于上云的准备工作不会特别的明确,因为公司这只有一个运维,公司会让运维出一套“上云方案”,其他的部门
是否可以认可,实施起来,执行力知否足够 。。。。。。 最终上云之后,业务可以运行,但是一旦出了问题,人员沟通成本大大
提高

10班 
我们公司几乎所有的服务都是在云上的,但是现在的架构中资源信息非常杂乱,那么如果你来的话,你会怎么梳理,顺下来

数据 (结构化数据和非结构化数据)
评估 (预先规划数据迁移上云的时间周期评估)

① 环境 ---》 云上架构和云下架构体系差别在哪,如何平衡(5大负载 128内存 ),持续性的测试,环境服务、设备的梳理
——》形成资源文档(按照项目),包含,基础资源、内核版本/操作系统版本、基础依赖环境,例如python 环境 jdk环境等等
——》按项目、按分支公司、按区域、按服务体系,区分特色性的环境
——》公网IP需求,几个? 对应的是哪些服务,环境 要多少钱,按量收费(流量、存储因素——》费用,计费)
——》几个环境,生产,需求几个开发环境(钱)

② 数据安全————》上云之后,原本在云下做的一些防护措施、手段,如何平衡,防DDOS 中间人、cc、sql注入等等一些防护,是否
需要额外租赁一些云上的防护措施
——》上云之后的备份、冗余方案
——》数据迁移上云后,是否可以正常加载、兼容
——》数据迁移上云预计需要哪些配置,包括了资源、证书密钥、数据迁移上云的时间

③ 风险——————》网络安全/网络流量风险、备份容器方案、扩容、缩容需求/方案,云平台上使用的安全机制

④ 对接、关联 ————》数据导入之后,云上的服务环境,兼容度如何、实际使用ECS云服务器之后,虚拟化环境所带来的业务压力、
数据读、取的压力怎么平衡、数据如何平滑迁移上去,刚迁移之后,正常提供业务的(测试阶段、回滚方案),与云上的服务对接
的时候,数据传输、展示、完整性检测

⑤ 信息收集 —————》 资源、钱要多少(包月/季/年,按量计费的钱)、运维成本、环境、风险评估、资质、域名

⑥ 区分云上、云下的服务有哪些(数据库不建议上云)

⑦ 不同云平台的测评、对比

3 规划设计

分模块数据迁移上云(参照资源信息表,例如xxx项目资源统计表)
数据迁移上云的顺序、以及导入、回归的方案设计
遇到问题,如何解决、解决方案、应急方案
预先把本地的数据打包、备份上云,云上的服务可以通过加载云上的数据,达到和云下的业务一致性的问题(过程中)
业务运行过程中,云上业务和云下数据库服务进行对接的时候,如何对接,对接性能损耗(通过网络方向、延展到数据一致性的解决方案)
先使用开发环境上云测试、验证可执行性(生产:测试,2:1)

4 实施:

环境准备好(包含了ECS资源类型选择(5大资源)、操作系统(版本)、基础服务搭建)
数据迁移预案/演练
预案,根据规划设计的文档进行实施,同时准备好回归演练
实施数据迁移

5 优化:

① 迁移上之后,原本云下的业务100%,云上的运行效率、可运维性,需要进行维护调整、对各类服务进行优化、ECS 5大资源优化
内核优化、第三方组件集成优化---->最终目的,尽量节省成本+ 业务持续运行

② 业务冗余性(存储),存储的数据,是使用云下,保证完整性,若同时使用云上的,云上的数据备份策略如何

③ 安全、一致性、完整性、可运维性、可执行性的

④ 双活、异地、同城的

⑤ 服务账号 (阿里、AWS、华为)

二 简答题

1  请给出查看当前默认网关和其它路由表的信息的命令。
                   netstat -rn

2  请给出查看/var目录下每个文件/文件夹的大小的命令。
        du -sk /var/*

3   请给出将“sleep 1500“命令放在后台执行的命令,并给出查询该后台命令Pid,然后kill掉该命令的方法和命令。(8分)
nohup sleep 1500 &
               kill -9 `ps -ef|grep 1500|grep -v 'grep'|awk '{print $2}'`
                 or分步操作也可以

4  请给出”su oracle” 和”su - oracle”的区别。

“-”代表:开启新的shell环境,切换到新用户并且读取新用户的环境变量
     没有“-” 不开启新的shell环境,保持老用户的环境变量,仅仅切换用户

5    请给出将test1,test2,test3三个文件打包成test.tar的文件的命令,并给出查看test.tar打包信息的命令,并给出解压test.tar文件的命令。
tar -cvf test.tar tes1 test2 test3 打包
      tar -tvf test.tar 查看
      tar -xvf test.tar 解包

1:你工作上遇到的复杂的问题是什么?怎么处理的?

2:简述你参与过的一个项目,主要部署产品及承担的作用是什么?你在工作中的责任?                                                                                                    

3.每天8小时工作中,你的工作任务都是什么?你是如何安排这个时间的

三 面试题整理:上海公司

1 shell脚本#!/bin/bash这一行的作用是什么

默认解释器、有其它类型的解释器,比如#!/usr/bin/python、#!/usr/bin/expect。

2 那你能告诉我在shell脚本中如果将标准输出和错误输出到同一个位置里面 

        &>  读and加大于号

3 在shell脚本中在某一个模块中嵌套一个if的语句怎么写

比如说写一个httpd启动脚本,在if中嵌套if
#!/bin/bash
ps -aux | grep httpd | grep -v grep &> /dev/null
if [$? -ne 0]
then 
 if [[ "$(rpm -q httpd)"=="未安装httpd软件包"]]
   then
     yum install -y httpd &> /dev/null
      echo "正在安装httpd"
       systemctl start httpd
        echo "httpd已开启"
          else
            systemctl start httpd
 fi
else 
    echo "httpd正在运行"
fi

4 shell脚本中$?是什么意思

最后运行的命令的结束代码(返回值)即执行上一个指令的返回值 (显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误)

5 shell脚本中的break命令的作用

break用于跳出一个循环体或者完全结束一个循环,不仅可以结束其所在的循环,还可结束其外层循环。
break默认为跳出当前一层循环,如果需要跳出多层,在break后加上n(如跳出两层,使用 break 2)

6 如果客户端连接不到服务端,或者网络不同,我想查看一下他的网络流量,通过什么方式抓包

        tcpdump

7、tcpdump指定目标地址用什么选项

指定主机名 (Specify Host Name)
tcpdump host 主机名.com

指定IP地址
tcpdump host 192.168.122.10

指定端口
 tcpdump host poftut.com port 80
 
 指定目标端口 
  tcpdump host poftut.com dst port https
  
  指定源端口 (Specify Source Port)
  tcpdump host poftut.com src port smtp

  8、能简单说一下,我需要在nginx的access mand日志,需要查找一些内容,需要过滤日志里面早上9点到10点的时间的日志

sed -n "/2022-11-24 09:00:00/,/2020-11-24 10:00:00./p" nginx-out.log > nginx-out.log.20200324

9、用过sed替换吗

sed -n "/2022-11-24 09:00:00/,/2020-11-24 10:00:00./p" nginx-out.log > nginx-out.log.20200324

10、tomcat 优化
11、mysql部署过集群吗,mysql主从复制的核心原理

**MySQL主从复制原理**:

**首先有两个日志和三个线程**

(1)Master节点将数据的改变记录成二进制日志(Binary log),当Master上的数据发送改变时,则将其改变写入二进制日志中。

(2)Slave节点会在一定时间间隔内对Master的二进制日志进行探测其是否发生改变,如果发生改变,则开始一个I/O线程请求Master的二进制事件。

(3)同时Master节点为每个I/O线程启动一个dump线程,用于向其发送二进制事件,并保存至Slave节点本地的中继日志(Relay log)中,Slave节点将启动SQL线程从中继日志中读取二进制日志,在本地重放,即解析成sql语句逐一执行,使得其数据和Master节点的保持一致,最后I/O线程和SQL线程将进入睡眠状态,等待下一次被唤醒。

**注:**

中继日志通常位于OS缓存中,所以中继日志的开销很小。

复制过程有一个很重要的限制,即复制在Slave上是串行化的,也就是说Master上的并行更新操作不能在Slave上并行操作。

12、mysql复制是同步复制还是异步复制

      异步复制

13、主从不同步的因素有哪些

slave的I/O线程推迟读取日志中的事件信息;最常见原因是slave是在单线程中执行所有事务,而master有很多线程可以并行执行事务。
带来低效连接的长查询、磁盘读取的I/O限制、锁竞争和innodb线程同步启动等。
网络延迟
机器配置(cpu、内存、硬盘)

减少同步延迟的操作方案

1--减少锁竞争

如果查询导致大量的表锁定,需要考虑重构查询语句,尽量避免过多的锁。

2--负载均衡

搭建多少slave,并且使用lvs或nginx进行查询负载均衡,可以减少每个slave执行查询的次数和时间,从而将更多的时间用于去处理主从同步。

3--salve较高的机器配置
4--slave调整参数

为了保障较高的数据安全性,配置sync_binlog=1,innodb_flush_log_at_trx_commit=1等设置。而Slave可以关闭binlog,innodb_flush_log_at_trx_commit也可以设置为0来提高sql的执行效率(这两个参数很管用)

5--并行复制

即将单线程的复制改成多线程复制。

从库有两个线程与复制相关:io_thread 负责从主库拿binlog并写到relaylog, sql_thread 负责读relaylog并执行。

多线程的思路就是把sql_thread 变成分发线程,然后由一组worker_thread来负责执行。

14、mysql优化
15、mysql配置文件优化
16、k8s用什么搭建的
17、docker的工作原理

Docker是一个Client-Server结构的系统,Docker的守护进程运行在主机上。通过Socket从客户端访问。
Docker-Server接收到Docker-Client的指令,就会执行这个命令!

18、docker组成有那几部分

镜像
容器
仓库

19 dockerfile的一个构建镜像的过程

1、编写一个dockerfile 文件
2、docker build构建成为一个镜像
3、docker run运行镜像
4、docker push发布镜像(DockerHub、阿里云镜像仓库!)

Docker镜像加载原理

docker的镜像实际上由一层一层的文件系统组成,这种层级的文件系统UnionFS.
**bootfs(boot file system)**主要包含bootloader和kernel, bootloader主要是引导加载kernel, Linux刚启动时会加载bootfs文件系统,在Docker镜像的最底层是bootfs。这一层与我们典型的Linux/Unix系统是一样的,包含boot加载器和内核。当boot加载完成之后整个内核就都在内存中了,此时内存的使用权已由bootfs转交给内核,此时系统也会卸载bootfs。
rootfs (root file system),在bootfs之上。包含的就是典型Linux系统中的/dev, /proc,/bin, letc等标准目录和文件。rootfs就是各种不同的操作系统发行版,比如Ubuntu , Centos等等。

20、怎么进入容器

         docker exec

21、k8s组件有哪些
22、k8s命名空间的作用是什么

隔离集群资源、隔离容器

资源隔离:可为不同的团队/用户(或项目)提供虚拟的集群空间,共享同一个Kubernetes集群的资源。比如可以为团队A创建一个Namespace ns-a,团队A的项目都部署运行在 ns-a 中,团队B创建另一个Namespace ns-b,其项目都部署运行在 ns-b 中,或者为开发、测试、生产环境创建不同的Namespace,以做到彼此之间相互隔离,互不影响。我们可以使用 ResourceQuota 与 Resource LimitRange 来指定与限制 各个namesapce的资源分配与使用

权限控制:可以指定某个namespace哪些用户可以访问,哪些用户不能访问

23、pod重启策略
24、pod镜像拉取策略
25、pod存活探针

       httpget

26、监控系统用过吗
27、怎么通过Prometheus监控
28、有试过自己自定义监控吗,如监控特定端口

添加一个自定义监控的步骤如下:

1、创建一个ServiceMonitor对象,用于Prometheus添加监控项
2、为ServiceMonitor对象关联metrics数据接口的Service对象
3、确保Services对象可以正确获取到metrics数据

29、Prometheus告警策略做过吗
30、ELK是什么
31、你用的es是集群还是单机
32、有想过用集群es

单机的elasticsearch做数据存储,必然面临两个问题:海量数据存储问题、单点故障问题。集群(cluster):一组拥有共同的 cluster name 的 节点。

节点(node) :集群中的一个 Elasticearch 实例

分片(shard):索引可以被拆分为不同的部分进行存储,称为分片。在集群环境下,一个索引的不同分片可以拆分到不同的节点中

解决问题:数据量太大,单点存储量有限的问题。

主分片(Primary shard):相对于副本分片的定义。

副本分片(Replica shard)每个主分片可以有一个或者多个副本,数据和主分片一样。

数据备份可以保证高可用,但是每个分片备份一份,所需要的节点数量就会翻一倍,成本实在是太高了!

为了在高可用和成本间寻求平衡,我们可以这样做:

首先对数据分片,存储到不同节点
然后对每个分片进行备份,放到对方节点,完成互相备份

33、目前es数据库已经满了,现在有一个新的磁盘,那我应该怎么数据迁移

查询并导出数据
通过ES提供的查询API,写各种程序,把数据导出csv,或者把数据查询出来,直接入库到新的ES集群中。
拷贝ES物理目录/文件
ES的文件存在磁盘中,把物理文件一模一样拷贝一份到新的集群环境中,达到数据迁移的效果。
ES快照数据备份和恢复
使用ES官网提供的快照备份方法,将旧集群ES的索引进行备份,拷贝备份出来的所有文件,在新的集群中进行恢复。

官网写的非常简单:先创建仓库(repository),再往仓库里添加一个快照(snapshot),查看备份状态,That’s all。但是实践需要麻烦很多了。

恢复期间,整个集群会变成红色(集群不可用),最好半夜的时候进行。

34、redis的集群有几种
35、怎么看待运维这个岗位?

技术多尔杂但是不难,更重要和人打交道

36、自己的职业规划
37、工作上最有压力的事情
 
  • 9
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值