Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[FEAT]: Enhancing Sunbird RC Docker Image Support for Multi-Platform Development #1037

Open
holashchand opened this issue Jun 24, 2024 · 0 comments
Labels
type: Enhancement When existing features are being enhanced, use enhancement

Comments

@holashchand
Copy link
Contributor

holashchand commented Jun 24, 2024

Enhancing Sunbird RC Docker Image Support for Multi-Platform Development

Introduction

Hi everyone, I have been observing some issues within the Sunbird RC community that are hindering the overall adoption of the platform. These issues include slow performance, difficulties with image pulls, and compatibility problems. Given that many community members use Mac OS systems for development, it's crucial to support multi-platform Docker images. Below, I've outlined some thoughts and solutions to enhance our Docker image support and improve the developer experience.

Current Status:

Currently, we support Docker images for the linux/amd64 platform for our registry and its services. However, there are significant challenges when using these images on other platforms such as linux/arm64/v8, linux/arm/v7, and linux/arm/v6.

The main issues observed include:

  • Performance Degradation: The images become very slow on these platforms.
  • Pulling Issues: The images do not automatically get pulled on these platforms.
  • Compatibility Problems: Sometimes, the images do not work at all on their respective platforms.

User Impact:

Many developers in the Sunbird RC community use Mac OS systems for development, which often involve different architecture types. This observation underscores the need for broader platform support to facilitate development across various environments.

While most production systems are based on the linux/amd64 architecture, but enabling developers to adopt Sunbird RC on their development platforms is also crucial. The current limitations hinder the ability of community members to try out and adopt the system, making the initial experience challenging and discouraging.

Proposed Solutions:

To address these issues and support multiple platform types, we propose the following approaches for publishing Docker images:

1. Manual Multi-Arch Image Creation:

  • Process: Manually build and push images from different architecture types and then create a single manifest to unify these images.
  • Benefits: Ensures precise control over the build process and compatibility checks for each platform.

2. Automated Multi-Platform Builds with GitHub Actions:

  • Process: Use GitHub Actions to automate the building of multi-platform images and their subsequent publication.
  • Benefits: Streamlines the build process, reduces manual effort, and ensures consistent image updates across platforms.

3. Dependency Management and Image Optimization:

  • Process: Review and modify existing Docker images to address any platform-specific incompatible dependencies.
  • Benefits: Enhances the robustness and compatibility of images, ensuring they function correctly across different platforms.

Next Steps:

  • Evaluate and choose the best approach (or a combination of approaches) based on feasibility, ease of implementation, and long-term maintenance.
  • Implement the chosen solution(s) and thoroughly test the multi-platform images.

By implementing these solutions, we aim to improve the adoption experience for developers using different platforms, thereby fostering a more inclusive and active Sunbird RC community.

@srprasanna , @Sreejit-K , @challabeehyv could you please also share your thoughts on these ideas?

Thanks,

Describe the feature clearly.

Add a new feature that does ....

@holashchand holashchand added the type: Enhancement When existing features are being enhanced, use enhancement label Jun 24, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type: Enhancement When existing features are being enhanced, use enhancement
Projects
None yet
Development

No branches or pull requests

1 participant