云计算

  • Infrastructure as a service
  • platform as a service
  • software as a service

容器的集群化如何管理? 我们需要一个 资源管理器

kubernates 的目的: 声明式系统

kubernates的所有公立能力构建在对象抽象的基础上,核心对象包括:

  • Node: 计算节点抽象,用来描述计算节点资源抽象、健康状态
  • Namespace: 资源隔离的基本单位,可以简单理解为文件系统的目录结构
  • Pod:用来描述应用实例,包括镜像地址、资源需求等。 kubernates 最核心的

etcd技术

etcd是 CoreOS 基于 Raft 开发的分布式 key-value 存储, 所谓分布式存储 就是 冗余存储, 存一份 可能节点坏了 数据丢失,我就存多几分,然后进行 负载均衡。

etcd 可以用于服务发现、共享配置 以及一致性保障(如数据库选主、分布式锁等)

  • 监听 key-value 存储
  • 监听机制
  • key过期和续约机制,用于监控和服务发现
  • 原子 CAS和 CAD ,用于分布式锁和 leader选举

DevOps

什么是 DevOps

  • DevOps = Development + Operation
  • 极速的迭代和快速的用户反馈

DevOps的意思是运维驱动的研发

举一个简单点的栗子,就像我司,运维不再负责项目部署,只负责生产环境、测试环境等各环境的搭建和维护。然后我等研发通过CI/CD来实现自动化的项目打包和部署。

研发做的事情其实没有变化,还是写各种业务代码,不同于传统研发的是:现在研发得懂如何实现自动化部署。更高一级的要求是研发需要明确知道运维架构应该是什么样的,这样才能告诉运维你需要一个什么样的环境,分别要有哪些中间件来实现你的需求。当然,你自己能搭环境就更好了。

链接: https://www.zhihu.com/question/392150309/answer/1200950798

devops 项目周期

1
2
3
4
5
6
7
graph LR
    dev(Dev)-->cidi(ci/build)
    cidi --> deploy(deploy)
    deploy --> Ops
    Ops--> feedback(feedback反馈)
    feedback --> dev
  style dev fill: #fff

devops 希望 能让机器做的事情,绝对不然人来做

比如 git pull, git push, git clone 等动作我希望能自动进行

github webhooks学习

设置监控告警

站点监控的原理就是 定期去 请求url ,检查返回的状态码