Current project - Learning to scale in the Cloud:
Project idea and tasks by Carter Hass - Solutions by Kerdog
Lab 1: Single LAMP (server or stack buildout)
- Build a single LAMP server on the distro of your choice (you can use the LAMP deployment, I’m not worried about installing services, but setting up the overall environment)
bonus: setup ssh keys for password-less login
- Install a wordpress website and call it what ever domain you like (might be best to use a live domain or subdomain so we can publicly test without host files)
- Install a second website but have this set up as magento, what ever domain you like (might be best to use a live domain or subdomain so we can publicly test without host files)
- Install a third website but have this set up as drupal, what ever domain you like (might be best to use a live domain or subdomain so we can publicly test without host files)
- Set up a 4th vhost for the “default” and redirect this to a static page so if you hit the IP directly
- Confirm all 3 sites work, and the log in to the dashboards work. Don’t need to worry about making any theme or plugin changes unless you want to.
Lab 2: Single Web and Single DB servers
- Build a second server to act as a DB stand alone
- Migrate the DB from the LAMP server to the new DB server
- Change the grant statements from localhost to 10.% without looking up the passwords and database info from the config file (use only mysql-cli)
- Update the code to reflect the new host for the DB (this is where I would migrate to using /etc/hosts and use host names and not IP in the code)
- Test all 3 sites and confirm it is working still
- Make sure the services are shut down on each server (including fire wall rules closed up) on each server. Example, disable mysql on the web server and disable apache on the DB server
- Update phpMyAdmin to point from the web server to the DB server
- Add load balancer and update DNS to point to the load balancer
Lab 3: Multiple web and multiple DB server
- Build additional slave node for both web and DB server
- Set up replication between both servers as needed (web and db replication)
- Install Lsync and Varnish at this time
- Replace all internal communication from the 10.x network to a “cloud network” at this time.
- Configured Memcache on the DB for sessions
- Set up replication monitoring alerts for both lsync and mysql replication
- Disable holland on the master and only backup the slave (assure the alerts are updated as well)
- Test and add nodes to the load balancer
Lab 4: In-depth look into varnish
- Varnish will be tricky, but we will create out own VCL file that will have domain specific if statements that route connections based on domain. Since there are multiple CMSs on this environment, one VCL file will not work for all websites.. This is something we will explore in depth when the time comes
Lab 5: Scale out for large events
- Once the slave node is where we want, image this server
- Build 3 additional web server so you have a total of 5 web servers (1 master and 4 slaves). If done correctly, the only items you need to update are the lsync config on the master and the load balancer.
- Test the nodes all work
Lab 6: Event is over, scale it back down
- Remove the additional nodes from the environment and scale it back down to the 2 web nodes
- Test changes
Lab 7: Further downsize the environment to a single node
- Migrate the database back to the LAMP master web, update /etc/hosts to point back to localhost for items like DB connection hostname
- Test to make sure environment is working and shut down any and all other servers
Major projects I've worked on:
- System Analysis and implimentation of EDI for a transportation
- Developed an inventory/loss control system using barcoding and
- Wireless survey, design and install; multiple building complex
for complete coverage
What have I been studying lately?
- Working on my Bash scripting knowledge
- Always working on MySQL
- Completed two certifications, the LPIC-1 and Linux+.
- Getting ready to take the RHCSA test.
- Fedora and Red Hat
- Solar project designs...more on that later.