Building Your Ultimate DevOps Toolkit

创业投资 2017-07-10

DevOps isn’t a tool or a product. DevOps is a process and balanced organization approach for improving collaboration, communication among development and operation.

Redesigning and find new ways for faster and Reliable Delivery for accelerated time to market, improved manageability, better operational efficiency, and more time to focus on your core business goals.

DevOps Toolchain

During Transformation Towards Agile & DevOps, DevOps needs a platform where we can define workflow with different Integrations. Implementing DevOps Culture into your workflow requires using of specialized tools.

Below is an outline of each key category of tools that need to be in your toolkit, and the leading technologies to consider as you build the toolkit that best supports your team and your organization.

So let’s develop our DevOps Toolkit:

1. Source Code Management (SCM) System

Everything we build can be expressed through code. But when everything is the code you need to be sure that you can control and perform branching on it — otherwise things could get chaotic. So to avoid that chaos we use SCM system that includes:

  • GitHub: GitHub is a web-based Git or Version Control Repository.
  • Gitlab: Gitlab provided Git Repository Management, Code Review, Issue Tracking, Activity Feeds and Wikis.

2. Build and Continuous Integration(CI)

Continuous Integration is a fundamental best practice of modern Software Development. By Setting up an effective Continuous Integration environment, we can

  • Reduce Integration Issues
  • Improve Code Quality
  • Improve Communication and Collaboration between Team Members
  • Faster Releases
  • Less Bugs

  • Jenkins

Jenkins is used as Continuous Integration Platform to merge code from individual developers into a single project, multiple times per day and test continuously to avoid any downstream problems.

Continuous Integration Platform Features Includes:

  • Integration with SCM System
  • Secret Management
  • SSH-Based Access Management
  • Scheduling and Chaining of Build Jobs
  • Source Code Change Based Triggers
  • Worker/Slave Nodes
  • Rest API Support
  • Notification Management

3. Building tools

While building our organization, we have invested much of our time in research as which tools we need to include in our DevOps toolkit and which not to. These decisions are based on our years of experience in IT industry. We’ve taken great care in selecting, benchmarking and constantly improving our tools selection.

By sharing our Tools, we hope to foster a discussion within the DevOps community so that we can further improve.

  • Apache Maven: Apache Maven is a Software Project Management and Comprehension Tool. Based on the concept of a Project Object Model (POM), Maven can manage a project’s build, reporting, and documentation from a central piece of information.
  • Apache Ant: Apache Ant is a Java library and command-line tool whose mission is to drive processes described in build files as targets and extension points dependent upon each other.
  • Gradle: Gradle is a build tool with a focus on build automation and support for multi-language development.
  • Grunt: Grunt is a JavaScript task runner, a tool used to automatically perform frequently used tasks such as Minification, Compilation, Unit Testing, Linting, etc.
  • Make: Make is a build automation tool that automatically builds executable.
  • Packer: Packer is a free and open source tool for creating golden images for multiple platforms from a single source configuration.

4. Testing

In order to achieve the desired business goals of DevOps, you need to have an accurate, real-time measure of the risks and quality assurance of the features in your delivery pipeline and this can only be achieved through extensive and accurate testing.

Following are the testing tools being used by us to automate and streamline our DevOps Processes

  • JUnit: JUnit is a simple framework to write repeatable tests.
  • Mocha: Mocha is a simple, flexible, fun JavaScript test framework for Node.js.

5. Artifacts Management

Now that your build pipeline consistently versions your Maven project, you need a place to store your artifacts which are being produced at the end of this pipeline. These artifacts need to be stored much the same way your source code is stored in your SCM.

This ensures access to previously released versions of your product. An Artifact Repository is designed to store your war/jar/ear/etc, and distribute it to fellow developers via Maven, Ivy, or the like, share your artifact with you deployment tools, and generally ensure an immutable history of your released products.

  • Using a Standard Artifacts Management System such as Artifactory
  • Caching Third-Party Tools

6. Configuration Management

Configuration management is the process of standardizing resource configurations and enforcing their state across IT infrastructure in an automated yet agile manner.

  • Ansible: Ansible is an agentless configuration management system which relies on ssh protocol.
  • Chef and Puppet: Chef and Puppet are agent-based configuration management system.

7. Deployment

Continuous Deployment is a software development practice in which every code change goes through the entire pipeline and is put into production, automatically, resulting in many production deployments every day.

  • Process Management
  • Supervisor: Supervisor is a client/server system that allows its users to monitor and control a number of processes on UNIX-like operating systems.
  • PM2: PM2 is an advanced, production process manager for Node.js.
  • Forever: Forever is simple CLI tool for ensuring that a given script runs continuously.

8. Orchestration

Software systems that facilitate the automated management, scaling, discovery, and/or deployment of container-based applications or workloads.

  • Kubernetes: Kubernetes is an orchestration system for Docker containers. It handles scheduling and manages workloads based on user-defined parameters.
  • Docker Swarm: Docker Swarm provides native clustering functionality for Docker containers, which lets you turn a group of Docker engines into a single, virtual Docker engine.

9. Monitoring

The end goal for your monitoring is to consolidate tools, reduce the total cost of ownership, and automate the configuration via machine learning .

  • Monitoring is defined on different levels like a system, platform, application etc. Data-driven based monitoring is done with the help of Zabbix .
  • ELK(Elasticsearch, Logstash & Kibana) Stack provides actionable insights in real time from almost any type of structured and unstructured data source.
  • Grafana is most commonly used for visualizing time series data from infrastructure and application analytics but many use it in other domains including industrial sensors, home automation, weather, and process control.

Continue Reading The Full Article At—


Swallowed Exceptions: The Silent Killer of Java Ap... How to avoid the risks of mishandling application errors? This one is going to be a bit scary. After all, we’re dealing with a deadly killer he...
你的简历能帮你争取到面试机会吗? 最近我在帮朋友的公司招人,招人的第一步是要筛选简历,在这过程中,我发现虽然能收到很多简历,但实际能通过筛选能进入到技术面试流程的简历不多,估计10份里不会超过4份能通过筛选。 如果没法通过技术面试,那么候选人尚且能收集面试题,回家继续准备,毕竟他和面试官也交流过,也不算没收获,但对于这些没法通过...
Docker Monitoring: 5 Methods for Monitoring Java A... What are some of the most useful methods to monitor Java applications in Docker containers? Running applications in containers is an increas...
elfinder源码浏览-Volume文件系统操作类(1)... 今天看了一个文件管理的java后台源码,elfinder 发现这个东东比我写的代码效率告到不知道哪去了,苦思冥想后还是抽点时间看看吧。。 它实现了我们电脑上的所以关于文件操作的动作,并生成了api开放给前台,具体详细还是看官方文档吧,本人英文贼菜 之间用了Java1.7中的NIO里的p...
用户管理模块之用户登录 持久层 业务层 控制层 页面 在 中新建 接口 由于在用户管理模块之用户注册已经创建了,所以不用新建了 功能 ...
Hacker Noon

责编内容来自:Hacker Noon (本文源链)
本站遵循[CC BY-NC-SA 4.0]。如您有版权、意见投诉等问题,请通过eMail联系我们处理。