Skip to content

Instantly share code, notes, and snippets.

@dambrogia
Last active June 23, 2022 03:59
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save dambrogia/e4bdda3d01c405aac7b76634a295612c to your computer and use it in GitHub Desktop.
Save dambrogia/e4bdda3d01c405aac7b76634a295612c to your computer and use it in GitHub Desktop.
PSA Infrastructure Assessment

Palmetto State Armory Infrastructure Assessment

Our goal here is to get a general idea of your work. We're looking for well documented and easy to read code that is very straight forward to deploy and/or replicate. There is no hard requirement for how this task needs to be done. We use ansible + aws in our production environment, but there are many tools to do the job.

Ideally you would spend an hour or two to get this done, our goal isn't to take up your time but just to see a glimpse of your work. If you can reasonably cut a corner to save some time, just explain the corner that you cut and how would you do it better if you had more time.

The requirements should be as clear as possible so our expectations are the same. If you have questions, comments or concerns, please let us know.


Use any of the following tools to deliver a working set of instructions to create a load balancer, two web nodes and a database:

  • cloudformation
  • ansible
  • terraform
  • bash/python scripting

There are two layers to contribute to. You should receive instruction on which requirements to complete.

  • servers / infrastructure
  • configuration of the services on the infrastructure

The server / infrastructure requirements are:

  • public subnet with 1 host (load load balancer)
  • private subnet with 3 hosts (web server 1, web server 2, database)

The configuration requirements are:

  • Include 4 existing hosts (mocking completion of the previous step, no priv/pub subnet requirements)
  • Load balancer recieves traffic. No requirement on load balancing pattern.
  • Two web servers that use either apache or nginx. The default "it works" page is acceptable.
  • Any recent MariaDB or MySQL database that is accessible from the web nodes.

The following (minimal) tests to assert the requirements are acceptable. If you would like to improve them, please explain:

  • Load Balancer gives a 200 response.
  • Tailing the access logs from both web servers show a decently balanced load.
  • Tunnel into either web server and query from mysql.

In either scenario please, deliver your code in a git repository (github, bitbucket, gitlab, etc.) and provide context on how your code should be run as if you were contributing to an open source repository. Your instructions should make it mindless to run your code and take out any guess work.

Below is an overview of what we anticipate the layout will look like:

(since updating the requirements into two parts, the public / private subnets mentioned do not show in the diagram)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment