DevOps

  • 代码质量管理:SonarQube + Jenkins Pipeline配置

    前段时间对自己的项目进行代码质量扫描,曾经以为自己的代码质量算是不错的,结果发现一堆的bug或者smell code,灵魂受到1w点伤害。

    可以想到,在时间紧、任务中的情况下,代码质量绝对是不能够保证的,虽然功能算是完整,但是可能就在某个隐藏的角落,就有无数的bug在潜伏着,所以有时间的话都对自己的代码进行代码质量检查吧。虽然不能保证有完美的代码,但是可以把bug数降低,也可以根据扫描的结果养成良好的编程习惯。

    身为程序员就得严谨。

    闲言碎语不再讲。

    本文主要是介绍通过Jenkins Pipeline与SonarQube集成,对代码进行扫描,这里使用的是Jenkins2.19.1,SonarQube6.4。

  • 源码安装NGINX

    本文主要记录一次从源码安装Nginx过程,参考的是Nginx官网

  • 蓝绿部署、金丝雀发布(灰度发布)、AB测试

    随着微服务架构的普及,线上服务越来越多,随之而来的就是部署越来越频繁;随着互联网行业的兴旺,产品迭代的频率也是越来越快,服务上线速度逐步提升。有上线、有部署,就有风险。有风险,就对业务有影响,然后就有了一系列减少这种风险的部署方案:蓝绿部署、金丝雀发布(灰度发布),也有适应产品迭代频率的AB测试。

    本文主要是简单解释下这几个概念,帮助自己理解,如果有错误,请大佬们斧正。

  • 将EOS项目部署到 weblogic12c

    EOS Platform支持标准的EAR,可以运行在weblogic服务器上。

  • 在EOS项目中禁用BPS服务

    在安装EOS Platform的时候,会有选择插件的界面,包括bps、cap、mobile(7.3提供)、sso。当选择的bps之后,在EOS的default包(应该称为基础包)中,将包含BPS的内容。EOS导出EAR包的原理是,将新建的EOS项目中的内容添加到default包中,然后将default整体导出为EAR包。在某些使用EOS项目中没有用到BPS,并且不需要BPS引擎启动,需要通过修改配置,禁用BPS服务。

  • Windows下安装Weblogic Dev版本

    在开发过程中,有一种情况是比较尴尬的:需要用到某个软件,但是只需要用到这个软件中的一小部分功能,这样既浪费的磁盘空间,又浪费了CPU空间。比如Weblogic,完整版包括很多功能,但是开发过程中,只是需要创建数据源、部署项目,然后进行测试即可。所以开发过程中,需要一款简化的Weblogic(Weblogic开发版)是挺有必要的(如果电脑配置比较壕,也可以任性的使用完整版)。

  • Eclipse下安装weblogic插件

    安装好weblogic dev版本(Windows下安装weblogic dev版本),可以在Eclipse中安装weblogic server tools插件,直接连接到weblogic server,发布、部署、调试都变得简单些。

  • EOS Platform 7.2下安装weblogic插件

    在实际工作中,需要用到 EOS Platform,这是一个基于 Eclipse 的开发工具,自带了 Tomcat,可以满足大部分需要,但是有时候需要使用 Weblogic,这就得手动安装 Weblogic 插件了。这个过程与Eclipse相同(Eclipse下安装weblogic插件),本文中在 EOS Platform 7.2 中安装 Weblogic 插件。

  • weblogic报java.lang.OutOfMemoryError:PermGen space

    内存溢出是软件开发过程中经常遇到的一些问题,在本地使用weblogic中间件的时候,可能会经常打包部署应用,重复多次之后,就可能出现内存溢出的情况。

  • 实现ssh的免密码登录

    SSH为系统提供了很多方便的功能,比如登陆远程的系统等、不同主机间通信等。随着分布式系统的兴起,很多机器间的通信需要用到SSH,但是这些主机彼此信任,那就可以通过实现SSH免密码登录,简化通信过程。

  • RabbitMQ运维

    这是一次比较苦逼的运维,完全不熟悉的系统、不清楚环境、不清楚配置,两眼一抹黑。为啥?就是因为原来的负责人撤了、交接人休假、再次交接人也休假,再再次交接人只有一份不全的文档。而我是再、再、再次交接人,连文档也没有。更要命的是,这是生产环境,大家都懂得,生产环境就是不能出问题,自封一个“奉命于危难之间”吧。

    抱怨了一整段了,还是简单的说下这次运维吧,运维的是RabbitMQ集群,3个节点A、B、C,每个节点上启动了2个实例a1/a2、b1/b2、c1/c2,其中a1、b1、c1组成一套集群环境rabbit cluster1,a1是磁盘节点;a2、b2、c2组成一套集群环境rabbit cluster2,c2是磁盘节点。

    就是因为完全不熟悉RabbitMQ集群,所以基本上趟了一堆的坑,碰到了一堆不应该出现的错误,也算是新手村长经验了。按照套路,这里先说说正确的启动方式,然后再说说碰到的异常。

  • Ubuntu防火墙设置

    Ubuntu 使用的防火墙名为 UFW(Uncomplicated Fire Wall),是一个 iptable 的管理工具。因为 iptable 是根据系统管理员编写的一系列规则筛选网络数据包,比较复杂,所以 UFW 对其进行了简化。UFW 可以帮助增强服务器安全,但是如果真正对服务器安全感兴趣,还是应该学习如何为 iptable 编写规则来更好的调整服务器的安全级别。

  • ZooKeeper安装部署

    ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、名字服务、分布式同步、组服务等。ZooKeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。

  • ZooKeeper介绍及典型使用场景

    ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、名字服务、分布式同步、组服务等。ZooKeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。