We’ve developed some code for an application in a notebook and are looking at ways to turn it into something closer to production-ready / long-term, stable code. I need some advice on how to do that.
It’s a fairly typical App for this community - read data in, manipulate it, compare it to some other data sources, present some metrics, finished. It runs easily on a desktop machine.
We’re looking to create code using an approach that…
- Can be adapted quickly to different cases, e.g. changing the name and location of input files, changing other aspects of the configuration but not the body of the code.
- Is Git compatible; we’ll set up and maintain a main version and just fork that for different cases
- Can be pulled and deployed to a different user’s machine and used with minimal fuss
- Is opinionated, in that it forces us to use a certain way of doing things (I don’t want to reinvent the wheel, so if someone has already done the groundwork, fine!)
- Doesn’t require me to stitch together 10 different services. Ideally I’d like to have everything in place with one
pip install
…
So far I’m considering Kedro as it seems to have the above features and the learning curve is manageable.
However, I am wondering if
- there is best practice that I have ignored,
- if there is a better solution, or
- if anyone actually uses Kedro and could share their opinions.
Looking forward to your thoughts!