My website is currently running on a dedicated server at godaddy.com. I'd like to switch to a hosting system that is more scalable, and hopefully cheaper (though cost is not a huge motivator, as my hosting costs are already quite slim--about $170/mo). The main goal is scalability and the power to do things like spinning up staging and debugging servers and separating the database, back and front end into their own servers.
Currently at 7.0, but for the new server we will target Version 7.1.
A requirement for this project is that upgrading to future versions of PHP should be easy to do and not require starting everything over from scratch (like I have to do now). If this means spinning up a new AWS instance, ok, but it needs to be a few simple steps and not break everything. My suggestion for this project is to start with 7.0, then demonstrate that you can easily upgrade to 7.1.
The site currently uses the FPM/FastCGI process manager. We will need the same on the new machine.
Note that I will expect PHP performance to be the same or better than what we have now. You can do rough benchmarking by logging into the current site with an admin account (which I will provide) and viewing the timer information at the bottom of the page.
The site currently depends on PHP's APCU. [login to view URL]
The site uses MariaDB. You will install the latest available version.
Ideally you will architect things so that the database can be scaled up as the site's needs grow. You may need to set it up as its own instance; we can talk about that.
I'm currently hosting my own email server on the site, but this is painful because every time I need to upgrade the server I need to start over on email. You will provide a new solution that is more stable and permanent. Note that I currently have 4 users (the site's moderators) that will need their email addresses migrated to the new solution.
I currently subscribe to a SSL certificate through godaddy, and all site urls are currently behind HTTPS. The new architecture must do the same. I don't mind paying for a new certificate through Amazon if necessary.
The site depends on a number of cron tasks running periodically. You must make sure that they are set up to run in the new environment.
One of the cron tasks is a nightly database backup, but the data is not moved off the server--it just sits in a directory under the project. You will find some better solution to keep the data safe.
I tend to use Freelancers for small tasks from time to time, and a pain point is getting them set up for development. I use a virtual machine locally myself, but it's often difficult to build the VM for them. A major requirement for all this is that you will demonstrate that you can export a VagrantFile from AWS that makes it easy for a developer to get set up with a version of the site on his own computer, complete with data and images. I would also rather not have to give them root passwords, like I have been doing.
The site currently uses subdomains for a few things, namely images. You must be prepared to support the same in the new environment.
You will demonstrate that you can easily create a temporary staging instance as a subdomain (for example, if the main site is [login to view URL], then the staging server is [login to view URL]). This can be a temporary instance, but the idea is that you simplify things such that it can be brought up with a single command or button press.
I like all animals, but the one I like most is the squirrel.
My current system is to clone the code repo onto the server, and go "git pull" every now and then to update. This will suffice for the new system as well, but I would be interested in hearing about smoother deployment systems (such as push hooks that automate some of the process).