Any docker for this project?
Opened this issue · 4 comments
Thank you
Interesting Question. Why do you want to run this project as container?
@mooyoul I desperately hope you to explain the intend of saying "Why do you want to run this project as container?". I could suppose this service runs on serverless architecture and as it auto-scales, you didn't need any other containers to run this project. I'm supposing this was your actual response you wanted to say. Is this correct?
As I could think of some pros of using containers(e.g. Docker Container) like isolated, easy to scale, etc which already are satisfied. So the reason you asked again might be "Interresting Question. ('Hmm... is there any adventages of using Docker for this project?')" am I right or missing something..?
No. There are tons of problems to be resolved to run this application in container environment.
As you might know, Many system components are located outside of "compute platform (e.g. Bare-metal instances, Containers, etc.)"
For instance - SES. This application (poo.email) doesn't know about how actual mail messages are delivered. That's delegated to AWS SES, where "real" SMTP Server implementation exists.
In this case, There are two available options with their own drawbacks:
- Keep SES delegation as-is
- In this case, you should find a way to receive SES event notifications from container environment.
- Add SMTP server to container
- In this case, you should find SMTP server implementation (e.g. mailin / example)or write your own SMTP server, then expose that to the internet.
Also, both options require tons of application modifications with huge effort.
Another case is API Gateway - Handling HTTP Requests and HTTP Responses are delegated to that. but also handling WebSocket connections and WebSocket messages. You have to handle these manually in application layer, which also requires additional modification with huge effort.
Therefore, Making this application to run "both" (Lambda and Container) is nearly impossible.
@mooyoul How awesome! Guess I should've understood how the isolated container process interacts with outer servers. And I need to change my attitude since I've been using technologies too comfortably without any efforts of figuring out how things work behind at low levels(or how things were implemented in the past). Thank you so much for answering this question :)