从零开始实战gitops
gitops 1顾名思义,基于 Git 的 DevOps 工作流水线。 devpos 最佳实践推荐KubeSphere-v2.1KubeSphere-v3.1.1 什么是gitopsGitOps是为云本地应用程序实现连续部署的一种方法。它通过使用开发人员已经熟悉的工具(包括Git和连续部署工具),着重于在操作基础设施时以开发人员为中心的体验giops的核心思想是拥有一个Git存储库,该存储库总是包含对生产环境中当前需要的基础设施的声明性描述,以及一个自动流程,以使生产环境匹配存储库中所描述的状态。如果您想要部署一个新的应用程序或更新一个现有的应用程序,您只需要更新存储库—自动流程处理其他所有事情。这就像使用巡航控制来管理生产中的应用程序一样。 giops:在声明性基础设施之上的版本化CI/CD。停止编写脚本并开始发布 我为什么要使用giops ?1.更快、更频繁地部署可能每一种持续部署技术都承诺使部署更快,并允许您更频繁地部署。GitOps的独特之处在于你不需要切换工具来部署你的应用程序。无论如何,所有事情都发生在用于开发应用程序的版本控制系统中。这样,Git记录不仅是审计日志,也 ...
日志--工具模块
mysql 5.7数据持久化管理工具 新建挂载文件(当然这样并不合适)1mkdir -p /home/docker/mysql/conf && mkdir -p /home/docker/mysql/data 部署容器123456docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root -v /home/docker/mysql/conf/my.cnf:/etc/mysql/my.cnf -v /home/docker/mysql/data:/var/lib/mysql --restart=on-failure:3 -d mysql:5.7# -d:后台运行# -p:将容器内部端口向外映射# --name:命名容器名称# -v:将容器内数据文件夹或者日志、配置等文件夹挂载到宿主机指定目录# -e:设置环境变量,此处指定root密码 PortainerPortainer 是一个强大的、基于 GUI 的容器即服务解决方案,可帮助组织轻松安全地管理和部署云原生应用程序。 新建挂载文件(当然这样并 ...
降低Redis内存占用率
降低Redis内存占用率降低redis 内存占用率有助于减少创建快照和加载快照所需的时间、提升载入AOF文件和重写AOF文件时的效率、缩短从服务器同步所需要的的时间,并且让redis可以存储更多的数据而无需添加额外的硬件。 短结构redis 为列表、集合、散列、有序集合提供了组配置选项即短结构; 配置项 list-max-ziplist-entries 128 list-max-ziplist-value 64 zset-max-ziplist-entries 128 zset-max-ziplist-value 64 hash-max-ziplist-entries 512 hash-max-ziplist-value 64 -max-ziplist-entries 选项说明列表、散列、有序集合在被编码情况下允许的最大元素数量-max-ziplist-value 选项则说明压缩列表每个节点的最大体积的多少个字节。当以上这些选项被突破时redis 就会将对应的类型压缩列表编码转换为其他结构,从而导致内存占用增加。即使后面key 的体积减少了且满足了 ...
Rsa+Aes加密混淆流程
Rsa+Aes加密混淆流程仅能处理 信息泄露问题, 请求被篡改问题client 加密1234567891011121314151617181920212223242526272829303132333435363738// 接口防止参数篡改和重放攻击// header['timestamp'] 是否超过了60s 处理 重放攻击 类型: int// header['nonce'] 保证每个请求只发一次 类型: intvar asekey =EncryptedCommunicationMix().md5(str(header['timestamp']+header['nonce']+任意长度随机字母数字组合))var pubkey = 模板渲染获得// 原数据 var bodyData = {"username":"dout","fsdafsa","fdsafsd"}// 原数据加密后的存放位置va ...
Redis 开发笔记2
Redis缓存穿透、缓存击穿、缓存雪崩解决方案与实现伪代码缓存穿透 描述: 缓存穿透是指缓存和数据库中都没有的数据,而用户不断发起请求,如发起为id为“-1”的数据或id为特别大不存在的数据。这时的用户很可能是攻击者,攻击会导致数据库压力过大。 解决方案: 1.接口层增加校验,如用户鉴权校验,id做基础校验,id<=0的直接拦截; 2.从缓存取不到的数据,在数据库中也没有取到,这时也可以将key-value对写为key-null,缓存有效时间可以设置短点,如30秒(设置太长会导致正常情况也没法使用)。这样可以防止攻击用户反复用同一个id暴力攻击 缓存击穿 描述: 缓存击穿是指缓存中没有但数据库中有的数据(一般是缓存时间到期),这时由于并发用户特别多,同时读缓存没读到数据,又同时去数据库去取数据,引起数据库压力瞬间增大,造成过大压力 解决方案: 1.设置热点数据永远不过期。 2.加互斥锁 说明: - 1.缓存中有数据,就直接返回数据 - 2.缓存中没有数据,第1个进入的线程,获取锁并从数据库去取数据,没释放锁之前,其他 ...
Redis 数据安全&性能保障
Redis 数据安全&性能保障redis 提供两种方式将数据存储到硬盘,方便以后数据重用或者防止系统故障而将数据备份到一个远程位置。 redis 持久化配置选项12345678910111213141516171819202122# 当60s 之内有10000 次写入 就自动触发一次 BGSAVE 命令save 60 10000stop-writes-on-bgsave-error yesrdbcompression yesrdbchecksum yesdbfilename dump.rdb # 指定写入文件名称# 以上是快照持久化配置appendonly noappendfilename "appendonly.aof"appendfsync everysec '''everysec:每秒执行一次同步(最多只会丢失1s内的数据); always:每个redis 命令都要同步写入硬盘(不建议使用,较为消耗性能,且受到硬盘的限制【机械:每秒大约200命令;ssd: 每秒大约几百万个命令】; )no: 让操作性来决定何时同步(不建 ...
Redis 命令详细介绍
Redis 命令字符串 key使用方式 功能描述 incr key-name key 的存储的值加1 decr key-name key 的存储的值减1 incrby key-name amount key 存储的值加上整数amount decr key-name amount key 存储的值减去整数amount incrbyfloat key-name amount key 存储的值加上浮点数amount append key-name value getrange key-name start end setrange key-name offset getbit key-name offset setbit key-name offset value bitcount bitop operation dest-key key-name [key-name…] 列表 key使用方式 功能描述 rpush key-name value [value…] lpush key-name value ...
Redis 开发笔记
Redis 开发笔记像db一样的操作redis全局索引: key值构建:idx:[表名] value值构建:主键set集合 sadd idx:user:1....n sort idx:user get go:user:* 缺陷:在redis分片集群中,如果data:student:x[1,2,3,4,5]与idx:student不完全在同一个集群,则不支持sort get 命令组合 lua && Piplining 分页查询: sort idx:user get go:user:* limit 0 4 ===> sort key get key:* limit offset count 条件查询: key值构建:idx:[表名]:[字段名]:[字段值] value值构建:主键set集合 设置查询key:sadd idx:user:add 1 2 3 4 5 6 7 8 9 ===> sadd key m ...
Redis 基本数据结构使用
安全模块SQL自动注入和数据库接管工具 sqlmapproject ShareX是一个免费的开源程序,可以让你捕捉或记录屏幕的任何区域,只需按一下键即可共享。它还允许将图像、文本或其他类型的文件上传到您可以选择的许多支持的目的地。 ShareX 查找漏洞、错误配置、机密、容器中的SBOM、Kubernetes、代码库、云等等 trivy GitHub上值得关注的20个网络安全项目 GitHub上值得关注的20个网络安全项目
Redis 基本数据结构使用
Redis 基本数据结构使用 切换数据库 select 1 字符串(string) GET 获取存储在给定key中的值 SET 设置存储在给定key中的值 DEL 删除存储在给定key中的值 incr key 递增数字 场景: 视频/文章访问量统计 incr post:video:page.view 实现关系db中的唯一id自增 incr key increment 增加指定的整数 decr key 递减数字 decr key increment 减少指定的整数 append key value 向尾部追加值 strlen key 获取string 的长度 mget key [key ...] 批量获取key的值 mset key value [key value ...] 批量设置key - value 列表(linked-list) rpush 将给定的值推入list 的右端 lpush 将 ...