首页 热点资讯 义务教育 高等教育 出国留学 考研考公
您的当前位置:首页正文

Mongodb数据库加密存储

2023-11-10 来源:花图问答

不知道大家有没有遇到过这样的需求:自己的服务器出于对数据库安全的保护,需要对存储的数据进行加密保护。这样万一数据库被人拿到,别人也不能拿到数据库里面的内容。这里还有一个前提:前端的展示页面是不对外公开的,需要验证才能进入。为什么提这个,就是因为前端所展现的内容一定是明文的,不然管理人员如何阅读查看呢(这也给爬虫留下了机会,不过关键还是在于你能够拿到管理人员的密码)。

 

背景介绍:

  •   系统数据库采用的是Mongodb;
  •   后台使用的语言是Python;
  •   python与数据库的交互主要借助于Pymongo。
  •  

    寻找突破口:

    从这里面我们大概可以发现有两个地方可以下手:

    1. 每次进行数据库操作的时候对数据进行加解密操作。具体来说就是:增删改查之前对数据进行加密(这样才能在数据库中找到),查找之后对数据进行解密(这样才能得到明文的内容进行展示);
    2. 修改与数据库进行交互的库Pymongo,让其实现加密存储,解密读取。

    比较下两种方法的优缺点:

    第一种方案:实现很简单,但不适合大项目。项目一旦大了,对数据库的操作不太可能完全通过某个数据库操作模块来实现,这样修改起来就很麻烦了;

    第二种方案:对业务逻辑是透明的。并不需要对网站代码进行修改,但需要对pymongo的源码进行分析,找出增删改查相应的关键点,在这些关键点上进行加解密操作。

    由于自己的项目确实不小,存在很多模块。所以选择了第二种方案。

     

    具体步骤:

    1. 实现加解密函数库

    既然需要用到加解密操作,那么显然需要实现自己的加解密函数。具体实现中我使用了pycrypto加密库,利用其中的AES加密算法对文档进行加解密。加解密过程不难,利用里递归实现,代码实现如下:

    技术分享
     1 from Crypto.Cipher import AES 2 import bson 3 from bson.binary import Binary, UUIDLegacy 4 from pymongo import config 5 6 key = config.key 7 8 obj = AES.new(key) 9 10 def encrypt_helper(s):11 length = 16 - (len(s) % 16)12 s += chr(length) * length13 s = obj.encrypt(s)14 s = Binary(s, 1)15 return s16 17 def decrypt_helper(s):18 s = obj.decrypt(s)19 buf = bytearray(s)20 length = buf[-1]21 s = s[: -length]22 return s23 24 def encrypt_doc(doc):25 if isinstance(doc, str):26 return encrypt_helper(doc)27 if isinstance(doc, dict):28 for key in doc:29 if cmp(key, "channel") != 0:30 doc[key] = encrypt_doc(doc[key])31 return doc32 33 if isinstance(doc, list):34 for i in range(len(doc)):35 doc[i] = encrypt_doc(doc[i])36 return doc37 return doc38 39 40 def decrypt_doc(doc):41 if isinstance(doc, Binary):42 return decrypt_helper(doc)43 if isinstance(doc, dict):44 temp_doc = {}45 for key in doc:46 #version 147 #doc[key] = decrypt_doc(doc[key])48 49 #version 250 temp_doc[str(key)] = decrypt_doc(doc[key])51 doc = temp_doc52 return doc53 54 if isinstance(doc, list):55 for i in range(len(doc)):56 doc[i] = decrypt_doc(doc[i])57 return doc58 return doc
    View Code

    2. 找到pymongo中进行增删改查操作的代码并插入加解密的操作

    经过研读pymongo的代码发现,增删改查的操作主要是在两个文件里面进行的:collection.py,cursor.py。所以在实现过程中,我只对这两个文件的相关部分进行了修改(注意,我使用pymongo版本是2.7,如果使用其他版本的可能会有差别)。

    我就简单列举一下我修改的函数吧,大家有兴趣可以上github具体查看下整个实现:

  •  collection.py:
  • insert
  • update
  • find_one
  • remove
  • aggregate
  •  cursor.py
  • __getitem__
  • __send_message
  • 有兴趣的可以看看代码,github地址:https://github.com/ybAmazing/encrypt_pymongo

     

    思考和总结

    这个功能的必要性,我自己是持怀疑态度的。由于对黑客技术也不是很了解,也说不出个所以然来。大家如果有什么想法或建议的,可以留言,相互交流学习一下。

     

     

    Mongodb数据库加密存储

    标签:

    小编还为您整理了以下内容,可能对您也有帮助:

    组成区块链基础运算功能的组织架构内容?

    随着互联网的都不发展,消费者对区块链技术和数字虚拟货币的认知程度也在不断的提高。今天,我们就一起来了解一下区块链技术的基础运算方法都有哪些结构构成的。下面java课程就一起来了解一下具体情况吧。

    构成计算技术的基本元素是存储、处理和通信。大型主机、PC、移动设备和云服务都以各自的方式展现这些元素。各个元素之内还有专门的构件块来分配资源。

    本文聚焦于区块链的大框架:介绍区块链中各个计算元素的模块以及各个模块的一些实现案例,偏向概论而非详解。

    区块链的组成模块

    以下是去中心化技术中各个计算元素的构件块:

    存储:代币存储、数据库、文件系统/blob

    处理:有状态的业务逻辑、无状态的业务逻辑、高性能计算

    通信:数据、价值和状态的连接网络

    存储

    作为基本计算元素,存储部分包含了以下构件块。

    代币存储。代币是价值的存储媒介(例如资产、证券等),价值可以是比特币、航空里程或是数字作品的版权。代币存储系统的主要作用是发放和传输代币(有多种变体),同时防止多重支付之类的事件发生。

    比特币和Zcash是两大“纯净”的、只关注代币本身的系统。以太坊则开始将代币用于各种服务,以实现其充当全球计算中心的理想。这些例子中代币被用作运营整个网络架构的内部激励。

    还有些代币不是网络用来推动自身运行的内部工具,而是用做更高级别网络的激励,但它们的代币实际上是存储在底层架构中的。一个例子是像Golem这样的ERC20代币,运行在以太坊网络层上。另一个例子是Envoke的IP授权代币,运行在IPDB网络层上。

    数据库。数据库专门用来存储结构化的元数据,例如数据表(关系型数据库)、文档存储(例如JSON)、键值存储、时间序列或图数据库。数据库可以使用SQL这样的查询快速检索数据。

    传统的分布式(但中心化)数据库如MongoDB和Cassandra通常会存储数百TB甚至PB级的数据,性能可达到每秒百万次写入。

    SQL这样的查询语言是很强大的,因为它将实现与规范区分开来,这样就不会绑定在某个具体的应用上。SQL已经作为标准应用了数十年,所以同一个数据库系统可以用在很多不同的行业中。

    换言之,要在比特币之外讨论一般性,不一定要拿图灵完备性说事。你只需要一个数据库就够了,这样既简洁又方便扩展。有些时候图灵完备也是很有用的,我们将在“去中心化处理”一节具体讨论。

    BigchainDB是去中心化的数据库软件,是专门的文档存储系统。它基于MongoDB(或RethinkDB),继承了后者的查询和扩展逻辑。但它也具备了区块链的特征,诸如去中心化控制、防篡改和代币支持。IPDB是BigchainDB的一个受监管的公开实例。

    在区块链领域,也可以说IOTA是一个时间序列数据库。

    文件系统/blob数据存储。这些系统以目录和文件的层级结构来存储大文件(电影、音乐、大数据集)。

    IPFS和Tahoe-LAFS是去中心化的文件系统,包含去中心化或中心化的blob存储。FileCoin、Storj、Sia和Tieron是去中心化的blob存储系统,古老而出色的BitTorrent也是如此,虽然后者使用的是p2p体系而非代币。以太坊Swarm、Dat、Swarm-JS基本上都支持上述两种方式。

    数据市场。这种系统将数据所有者(比如企业)与数据使用者(比如AI创业公司)连接在一起。它们位于数据库与文件系统的上层,但依旧是核心架构,因为数不清的需要数据的应用(例如AI)都依赖这类服务。Ocean就是协议和网络的一个例子,可以基于它创建数据市场。还有一些特定应用的数据市场:EnigmaCatalyst用于加密市场,Datum用于私人数据,DataBrokerDAO则用于物联网数据流。

    处理

    接下来讨论处理这个基本计算元素。

    “智能合约”系统,通常指的是以去中心化形式处理数据的系统[3]。它其实有两个属性完全不同的子集:无状态(组合式)业务逻辑和有状态(顺序式)业务逻辑。无状态和有状态在复杂性、可验证性等方面差异巨大。三种去中心化的处理模块是高性能计算(HPC)。

    无状态(组合式)业务逻辑。这是一种任意逻辑,不在内部保留状态。用电子工程术语来说,它可以理解为组合式数字逻辑电路。这一逻辑可以表现为真值表、逻辑示意图、或者带条件语句的代码(if/then、and、or、not等判断的组合)。因为它们没有状态,很容易验证大型无状态智能合约,从而创建大型可验证的安全系统。N个输入和一个输出需要O(2^N)个计算来验证。

    跨账本协议(ILP)包含crypto-conditions(CC)协议,以便清楚地标出组合电路。CC很好理解,因为它通过IETF成为了互联网标准,而ILP则在各种中心和去中心化的支付网络(例如超过75家银行使用的瑞波)中广泛应用。CC有很多实现的版本,包括JavaScript、Python、Java等。BigchainDB、瑞波等系统也用CC,用以支持组合式业务逻辑/智能合约。

    dashboard唯一依赖的组件是什么

    答:Dashboard唯一依赖的组件是数据源。原因在于,Dashboard的主要目的是展示数据,因此需要有数据源来提供数据。数据源可以是不同类型的数据,例如数据库、文件或API等。不同的数据源需要使用不同的方式来获取数据,并且需要根据数据源的特点进行相应的处理和转换。在Dashboard中,数据源不仅仅是提供数据的组件,还可以进行数据的过滤、排序和聚合等操作,从而提供更加丰富的数据展示方式。

    除了数据源,Dashboard还依赖于其他组件,例如数据可视化组件、图表组件、交互组件等。这些组件可以帮助用户更加直观地理解和分析数据。同时,Dashboard还需要考虑安全性、性能、可扩展性等方面的问题,以满足不同用户对数据的需求和要求。因此,在设计和实现Dashboard时,需要综合考虑多个因素,并选择合适的组件和技术来实现。

    黑马程序员Linux运维培训怎么样?

    1、什么是运维工程师?

    运维工程师,服务器与系统安全稳定的掌舵者!当一个产品(如Web网站、APP软件、网络游戏等)正式上线后,产品、开发、测试类的工作就正式结束了,接下来的维护和管理工作就会全部移交给运维工程师。

    运维工程师的主要工作职责就是负责服务器的架构设计以及云计算平台管理,保障软件的稳定运行。没有开发以及测试类工作复杂且工作解决方案相对固定。更重要的是没有年龄以及学历的,随着工作年限和工作经验地增长,也会越老越吃香。

    2、运维工程师工作场景

    3、IT行业有哪些比较典型运维案例

    当然不仅仅是淘宝、12306,其实你使用的每一个APP背后都有一个强大的运维团队在为其提供专业的技术支持。

    运维工程师是一个产品必不可少的环节,也是一个产品成功与否的关键!

    4、运维行业发展前景怎么样?

    5、运维岗位发展方向有哪些?

    6、运维工程师岗位薪资情况

    1-2年薪资情况=> 8k ~20k

    3-5年薪资情况=> 20k~ 35k

    5年以上薪资情况=> 50 ~60万/年

    7、黑马运维学科学员就业率和就业薪资怎么样?

    运维学科2019全年所有班级就业率93.5%,平均薪资8.7k起,最高薪资25k* 14薪

    三、运维课程

    1、第一阶段:Linux运维基础功

    运维基础:运维发展史、计算机概述、计算机组成、操作系统学完此阶段可掌握的核心能力:熟练掌握Linux操作系统的安装(CentOS7.6)、配置、基础命令、VIM编辑器、用户管理、权限管理、自有服务、进程检测与控制、阿里云平台管理、开源CMS项目上线部署实战。

    Linux操作系统:Linux系统概述、虚拟机、CentOS7.6系统安装,Linux基础命令

    Linux下文件管理(上):文件命名规则、目录管理、文件管理、文件复制与剪切、重命名、Linux文件打包与压缩、文件处理命令

    Linux下文件管理(下):VIM编辑器介绍、VI与VIM的区别、VIM安装与配置、四种工作模式(命令模式,编辑模式,末行模式,可视化模式)、相关VIM指令、VIM扩展功能、VIM总结

    Linux下用户管理:用户和组的相关概念、用户组管理、用户管理、用户密码设置、切换用户、Linux用户管理实战

    Linux下权限管理:权限的基本概念、权限在生产环境中的作用、Linux权限类别(rwx)、Linux文件所有者类别(ugo)、普通权限设置(字母+数字)、文件属主与属组设置、高级权限、ACL权限控制、umask

    Linux下自有服务+软件包管理:自由服务概述、systemctl管理服务命令、ntp时间同步服务、firewalld防火墙、crond计划任务、设备挂载与解挂、rpm包管理工具

    Linux进程检测与控制:进程与程序的概念、进程管理命令(top命令,free命令,df命令,ps命令,netstat命令,kill命令与killall命令)、进程优先级设置

    阿里云平台管理与开发CMS项目上线部署实战:云计算平台概述、阿里云平台注册、登录与管理、项目背景、LAMP环境概述、YUM指令、LAMP环境搭建、开源CMS项目上线部署实战

    学完此阶段可解决的现实问题:能够根据企业实际项目需求实现服务器部署与架构。

    学完此阶段可拥有的市场价值:熟练掌握之后,可以满足市场对初级运维工程师的需求,但是市场就业工资相对较低,还是建议继续学习就业班课程。

    2、第二阶段:Linux系统服务篇

    Linux高级指令:基础命令回顾、find命令之高级搜索、tree命令、scp文件上传与下载、计划任务crontab + tar实现定时备份、用户管理高级、文件权限管理高级

    Linux下软件包管理:软件包管理任务背景、Linux下软件包概述、RPM包管理工具、YUM包管理工具、YUM源配置(公网YUM源,本地YUM源、自建YUM源仓库)、源码安装概述、源码安装三步走、源码安装实战

    Linux远程管理服务SSH:SSH任务背景、SSH服务概述,yum源配置,SSH服务安装与配置实战,公私钥概念,SSH免密码登录

    Linux数据同步RSYNC:RSYNC任务背景、RSYNC介绍、RSYNC基本语法、本机同步与远程同步、把RSYNC作为系统服务、RSYNC结合INOTIFY实现实时同步、RSYNC托管XINETD

    Linux下文件共享服务FTP、NFS、SAMBA:文件共享任务背景、FTP服务介绍、FTP工作模式(主动模式+被动模式)、FTP服务搭建、客户端工具(ftp、lftp使用)、FTP访问控制、NFS服务介绍、NFS服务搭建、配置文件详解、NFS任务背景及解决方案、SAMBA服务介绍、SAMBA服务搭建、配置文件详解、文件共享服务总结

    DNS域名管理服务:DNS服务介绍、DNS的作用、DNS服务搭建、正向解析、反向解析、多域搭建、NTP时间服务器、主从DNS架构

    源码构建LAMP环境及部署业务应用:LAMP任务背景、Web服务器环境准备、软件编译回顾、编译安装MySQL、编译安装Apache、编译安装PHP、后期配置、Web应用系统部署实战

    Linux下日志管理服务RSYSLOG:日志管理任务背景、查看日志、日志管理服务(RSYSLOG概述,日志列表,日志级别,相关符号,配置文件)、RSYSLOG本地日志管理、RSYSLOG远程日志管理、日志管理应用实践

    Linux 磁盘管理:磁盘管理任务背景、磁盘管理概述、fdisk命令详解、Linux分区概述、Linux分区实战、逻辑卷介绍、逻辑卷基本概念(PV、VG、PE、LV)、逻辑卷LVM应用操作实战、RAID介绍、RAID常见级别、软硬RAID、软RAID应用实践

    Shell脚本编程:Shell概述、变量、Shell流程控制、Shell数组、Shell函数、Shell特殊用法、正则表达式、Shell编程实战

    数据库DBA:MySQL概述,MySQL5.7安装,MySQL配置,MySQL基本操作、SQL语句详解、MySQL索引、MySQL备份与还原、MySQL主从复制、MHA高可用架构、MySQL企业级应用实战

    学完此阶段课掌握的核心能力:

    1、了解Linux系统运行原理,实现Linux服务器的维护与管理;

    2、了解Linux系统相关服务,能根据企业需求实现企业运维工作。

    学完此阶段可解决的现实问题:能实现企业Linux服务器的日常维护与管理,搭建SSH、文件共享、DNS、Apache等服务、能完成系统日志分析、Shell脚本编程、数据库DBA等相关工作。

    学完此阶段可拥有的市场价值:熟练学习和掌握后,可满足企业运维的初中级需求。

    3、第三阶段:千万级商城系统架构设计

    源码构建企业级LNMP架构及电商系统上线部署:千万级商城系统架构设计任务背景、Web项目开发流程、Linux服务器环境准备、LNMP环境概述、MySQL数据库服务搭建、Nginx软件服务搭建、PHP软件服务搭建、Web商城项目部署上线

    大型WEB服务软件Nginx部署介绍使用:Nginx软件概述、Nginx平滑升级、nginx.conf配置文件详解、虚拟主机配置、Nginx默认官方模块详解(GZIP压缩,客户端缓存,反向代理,基于IP/用户的访问控制,目录显示)、日志管理、日志轮转、第三方日志管理软件GoAccess、Location区块、URL重写、第三方模块安装与配置、Nginx安全管理、Nginx其他衍生版本(Tengine,OpenResty)

    WEB高可用集群架构设计及实现(keepalived):WEB高可用集群架构设计任务背景、单点数据库迁移、HA高可用集群概述、Keepalived软件介绍、Keepalived组成和原理、VRRP协议、安装与配置Keepalived、Nginx服务高可用实践、Keepalived扩展内容(非抢占模式、VIP脑裂、单播模式)

    WEB负载均衡服务器集群架构设计及实现LB(Nginx/LVS/HAProxy):WEB负载均衡服务器集群架构设计任务背景、为什么需要LB负载均衡技术、LB负载均衡架构图、负载均衡分类、常见负载均衡实现方式、LB负载均衡环境准备、Nginx负载均衡实现、负载均衡算法、Session共享解决方案、高可用负载实践; LVS概述、LVS工作原理、LVS核心组件、LVS三种工作模式(NAT模式、DR模式、TUN隧道模式)、LVS/NAT原理和特点、LVS/DR原理和特点、LVS/TUN原理和特点、LVS的十种调度算法、LVS/NAT模式部署实践、LVS/DR模式部署实践; HAProxy概述、HAProxy安装与部署、haproxy.cfg配置文件详解、常见问题分析、HAProxy调度算法、HAProxy负载均衡应用实践

    MyCAT读写分离:MySQL读写分离任务背景、读写分离的目的、读写分离常见的实现方式、搭建M-S主从复制、代码实现读写分离、MyCAT实现读写分离实战(JDK配置、MyCAT配置文件详解、读写分离实践、高可用实践、分库分表、MyCAT企业级案例实践)

    非关系型数据库NoSQL(Memcache/Redis/MongoDB):非关系型数据库任务背景、Web项目访问流程、优化方案、缓存技术引入、memcached介绍、memcached安装与部署、telnet客户端使用、memcached指令详解、memcached tools工具使用、LRU失效机制、PHP memcached扩展安装、Session入memcached、缓存项目的热点数据; Redis介绍、Redis应用场景、Redis源码安装、客户端工具使用、Redis数据结构详解、数据持久化操作(快照+AOF)、企业级案例(主从,安全,PHP Redis扩展,Session入Redis);MongoDB任务背景、MongoDB安装和配置、数据结构类型操作CURD、MongoDB安全设置、PHP扩展、桌面管理软件、企业级日志统计实践

    JAVA项目架构设计实战(LNTM架构):Java项目任务背景、Tomcat概述、Tomcat安装与部署、Tomcat企业级管理、Host虚拟主机配置、Server Status服务器状态、应用管理、Nginx动静分离、Nginx+Tomcat负载均衡、Maven概述、Maven项目打包、Maven项目部署

    存储(NAS/SAN/GlusterFS/Ceph):存储概述、Linux存储分层、存储的分类(DAS,NAS,SAN)、存储类型的分类(文件存储、块存储、对象存储)、SAN的分类、IP-SAN之iscsi实现; 分布式存储、Glusterfs介绍、raid级别回顾、常见卷的模式、Glusterfs集群、环境准备、集群部署、创建glusterfs存储卷、客户端使用、卷的删除、常见卷类型(stripe模式、distributed模式、distributed-replica模式、dispersed模式、distributed-dispersed模式)、其它卷类型、glusterfs分部署存储应用实战; 认识Ceph、Ceph架构原理图、Ceph集群、Ceph集群组件、Ceph集群环境准备、Ceph集群部署实践、RADOS原生数据存取、Ceph文件存储、Ceph块存储、Ceph对象存储、Ceph对象存储+owncloud打造云盘系统、Ceph Dashboard(拓展)

    配置自动化(Ansible/SaltStack):自动化运维任务背景、认识ansible、ansible安装与配置、服务器分组、ansible模块(hostname模块,file模块,copy模块,yum模块,service模块,command和shell模块,scriYAML格式pt模块)、playbook介绍、playbook实例、playbook编排应用、roles介绍、roles的目录结构、roles应用案例; saltstack介绍、saltstack安装与配置、saltstack远程执行命令、grains、pillar、配置管理文件、配置管理目录、配置管理命令、配置管理计划任务、其他命令、salt-ssh使用

    企业级监控平台(Zabbix/Prometheus):企业级监控任务背景、监控的目的、主流的开源监控平台、Zabbix概述、Zabbix服务器安装、Zabbix监控本机与远程主机、模板、监控项与应用集、图形、触发器、报警、Zabbix代理、主动监控与被动监控、Zabbix应用部署实战; 认识Prometheus、Prometheus原理架构图、Prometheus监控安装部署、Prometheus监控远程主机、远程MySQL、Grafana介绍、Grafana安装与登录、Prometheus结合Grafana实现Linux系统监控、CPU监控、MySQL监控等等、Grafana报警系统实践

    企业级日志分析(ELK/Kafka):ELK任务背景、ELK概述、elasticsearch部署、elasticsearch基础概念、elaticsearch基础API操作、ES查询语句、elasticsearch-head、logstash简介、logstash部署、日志采集、采集messages日志、采集多日志源、kibana介绍、kibana部署、kibana汉化、通过kibana查看集群信息、通过kibana查看logstash收集的日志索引、通过kibana做可视化图形、filebeat介绍、filebeat收集日志、filebeat传输给logstash、filebeat收集nginx日志、filebeat日志过滤

    CI/CD(Git、Gitlab、Jenkins):CI/CD任务背景、版本控制概念、Git安装、Git身份设置、Git创建本地仓库、Git暂存区、Git版本控制、Git分支管理、扩展:Windows版Git; Github概述、GitHub注册、创建项目、远程仓库、免密push、分支、多人协作; GitLab介绍、GitLab下载、安装与配置、GitLab配置、仓库管理、持续集成(CI)、持续交付(CD)、蓝绿部署、滚动更新、灰度发布

    运维安全(SSL与CA认证/防火墙/ VPN/JumpServer与Teleport跳板机):运维安全任务背景、运维安全概述、硬盘分区加密(扩展)、对称加密、非对称加密、数字签名、SSL与CA认证、SSL介绍、CA认证介绍、https应用实践; 防火墙概述、iptables的应用、iptables防火墙结构、iptables基本语法、iptables四表五链、企业级防火墙规则设置、firewalld包过滤、firewalld与iptables的区别、firewalld防火墙规则设置、firewall-config图形模式; VPN任务背景、隧道介绍、net-to-net隧道通讯、VPN介绍、IPSec协议、libreswan实现net-to-netVPN、三网络VPN互联、roadwarrior VPN(libreswan实现点对网VPN,open实现点对网,使用pptpd实现VPN),PAM认证,LDAP,开源堡垒机jumpserver,轻量级开源堡垒机teleport(拓展)

    学完此阶段可掌握的核心能力:

    1、 具备Linux服务器架构设计能力,保证应用架构合理可控;

    2、具备监控检查系统软硬件运行状态,保证系统安全稳定运行的能力;

    3、具备CI/CD持续集成/持续支付能力;

    4、具备配置自动化以及日志分析能力;

    5、具备解决复杂问题和技术难点的能力。

    学完此阶段可解决的现实问题:

    1、掌握Java、PHP服务器架构能力;

    2、能够搭建企业级高可用服务器(集群、高可用、负载均衡、缓存、存储);

    3、掌握阿里云/华为云产品实战;

    4、能使用Zabbix/Prometheus搭建企业级监控;

    5、能够熟练掌握CI/CD持续集成/持续支付工具;

    6、能够使用Ansible/SaltStack实现运维自动化;

    7、能使用ELK实现企业级日志分析;

    8、能够掌握常见运维安全防护手段。

    学完此阶段可拥有的市场价值:熟练掌握和学习后,可满足Linux运维行业中高级需求。

    4、第四阶段:Linux云计算运维

    KVM虚拟化:KVM任务背景、计算机工作原理、虚拟化概述与分类、KVM环境准备、KVM安装、使用KVM安装虚拟机、KVM基础管理命令、KVM配置文件、KVM克隆、KVM网络管理、快照、设备管理、存储池管理、磁盘镜像管理、虚拟机快速创建脚本

    公有云运维(阿里云[ECS/RDS/SLB/CDN/OSS/NFS]):公有云任务背景、阿里云概述、VPC专有网络、阿里云安全组、云服务器ECS、自定义镜像、阿里云SLB、阿里云RDS、阿里云存储(NAS与OSS)、CDN、域名与域名解析、SSL证书、数据传输DTS、云监控、DDOS高防、容器服务、公有云企业级案例应用实践

    私有云运维之OpenStack平台:私有云任务背景、OpenStack概述、OpenStack组件及其作用(Compute 计算服务、Networking 网络服务、Object Storage 对象存储、Block Storage 块存储服务、Identity 身份认证、Image Service 镜像服务、Dashboard UI页面、Metering 测量服务、Orchestration 编排部署、Database Service 云数据库)、OpenStack自动部署、OpenStack手工部署、OpenStack云平台应用实践

    Docker容器技术:Docker容器技术任务背景、PAAS平台介绍、认识容器、Docker介绍、Docker内核技术(NameSpace,Control Group,LXC与docker区别)、Docker环境准备、Docker软件安装、Docker Daemon管理、镜像、容器、仓库、Docker存储驱动、Docker应用实践、Dockerfile概述、使用Dockerfile构建镜像、单宿主机容器互联方式、Docker网络、Docker的Web管理平台、Docker三剑客(Docker machine、Docker compose、Docker swarm)、Docker容器应用部署实践

    Kubernetes(K8S)容器编排工具:Kubernetes(K8S)容器编排任务背景、认识容器编排、Kubernetes概述、Kubernetes架构、集群部署方式、Kubeadm部署Kubernetes集群、集群与节点信息、节点标签、namespace命名空间、工作负载(workloads)、pod概述、pod分类、pod的YAML格式、pod资源、pod调度、pod生命周期、pod控制器、service、ingress controller、kubernetes存储卷、ceph集群部署、ConfigMap、Secret、PV与PVC、API网关 kong、包管理方案 helm2、存储解决方案 GlusterFS、服务网格 istio、监控解决方案 heapster、应用实践 gitlab-ce、应用实践 jenkins、应用实践 kafka、应用实践 zookeeper应用实践 配置中心Apollo

    综合案例:Docker+K8S企业级项目应用实践

    学完此阶段可掌握的核心能力:

    1、熟练掌握虚拟化技术;

    2、掌握公有云与私有云架构实战;

    3、熟练使用容器与容器编排工具;

    4、熟练掌握企业级云计算技术应用实践。

    学完此阶段可解决的现实问题:

    1、能够使用KVM实现虚拟化;

    2、能够掌握公有云与私有云服务器架构实战;

    3、能够熟练使用Docker容器;

    4、能够熟练使用Kubernetes(K8S)容器编排工具;

    5、能够熟练掌握Docker+Kubernetes(K8S)项目架构设计

    学完此阶段可拥有的市场价值:熟练掌握和学习后,可满足Linux云计算架构工程师的高级需求。

    5、第五阶段:Python CMDB运维开发(DevOps)

    HTML5:HTML简介、HTML标签详解、字符编码的奥秘、HTML5新特性与常用标签

    CSS3:CSS简介、CSS的引入方式、CSS基本选择器、CSS属性、盒子模型、CSS浮动、CSS3新特性与常用属性、CSS应用案例

    Bootstrap:Bootstrap环境搭建、全局样式、网页排版、表单、图片及辅助类、网页布局、Bootstrap组件、CMDB后台布局实战

    JavaScript/Ajax/jQuery:JavaScript简介、Javascipt语法基础、BOM模型、DOM模型、Ajax概述、Ajax中的get与post请求、Ajax案例、jQuery框架概述、jQuery选择器、jQuery事件、jQuery与Ajax、JavaScript应用实践

    Python基础:Python概述、Python环境部署、变量、标识符和关键字、输入和输出、数据类型转换、条件控制语句和循环语句、容器类型、函数、文件操作

    Python高级:面向对象、异常处理、模块和包、Python与MySQL应用实践

    Django框架:Django框架介绍、Django模型、ORM及数据库操作、视图及模板、Django中间件

    综合项目:Python+Django实现CMDB企业自动化运维平台

    学完此阶段可掌握的核心能力:

    1、掌握Web前端开发相关技术如HTML5/CSS3/JavaScript;

    2、掌握Python运维相关模块;

    3、掌握Python Django框架;

    4、具备一定的Python运维开发能力。

    学完此阶段可解决的现实问题:

    1、具备一定的编程思维,为未来系统架构师铺路搭桥;

    2、能够熟练掌握Python运维相关模块实现运维管理;

    3、能够使用Python+Django开发企业自动化运维平台。

    学完此阶段可拥有的市场价值:熟练掌握和学习后,可满足Linux运维行业的高级需求。

    显示全文