The idea is simple. Dice is a light weight build service for KIWI images with full control over the build power by the user.

At SUSE we have the buildservice which is the full professional version of a build service for packages, images and also products. As a normal user I can provide input and I get some output but I have no control what happens with my data, when it's being processed and where it's being processed. That's by design and works great, thus not meant negatively. I'm a 100% fan of the buildservice

If people have the need for build power on demand or they need a trust model which does not allow to hand over information to other people they are mostly down at the ground level of the basic tools we provide to them. At that level a customer has to deal with several hurdles and I'd like to close this gap a little bit with this project

From a technical perspective my idea includes to provide a public worker machine as an image in one ore more public clouds. I think I will use Amazon EC2 as a start because that's also the biggest player in the field. Users can then run as many instances as they need and can control how much and when they need build power. For those who need privacy the worker machine will also be build as a vagrant box and is offered for download.

A nice little tool called dice makes use of this workers and can control and fire up the jobs whenever it is needed. The project is live on github for further details.

Looking for hackers with the skills:

ruby rspec ec2 gce kiwi vagrant

This project is part of:

Hack Week 11

Activity

  • about 11 years ago: sax2 liked this project.
  • about 11 years ago: jordimassaguerpla joined this project.
  • about 11 years ago: jordimassaguerpla liked this project.
  • about 11 years ago: sax2 added keyword "kiwi" to this project.
  • about 11 years ago: sax2 added keyword "vagrant" to this project.
  • about 11 years ago: sax2 added keyword "ruby" to this project.
  • about 11 years ago: sax2 added keyword "rspec" to this project.
  • about 11 years ago: sax2 added keyword "ec2" to this project.
  • about 11 years ago: sax2 added keyword "gce" to this project.
  • about 11 years ago: sax2 started this project.
  • about 11 years ago: sax2 originated this project.

  • Comments

    • jordimassaguerpla
      about 11 years ago by jordimassaguerpla | Reply

      I had implemented the "dice ssh" command and reviewed the setup instructions which turned out to be mostly ok and I just added a minor thing.

      https://github.com/schaefi/dice/pull/4 https://github.com/schaefi/dice/pull/5

    • sax2
      about 11 years ago by sax2 | Reply

      I'll continue working on this project since I can make use of it for setting up a test build matrix as well as I plan to offer it as part of the SUSE public cloud offering for those customers who want to quick establish a simple private build service

    • sax2
      about 11 years ago by sax2 | Reply

      we reached a state which would allow to provide the tool for testing to customers and thus also built the dice package here: http://download.opensuse.org/repositories/Virtualization:/Appliances/openSUSE13.1/x8664/dice-0.4.0-23.1.x86_64.rpm

    • sax2
      about 11 years ago by sax2 | Reply

      we also created a quick startup guide here: https://github.com/schaefi/dice#dice

    • sax2
      about 11 years ago by sax2 | Reply

      Thanks to Jordi who really showed some passion in this project and already contributed the dice ssh command :-)

    • sax2
      about 11 years ago by sax2 | Reply

      next steps are tracked on the project issue page in github. The most important issue is to get rid of the kiwi requirement in dice, so that the kiwi builder is only needed on the worker and nowhere else. I'm currently working on this when the time allows it

    • sax2
      over 10 years ago by sax2 | Reply

      dice made it into Factory :)

    • sax2
      over 10 years ago by sax2 | Reply

      The latest version can always be found here: http://download.opensuse.org/repositories/Virtualization:/Appliances/

    • sax2
      over 10 years ago by sax2 | Reply

      For Hackweek 12 I had planned to continue working on docker build boxes to be used with dice

    Similar Projects

    RMT.rs: High-Performance Registration Path for RMT using Rust by gbasso

    Description

    The SUSE Repository Mirroring Tool (RMT) is a critical component for managing software updates and subscriptions, especially for our Public Cloud Team (PCT). In a cloud environment, hundreds or even thousands of new SUSE instances (VPS/EC2) can be provisioned simultaneously. Each new instance attempts to register against an RMT server, creating a "thundering herd" scenario.

    We have observed that the current RMT server, written in Ruby, faces performance issues under this high-concurrency registration load. This can lead to request overhead, slow registration times, and outright registration failures, delaying the readiness of new cloud instances.

    This Hackweek project aims to explore a solution by re-implementing the performance-critical registration path in Rust. The goal is to leverage Rust's high performance, memory safety, and first-class concurrency handling to create an alternative registration endpoint that is fast, reliable, and can gracefully manage massive, simultaneous request spikes.

    The new Rust module will be integrated into the existing RMT Ruby application, allowing us to directly compare the performance of both implementations.

    Goals

    The primary objective is to build and benchmark a high-performance Rust-based alternative for the RMT server registration endpoint.

    Key goals for the week:

    1. Analyze & Identify: Dive into the SUSE/rmt Ruby codebase to identify and map out the exact critical path for server registration (e.g., controllers, services, database interactions).
    2. Develop in Rust: Implement a functionally equivalent version of this registration logic in Rust.
    3. Integrate: Explore and implement a method for Ruby/Rust integration to "hot-wire" the new Rust module into the RMT application. This may involve using FFI, or libraries like rb-sys or magnus.
    4. Benchmark: Create a benchmarking script (e.g., using k6, ab, or a custom tool) that simulates the high-concurrency registration load from thousands of clients.
    5. Compare & Present: Conduct a comparative performance analysis (requests per second, latency, success/error rates, CPU/memory usage) between the original Ruby path and the new Rust path. The deliverable will be this data and a summary of the findings.

    Resources

    • RMT Source Code (Ruby):
      • https://github.com/SUSE/rmt
    • RMT Documentation:
      • https://documentation.suse.com/sles/15-SP7/html/SLES-all/book-rmt.html
    • Tooling & Stacks:
      • RMT/Ruby development environment (for running the base RMT)
      • Rust development environment (rustup, cargo)
    • Potential Integration Libraries:
      • rb-sys: https://github.com/oxidize-rb/rb-sys
      • Magnus: https://github.com/matsadler/magnus
    • Benchmarking Tools:
      • k6 (https://k6.io/)
      • ab (ApacheBench)


    Recipes catalog and calculator in Rails 8 by gfilippetti

    My wife needs a website to catalog and sell the products of her upcoming bakery, and I need to learn and practice modern Rails. So I'm using this Hack Week to build a modern store using the latest Ruby on Rails best practices, ideally up to the deployment.

    TO DO

    • Index page
    • Product page
    • Admin area -- Supplies calculator based on orders -- Orders notification
    • Authentication
    • Payment
    • Deployment

    Day 1

    As my Rails knowledge was pretty outdated and I had 0 experience with Turbo (wich I want to use in the app), I started following a turbo-rails course. I completed 5 of 11 chapters.

    Day 2

    Continued the course until chapter 8 and added live updates & an empty state to the app. I should finish the course on day 3 and start my own project with the knowledge from it.

    Hackweek 24

    For this Hackweek I'll continue this project, focusing on a Catalog/Calculator for my wife's recipes so she can use for her Café.

    Day 1