I've been playing with Haskell on and off for the last few years and at this stage, while I still consider myself a newbie, I feel quite confident I could write a small application (*something*) and have it do relatively simple tasks for me. It's great to have your application published and running somewhere in the cloud, but the whole process of getting your code to the cloud is much less so. At least it has been in my case. What I like to do is more programming and less configuration and manual tasks!
Check now inactive fontbot for example. The way it is written is pretty basic and its iterations are as basic as one can wish for:
* write code
* build it with Stack
* copy the compiled code manually to a prepared EC2 machine
But, as I'm here to hack fridges, I want more. I want the cycle to be more automatic and less manual. I want to be able to publish my built code anytime I'm happy with the build. Preferably to a Docker container hosted by AWS (not necessarily a single EC2 machine). My daily work does not require any interaction with Docker (so your feedback is much appreciated!), but since it looks like a very useful thing, I plan to explore it. I'm pretty new to Docker and the idea of ECS, so it should be good fun.
Let's sketch a plan of this exercise (now partially updated with the parts I've already finished):
- Prepare a basic Docker image to host static HTML files locally.
- Configure ECS to use that image and host the static files globally.
- Make another image, this time able to host some basic Haskell server code.
- Adjust ECS if needed for that new image.
- Configure a bitbucket pipeline to publish your code to ECS whenever a new version is pushed to a certain branch.
At the end of this exercise I should have a setup where every time I push my code to a chosen branch, it gets deployed to ECS by the pipeline.
Stay tuned and keep hacking!