Design

Understand what led us to design Chall-Manager as such: what are the needs, what were the problems, how we solved them.

In this documentation chapter, we explain what led us to design the Chall-Manager as such. We go from the CTF limitations, the Challenge on Demand problem, the functionalities, the genericity of our approach, how we made sure of its usability, to the innovative testing strategy.


Context

Inform yourself on the context of the Challenge on Demand problem.

The Need

Understand why it was a problem before chall-manager.

Genericity

What is the layer of genericity ?

Architecture

All architecture documents, from the API to the Kubernetes deployment.

High Availability

How we balanced Availability and Consistency for acceptable performances.

Hot Update

How do we handle the update of an infrastructure once it runs ?

Security

Learn how we designed security in a “RCE-as-a-Service” system, and how we used its features for security purposes.

Expiration

Find how we handle fairness in the use of infrastructure resources with expirations.

Software Development Kit

Learn how we designed a SDK to ease the use of chall-manager for non-DevOps people.

Testing

Building something cool is a thing, assuring its quality is another. Learn how we dealt with this specific service Integration, Verification and Validation, especially through Romeo.