How to efficiently release a monolith that 150+ developers from different offices commit to

I work as an engineer at Miro on the release process improvement team.

Over the past year, we have established an overseas development office, the engineering team has doubled, and six months ago, the company temporarily switched to remote work. In parallel with this, there was a constant multiple increase in the number of users of our product.

Against the background of these changes, it was important for us not to lose in quality and speed, so we seriously updated the server release process. I'll tell you about the changes that ultimately increased the share of successful releases.

Server releases

backend β€” Java-, . backend AWS (CPU 4 , RAM 16 ). backend- – , - , Miro. Board- ( ). - API- API-.

(graceful deploy) . 60.000 - 50 board-.

, , . , , - , , , (time to market).

, .

β€” , , .

:

  1. - e2e . . . e2e- - , , -.

  2. . , . , .

  3. , Allure Enterprise Edition, false-positive Resolved.

:

  1. 100% , .

  2. .

  3. 4 .

  4. Approved Broken . Approve , Broken .

  5. API- board- . , 20%, .

  6. , .

.

, . . β€” .

Canary release process

, . , , .

, . Sentry Grafana, . Bamboo: Approved Broken.

Bamboo , .

, . , : , .

, Feature Toggle, , .

Hot Fix

, , . , .

, . (Trunk-Based Development, GitFlow ..) GitLab Flow.

Hot Fix GitLab Flow:

  1. .

  2. .

  3. git cherry-pick .

  4. .

  5. .

, .

. .

changelog : . . changelog changelog, , .

Grafana , . Grafana Prometheus.

Jira Bamboo Looker, .

Data on errors, the number of created and closed tasks.
, .

, , . , , .

,

  1. 95%.

  2. changelog . , .

  3. .

  4. GitLab Flow hotfix , . .

  5. Looker .

β€” , . :

  1. . , , .

  2. . board- , API- β€” . .

  3. . hotfix, GitLab Flow . , . "Branch merging enabled", , .

  4. . 6 - .

  5. , , , .

  6. . .

, , .




All Articles