We have some components that need to be setup with a "productionised" infrastructure.
We have 3 EC2 servers setup and deployed to a point. 3 our of 2 components are in place and running correctly. To support continuous deployment we need to be able to repeat this setup on the push of a button (CI).
1. We need to install a tomcat instance into nexus which can be downloaded and installed as part of a script/puppet
2. We need to deploy 3 applications to EC2 servers (1 per application).
3. We need to setup port forwarding on the nodes so that localhost: will forward to an RDS MySql instance
4. We need to setup an apache server to manage sticky sessions and load to an application server also EC2
4.a. The setup of these apache instances to support N EC2 nodes.
4.b. 1 EC2 apache node per application
5. We need to setup zone routing to the apache instances so that these can be resolved on a convenient domain.
The final state of the project for final payment is as follows
Final state that we want is as follows;
1. Auto configured apache server forwarding requests to the appropriate server(s)
1.a. Initial setup will have just one node per app, however when we go live we would have at least 2 app server nodes to support some redundancy
1.b. the tomcat instances on the node will be independent and not be aware of other tomcat instances
1.c. sticky sessions would be maintained
1.d. Template server can be deployed in nexus
1.e. Script/puppet to download and configure specific hosts if needed
2. Configured node with tomcat
2.a. template tomcat instance can be deployed in nexus
2.b. script/puppet to download and configure anything specific
2.c. setup port forwarding to so as to resolve a remote mysql database on localhost
3. Deployed applications
3.a. Identity application
3.a.1. Stand alone web application with a database
3.b. Receipt web application
3.b.1. stand alone web application which connects to the receipt json app
3.c. Receipt json services application
3.c.1.Stand alone web application with a database that exposes RESTful JSON interfaces
End of the project would have each application deployed successfully on their own domains and communicating successfully with their database and components
identity - www.receiptdrop.com - https
receipt web app - your.receiptdrop.com - https
json services interface app - services.receiptdrop.com - https