After an internal call for help to take over software.opensuse.org deployment, I spend some time studying the code in order to find out what would it mean to take it over.

The main reason was a PR from the community that has not been merged, and deployment depending on internal SUSE employees. I discovered (or at least I did not found evidence of the contrary), there is no need for this machine to be internal, as it uses the API.

On the other hand, the deployment is using rpm for gems, and it is quite tied to the setup of a virtual machine, all these things are nice for a sysadmin but not so nice for a developer.

I forked it, merged the new theme and fixed a few bugs: repo On the way, I also enabled it to be deployed on PaaS: Heroku, SUSE CAP (Cloud Foundry), etc.

So the goal of this project would be to:

  • Find if the stakeholders would be ok with a different deployment mechanism. At least something not sysadmin-centric.
  • If this is not feasible, still see if deployment can be improved. nginx, no rpm for Gems, etc.
  • Build a small group of people willing to learn by taking over this piece.
  • If all goes good, take over the responsibility of this component.

Outcome

software.opensuse.org has been refactored, cleaned up, updated to Rails 5, added tests, etc.

The testsuite runs on every Pull Request, and we are very very close to automated deployment.

Looking for hackers with the skills:

opensuse rails rubyonrails ror ruby web webapps

This project is part of:

Hack Week 16

Activity

  • about 8 years ago: pgonin liked this project.
  • about 8 years ago: ancorgs liked this project.
  • about 8 years ago: hennevogel liked this project.
  • about 8 years ago: cschum liked this project.
  • about 8 years ago: dmacvicar started this project.
  • about 8 years ago: cbruckmayer liked this project.
  • about 8 years ago: dmaiocchi liked this project.
  • about 8 years ago: dmacvicar added keyword "ror" to this project.
  • about 8 years ago: dmacvicar added keyword "ruby" to this project.
  • about 8 years ago: dmacvicar added keyword "web" to this project.
  • about 8 years ago: dmacvicar added keyword "webapps" to this project.
  • about 8 years ago: dmacvicar added keyword "opensuse" to this project.
  • about 8 years ago: dmacvicar added keyword "rails" to this project.
  • about 8 years ago: dmacvicar added keyword "rubyonrails" to this project.
  • about 8 years ago: dmacvicar originated this project.

  • Comments

    • TBro
      about 8 years ago by TBro | Reply

      Talk with eachother might be a good start: https://hackweek.suse.com/projects/improve-the-opensuse-infrastructure

    • lnussel
      almost 8 years ago by lnussel | Reply

      So did you have a chance to work on this?

    Similar Projects

    Create openSUSE images for Arm/RISC-V boards by avicenzi

    Project Description

    Create openSUSE images (or test generic EFI images) for Arm and/or RISC-V boards that are not yet supported.

    Goal for this Hackweek

    Create bootable images of Tumbleweed for SBCs that currently have no images available or are untested.

    Consider generic EFI images where possible, as some boards can hold a bootloader.

    Document in the openSUSE Wiki how to flash and use the image for a given board.

    Hack Week 22

    Hack Week 21

    Resources


    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


    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