distribution-spec
oras
distribution-spec | oras | |
---|---|---|
56 | 8 | |
766 | 1,306 | |
3.4% | 3.8% | |
7.5 | 9.3 | |
16 days ago | 5 days ago | |
Go | Go | |
Apache License 2.0 | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
distribution-spec
-
A step-by-step guide to building an MLOps pipeline
One of the main reasons teams struggle to build and maintain their MLOps pipelines are vendor specific packaging. As a model is handed off between data science teams, app development teams, and SRE/DevOps teams, the teams are required to repackage the model to work with their unique toolset. This is tedious, and stands in contrast to well adopted development processes where teams have standardized on the use of containers to ensure that project definitions, dependencies, and artifacts are shared in a consistent format. KitOps is a robust and flexible tool that addresses these exact shortcomings in the MLOps pipeline. It packages the entire ML project in an OCI-compliant artifact called a ModelKit. It is uniquely designed with flexible development attributes to accommodate ML workflows. They present more convenient processes for ML development than DevOps pipelines. Some of these benefits include:
-
A Brief History Of Serverless
Internally, Google used a platform called Borg which is still used by Google to this day. It also served as the basis for Kubernetes. Borg is a container-based platform whose goal was to allow developers to focus on code, not infrastructure. Google has an entire infrastructure team to manage the datacenters. This system came out circa 2004. This predates the advent of modern OCI Containers by about a decade.
-
The transitory nature of MLOps: Advocating for DevOps/MLOps coalescence
Back in 2013, a little company called Docker made it really easy to start using containers to package up applications. A big key to their success was the OCI (you can learn about that here), an industry wide initiative to have standards around how we package up our applications. Because of OCI standards, we have hundreds (maybe thousands?) of tools that can be combined to manage and deploy applications. So why arenโt we using this for packaging up Notebooks and AI models as well? It would make deploying, sharing, and managing our models easier for everyone involved.
-
The Road To Kubernetes: How Older Technologies Add Up
Kubernetes on the backend used to utilize docker for much of its container runtime solutions. One of the modular features of Kubernetes is the ability to utilize a Container Runtime Interface or CRI. The problem was that Docker didn't really meet the spec properly and they had to maintain a shim to translate properly. Instead users could utilize the popular containerd or cri-o runtimes. These follow the Open Container Initiative or OCI's guidelines on container formats.
-
Coexistence of containers and Helm charts - OCI based registries
OCI stands for Open Container Initiative, and its goal as an organization is to define a specification for container formats and runtime.
-
Bazzite โ a Steam0S-like OCI image for desktop, living room, and handheld PCs
https://opencontainers.org/
Here is Containerfile from the repo: https://github.com/ublue-os/bazzite/blob/main/Containerfile
-
Distroless images using melange and apko
apko allows us to build OCI container images from .apk packages.
- OCI image from dockerfile
- Fat OCI images are a cultural problem
-
Progressive Delivery on AKS: A Step-by-Step Guide using Flagger with Istio and FluxCD
Flagger's load testing service can be installed via a Kustomization resource based on manifests packaged as an artifact in an Open Container Initiative (OCI) registry
oras
- Distribute Artifacts Across OCI Registries
- OCI image from dockerfile
-
RFC 6920: Naming Things with Hashes
Interesting, I'd not known of this RFC before.
Another example of a content-addressed data store could be OCI registries (more commonly known as container image registries). Using them to store arbitrary artefacts is quite well supported now: https://oras.land/
-
sbcl - require
See https://oras.land/
-
Ocicl โ An ASDF system distribution and management tool for Common Lisp
> ... but still only supports one niche operating system.
1. Linux is not a niche in the target market for this project.
2. The project is written in Common Lisp with hard dependencies on SBCL-provided libraries[1], so there's reason to suspect it should work on other OSes supported by SBCL.
3. Sure, the presence of Makefile and sb-posix imply it requires a POSIX compliant OS, but Linux is not the only one that fits the bill.
4. The included Linux-only binary 'oras' is clearly a vendored artifact, not part of this project, and clearly an OCI client. A simple search shows it is indeed cross-platform[2].
Perhaps you should try what almost every Linux user has had to do when encountering software actually built for only one "niche" operating system that they want to use on their OS: look.
1. https://github.com/ocicl/ocicl/blob/170aff0/ocicl.asd#L34
2. https://github.com/oras-project/oras/releases
-
Looking for an artifact store for generic assets, rather than specially-formatted packages or containers. Thinking maybe ORAS, but wondering if there are other options.
oras isn't that unpopular, Helm is using it as an SDK for example. Here are other projects who are using it. https://github.com/oras-project/oras/network/dependents
- OCI Registry as Storage
What are some alternatives?
jib - ๐ Build container images for your Java applications.
regclient - Docker and OCI Registry Client in Go and tooling using those libraries.
spin - Spin is the open source developer tool for building and running serverless applications powered by WebAssembly.
containerd - An open and reliable container runtime
proxmox-lxc-idmapper - Proxmox unprivileged container/host uid/gid mapping syntax tool.
distribution - The toolkit to pack, ship, store, and deliver container content
appleprivacyletter - An open letter against Apple's new privacy-invasive client-side content scanning.
imgpkg - Store application configuration files in Docker/OCI registries
dive - A tool for exploring each layer in a docker image
quicklisp-https
bartholomew - The Micro-CMS for WebAssembly and Spin
watchtower - A process for automating Docker container base image updates.