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

Add draft for service-vs-library pattern. #90

Merged

Conversation

MaineC
Copy link
Member

@MaineC MaineC commented Feb 21, 2018

As requested in #89 this is a first draft of the service-vs-library pattern that I observed in DevOps teams.

Feedback, suggestions etc. welcome.

support. This poses a challenge when working across team boundaries: Escalation
chains may not be the same for errors happening in either team. Coupling
source code and deployment leaves the teams with the question of who is
responsible for on-call support in the event of errros. As a result teams are
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

typo: errros -> errors

@rrrutledge
Copy link
Contributor

This writeup is good, Isabel.

Decouple configuration and deployment pipelines from actual business logic.
Establish a second deployment of the service for the second team.

Treat the common base as a library that is used by both teams with shared code
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The Patlet talks about deploying the same service in independent environments yet the solution talks about factoring out shared service code into a library, which becomes the focus of collaboration (not the service). I feel like these two sections of the document are incongruent with each other. Are the teams collaborating on the source code for a library or a service?

@MaineC
Copy link
Member Author

MaineC commented Feb 23, 2018

@NewMexicoKid Thanks for pointing out the typo.

@rrrutledge You're right - these two are incongruent. I've changed the Patlet to be better in line with the proposed solution. Deploying the same service twice with zero modification would presume that deployments are standardised across teams. While this may be true in some cases, more likely than not independent teams will have different deployment environments. Thank you for pointing out that flaw.

`erros` => `errors`
"interdependent" => "common".  I think that "common" is a better word here since the idea is to have a single code base, rather than "interdependent" which signifies multiple code basis that are mutually dependent one on another.
Copy link
Contributor

@rrrutledge rrrutledge left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Seems pretty clear to me. Just one comment.

Also, I accidentally made a commit (cbb2bb2) directly to this branch that I meant to make as a pull request suggestion to the branch. If you don't like it then feel free to revert.

chains may not be the same for errors happening in either team. Coupling
source code and deployment leaves the teams with the question of who is
responsible for on-call support in the event of errors. As a result teams are
reluctant to join forces even if there is significant overlap in requirements.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Another way of getting around this problem is 30-day warranty. Could be good to mention that somewhere in this document.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks.

@MaineC
Copy link
Member Author

MaineC commented Feb 26, 2018

@rrrutledge I didn't even know that committing to a branch suggested as PR would be possible for the maintainers of the original repository. Learnt something new there. Also, thanks for the corrections you included in your commits.

Copy link
Contributor

@rrrutledge rrrutledge left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good to me.

@MaineC
Copy link
Member Author

MaineC commented Feb 27, 2018

@rrrutledge thanks for the approval. What does the remaining process for this pull request look like?

Copy link
Collaborator

@NewMexicoKid NewMexicoKid left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this is solid enough to move into the accepted patterns in the main branch. We can pursue a second review at need if people reading the pattern open a PR with suggested changes.

@NewMexicoKid NewMexicoKid merged commit f13d02f into InnerSourceCommons:master Feb 28, 2018
@lenucksi lenucksi added the 📖 Type - Content Work Working on contents is the main focus of this issue / PR label Sep 28, 2020
@MaineC MaineC deleted the service-library-pattern branch November 8, 2021 08:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
📖 Type - Content Work Working on contents is the main focus of this issue / PR
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants