ecotoneframework / php-ddd-cqrs-event-sourcing-symfony-laravel-ecotone

Ecotone - ES DDD CQRS PHP Symfony Laravel example
98 stars 22 forks source link

Article on deployment #6

Open tacman opened 11 months ago

tacman commented 11 months ago

Thanks for releasing this code and the set of articles along with it. I've created many individual Symfony sites, but never an enterprise system with multiple parts communicating with each other, so this is pretty interesting.

Would you consider an article on deployment? (On a related note, are the demo sites live anywhere?) I've been using dokku for my sites, previously I used heroku when they had free apps. Symfony recommends platform.sh, but even $12/month is too expensive for a hobby project.

I've read some about digital ocean's droplets, and a myriad of other solutions, but honestly deployment, especially deployment on the cheap, is still complicated. Your demo app works great ( thx for fixing #3 ) -- but that's with docker compose. If you have experience and opinions with deployment, I'd find it interesting. Thx.

dgafka commented 11 months ago

I guess deployment will differ depending on the execution platform you're using. In general the way you run Message Consumers, is most likely the same, just the box in which it run differs (docker, bare server). What may differ tho, is how to run things like Jaeger or Ecotone Pulse or web app.

It's so large topic and people do it on so many different ways depending on the execution platform, that I would not be sure what should be written in such article. Can you elaborate more, what is blocking you or what do you struggle with?

tacman commented 11 months ago

It's not specifically related to the Ecotone Framework, but rather the whole deployment process in general. If you have an inexpensive deployment, I was wondering how you did it.

I've been deploying PHP apps (well, really only the Symfony ones) to dokku running on Hetzner, because it's very inexpensive to do so. One of the reasons I bumped to Symfony 6.3 is because they now support storing encrypted secrets in a vault, so you only need to configure two environment variables, APP_ENV=prod and the decryption secret.

As far as the other services, though, I was wondering how you did it and if you have any tips to share. I'm not actually deploying it yet, currently everything sits in a single repo, but reading your articles and learning your framework made me realize there are other, more sophisticated approaches.