:melty-bouncy: Howdy Meltano community! :melty-bou...
# best-practices
u
melty bouncy Howdy Meltano community! melty bouncy We care about your knowledge & opinions. So: How do you deploy your meltastic Meltano? Add your own setup, we certainly don't know all of them!
s
I'm learning something new every day. @pat_nadolny we are running two different kinds of deployments? Or do you have your own little Meltano fun setup?
Btw. a follow up question to anyone who feels like it and @thomas_briggs in particular: How do you get a new version of your meltano project repository onto the instance? Do you install git on it? Do you use some CI action and do some file replace magic?
p
@Sven Balnojan before joining the Meltano team I used Meltano at an ecommerce company and we deployed it on ECS. We had a standalone (not managed via Meltano) Airflow service running there too which kicked off the meltano jobs as ECS tasks using the EcsRunTaskOperator.
t
Yeah we use git to pull down the main meltano.yml (and some utility scripts too, e.g. for finding the latest logs)
d
AWS Batch is awesome for running meltano. We're running meltano elt in it daily.
s
@dylan_just that sounds good, AWS Batch is even simpler than using ECS, right?
d
A little bit, yeah. Since it's just a periodic task, you don't have to worry about keeping an instance alive. Also, you can use Fargate for compute without worrying about cost. With ECS, you normally want to make your own EC2 clusters for cost.
How do you get a new version of your meltano project repository onto the instance?
Immutable deployments, baby. CI builds a docker image with the meltano project, CD rolls it out.
s
Question to @david_wallace @lidong_zhao @boggdan_barrientos: I'm curious to know how you handle state storage?
j
certainly don't think of Kubernetes as "heavy". rather one of the lightest approaches. We run Meltano in Kubernetes Cron Jobs
l
@Sven Balnojan Sorry, just saw your message, we use PostgreSQL for the Meltano database
s
@lidong_zhao Thanks for the feedback! FWIW, I've also heard of one alternative for handling state: to pass the state locally as some kind of injected artifact.