运维面试

陈晓敏

面试题

  1. docker-compose迁移至k8s
    1. kcompose
  2. apisix中滚动发布和vue的js静态文件的oss托管
  3. 您是如何保证系统可用性的?
  4. 运维批量发布工具Ansible playbook
    1. python
    2. 基础架构设施团队做,不同业务需要做不同的业务镜像
    3. 主要做
  5. 每日10点-12点之间不定时会有大量流量引流,如何承接服务,保障服务稳定和不中断
    1. (ECS docker-compose的弹性缩容服务如何做)
    2. 日志分析以什么为主
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
6.要保障WebSocket分布式服务的客户端和服务端链接的稳定性和消息发送的可靠性,需要考虑以下方面:

高可用性:使用负载均衡器将客户端的请求均衡地分配到多个服务端节点上,并通过心跳检测来检测客户端与服务端的连接状态,以保证各个节点之间的负载均衡和故障转移能力,从而提高系统的稳定性和可用性。

容错性:WebSocket分布式服务应该具备自我修复能力,当出现临时性错误或服务不可用时,能够通过自动化的恢复机制来保持服务的可用性,如启用备用节点来替换故障节点,确保消息传输服务的无缝切换和持久化存储。

异步处理:在服务端处理消息的同时,要尽量避免阻塞其它的请求,可以使用异步任务处理来提高消息处理的吞吐量和响应速度。

消息确认机制:通过为消息设定唯一标识符并使用追踪日志来跟踪消息的状态和处理进度,以及加入对应答机制,可帮助确保消息被成功地处理和传递到目标节点,从而保障消息的可靠性和稳定性。

数据序列化和反序列化:服务端和客户端之间的数据通信要进行序列化和反序列化,确保数据传输的正确性和完整性,通常使用JSON格式,数据转换和解析过程要注意处理异常情况,如字段缺失或格式错误等。

系统监控和报警:系统要有完善的监控和报警系统,对服务运行情况和各项指标进行实时跟踪和分析,当出现异常情况时,能及时通知运维人员,帮助其及时分析和解决问题
  1. 在Kubernetes中,Pod的扩缩容功能有以下几种方式:

手动方式:手动方式是指通过命令或者图形界面手动修改Pod的副本数。手动方式的优点是易于理解和操作,但缺点是需要人工参与,不便于自动化和灵活性。

自动方式:自动方式是指通过配置Horizontal Pod Autoscaler(HPA)自动扩缩容。HPA会根据Pod的资源利用率、QPS或自定义指标等指标来判断是否需要扩容或缩容。自动方式的优点是智能化、自动化、高效并且遵循ITSM规范,缺点是配置复杂,需要配置HPA策略文件。

API 方式:API方式是直接通过Kubernetes的API接口扩缩容Pod,优点是可以快速响应突发流量、一键操作,但缺点是需要编写脚本,不太友好。

不同的方式有各自的优缺点,具体选择可以根据实际情况做出以下考虑:

对自动化的要求:如果需要自动化地扩缩容Pod,通常使用自动方式或API方式,因为它们都可以与CD/CI等自动化工具组合使用,实现自动操作,提高效率。

对成本的要求:手动方式的缺点是需要人工参与,容易出错且耗费时间,所以它通常用于对成本有限制的场景,例如开发测试环境。

对容错性的要求:API方式的优点是快速响应突发流量,如果有容错性要求,则需要选择API方式。

总之,根据不同的场景和需求可以选择不同的扩缩容方式,保证服务的稳定性和效率。

—-平台化,研发

分布式环境中集中syslog消息 蚂蚁有自己一套,平台化东西

  1. 及时发现,给他reset, 在蚂蚁这边
  2. 监控这块入手,如何做自动化
    1. 触发条件
  3. 容器化服务的ECS如何做扩缩容
  4. 业务如何做分流
  5. 日志分析