Closed Bug 1468815 Opened 4 years ago Closed 4 years ago

squash docker images into a single highlander image

Categories

(Socorro :: General, task, P2)

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: willkg, Assigned: willkg)

Details

Attachments

(3 files)

When I built the Docker stuff for the local development environment and the new infrastructure, we had several things that differed between the services such that it made a lot of sense to build an image for each service and keep everything separate.

Most of those reasons are no longer applicable and the remaining few are so paltry and meager that it's high time we merge it all into one image.

This bug covers nixing the myriad of images and changing everything to use a single image.
I'm going to make this a P2 because it'd speed up "make dockerbuild" and I do that all the time and I like my time and other peoples' time and that time is worth something and of all the things I could spend time on to save time I think this is a low-hanging fruit and who doesn't like that?
Priority: -- → P2
Summary: squash the images → squash docker images insto a single highlander image
I talked to Miles about how the changes here affect the deploy pipeline and it'd be a lot easier if we made these changes such that the deploy pipeline could remain the same, then we can change the pipeline in our leisure.

Towards that, we're going to do this in three steps:

1. Hoist all the stuff into a "socorro" image which runs a script that takes an argument for which service to run. Continue to build service images (crontabber, webapp, processor) based on this image that run their specific services. We'll continue to deploy these.

2. Tell Miles and Brian. They'll update the deploy pipeline to use the "socorro" image.

3. Change our code to not build those three service images anymore.


Grabbing this to do the first step.
Assignee: nobody → willkg
Status: NEW → ASSIGNED
I spent some time on this. I like how it's shaping up. It makes some things easier to think about. Further, it's given me some time to clean up some stuff which will reduce CI time and some other things a little.

I don't think we can do this in 3 separate steps without a bunch of extra work. It's easier to do it in one where we land the Socorro changes first which will totally break the ops infra. Then we land changes to the ops infra to match the Socorro changes. I'll coordinate with Miles and Brian before doing anything so we're all on the same page.

Further, I want to wait to land anything until after the interns are done so I don't waste their time with them updating their dev environments.
Summary: squash docker images insto a single highlander image → squash docker images into a single highlander image
Commits pushed to master at https://github.com/mozilla-services/socorro

https://github.com/mozilla-services/socorro/commit/5530a46509b8a6950bf5c2bf49faec736ffc14ca
fix bug 1468815: switch to a single docker image

Socorro has several separate services. Up to this point, each service had
its own Docker image that had to be built. This changes that and now all
services run with the same docker image, just with different entry point
commands.

This results in less time spent building images, uploading images,
and downloading images which should result in less time in CI and less
time during deploys.

This results in less comlexity--I have to go do something, which image
should I be doing it in?

Additionally, this fixes the Makefile PHONY-business and tweaks some
other things to clean them up.

https://github.com/mozilla-services/socorro/commit/3130c975466fff0762ca63cf63ab8fad97ce5adc
Merge pull request #4601 from willkg/1468815-highlander

fix bug 1468815, 1466974: switch to a single docker image
Status: ASSIGNED → RESOLVED
Closed: 4 years ago
Resolution: --- → FIXED
Everything seems fine except for two things:

1. When we do a deploy, we run the migrations. Whatever is running that needs to be updated to run using the shell "service".

2. When we do a deploy, we upload the new telemetry schema. Whatever is running that needs to be updated to run using the shell "service".


Reopening this to fix those. I'll probably get to them tomorrow.
Status: RESOLVED → REOPENED
Resolution: FIXED → ---
Everything looks good as far as I can tell. Stage is deploying fine, crashes are getting processed, crontabber is working, webapp is working. I think we're good here.

Marking as FIXED.
Status: REOPENED → RESOLVED
Closed: 4 years ago4 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.