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.
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.
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.
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.
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.
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.
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.
Docker version: 1.13.0+
EazyBuilder image has been released to Docker Hub; You can directly use the official image of EazyBuilder
Self-built mirrors
Generate an image: docker-compose build
start the app
docker-compose up -d
Use default compose file: dockercompose/docker-compose.yml
Just visit http://localhost/console/index.html
Refer to the detailed tutorial to install: k8s/README.md
build machine
The pipeline execution in EazyBuilder depends on jenkins. You need to initialize the build environment in jenkins in advance. For details, please refer to jenkins dockerfile
Contributors are welcome to join the EazyBuilder project. Please see CONTRIBUTING to learn how to contribute to this project.
EazyBuilder is designed to solve quick and easy creation of CI pipelines. Therefore, the project will implement or has implemented:
EazyBuilder will be used with other tools in a cloud-native environment. Therefore, the following specific functions will not be included:
"Welcome to pay attention to eazybuilder, if you encounter problems in use, you can join the group discussion"
Welcome to join the exchange group. You can scan the WeChat QR code below to invite you to join the group. Please specify to join eazybuilder
The latest documentation for each release can be found at:
See license for more information.
We follow the CNCF Code of Conduct.
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
All fixed configurations are abstracted, so that users only need to enter the address of the code warehouse to automatically create a pipeline
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.
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
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.
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.
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.
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
Docking with liqiube, using liqiube as the sql management platform
Integrated ldap function, you can log in with ldap user
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
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
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.
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
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
For pipelines in different environments, do permission control, design approval flow, and automatically upgrade products after approval, and deploy test/production environments
Butt DingTalk approval flow, involving the approval function, are all approved by DingTalk
Integrate Grafana, make Grafana reports from the process data of the platform, different roles can see different metrics reports
Publish IDE plug-ins, developers can run plug-ins locally and deploy self-test environment with one click