iSoftStoneGroup / EazyBuilder

Welcome to the EazyBuilder project
Apache License 2.0
652 stars 88 forks source link
cicd continuous-integration devops jenkins pipeline

中文概述

Welcome to the EazyBuilder project!


EazyBuilder is a complete set of DevOps platform projects under cloud native architecture.

First of all, EazyBuilder is an event driven orchestration engine. It is based on the open-source distributed DevOps platform product independently designed and developed by Kubernetes, which reduces the complexity of the continuous delivery pipeline; It has a flexible and easy-to-use, safe and reliable pipeline, a sound change management system, a full link two-way traceability, a compact and intelligent approval process, and a cloud native IDE plug-in, which connects various operations in cloud native applications, provides plug and pull connectivity, quantifies process data, and provides an objective and accurate performance insight, providing a unified DevOps collaboration plane for enterprises, Let it more easily and conveniently manage applications on the cloud's native infrastructure and implement DevOps culture, so as to develop and release high-quality and safe software more efficiently.

Secondly, EazyBuilder provides the ability to integrate the DevOps tool chain under the cloud native architecture, provides external plug-ins for many cloud native tool platforms, and supports users to integrate their tool platforms into a complete DevOps platform through plug-in configuration and free combination. It makes it easier for users to obtain the basic technical capabilities of cloud manufacturers in computing, storage, and networking, and makes the cost of using the cloud lower.

EazyBuilder is not a combination package of DevOps tool chains, nor a set of script commands to quickly start DevOps tools. EazyBuilder focuses on the concatenation of DevOps tools, for example, submitting code to the Gitlab code warehouse and triggering Jenkins' automatic construction pipeline. EazyBuilder provides a coupling agent between Gitlab and Jenkins. Users assemble their existing Jenkins Url and Gitlab Url into EazyBuilder, You can connect the two tools in series. What EazyBuilder does is to help users bind all operations in the delivery process into a consistent self-service experience, rather than let everyone do everything. It does not require operators to understand the entire DevOps tool chain.

To sum up, EazyBuilder aims to solve the balance problem between external tools and existing tool platforms when users integrate DevOps platform under cloud native architecture. Through the application and integration of cloud native technology, we will create an extremely simple, efficient and easy to use cloud native work platform, standardize the development process, simplify the development difficulty, improve the development efficiency, enhance the code quality, support the entire software development life cycle (development, unit testing, integration testing, documents, production release, configuration, etc.), provide a complete cloud native development ecological environment and ecosystem, and enable enterprises to quickly embrace cloud native, Improve R&D efficiency, and then feed back the original cloud market.

image

Features and Benefits

Features

Light and safe high-efficiency assembly line

Event-driven, supports wildcards, configures different event types for different code branches, and triggers different pipelines. The operation steps are simple, no need to be familiar with the pipeline script syntax, visual arrangement, and quickly create an efficient pipeline; it does not rely on third-party tools, and uses a modular design to solve the problem of pipeline sharing and reuse. Provides fine-grained access control, single sign-on and auditing functions based on roles, records the operation content of each user, and changes the pipeline change history to meet the security requirements of users. Built-in rich early warning methods, comprehensively monitor the pipeline status, actively send abnormal logs, and continuously improve the pipeline through data-driven.

image

friendly cloud native environment

Minute-level environment replication, providing out-of-the-box cloud native plug-ins, such as: redis, mongodb, rabbitmq, mysql. Use standard k8s yaml to manage basic middleware, which is easy to extend and easy to use.

image

Comprehensive automated testing guarantee

Built-in quality control tools such as sonarqube, jmeter, liqiubase, etc., take security as the criterion, move security detection (code review, analysis, testing, etc.) to the early stage of the software development life cycle, so as to more efficiently develop and release high-quality, secure software.

image image

Two-way traceability of the whole life cycle

EazyBuilder has set up a wealth of buried points from requirement creation, code development, automated testing, to final online deployment, which can achieve two-way traceability in any link of the entire R&D life cycle, and integrates massive information in cloud-native development. Information silos are avoided.

image image

Multi-dimensional measurement monitoring platform

EazyBuilder adopts four horizontal and two vertical dimensions, from the dimensions of product, R&D, testing, deployment, as well as the dimensions of R&D personnel and project managers, to provide accurate, objective and comprehensive performance measurement data, to meet the different management requirements of different roles, and to accurately analyze R&D. Efficiency short board, promote steady improvement.

image image image image image

Cloud Native IDE Plugin

Developers can obtain the core capabilities of EazyBuilder products in the IDE without switching platforms. After writing the code, you can scan the code quality, compile and package it automatically, deploy it to the self-test environment with one click, and quickly complete the self-test, joint debugging and integration verification, and the development efficiency is doubled.

getting Started

Docker installation

Just visit http://localhost/console/index.html

Kubernetes installation

Refer to the detailed tutorial to install: k8s/README.md

contribute

Contributors are welcome to join the EazyBuilder project. Please see CONTRIBUTING to learn how to contribute to this project.

scope

Scope of application

EazyBuilder is designed to solve quick and easy creation of CI pipelines. Therefore, the project will implement or has implemented:

Out of range

EazyBuilder will be used with other tools in a cloud-native environment. Therefore, the following specific functions will not be included:

contact us

image

resource

The latest documentation for each release can be found at:

download

License

See license for more information.

Guidelines

We follow the CNCF Code of Conduct.

route map

image

Roadmap design details

Pipeline management

Visual pipeline orchestration

The back-end uses the freemark template to solidify each construction into a template, and the front-end uses switch items. The user chooses the content of the construction and enters key information. After the back-end fills the data into the template, the completed jenkins pipeline script is generated and the jenkins api is called. execution pipeline

One-click pipeline creation (Java, C#, JavaScript)

All fixed configurations are abstracted, so that users only need to enter the address of the code warehouse to automatically create a pipeline

Pipeline audit, rollback

After the pipeline is modified, it is recorded in the background and stored in the history table. The pipeline differences of any two versions can be compared, and the pipeline can be specified to roll back to any version.

Integrated Kubernetes automatic deployment

Using kubectl+kubeconfig, the platform integrates kubectl, users can specify different kubeconfig files in each pipeline, and use kubectl --kubeconfig to manage k8s clusters in the pipeline, so as to realize cross-cluster and cross-environment management of k8s

Integrate Sonarqube to directly view technical debt in the platform

Integrate jmeter to trigger automated test scripts in the pipeline

The platform integrates the jmeter plug-in. In the build switch, the user turns on the "automated test" switch, and specifies the directory location where the automated test script is located. The pipeline directly executes the jmeter command to run the automated test.

Build resource management

Build resource automatic utilization and recycling

Using the Jenkins Kubernetes Agent plug-in, when the pipeline runs, a pod is automatically created in the k8s cluster, and the pod is automatically deleted after the pipeline runs.

Self-service interactive pipeline orchestration, users can customize the construction steps contained in the pipeline as needed

User-defined events, such as: code commit, code merge. For each type of event, users can choose different pipelines, so that different pipelines can be developed for different projects and different environments.

Configuration file management

When docking the nacos api, the user also puts the configuration file in the code repository. After the configuration file is changed, the corresponding pipeline is triggered, and nacos is called in the pipeline to update the configuration file in nacos

Database script management

Docking with liqiube, using liqiube as the sql management platform

Quality and Safety Management

LDAP login authentication

Integrated ldap function, you can log in with ldap user

Assembly line access control card control

The user configures the threshold of access control in the system, for example: BUG blocking is not greater than 5; after submitting the code, the code quality scan is performed in the pipeline, the scan results of sonarqube are collected, and the quality threshold set by the system is judged. The pipeline finally fails, aborting the subsequent process

Integrate Gitlab, MR automatic audit

Docking with gilab api, when the project engineering code meets the quality gate, automatically create a merge request and automatically merge into the integration branch

Submit code comment specification strong card control

Set up hooks in gitlab to verify the comments of the submitted code. In the comments, the legal task id must be included. If it does not meet the specification, it is forbidden to submit the code.

Message alert configuration

Design an alert configuration page to allow users to subscribe to message types, such as: code submission/merging, pipeline success/failure; message sending forms, such as DingTalk, email, WeChat

R&D process management

Pipeline warning

Design a red light repair switch, users can turn it on in the pipeline, and configure the time interval and number of warnings. If the pipeline fails, a red light repair warning will be sent, so that developers can pay attention to some high-risk pipelines and fix development integration problems in time

Integrate Redmine/Zen Tao to establish the traceability relationship between pipeline and requirement tasks

Approval flow of the assembly line to realize the approval of test, launch, and deployment

For pipelines in different environments, do permission control, design approval flow, and automatically upgrade products after approval, and deploy test/production environments

DingTalk approval flow docking to realize the workflow of the pipeline in DingTalk

Butt DingTalk approval flow, involving the approval function, are all approved by DingTalk

Pipeline integration Grafana metrics report

Integrate Grafana, make Grafana reports from the process data of the platform, different roles can see different metrics reports

IDE plugins

Publish IDE plug-ins, developers can run plug-ins locally and deploy self-test environment with one click