<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>systems architecture | UCSC OSPO</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/tag/systems-architecture/</link><atom:link href="https://deploy-preview-1007--ucsc-ospo.netlify.app/tag/systems-architecture/index.xml" rel="self" type="application/rss+xml"/><description>systems architecture</description><generator>Wowchemy (https://wowchemy.com)</generator><language>en-us</language><lastBuildDate>Tue, 18 Feb 2025 00:00:00 +0000</lastBuildDate><image><url>https://deploy-preview-1007--ucsc-ospo.netlify.app/media/logo_hub6795c39d7c5d58c9535d13299c9651f_74810_300x300_fit_lanczos_3.png</url><title>systems architecture</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/tag/systems-architecture/</link></image><item><title>Chameleon Trovi Support for Complex Experiment Appliances</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre25/uchicago/trovi/</link><pubDate>Tue, 18 Feb 2025 00:00:00 +0000</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre25/uchicago/trovi/</guid><description>&lt;h2 id="overview">Overview&lt;/h2>
&lt;p>The discoverability and accessibility of research artifacts remains a significant barrier to reproducibility in computer science research. While digital libraries index research papers, they rarely provide direct access to the artifacts needed to reproduce experiments, especially complex multi-node systems. Additionally, when artifacts are available, they often lack standardized metadata, versioning, and deployment mechanisms that would enable researchers to easily find and reuse them. This project addresses these challenges by extending Trovi, a repository of experimental artifacts executable on open platforms, to support complex, multi-node appliances, making sophisticated experimental environments discoverable, shareable, and deployable through a standardized interface - ultimately lowering the barriers to reproducing complex systems experiments.&lt;/p>
&lt;p>&lt;a href="chameleoncloud.org/">Chameleon&lt;/a> has historically enabled researchers to orchestrate complex appliances—large, multi-node clusters configured via OpenStack Heat—to conduct advanced experiments. Meanwhile, Chameleon team introduced &lt;a href="chameleoncloud.org/experiment/share">Trovi&lt;/a> as repository for open platforms (beyond Chameleon) that pioneers mechanisms for artifact and platform integration leading to immediate execution for pratical reproducibility. This project aims to bridge the two by adding support in Trovi for importing, discovering, and launching complex appliances. By integrating these capabilities, researchers will be able to one-click deploy complex appliances directly from the Trovi dashboard, archive them for future reference, and reproduce experiments on demand.&lt;/p>
&lt;h2 id="key-outcomes">Key Outcomes&lt;/h2>
&lt;ul>
&lt;li>Extended Trovi API: Enable the import and management of complex appliances as artifacts.&lt;/li>
&lt;li>Streamlined One-Click Launch: Integrate with Chameleon’s existing provisioning workflows so users can launch multi-node clusters directly from Trovi.&lt;/li>
&lt;li>Enhanced Dashboard Experience: Provide UI assistance for discovering, reviewing, and customizing complex appliance artifacts.&lt;/li>
&lt;li>Improved Artifact Reproducibility: Automate the process of exporting CC-snapshot images and other resources to ensure everything is preserved across sites (UC, TACC), highlighting any parameters that need user attention for cross-site portability.&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Topics&lt;/strong>: &lt;code>Reproducible Research&lt;/code>, &lt;code>Cloud Computing &amp;amp; Orchestration&lt;/code>, &lt;code>OpenStack Heat&lt;/code>, &lt;code>UI/UX &amp;amp; Web Development&lt;/code>&lt;/p>
&lt;p>&lt;strong>Skills&lt;/strong>: Python, APIs, Cloud (OpenStack), DevOps &amp;amp; Automation, Frontend&lt;/p>
&lt;p>&lt;strong>Difficulty&lt;/strong>: Hard&lt;/p>
&lt;p>&lt;strong>Size&lt;/strong>: Large&lt;/p>
&lt;p>&lt;strong>Mentors:&lt;/strong> &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/mark-powers/">Mark Powers&lt;/a>&lt;/p>
&lt;p>&lt;strong>Tasks&lt;/strong>:&lt;/p>
&lt;ul>
&lt;li>Extensions to the Trovi API
&lt;ul>
&lt;li>Add support for importing complex appliances as artifacts (including Heat templates, metadata, and associated disk images).&lt;/li>
&lt;li>Develop methods for tagging, versioning, and categorizing these appliances, making them easier to discover.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>One-Click Launch of Complex Appliances
&lt;ul>
&lt;li>Integrate with Chameleon’s orchestration engine, enabling single-click cluster deployments from the Trovi UI.&lt;/li>
&lt;li>Validate correct configuration and resource availability through automated checks.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Trovi Dashboard Enhancements
&lt;ul>
&lt;li>Update the front-end to provide intuitive controls for customizing or parameterizing complex appliances before launching.&lt;/li>
&lt;li>Offer a clear workflow for reviewing dependencies, resource requirements, and usage instructions.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Automated Export &amp;amp; Multi-Site Testing
&lt;ul>
&lt;li>Streamline the export of snapshots or images into Trovi as part of the appliance import process.&lt;/li>
&lt;li>Optionally re-run the imported appliances at multiple sites (UC, TACC), detecting any unparameterized settings or missing dependencies.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul></description></item><item><title>Contextualization – Extending Chameleon’s Orchestration for One-Click Experiment Deployment</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre25/uchicago/contextualization/</link><pubDate>Tue, 18 Feb 2025 00:00:00 +0000</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre25/uchicago/contextualization/</guid><description>&lt;h2 id="overview">Overview&lt;/h2>
&lt;p>Reproducibility in computer systems research is often hindered by the quality and completeness of artifact descriptions and the complexity of establishing experimental environments. When experiments involve multiple interconnected components, researchers struggle with hardcoded configurations, inadequate documentation of setup processes, and missing validation steps that would verify correct environment establishment. This project addresses these challenges by extending orchestration capabilities beyond basic hardware provisioning to include comprehensive contextualization—making complex, multi-component experimental environments deployable via parameterized templates with clear validation points, standardized metadata, and minimal user intervention—thus significantly reducing the barriers to reproducing complex distributed systems experiments.&lt;/p>
&lt;p>&lt;a href="chameleoncloud.org">Chameleon&lt;/a> already provides powerful capabilities to orchestrate and configure resources through Heat templates (similar to Terraform) and the &lt;a href="https://python-chi.readthedocs.io/" target="_blank" rel="noopener">python-chi&lt;/a> library. However, these focus primarily on provisioning (i.e., allocating and configuring hardware resources). This project goes a step further by addressing contextualization—the process of creating complete, ready-to-use experimental environments that incorporate everything from network layout to instance-level configuration and discovery—with additional features such as parameterized templates, experiment-level metadata, and output reporting.&lt;/p>
&lt;h2 id="key-outcomes">Key Outcomes&lt;/h2>
&lt;ul>
&lt;li>Template-Based One-Click Launch: Users can deploy multi-resource experiments (VMs, networks, storage, etc.) via a single click or a minimal set of input parameters.&lt;/li>
&lt;li>Enhanced Experiment Contextualization: Each launched resource can gain access to global “experiment-level” metadata (e.g., IP-to-hostname mappings for cluster authentication) and outputs that summarize important details.&lt;/li>
&lt;li>Streamlined User Experience: An asynchronous deployment workflow that provides notifications and uses “outputs” to highlight critical connection information (e.g., bastion host IP, final results).&lt;/li>
&lt;li>Optional Advanced Features: Partial reconfiguration to avoid full rebuilds when changes are minor, an “export” function to capture existing deployments into a new template, and potential publishing to Trovi for reproducibility and archiving.&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Topics&lt;/strong>: Cloud Computing &amp;amp; Orchestration, Infrastructure as Code, DevOps &amp;amp; Automation, Reproducible Research Environments&lt;/p>
&lt;p>&lt;strong>Skills&lt;/strong>:&lt;/p>
&lt;ul>
&lt;li>OpenStack &amp;amp; Heat Templates: Familiarity with provisioning resources on Chameleon using Heat or Terraform-like workflows.&lt;/li>
&lt;li>Python &amp;amp; Scripting: For enhancing or extending the python-chi library.&lt;/li>
&lt;li>Systems / Network Knowledge: Understanding multi-VM topologies, cluster configurations, and network-level interactions.&lt;/li>
&lt;li>CI/CD &amp;amp; DevOps: Experience building or integrating asynchronous deployment and notifications.&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Difficulty&lt;/strong>: Hard&lt;/p>
&lt;p>&lt;strong>Size&lt;/strong>: Large (suitable for a semester-long project or a summer internship)&lt;/p>
&lt;p>&lt;strong>Mentors&lt;/strong>: &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/paul-marshall/">Paul Marshall&lt;/a>&lt;/p>
&lt;p>&lt;strong>Tasks&lt;/strong>:&lt;/p>
&lt;ul>
&lt;li>One-Click Template Launch
&lt;ul>
&lt;li>Design a template (in Heat or similar) specifying multiple cloud resources (images, networks, disk images, SSH keys, etc.).&lt;/li>
&lt;li>Ensure the template author can define input parameters with defaults.&lt;/li>
&lt;li>Allow the user to launch the template quickly with default values or adjust parameters before deployment.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Asynchronous Provisioning &amp;amp; Notifications
&lt;ul>
&lt;li>Implement a long-running process that deploys resources step-by-step.&lt;/li>
&lt;li>Provide status updates to the user (e.g., via UI notifications, email, or logs) when deployments complete or fail.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Experiment-Level Metadata
&lt;ul>
&lt;li>Inject metadata such as IP-to-hostname mappings to each instance for easy cluster authentication.&lt;/li>
&lt;li>Allow the template to define “outputs” (like a public IP of a bastion or location of final results).&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Partial Reconfiguration (Optional)
&lt;ul>
&lt;li>Enable partial updates if only one of several servers changes, saving time and resources.&lt;/li>
&lt;li>Improve fault tolerance by avoiding full redeploys in the event of partial failures.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Export Running Configurations into a New Template (Optional)
&lt;ul>
&lt;li>Build a web-interface or script to detect existing user-owned resources (servers, networks, etc.).&lt;/li>
&lt;li>Generate a proposed template from those resources, suggesting parameters (e.g., flavor, disk image, or SSH key).&lt;/li>
&lt;li>Extend or modify existing templates by adding discovered resources.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Integration with Trovi / Multi-Site Testing (Optional)
&lt;ul>
&lt;li>Provide a method to archive or publish the final template (and associated disk images, data sets) in Trovi.&lt;/li>
&lt;li>Attempt to re-run the template at multiple Chameleon sites (e.g., UC, TACC) to identify parameters or modifications needed for cross-site reproducibility.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul></description></item></channel></rss>