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

Improved trunk-based development #5726

Closed
1 of 2 tasks
altinnadmin opened this issue Feb 21, 2021 · 4 comments
Closed
1 of 2 tasks

Improved trunk-based development #5726

altinnadmin opened this issue Feb 21, 2021 · 4 comments
Labels
Epic Used by zenhub to identify the epics that group issues. kind/analysis Used when an issue needs to be analysed before it becomes a user story. ops/ci-cd Continous integration, continous deploy and automatic testing. quality/engineering Technical or architectural improvements. For example refactoring or upgrading. quality/testing Tests that are missing, needs to be created or could be improved.

Comments

@altinnadmin
Copy link
Member

altinnadmin commented Feb 21, 2021

Description

Currently we're doing feature-branches, testing locally and then merging them into master before testing in a test environment, and then deploying to production once a week.

This causes problems:

  1. If we suddenly need to hotfix to production, we can risk that also untested code in master is deployed.
  2. If two or more PRs are merged to master at the same time, we have several changes in master that are not tested, in worst case influencing each other.
  3. Hotfixes are something "special" and "extraordinary", instead of just being the normal flow of continous changes.
  4. The once-a-week deploys are "special", an event, instead of all changes just flowing continously, also to prod.

In scope

Improving our continous DevOps-flow so that we always can deploy from trunk with no fear.

Out of scope

What's out of scope for this analysis?

Analysis

There seems to be 3 ways we can go:

  1. Test feature-branches in separate containers running in parallell with existing containers in existing environments.
  2. Test feature-branches in its own environment that can be spinned up automatically.
  3. Make it possible to deploy a feature-branch to production, containing only the code changes for the hotfix.

The first way seems like the way we want to go. This approach can also be used when testing apps deployed from Altinn Studio.

The second way can difficult to achieve, especially as long as we have Altinn 2 as a dependency and seperate clusters for Apps and Platform. Spinning up new clusters will also take time.

The third is easier, but seems like a temporary solution, only fixing the first problem listed. So dropped.

Solutions worth investigating:

Conclusion

Deploying branches as separate containers in parallell seems like the way forward.

Tasks

  • Is this issue labeled with a correct area label?
  • QA has been done
@altinnadmin altinnadmin added kind/analysis Used when an issue needs to be analysed before it becomes a user story. ops/ci-cd Continous integration, continous deploy and automatic testing. quality/engineering Technical or architectural improvements. For example refactoring or upgrading. quality/testing Tests that are missing, needs to be created or could be improved. labels Feb 21, 2021
@lvbachmann lvbachmann added this to the 2021 - W13/14 milestone Mar 15, 2021
@lvbachmann
Copy link
Contributor

To be discussed in tech forum

@lvbachmann lvbachmann added the Epic Used by zenhub to identify the epics that group issues. label Apr 26, 2021
@lvbachmann
Copy link
Contributor

Goal for sprint: Identify and prioritise concrete measures as issues.

@lvbachmann
Copy link
Contributor

To be reiterated in tech forum

@lvbachmann lvbachmann modified the milestones: 2021 - w32/33, 2021-Q3 Aug 26, 2021
@lvbachmann lvbachmann added the QEB label Aug 27, 2021
@lvbachmann lvbachmann modified the milestones: 2021-Q3, For consideration Nov 25, 2021
@FinnurO FinnurO removed this from the For consideration milestone Sep 6, 2022
@nkylstad
Copy link
Member

I'm closing this issue now, since nothing new has come up here for a long while.
For Studio, this is something we work on continuously, and we will create issues when we see that we need them. We are running our e2e-tests in local containers that are spun up for each PR. Hotfixes are done as needed, and we have a production branch for just this need. We have bi-weekly deploys and are working towards continuous deploy.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Epic Used by zenhub to identify the epics that group issues. kind/analysis Used when an issue needs to be analysed before it becomes a user story. ops/ci-cd Continous integration, continous deploy and automatic testing. quality/engineering Technical or architectural improvements. For example refactoring or upgrading. quality/testing Tests that are missing, needs to be created or could be improved.
Projects
Status: Done
Development

No branches or pull requests

5 participants