devopsloft / dpline Goto Github PK
View Code? Open in Web Editor NEWOut of the box Delivery Pipeline
License: Apache License 2.0
Out of the box Delivery Pipeline
License: Apache License 2.0
Go over the existing tools in the market with the following requirements:
open source
already used in Red Hat
large echo system
I understand that Jira/Bugzilla/Trello were not meant to be used as incident management services. We can consider using one of them for MVP as a starter to on-board the first customer as soon as possible.
Add proper CLI like:
dpline --deploy
or
dpline --setup
Probably using Python
Dpline is going to be mostly Python and Ansible. We should start adding CI tests based on these technologies.
Right now you can use the CLI only to deploy, not to remove.
install Jenkins plugin
Configure jenkins to know rabbitmq
Deploy a job which send notifications to rabbitmq
Run the job
Verify rabbitmq received the messages
everything automated
Delivery Pipeline is a multi sub-services service. Each sub-service may through alerts when hitting a failure or close to hitting one.
The alerts should be pushed to a one and only one queue. This is the first sub-service.
The queue should be able to:
Consume the alerts and transform them to incidents
Analyze the alerts - removing false/positives and aggregation of similar alerts
Tracking incidents are resolved according to SLA
Remediation by automation
Deploy instance with some sample jobs in order to to be able to test the delivery pipeline
Note to future me (or future contributors): add --demo flag which will control it.
When I spin a dev environment, I want to use a test dataset when viewing the dashboard in kibana
jenkins is the tool
Use one command to deploy Jenkins based on Jenkins docker image
environment spawning - ./dpline-env.sh
docker install playbook is broken
Let the user pick system and don't choose for him.
User will be able to define the following yaml file:
ci: jenkins
messaging: rabbitmq
monitoring: promethus
and based on his choice, we will deploy a delivery pipeline
Automate Jenkins Deployment
host OS - OSX
./deploy_dpline.sh
[WARNING]: No inventory was parsed, only implicit localhost is available
[WARNING]: provided hosts list is empty, only localhost is available. Note that the implicit localhost does not match 'all'
PLAY [Setup Host] **************************************************************************************************************************************************
TASK [Gathering Facts] *********************************************************************************************************************************************
ok: [localhost]
TASK [install_docker : Install Docker community version] ***********************************************************************************************************
fatal: [localhost]: FAILED! => {"changed": false, "module_stderr": "sudo: a password is required\n", "module_stdout": "", "msg": "MODULE FAILURE\nSee stdout/stderr for the exact error", "rc": 1}
to retry, use: --limit @/Users/liora/git/dpline/dpline/setup/prepare_host.retry
PLAY RECAP *********************************************************************************************************************************************************
localhost : ok=1 changed=0 unreachable=0 failed=1
adding all sub-services to the deploy script
VM deployment is SLOW.
If user wants to deploy directly on the host, allow him to do it.
Once Dpline deployment is done, print out a summary to the user of the systems deployed and how to access them.
For example:
Jenkins 1.2.3, Address: http://localhost:8080
Prometheus 2.3.1, Address: http:/localhost:5050
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.