Library / SDK
paiml/practical-mlops-book avatar
paiml/practical-mlops-book

paiml/practical-mlops-book: the companion code repository for an O'Reilly book, and what it actually contains

[Book-2021] Practical MLOps O'Reilly Book

988 stars379 forksJupyter NotebookLicense varies

At a glance

What is it?
This repository holds the code samples and chapter links for Practical MLOps (O'Reilly, 2021). It is a reading companion, not a framework, and the README is largely a course catalogue pointing at other repositories.
Who is it for?
Use this repository if you own the Practical MLOps book and want the sample notebooks and logging examples that accompany it, or if you are assembling a reading list of MLOps demos. Do not adopt it as a dependency, a template, or a source of current cloud guidance, because a 2021 book's AWS, Azure and GCP instructions age quickly and several chapters have no code in this repo at all.
Can I use it commercially?
Not without permission. GitHub finds no licence file in the repository, and without a licence all rights are reserved by default: you may read the code but not reuse it. Check the README, or ask the authors, before using it.
Is it still maintained?
Yes. The repository last received commits 173 days ago.
What is it written in?
Mainly Jupyter Notebook, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 15, 2026, and from our analysis. They are not legal advice.

DEEP OPEN-SOURCE ANALYSIS

What this repository is, and what it is not

The README opens with a single sentence: "This is a public repo where code samples are stored for the book Practical MLOps." That is the whole scope. There is no package, no CLI, no library to install. The repository exists so that readers of the O'Reilly title can download notebooks and scripts that match the printed chapters, and so that the authors can link out to demos hosted elsewhere. Anyone arriving here expecting an MLOps tool has misread the artifact. The correct mental model is a book's companion site, stored in Git. The primary language listed is Jupyter Notebook, which fits that model: the material is explanatory and runnable in a notebook session rather than importable into a service. Because of this, the usual questions about API stability, semantic versioning and upgrade paths do not apply. There are no releases retrieved for the repository, and none are needed for a companion site. The thing you would version is the book edition, not the code.

The chapter outline is mostly a link directory

The README's core is a tentative outline covering twelve chapters, from "Introduction to MLOps" through "Machine Learning Engineering and MLOps Case Studies". Read the entries under each heading carefully, because most of them are URLs to other GitHub repositories rather than files in this one. Chapter 1 points to a separate multi-cloud GitHub Actions demo. Chapter 2 points to a cloud bash essentials repo and a regression notebook. Chapter 5 lists an Apple CreateML walkthrough, a Ludwig text classification notebook, a FLAML hello world and a model explainability repo. Chapter 7, on AWS, is a list of eight external links including an Elastic Beanstalk deployment, an ECS Fargate tutorial, two exam guides and a container-from-scratch project. Chapters 4, 6, 8, 10, 11 and 12 have no source code listed under them at all. That asymmetry is worth knowing before you clone: the repository is a hub, and the spokes are other people's repositories with their own maintenance schedules, or lack of one.

The code that does live here: logging and Ludwig

Two categories of material appear to be hosted in this repository itself. Chapter 3, on deployment in production, links to three paths under a chapter6 directory: a general logging examples folder, a multiple-loggers folder and a simple-logging folder. The chapter numbering and the directory name do not line up, which is a small sign of how the outline evolved during writing. Chapter 5 links to a Ludwig.ipynb notebook at the repository root, described as text classification with Ludwig. Beyond those, the README references a project plan template stored as an Excel file, "Excel Template_Ten Week Demo Schedule.xlsx", which is a planning artifact rather than code. If you want to see the style of the book's examples, the logging folders and the Ludwig notebook are the concrete starting points. Note that the README gives no expected output for any of them, so you cannot tell from the repository alone whether a notebook still runs against current library versions. Ludwig in particular has changed its configuration format over time, and a 2021 notebook may need editing before it executes.

Getting it running: clone, then follow the links

There is no installation step documented. The practical path is to clone the repository and open the notebooks you care about in Jupyter, since the primary language is listed as Jupyter Notebook. For the logging examples, the README points at the chapter6 directory and its two subfolders, multiple-loggers and simple-logging, so those are the paths to open first if you want runnable Python. For the Ludwig example, the README points at Ludwig.ipynb at the repository root. Everything else requires leaving this repository: the AWS material lives in the linked Elastic Beanstalk, ECS Fargate and Python MLOps Cookbook repositories, the GCP material in gcp-from-zero, kubernetes-hello-world-python-flask, gcp-flask-ml-deploy and serverless-cookbook, and the AutoML material in the Apple CreateML, FLAML and model-explainability repositories. There are no documented environment files, dependency pins or setup scripts in the README, so each linked repository has to be treated as its own project with its own instructions. Budget time for that, because a twelve chapter book's worth of demos spread across a dozen repositories is not a single afternoon's setup.

The licence field is unknown, which matters more than usual here

The repository metadata reports the licence as unknown. For a book's code samples this is a real gap rather than a formality. Code from a published book is frequently released under a permissive licence so readers can reuse it in their own work, but nothing in the supplied material states which licence applies, and the README does not mention one. If you intend to copy the logging examples or the Ludwig notebook into a commercial codebase, that ambiguity is the thing to resolve first, by checking the repository for a licence file or contacting the publisher. This is not legal advice, and the absence of a stated licence is not the same as a prohibition; it simply means you cannot confirm the terms from the material available. The same caution applies to the external repositories, each of which carries its own licence that has nothing to do with this one.

Where this is the wrong tool: no maintenance guarantee, dated cloud specifics

The repository is not archived, and the last push date recorded is 2026-03-26, but the book itself is dated 2021 and the topics list includes paiml-legacy-book and paiml-read-only. Those tags suggest the project's own authors treat this as a closed, legacy artifact rather than an actively developed one. The consequence is concrete: the AWS, Azure and GCP chapters describe console workflows, instance types and service names as they stood in 2021, and cloud providers retire and rename services on their own schedule. A reader following the ECS Fargate or Elastic Beanstalk links may find that the steps no longer match the current console. The book's value is conceptual, explaining what MLOps practice looks like across deployment, monitoring and AutoML, and the code is evidence for those explanations. It is the wrong tool if you need a current, tested deployment recipe, if you need something you can depend on in CI, or if you need a maintained library. For those needs, look at the upstream projects the book merely demonstrates.

A real alternative, and the difference in approach

The README itself points to a closer alternative than any external competitor: the Python MLOps Cookbook, linked under Chapter 7. The difference in approach is structural. This repository is organised around a narrative, one directory or link per book chapter, in the order a reader encounters them, with no shared tooling between chapters. A cookbook is organised around tasks, so a reader arrives with a problem and looks up the recipe rather than reading sequentially. That matters for how you use each one. If you are learning the shape of MLOps practice and want the reasoning behind each step, the chapter structure here is the point. If you already know what you want to build and need a procedure, the chapter order is overhead. The same distinction applies to the community recipes section of the README, which lists nine student and contributor projects covering FastAPI sentiment analysis on Kubernetes, TensorFlow.js image classification, a Flask salary predictor, a Covid predictor, a Streamlit traffic detector and others. Those are worked examples at varying levels of polish, useful for seeing how other people assembled a pipeline, not for reuse as components.

Maintenance cost and how to read the README

There is nothing to maintain on your side if you treat this as reading material: clone it, read it, close it. The maintenance cost appears only if you try to keep the examples running. Each notebook depends on libraries as they existed in 2021, and each external link is a separate repository with its own state. The README does not pin versions, so reproducing a chapter's environment is an exercise in guessing. A second thing to notice is that the top of the README is a promotional block for the authors' courses, listing a Hugging Face specialisation, a GenAI engineering course, a Rust course, AWS courses and a production ML program, with the line "Trusted by Fortune 500 Teams". That block is not documentation of the repository. It sits above the actual description and is easy to mistake for the project's purpose when you land on the page. Read past it to the section headed "Practical MLOps, an O'Reilly Book", which is where the repository's actual contents begin.

Editorial conclusion

Use this repository if you own the Practical MLOps book and want the sample notebooks and logging examples that accompany it, or if you are assembling a reading list of MLOps demos. Do not adopt it as a dependency, a template, or a source of current cloud guidance, because a 2021 book's AWS, Azure and GCP instructions age quickly and several chapters have no code in this repo at all. Before relying on anything here, check the LICENSE field, which the repository metadata reports as unknown, and follow the per-chapter links to the external repositories where the maintained code actually lives.

Official sources

  1. Issues
  2. paiml/practical-mlops-book on GitHub
  3. README
Community notes

Community notes