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!