Kubernetes介绍
Kubernetes学习的参考地址:
官方文档地址:https://kubernetes.io
中文参考手册:https://kubernetes.io/zh/docs/concepts/overview/what-is-kubernetes/
什么是Kubernetes?
官方介绍Production-Grade Container Orchestration.Automated container deployment, scaling, and management.
翻译:生产级别的容器编排系统。自动化的容器部署、扩展和管理。
Kubernetes, also known as K8s, is an open-source system for automating deployment, scaling, and management of containerized applications..
翻译: Kubernetes,也被称为K8s,是一个用于自动化部署、扩展和管理容器化应用程序的开源系统。
总结: Kubernetes(k8s)是自动化容器操作的开源平 ...
Nginx代理实战
之前在Nginx的介绍中已经学习到了相关代理的概念,那么Nginx有如何实战代理呢?本篇将介绍,Nginx实现代理的相关操作。
代理Nginx服务器的反向代理是其最常用的重要功能,由反向代理服务也可以衍生出很多与此相关的Nginx服务重要功能,比如:负载均衡。
在Java设计模式中,代理模式是这样定义的:给某个对象提供一个代理对象,并由代理对象控制原对象的引用。
举一个生活中的例子:比如我们要买一间二手房,虽然我们可以自己去找房源,但这太花费时间精力了,而且房屋质量检测以及房屋过户等一些列手续也都得我们去办,费时费力,等一系列操作后,说不定房子已经卖给别人活着已经涨价了,那么怎么办呢?最简单快捷的方法就是找中介公司(为什么?因为房源多,对流程熟悉),于是我们委托了中介公司帮我们来找合适的房源,以及后期的质量检测过户等操作,我们都不需要管,只需要交钱即可。
代理简单来说,就是如果我们想做什么,但又不直接想去做,那么这时候就委托别人帮我们去做,那么从以上的例子看出,中介公司就是给我们做代理服务的,我们委托中介公司帮我们找房子。
Nginx实现代理环境准备
操作系统:CentOS7
Ngin ...
Nginx负载均衡实战
Nginx负载均衡介绍负载均衡的意识是在服务器集群中,需要有一台服务器作为调度者,客户端所有的请求都由调度者接收,调度这再根据每个服务器的负载情况,将请求分配给对应的服务器去处理。
在这个过程中,调度这如何合理分配任务,保证所有服务器将性能充分发挥,从而保证服务器集群的整体性能最优,这就是负载均衡要解决的问题了。
Nginx负载均衡的方式轮询轮询方式是Nginx负载默认的方式,顾名思义,所有请求都按照时间顺序分配到不同的服务上,如果服务Down掉,可以自动删除,如下配置后轮询10001服务和10002服务
1234upstream dalaoyang-server { server localhaost:10001; server localhaost:10002;}
权重指定每个服务的权重比例,weight和访问比率成正比,通常用于后端服务机性能不统一,将性能好的分配权重高来发挥服务器最大性能,如下配置后10002服务器的访问比率会是10001服务的二倍。
1234upstream dalaoyang-server { server localhaost:10001 weight ...
Java单元测试用例与覆盖率
相关准备项目测试准备SpringBoot项目:
SpringBoot项目地址:https://github.com/jinglv/spring-boot-restful-api.git
SpringBoot项目,编写项目相关单元测试用例
SonarQube平台详见:SonarQube平台介绍 一篇,介绍SonarQube平台如何搭建
Java测试报告与覆盖率官网各语言分析:https://docs.sonarqube.org/latest/analysis/coverage/
Property
Scope
Example
Description
sonar.junit.reportPaths
Project-wide
target/surefire-reports,myModule/target/surefire-reports
Import tests execution reports(Surefire XML format).Set the property with a list of comma-separated paths to the directori ...
质量监控平台实战
实战执行流程
质量监控平台
为什么需要搭建质量监控平台
测试数据收集
测试数据分析
测试图表制作
常用技术架构ElasticStack官方网站:https://www.elastic.co/cn/elastic-stack
包括 Elasticsearch、Kibana、Beats 和 Logstash(也称为 ELK Stack)。能够安全可靠地获取任何来源、任何格式的数据,然后实时地对数据进行搜索、分析和可视化。
数据源与格式
数据源:文件、网络、消息管道
格式:json、csv、单行文本nginx.log
Fiebeat轻量型日志采集器,从安全设备、云、容器、主机还是 OT 进行数据收集,Filebeat 都将为您提供一种轻量型方法,用于转发和汇总日志与文件,让简单的事情不再繁杂。官方网站:https://www.elastic.co/cn/beats/filebeat
Logstash集中、转换和存储数据,Logstash 是免费且开放的服务器端数据处理管道,能够从多个来源采集数据,转换数据,然后将数据发送到您最喜欢的“存储库”中。官方网站:https://www.elastic.co/cn/lo ...
SpringBoot系统持续集成持续交付实战
实战执行流程
工程准备SpringBoot系统
Github地址:https://github.com/jinglv/spring-boot-restful-api.git
该项目是一个纯接口的项目,下载后打包成jar包即可
接口自动化测试工程
Github地址:https://github.com/jinglv/api-object-auto.git
SpringBoot系统持续交付
git clone SpringBoot项目,使用Idea打开该项目,查看工程的目录
下载jacoco相关包到部署服务器上,下载地址:https://www.jacoco.org/jacoco/
123456[root@lvjing ~]# cd /usr/local/[root@lvjing local]# lsaegis bin etc games include jacoco jdk1.8 lib lib64 libexec maven sbin share sonar-scanner src tomcat9[root@lvjing local]# cd ja ...
JaCoCo统计接口测试代码覆盖率
JaCOCO
JaCoCo的ant与maven方法都是在编译期对单元测试的覆盖率统计
JaCoCo的可以开启一个agent服务收集运行过程中的代码执行覆盖率。
主要会用到jacoco 的两个功能:agent和cli
覆盖率收集收集方式鉴于接口测试是在微服务启动后运行的测试,所以在选用第二种agent的测试,会有两个比较麻烦的地方(列出了自己比较笨拙的解决方法)
源码获取:去git上再拉取一遍。
编译后字节码获取:按照测试环境构建再统计过程中再构建一遍。
统计覆盖率过程基本如:
微服务启动,同时启动agent收集覆盖率
接下来基本都是jenkins任务需要做的
git获取项目源码
使用构建工具编译源码
使用cli工具获取JaCoCo覆盖率统计文件
使用cli工具根据exec文件生成覆盖率报告
JaCoCo使用官网下载jacoco-xxx.zip:https://www.jacoco.org/jacoco/
参考jacoco官方使用文档:官方文档索引、agent帮助文档、cli帮助文档
JaCoCo官方给出了3种收集覆盖率文件的方式:
file
tcpserver
tc ...
SonarQube Scanner
SonarScanner官方文档:https://docs.sonarqube.org/latest/analysis/scan/sonarscanner/
SonarScanner安装注意:需要结合SonarQube平台使用,前提已经安装配置好SonarQube平台,本地配置SonarScanner相关配置,我本机是MacOS,下面主要介绍MacOS上配置SonarScanner
下载
解压,修改SonarQube的服务地址及登录用户名和密码
123456789101112#Configure here general information about the environment, such as SonarQube server connection details for example#No information about specific project should appear here#----- Default SonarQube serversonar.host.url=http://xxx.xxx.xxx.xxx:9000#----- Defau ...
SonarQube平台介绍
代码分析与审计代码审计工具平台
综合新的代码分析平台
sonar支持自定义规则,较多公司使用
IDE辅助功能
xcode、android studio
阿里巴巴java开发手册ide插件支持
独立的静态分析工具
findbugs、androidlint studio
阿里巴巴java开发手册ide插件支持
独立的静态分析工具
findbugs、androidlint、scan-build
pmd阿里巴巴java开发手册pmd插件
代码审计关注的质量指标
代码坏味道
代码规范
技术债评估
bug和漏洞
代码重复度
单测与集成
测试用例数量
覆盖率
静态分析技术分类
代码静态检查
代码分析:lint系列,通过分析语法树和源代码,检查代码规范
编译器分析:借助编译器获得代码关系
字节码静态分析
分析jar、war、dex等格式的文件,代表工具:findbugs
SonarQube平台官方网站:https://www.sonarqube.org/
官方文档:https://docs.sonarqube.org/latest/
SonarQube插件:ht ...