Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

build(other): test deployment locally #1272

Merged
merged 1 commit into from
Jul 1, 2024

Conversation

roschaefer
Copy link
Contributor

@roschaefer roschaefer commented Jun 27, 2024

Context

There was a similar PR #1263 attempting to do the same with docker. I was running into isolation issues with docker (setting hostname not allowed in the container and some system folders are read-only) and learned that for this use case, an actual hypervisor would be better and vagrant is a conventional tool to set up these virtual machines.

Motivation

On the weekend we had a downtime on production because nginx configurations got out of sync with the code in newer releases.

To prevent this and further downtimes I suggest to check in our deployment configuration and make it reproducible.

This PR is an attempt to create a virtual machine that behaves as similar as possible to production and can be used as a sandbox for changes to our deployment configuration.

How to test

  1. Install Vagrant on your machine

  2. cd deployment/local-testing

  3. vagrant up .. and wait

  4. Following services are running:

  5. Be amazed

In the future we might want to use Ansible for provisioning. We could run our playbooks against this virtual machine, too.

@roschaefer roschaefer force-pushed the reproducable-deployment-with-vagrant branch from a21eab7 to cfda16b Compare June 27, 2024 15:36
@roschaefer roschaefer changed the title build(deployment): test deployment locally build(other): test deployment locally Jun 27, 2024
@roschaefer roschaefer requested a review from Elweyn June 27, 2024 15:41
@roschaefer roschaefer force-pushed the reproducable-deployment-with-vagrant branch from cfda16b to 3f91cc8 Compare June 27, 2024 15:48
@roschaefer roschaefer force-pushed the reproducable-deployment-with-vagrant branch 3 times, most recently from eb62856 to 4883860 Compare June 27, 2024 21:11
@roschaefer roschaefer force-pushed the reproducable-deployment-with-vagrant branch from 4883860 to 385e4cb Compare June 30, 2024 21:35
@roschaefer roschaefer force-pushed the reproducable-deployment-with-vagrant branch from 385e4cb to f07d575 Compare July 1, 2024 19:33
Context
-------
There was a similar PR #1263 attempting to do the same with docker. I was running into isolation issues with docker (setting hostname not allowed in the container and some system folders are read-only) and learned that for this use case, an actual hypervisor would be better and vagrant is a conventional tool to set up these virtual machines.

Motivation
----------
On the weekend we had a downtime on production because `nginx` configurations got out of sync with the code in newer releases.

To prevent this and further downtimes I suggest to check in our deployment configuration and make it *reproducible*.

This PR is an attempt to create a virtual machine that behaves as similar as possible to production and can be used as a sandbox for changes to our deployment configuration.

How to test
-----------
1. Install [Vagrant](https://www.vagrantup.com/) on your machine

1. `cd deployment/local-testing`

1. `vagrant up` .. and wait

1. Following services are running:
   - <http://localhost:8000/>
   - <http://localhost:8000/api>
   - <http://localhost:8000/docs>
   - <http://localhost:8080/>
   - <http://localhost:8082/>

1. Be amazed

In the future we might want to use [Ansible](https://www.ansible.com/) for provisioning. We could run our playbooks against this virtual machine, too.
@roschaefer roschaefer force-pushed the reproducable-deployment-with-vagrant branch from f07d575 to 57c0102 Compare July 1, 2024 19:49
@roschaefer roschaefer merged commit e90affd into master Jul 1, 2024
116 checks passed
@mahula mahula deleted the reproducable-deployment-with-vagrant branch July 25, 2024 07:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: ✅ Done
Development

Successfully merging this pull request may close these issues.

2 participants