数据库-存储-缓存-Kubernetes-Docker

云计算的3层划分——

SaaS:软件服务。SaaS 是软件的开发、管理、部署都交给第三方,不需要关心技术问题,可以拿来即用。普通用户接触到的互联网服务,几乎都是 SaaS,腾讯云相关产品如腾讯会议、在线教育互动课堂、人脸核身等。

PaaS:平台服务。PaaS 提供软件部署平台(runtime),抽象掉了硬件和操作系统细节,可以无缝地扩展(scaling)。开发者只需要关注自己的业务逻辑,不需要关注底层。腾讯云大部分产品均为PASS产品,如云服务器、云数据库、轻量应用服务器、对象存储、内容分发网络等。

IaaS:基础设施服务。IaaS 是云服务的最底层,主要提供一些基础资源。它与 PaaS 的区别是,用户需要自己控制底层,实现基础设施的使用逻辑。


1. Ops工具

1.1 nginx

ngnix是一个轻量级的反向代理web服务器,能支持上万的并发连接。可以通过不同的负载均衡算法来解决请求量过大的问题。

ngnix的好处和作用

  1. 跨平台、配置简单
  2. ※支持高并发连接(支持负载均衡,官方描述一个支持5万访问)、
  3. 稳定性高(很少宕机)
  4. 内存消耗小(10~20M)
  5. nginx内置健康检查功能,如果有服务器宕机 再发送的请求 就不会发送到宕机的服务器了。
  6. 节省宽带(支持GZIP压缩)
  7. 接收用户请求是异步的(异步非阻塞的处理机制:提供队列排队解决——这也是ngnix性能非常高的原因)
  8. 反向代理
  9. 高扩展性
  10. 开源
  11. 可以用一台服务器虚拟出很多个网站

    什么是负载均衡(Load Balancing)? 将工作负载分布到多个服务器来提高网站、应用等服务的性能和可靠性。

    什么是正向代理和反向代理? 正向代理:客户端知道要到达的目标服务器,发送请求到一个代理服务器让其到达目标服务器(如翻墙)。 反向代理:请求统一被nginx接收,然后nginx的反向代理服务器按照一定规则再分发给后端的业务处理服务器。(反向代理隐藏了源服务器,比较安全)

缺点:动态页面处理比较差。

参考:https://www.nginx.org.cn/article/detail/451


Apache与nginx的异同及优缺点比较
apache同步多进程(一个连接对应一个进程),ngnix异步;
apache比较适合配上php,ngnix需要配合其他后端;
apache做动态比较合适;
apache配置没有ngnix简洁。


2. 云原生

什么是云原生(CloudNative)? 云原生其实一直没有确切的定义,一直处于发展变化之中。 云原生是一种构建和运行应用程序的方法,是一套技术体系和方法论。Cloud表示应用程序位于云中,而不是传统的数据中心;Native表示应用程序从设计之初就考虑到云的环境,原生为云而设计。 Pivotal官网概括云原生为:DevOps + 持续交付 + 微服务 + 容器。 总而言之,符合云原生架构的应用程序应该是:采用开源堆栈(K8S+Docker)进行容器化,基于微服务架构提高灵活性和可维护性,借助敏捷方法、DevOps支持持续迭代和运维自动化,利用云平台设施实现弹性伸缩、动态调度、优化资源利用率。

2.1 Docker

Docker是一个用于创建容器的引擎,我的理解容器就是类似虚拟机技术但比虚拟机更加轻量化,能实现方便的在不同环境复制迁移。
我之前实习的时候让我部署腾讯的蓝鲸平台,就把不同的功能都装进了Docker,还实现了模块化。

有一个很好的比喻就是容器container是一个饭盒,然后程序员准备好饭摆放好各种菜,就可以直接交给下一个程序员,下一个程序员不用关心里面装了什么,也不用关心需要怎么样的配置文件,怎么样的版本,能减少很多沟通成本。

Docker之间可以共用资源。

Docker的口号
“Build, Ship and Run”
“Build once,Run anywhere”


如何使用Docker?
Docker技术有三大核心概念:

  • 镜像Image
  • 容器Container
  • 仓库repository

2 k8s

k8s也就是kubernetes。
kubernetes脱胎于Google的Borg大型集群管理系统。

3. 监控

1 zabbix

zabbix是一款基于web的监控服务器的软件。

2 promethues

4. 数据库

1 cmdb

配置管理数据库。

趋势——

软件设计的两个关键目标——高内聚,低耦合。一切的设计都是为了实现这两个目标,因此