DevOps第一级:个人级,人人都要装备的DevOps工具箱

Posted DevOps

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DevOps第一级:个人级,人人都要装备的DevOps工具箱相关的知识,希望对你有一定的参考价值。

做为一名DevOps人士,或者您正在成为一名DevOps人士,不管是工程师、产品经理、领导还是任何其他角色的相关人员。本文中即将谈的的软件都应该在你的电脑上存在,废话不多说,即使是你不编写代码,也应该对这些程序混个脸熟才对。


本文的目标是开启DevOps的第一个阶段- Level 1 个人级别的DevOps,除了要具备DevOps的思想之外,还要按照DevOps的原则和工具处理自己的工作。分享各种工具的效用和体验也是改进,不仅自己可以收益,还可以为DevOps的下个级别-团队级别的DevOps做好准备。


本文描述的软件不区分操作系统类型,所谈到的工具一般都支持Win,MacOS,Linux等平台。注意本文提到的工具,不是说建议安装,而是建议全部安装和正常使用。



1 环境准备类 - JDK 8


 

DevOps第一级:个人级,人人都要装备的DevOps工具箱


如果要编译Java项目的话,则会用到JDK,而且它还是运行其它很多Java类型DevOps工具的依赖。


http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html


校验方法,打开命令行工具,运行 java --version


martin@mbp:dev/bin $  java -version

java version "1.8.0_111"

Java(TM) SE Runtime Environment (build 1.8.0_111-b14)

Java HotSpot(TM) 64-Bit Server VM (build 25.111-b14, mixed mode)




环境准备类 -  Git客户端


 

DevOps第一级:个人级,人人都要装备的DevOps工具箱

码农必备工具,如果你需要与版本控制系统GitHub、GitLab等打交道的话。Git客户端是必须安装的。


下载安装网址: https://git-scm.com/downloads


校验方法,打开命令行工具,运行  git --version


martin@mbp:dev/bin $ git --version

git version 2.13.1


建议熟练掌握这篇 “Git作弊小抄”里的命令。https://github.com/arslanbilal/git-cheat-sheet/blob/master/other-sheets/git-cheat-sheet-zh.md


如果想学习到更全面的Git知识,请参考这份指引:https://web.archive.org/web/20161121145226/http://rypress.com:80/tutorials/git/index


校验方法,能在GitHub上完整的操作一次GitHub Flow流程。


如果你是Windows操作系统的话可以尝试 http://cmder.net/ 这个终端模拟器,它能运行linux命令,融合了git和ssh的客户端,可以在Windows下面找到类似Unix的体验。

DevOps第一级:个人级,人人都要装备的DevOps工具箱



3 容器管理  - Docker


 

DevOps第一级:个人级,人人都要装备的DevOps工具箱

在本机使用Docker快速体验相关的软件应该是目前很流行的做法,Docker也是软件工程师(本文中不区分Dev还是Ops,统称工程师-engineer)在笔记本或者工作站上运行开发和测试环境的绝佳方法。容器化应用,快速的测试Dockerfile等等也都是DevOps工程师必备的技能,为了保证持续的可用性,建议安装最新的社区CE稳定版,这样既可以用到最新的feature,又可以避免新版本的毛病。


下载安装网址: https://docs.docker.com/engine/installation/


校验方法,打开命令行工具,运行下列命令:


martin@mbp:dev/bin $ docker version

Client:

 Version:      17.06.1-ce

 API version:  1.30

 Go version:   go1.8.3

 Git commit:   874a737

 Built:        Thu Aug 17 22:53:38 2017

 OS/Arch:      darwin/amd64


Server:

 Version:      17.06.1-ce

 API version:  1.30 (minimum version 1.12)

 Go version:   go1.8.3

 Git commit:   874a737

 Built:        Thu Aug 17 22:54:55 2017

 OS/Arch:      linux/amd64

 Experimental: true


martin@mbp:dev/bin $ docker-machine version

docker-machine version 0.12.0, build 45c69ad


martin@mbp:dev/bin $ docker-compose version

docker-compose version 1.14.0, build c7bdf9e

docker-py version: 2.3.0

CPython version: 2.7.12

OpenSSL version: OpenSSL 1.0.2j  26 Sep 2016


熟悉掌握Docker相关命令的小抄在这里:

https://github.com/wsargent/docker-cheat-sheet/tree/master/zh-cn


要能参考小抄熟练地在本地管理和构建镜像,管理容器的生命周期,访问容器里的服务,运行docker compose文件。


校验方法,能在本机运行一个web服务器容器,并访问到web服务器的网页。



4 代码版本管理工具



DevOps第一级:个人级,人人都要装备的DevOps工具箱

 注册GitHub的账户,它的功能太多了,要熟练使用GitHub里的所有主要功能,能熟练地管理自己的项目,克隆和学习别人的项目。尽可能的通过GitHub和同事或者朋友协作一些感兴趣的东西。


Git Flow 是团队协作不可缺少的分支策略模式,需要熟练掌握这个小抄上的知识:https://danielkummer.github.io/git-flow-cheatsheet/index.zh_CN.html

DevOps第一级:个人级,人人都要装备的DevOps工具箱


GitHub Flow的分支策略模式是Git FLow的简化版,它的操作方式在这里:https://guides.github.com/introduction/flow/


DevOps第一级:个人级,人人都要装备的DevOps工具箱


分支管理的图形工具包括GitHub Desktop版和Atlassian的SourceTree,下载和安装网址如下:


  • https://desktop.github.com/

  • https://www.sourcetreeapp.com/


DevOps第一级:个人级,人人都要装备的DevOps工具箱

DevOps第一级:个人级,人人都要装备的DevOps工具箱

DevOps第一级:个人级,人人都要装备的DevOps工具箱


校验方法,能在本机运行运行git命令行、GitHub DeskTop和SourceTree,能完成一次GitHub Flow流程。



5 编码工具


 

DevOps第一级:个人级,人人都要装备的DevOps工具箱

Visual Studio Code 这是不仅是一个编辑代码的IDE环境,还是一个Git客户的,用起来很方便。


下载和安装网址 :https://code.visualstudio.com/


校验方法,能在本机编辑并提交一个自己的GitHub项目的源代码。能安装Jenkinsfile、Ansible和Dockerfile等插件。


DevOps第一级:个人级,人人都要装备的DevOps工具箱

Atom是一个我用了很久的文本文件编辑工具,吸引人之处也是大量的扩展插件,变化无穷。


下载和安装网址 :https://atom.io/


校验方法,能在本机编辑一个GitHub项目的目录,尝试全局替换关键字功能。


STS - spring-tool-suite

Spring项目的开发工具,是Eclipse的一个变体。校验方法,能在本机打开和编辑更新一个GitHub里的Spring示例项目。

DevOps第一级:个人级,人人都要装备的DevOps工具箱



6 构建工具 Maven



DevOps第一级:个人级,人人都要装备的DevOps工具箱

 Apache Maven它可能是最流行的Java项目构建工具。不做过多解释。注意和本机Java的依赖关系。


下载安装网址:http://maven.apache.org/download.cgi


校验方法,打开命令行工具,运行  mvn --version


martin@mbp:dev/bin $ mvn --version

Apache Maven 3.2.2 (45f7c06d68e745d05611f7fd14efb6594181933e; 2014-06-17T21:51:42+08:00)

Maven home: /Users/martin/Documents/apache-maven-3.2.2

Java version: 1.8.0_111, vendor: Oracle Corporation

Java home: /Library/Java/JavaVirtualMachines/jdk1.8.0_111.jdk/Contents/Home/jre

Default locale: en_US, platform encoding: UTF-8

OS name: "mac os x", version: "10.13.1", arch: "x86_64", family: "mac"




7 测试运行环境 Tomcat


 


DevOps第一级:个人级,人人都要装备的DevOps工具箱

是运行和测试Java项目的服务器端的最简单的运行环境。注意和本机Java的依赖关系。


下载安装网址:http://tomcat.apache.org/download-70.cgi 下载二进制压缩包的版本,不要用服务安装版本。这样的好处是,可以复制这个文件夹在本机运行多个实例。


校验方法,打开命令行工具,运行 Tomcat服务器端bin目录里的启动脚本,服务器可以正常启动,可以通过网页浏览到Tomcat的默认网页 http://localhost:8080




8 制品库 Artifactory OSS 版本



DevOps第一级:个人级,人人都要装备的DevOps工具箱

Artifactory OSS是Frog的免费开源版本是一个不需要申请License,可以在本机长期使用的工具,是非常好的本地制品库缓存服务器。如果你在本地编译的Java项目都是访问的这个制品库的话,那么你离线了也基本上是能正常工作的,即使在飞机上,在没有互联网的条件下,Java项目还是可以照常编译的,不会遇到下载不了依赖包的尴尬情况。建议尝试专业版。


下载安装网址:https://www.jfrog.com/open-source/ 下载ZIP包的版本,可以一条命令启停服务器,使用非常方便。


校验方法,打开命令行工具,运行 Artifactory服务器端bin目录里的启动脚本,服务器可以正常启动,可以通过网页浏览到Artifactory的默认网页 http://localhost 第一次启动接受所有默认选项即可



9 代码持续检查 SonarQube


 

DevOps第一级:个人级,人人都要装备的DevOps工具箱

它是一个支持多种语言的代码静态扫码工具。在不需要你做很多配置的情况下,就可以扫码代码库,这里假设你的本地有几乎所有的项目文件夹。用这个工具提高代码质量,消除技术债务和安全隐患。该软件也有大量的插件。


下载安装网址:https://www.sonarqube.org/downloads/ 下载ZIP包的版本,可以一条命令启停服务器,使用非常方便。


校验方法,打开命令行工具,运行 SonarQube服务器端bin目录里的启动脚本,服务器可以正常启动,可以通过网页浏览到Tomcat的默认网页 http://localhost:9000/sessions/new  第一次启动接受所有默认选项即可,默认密码是 admin / admin 


martin@mbp:bin/macosx-universal-64 $ pwd

/Users/martin/Downloads/devops/sonarqube-6.7/bin/macosx-universal-64

martin@mbp:bin/macosx-universal-64 $ ./sonar.sh console

Running SonarQube...

wrapper  | --> Wrapper Started as Console

wrapper  | Launching a JVM...

jvm 1    | Wrapper (Version 3.2.3) http://wrapper.tanukisoftware.org

jvm 1    |   Copyright 1999-2006 Tanuki Software, Inc.  All Rights Reserved.

jvm 1    |

jvm 1    | 2017.12.05 23:58:35 INFO  app[][o.s.a.AppFileSystem] Cleaning or creating temp directory /Users/martin/Downloads/devops/sonarqube-6.7/temp

jvm 1    | 2017.12.05 23:58:35 INFO  app[][o.s.a.es.EsSettings] Elasticsearch listening on /127.0.0.1:9001

jvm 1    | 2017.12.05 23:58:35 INFO  app[][o.s.a.p.ProcessLauncherImpl] Launch process[[key='es', ipcIndex=1, logFilenamePrefix=es]] from [/Users/martin/Downloads/devops/sonarqube-6.7/elasticsearch]: /Users/martin/Downloads/devops/sonarqube-6.7/elasticsearch/bin/elasticsearch -Epath.conf=/Users/martin/Downloads/devops/sonarqube-6.7/temp/conf/es



10 流水线工具 Jenkins



DevOps第一级:个人级,人人都要装备的DevOps工具箱

Jenkins或许是应该第一个介绍的工具,不过它的价值却是把以上的单点工具都串联起来。DevOps工程师可以尽可能地,把所有工作都变成自动化的脚本和程序代码,用git版本控制系统管理起来,管理在内部或外部的代码仓库里(你GitHub里项目的质量就是你的简历),对这些代码的执行和处理应该完全交给Jenkins做,特别是需要重复执行的动作,都可以交给Jenkins完成。


下载安装网址:https://jenkins.io/download/ 下载war包的版本,可以一条命令启停服务器,使用非常方便。在MacOS上也用过后台服务的版本,不过这会新建一个jenkins用户,权限问题也很麻烦,现在只用命令行版本,感觉更易于使用。


校验方法,打开命令行工具,进入 jenkins.war 文件所在目录,运行Jenkins服务器端的启动命令 java -jar jenkins.war ,服务器可以正常启动,可以通过网页浏览到Jenkins的默认网页 http://localhost:8080 第一次启动接受所有默认选项即可,记住新建的第一个管理员用户的用户名和密码。



11 配置管理工具 Ansible



DevOps第一级:个人级,人人都要装备的DevOps工具箱

Ansible是一种学习成本较低的配置管理工具,由于它有能很好地和IaaS资源池对接的插件,所以能够方便地调度AWS,Azure的虚拟机,也可以配置F5的负载均衡器。是实现基础架构即代码的很好的工具。使用它可以完成部署环境的搭建过程,用它保证环境搭建的一致性和自动化程度。


下载安装网址: http://docs.ansible.com/ansible/latest/intro_installation.html


在MacOS下面推荐用 brew 安装:brew install ansible

martin@mbp:~ $ brew install ansible

Updating Homebrew...

xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun

==> Auto-updated Homebrew!

Updated 2 taps (homebrew/core, caskroom/cask).

==> New Formulae

dnsdist

==> Updated Formulae

armadillo       folly           librdkafka      pandoc          rtv

ats2-postiats   fwup            libvirt         payara          scamper

byobu           fzf             lua             pdftoedn        sql-translator

cabal-install   gitbucket       lua@5.3         pdftoipe        syncthing

diff-pdf        gopass          mpg123          pdnsrec         urh

emscripten      haproxy         ndpi            poppler         vowpal-wabbit

faas-cli        jenkins         ntopng          re2             weechat

firebase-cli    lbdb            paket           redis           you-get

==> Deleted Formulae

geogit


Error: ansible 2.3.2.0_1 is already installed

To upgrade to 2.4.2.0, run `brew upgrade ansible`



在Windows下建议使用虚拟(如Virtual Box的CentOS7)安装,安装方法见上面的文档链接。


校验方法,打开命令行工具,进入运行: 


martin@mbp:~ $ ansible --version

ansible 2.3.2.0

  config file = /usr/local/etc/ansible/ansible.cfg

  configured module search path = Default w/o overrides

  python version = 2.7.13 (default, Jul 18 2017, 09:17:00) [GCC 4.2.1 Compatible Apple LLVM 8.1.0 (clang-802.0.42)]



12 监控工具 ELK系列



DevOps第一级:个人级,人人都要装备的DevOps工具箱

ELK是很好的日志汇聚和分析工具,在本机安装这个堆栈的好处是,研究起来比较方便,可以轻松地启动这套工具,分析相关的日志文件,开发可视化的仪表盘和展示图表。


 下载安装网址: https://www.elastic.co/downloads/past-releases 下载tar/ZIP包的版本,可以一条命令启停服务器,使用非常方便。


校验方法,打开命令行工具,运行 bin目录里的启动脚本,服务器可以正常启动 ;主要默认的情况下只能看到没有数据的 Kibana界面 http://localhost:5601/ 由于ELK的配置文件都需要修改才能看到数据,才能分析。请参考网上的攻略,或者参加DevOps相关培训。



12 看板工具 Trello



Trello:轻量级团队流程协作和列表管理平台。轻量级的Kanban工具,SaaS服务,支持ios和安卓移动客户端。特别适合DevOps团队进行工作的可视化管理,增加工作的流动性。


非常推荐,没有注册的可以通过这个网址注册一下:https://trello.com/



13 给我你推荐的工具



以上是关于DevOps第一级:个人级,人人都要装备的DevOps工具箱的主要内容,如果未能解决你的问题,请参考以下文章

Docker再发现:实现DevOps的双刃剑!(有彩蛋)

北京移动核心业务系统的 DevOps 标准认证之路 | 独家专访

18采购管理-人人都要学习项目管理系列

DevOps 在2018年的五个趋势

浅谈 DevOps 模式下的性能测试

爬楼梯