|
|
|
|
移动端
创建专栏

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

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

作者:Martin Liu|2018-01-01 21:15

年前最后一场技术盛宴 | 1月27日与京东、日志易技术大咖畅聊智能化运维发展趋势!


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

DevOps

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

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

1. 环境准备类 - JDK 8

JDK 8

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

下载和安装地址:

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

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

  1. martin@mbp:dev/bin $  java -version 
  2. java version "1.8.0_111" 
  3. Java(TM) SE Runtime Environment (build 1.8.0_111-b14) 
  4. Java HotSpot(TM) 64-Bit Server VM (build 25.111-b14, mixed mode) 

2. 环境准备类 - Git客户端

Git客户端

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

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

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

  1. martin@mbp:dev/bin $ git --version 
  2. 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的体验。

3. 容器管理 - Docker

 Docker

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

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

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

  1. martin@mbp:dev/bin $ docker version 
  2. Client: 
  3.  Version:      17.06.1-ce 
  4.  API version:  1.30 
  5.  Go version:   go1.8.3 
  6.  Git commit:   874a737 
  7.  Built:        Thu Aug 17 22:53:38 2017 
  8.  OS/Arch:      darwin/amd64 
  9.  
  10. Server: 
  11.  Version:      17.06.1-ce 
  12.  API version:  1.30 (minimum version 1.12) 
  13.  Go version:   go1.8.3 
  14.  Git commit:   874a737 
  15.  Built:        Thu Aug 17 22:54:55 2017 
  16.  OS/Arch:      linux/amd64 
  17.  Experimental: true 
  18.  
  19. martin@mbp:dev/bin $ docker-machine version 
  20. docker-machine version 0.12.0, build 45c69ad 
  21.  
  22. martin@mbp:dev/bin $ docker-compose version 
  23. docker-compose version 1.14.0, build c7bdf9e 
  24. docker-py version: 2.3.0 
  25. CPython version: 2.7.12 
  26. 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. 代码版本管理工具

代码版本管理工具

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

Git Flow 是团队协作不可缺少的分支策略模式,需要熟练掌握这个小抄上的知识:

https://danielkummer.github.io/git-flow-cheatsheet/index.zh_CN.html

GitHub Flow的分支策略模式是Git FLow的简化版,它的操作方式在这里:

https://guides.github.com/introduction/flow/

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

https://desktop.github.com/

https://www.sourcetreeapp.com/

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

5. 编码工具

编码工具

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

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

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

Atom

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

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

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

STS - spring-tool-suite

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

STS - spring-tool-suite

6. 构建工具 Maven

 Maven

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

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

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

  1. martin@mbp:dev/bin $ mvn --version 
  2. Apache Maven 3.2.2 (45f7c06d68e745d05611f7fd14efb6594181933e; 2014-06-17T21:51:42+08:00) 
  3. Maven home: /Users/martin/Documents/apache-maven-3.2.2 
  4. Java version: 1.8.0_111, vendor: Oracle Corporation 
  5. Java home: /Library/Java/JavaVirtualMachines/jdk1.8.0_111.jdk/Contents/Home/jre 
  6. Default locale: en_US, platform encoding: UTF-8 
  7. OS name: "mac os x", version: "10.13.1", arch: "x86_64", family: "mac" 

7 测试运行环境 Tomcat

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

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

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

8. 制品库 Artifactory OSS 版本

制品库 Artifactory OSS 版本

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

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

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

9. 代码持续检查 SonarQube

代码持续检查 SonarQube

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

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

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

  1. martin@mbp:bin/macosx-universal-64 $ pwd 
  2. /Users/martin/Downloads/devops/sonarqube-6.7/bin/macosx-universal-64 
  3. martin@mbp:bin/macosx-universal-64 $ ./sonar.sh console 
  4. Running SonarQube... 
  5. wrapper  | --> Wrapper Started as Console 
  6. wrapper  | Launching a JVM... 
  7. jvm 1    | Wrapper (Version 3.2.3) http://wrapper.tanukisoftware.org 
  8. jvm 1    |   Copyright 1999-2006 Tanuki Software, Inc.  All Rights Reserved. 
  9. jvm 1    | 
  10. 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 
  11. jvm 1    | 2017.12.05 23:58:35 INFO  app[][o.s.a.es.EsSettings] Elasticsearch listening on /127.0.0.1:9001 
  12. jvm 1    | 2017.12.05 23:58:35 INFO  app[][o.s.a.p.ProcessLauncherImpl] Launch process[[key='es'ipcIndex=1logFilenamePrefix=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

流水线工具 Jenkins

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

配置管理工具 Ansible

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

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

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

  1. martin@mbp:~ $ brew install ansible 
  2. Updating Homebrew... 
  3. xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun 
  4. ==> Auto-updated Homebrew! 
  5. Updated 2 taps (homebrew/core, caskroom/cask). 
  6. ==> New Formulae 
  7. dnsdist 
  8. ==> Updated Formulae 
  9. armadillo       folly           librdkafka      pandoc          rtv 
  10. ats2-postiats   fwup            libvirt         payara          scamper 
  11. byobu           fzf             lua             pdftoedn        sql-translator 
  12. cabal-install   gitbucket       lua@5.3         pdftoipe        syncthing 
  13. diff-pdf        gopass          mpg123          pdnsrec         urh 
  14. emscripten      haproxy         ndpi            poppler         vowpal-wabbit 
  15. faas-cli        jenkins         ntopng          re2             weechat 
  16. firebase-cli    lbdb            paket           redis           you-get 
  17. ==> Deleted Formulae 
  18. geogit 
  19.  
  20. Error: ansible 2.3.2.0_1 is already installed 
  21. To upgrade to 2.4.2.0, run `brew upgrade ansible` 

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

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

  1. martin@mbp:~ $ ansible --version 
  2. ansible 2.3.2.0 
  3.   config file = /usr/local/etc/ansible/ansible.cfg 
  4.   configured module search path = Default w/o overrides 
  5.   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系列

监控工具 ELK系列

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

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

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

12. 看板工具 Trello

看板工具 Trello

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

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

【本文为51CTO专栏作者“徐磊”的原创稿件,转载请通过作者微信公众号devopshub获取授权】

戳这里,看该作者更多好文

【编辑推荐】

  1. 浅谈软件项目规模估计——怎么估?
  2. 网络钓鱼系列—钓鱼工具及技术
  3. 外媒速递:如何为React项目选择最佳JavaScript测试工具
  4. 外媒速递:五项最佳实践为你的DevOps之旅铺平道路
  5. 外媒速递:2018年顶尖开发工具汇总
【责任编辑:赵宁宁 TEL:(010)68476606】

点赞 0
分享:
大家都在看
猜你喜欢

热门职位+更多