summaryrefslogtreecommitdiff
path: root/slides.md
diff options
context:
space:
mode:
authorLars Wirzenius <liw@liw.fi>2019-03-12 11:05:32 +0200
committerLars Wirzenius <liw@liw.fi>2019-03-12 11:05:32 +0200
commit3f0664aa6c77260711e53c4375e7b889bd7def84 (patch)
treeb83967332229314230cb51dfa39ad641f8f42a57 /slides.md
parent2103fc7e8034bfb30c6aabf201f17dac8e0cdedc (diff)
downloadick2-pres-3f0664aa6c77260711e53c4375e7b889bd7def84.tar.gz
Change: update based on feedback
Diffstat (limited to 'slides.md')
-rw-r--r--slides.md150
1 files changed, 99 insertions, 51 deletions
diff --git a/slides.md b/slides.md
index 44ae169..575ba0f 100644
--- a/slides.md
+++ b/slides.md
@@ -1,7 +1,21 @@
-Continuous fun
+Continuous fun with Ick
-----------------------------------------------------------------------------
-https://ick.liw.fi
+Lars Wirzenius
+
+---
+
+Demo
+-----------------------------------------------------------------------------
+
+Ask me for access to demo instance
+
+Note:
+* apologize for the 90s aesthetic
+* show web interface
+* projects, a project
+* builds
+* build log
---
@@ -10,8 +24,9 @@ Ick?
* Continuous integration, delivery, and deployment
* See "**Continuous Delivery**", by Humble, Farley
-* Free software, of course (AGPL3+)
-* Aims to be nice to install, run, admin, use, ...
+* Aims to be nice to install, run, admin, use
+* Aims to be powerful but simple
+* Not there yet
Note:
* you push changes to git server
@@ -20,12 +35,28 @@ Note:
vvv
-* My current hobby project. One of many.
- * a couple of contributors, aiming to grow
-* "I used a Jenkins, and I didn't like it."
+WHY?
+-----------------------------------------------------------------------------
+
+* Needed something for myself
+* Fed up with Jenkins
* implementation irritants
* architecture annoyances.
+* Wrote a simplistic replacement in two weeks
+ * command line tool, not service
+ * fragile, but worked well enough for me
+
+vvv
+
+* Decided to make a **good** CI engine and service
+ * this will be the best software I ever write
* "NIH is strong with this one."
+ * did not like anything I looked at, but not an extensive survey
+ * language (don't like Java, Go)
+ * architecture (don't like Docker)
+* My current hobby project. One of many.
+ * a couple of contributors, aiming to grow
+ * my new main project, after retiring Obnam
Note:
* I like to write my own crappy code, not configure other people's
@@ -35,15 +66,22 @@ Note:
---
-Highlights
+Not ready for you
-----------------------------------------------------------------------------
+* Seriously not ready
+* Unless you like fixing things
* ALPHA quality software
* slow, lacks features, buggy, ...
-* Builds can happen on the host natively, or in a systemd-nspawn
- container
+
+---
+
+Highlights
+-----------------------------------------------------------------------------
+
+* Builds natively on the host, or in a systemd-nspawn container
* In my own active use
- * builds, tests my software
+ * builds, tests all my software
* builds, publishes .deb packages of my software
* builds my websites from source in git
* A demo instance with restricted access
@@ -54,14 +92,44 @@ Note:
---
-Some day, hopefully
+Tech stack
+-----------------------------------------------------------------------------
+
+* Python 3, gunicorn, bottle.py, python-requests
+ * haproxy for TLS
+* data storage
+ * files on disk, for now
+ * switching to Muck, a custom key-to-JSON store
+
+* Looking at switching to Rust instead of Python
+
+---
+
+Project
+-----------------------------------------------------------------------------
+
+* source: [git.liw.fi](http://git.liw.fi/ick2/)
+* homepage: [ick.liw.fi](https://ick.liw.fi/)
+ * [bugs](https://ick.liw.fi/issues/),
+ [contact](https://ick.liw.fi/contact/),
+ [roadmap](https://ick.liw.fi/roadmap/)
+* license: Affero GPL v3 or later
+* governance based on voting
+* Contributor Covenant Code of Conduct
+* explicit development iterations
+* weird bug tracker (email+git)
+
+---
+
+Some day in the future
-----------------------------------------------------------------------------
* **Hostable**: secure, safe, reliable
+* **Hosted**: open registration, free for free stuff
* **Distributed, federated**: a healthy ecosystem of providers of
components
* **Scalable**: large projects (Debian), many projects ("the world's CI")
-* **Fast**: minor overhead compared to local build+test
+* **Fast**: nearly no overhead over local build+test
* **Fun**: to use, not just to develop
vvv
@@ -75,53 +143,33 @@ Architecture
<img src="arch.png" />
-Note:
-* multiple components running on different hosts, communicating over
- HTTP using RESTful APIs and JSON
-* controller - keeps track what to do, which worker is doing what
-* worker and worker-manager - actually do
-* qvisqve - authenticates users, API clients (OAuth2, OIDC)
-* artifact store - stores blobs, any large files
-* apt - .deb packages (automatically uploaded)
-* notification service - tells people builds have finished
-* muck - stores JSON objects, with ownership and access control
+vvv
+
+* multiple components, potentially running on different hosts,
+ communicating over HTTPS using RESTful APIs and JSON, authenticating
+ via OAuth2, OpenID Connect
+* **controller** - what to build, what's building now
+* worker and **worker-manager** - actually build
+* **qvisqve** - authenticate users, API clients (OAuth2, OIDC)
+* **artifact store** - stores workspace, any build artifacts
+* **apt** - .deb package repository
+* **notification service** - tell people builds have finished
---
-Plans
+Near future plans
-----------------------------------------------------------------------------
-* good web UI - react; contributors are starting
+* good web UI - react; work is starting
* trigger service - tells controller when to start builds
+ * gets change events from git server, etc
+ * only for change to master?
+ * every night?
+ * when dependencies build successfully?
* yuck - replace qvisqve for authentication
* rock - new artifact store
-Note:
-* web UI: react
-* TS:
- * security, choosy on git changes, trigger multiple projects on
- one change
- * trigger builds when dependencies change
- * trigger builds on schedule
- * other new triggers
-* rewrite in Rust
-* make things friendly to users, sysadmins
-* make things fast
-
----
-
-Demo
------------------------------------------------------------------------------
-
-Note:
-* use demo instance
-* icktool
-* ickweb
-
---
-SEE ALSO
+Thank you
-----------------------------------------------------------------------------
-
-* https://ick.liw.fi/
-* Ask me for access to demo instance