-
Notifications
You must be signed in to change notification settings - Fork 0
Infrastructure
It seems silly to have a project about well-managed deployments be deployed with manual steps, so let's start here! 😎
All infrastructure is deployed with the Terraform infrastructure-as-code product.
The reasons are relatively simple:
- I like writing HCL more than JSON files
-
terraform plan
makes infrastructure testing almost as convenient python coding or Laravel's tinker console - Though I'm striving to use a no-use/no-cost service structure, typing
terraform destroy
is easy and should put any newcomer's minds to ease testing out the product
The serverless pattern starts with logically splitting the presentation layer from the application logic.
Then, piece by piece we can build out and scale each element of the application with the user of managed services avoiding the burden of system patching, security vulnerabilities and HA design/deployment at each stage.
Presentation data such as HTML page constructs, style sheets and javascript files are isolated into their own host. This has several advantages, first it decouples to choice of application logic or framework allowing independent development and deployment; next it logically moves client-side execution or static assets; finally, browser or mobile application rendering and logic are isolated into their own fault domain.
By breaking these down, client renderings can evolve as needed with new iterations of web applications, mobile applications or even bots/IoT domains able to move on their own.
It also allows us to fire the servers. This architectural choice allows the replacement of traditional web servers (which, for static assets, really just respond to GET
requests with a file anyway) with object based storage. In our case, AWS S3; but, as WMD becomes wickedly popular, we can add a CDN like AWS CloudFront in front of it to improve user experience.
Coming soon!