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

Merge 'main' back into 'dev' so the branches are in sync #262

Merged
merged 30 commits into from
Oct 11, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
7e88926
Merge pull request #182 from Green-Software-Foundation/dev
dubrie Nov 10, 2022
db1946b
Merge pull request #183 from Green-Software-Foundation/dev
dubrie Nov 10, 2022
4fc508e
Update metadata
osamajandali Nov 10, 2022
e52e755
Merge pull request #190 from Green-Software-Foundation/dev
dubrie Nov 13, 2022
246b407
Remove Tammy from AI category page
holanita Nov 29, 2022
91756cb
Separate GA from main website
osamajandali Dec 5, 2022
bc6a725
Add Cameron
holanita Jan 10, 2023
376f973
Rearranging SMEs
holanita Jan 16, 2023
bb9000a
Add Aoife
holanita Jan 16, 2023
458b7ae
Remove inactive smes
holanita Jan 16, 2023
00dc824
Update link to tags
holanita Jan 24, 2023
f3462fa
Pattern from the catalog of #108
Feb 8, 2023
b415845
Tiny wording update
Feb 13, 2023
cf90eb2
Included SME Review
Mar 27, 2023
1e7d982
Grammar
Mar 28, 2023
3743853
DCO Remediation Commit for Markus Seidl <[email protected]>
Mar 28, 2023
aff4f0b
DCO Remediation Commit for Markus Seidl <[email protected]>
Mar 28, 2023
bd16650
Fix typo in scale-kubernetes-workloads-based-on-events.md
apupier Jun 1, 2023
0b1f3be
Fix grammatical error in guide/index.md
jhowlett-scottlogic Jul 20, 2023
d4f7bb2
Update meeting-template.md
russelltrow Aug 25, 2023
f493f59
Update meeting-template.md
russelltrow Sep 25, 2023
73f1e3b
Merge pull request #243 from jhowlett-scottlogic/patch-1
russelltrow Sep 25, 2023
1cf60c7
Merge pull request #236 from apupier/patch-1
russelltrow Sep 25, 2023
73bb27d
Merge pull request #218 from markus-gsf-seidl/feature/use-circuit-bre…
russelltrow Sep 25, 2023
0d370a8
Update docusaurus.config.js
russelltrow Sep 25, 2023
79611b9
Update use-circuit-breaker.md
russelltrow Sep 28, 2023
6b97fbc
Merge branch 'dev' into main
russelltrow Sep 28, 2023
a7a6fb9
Update meeting-template.md
russelltrow Oct 5, 2023
abf154b
Merge pull request #261 from Green-Software-Foundation/russelltrow-pa…
russelltrow Oct 6, 2023
02be74f
Merge pull request #256 from Green-Software-Foundation/russelltrow-pa…
russelltrow Oct 6, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
65 changes: 36 additions & 29 deletions .github/ISSUE_TEMPLATE/meeting-template.md
Original file line number Diff line number Diff line change
@@ -1,50 +1,57 @@
---
name: Meeting Template
about: To track patterns project meeting agenda, minutes and attendance
title: YYYY MM DD - Green Software Patterns Agenda
labels: Meeting
title: YYYY-MM-DD - Green Software Principles & Patterns Agenda
labels: agenda
assignees: ''

---

## Date
YYYY-MM-DD - 3pm UTC - See the time in your timezone https://everytimezone.com/s/a8399b00
YYYY-MM-DD - 14:30 UTC - See the time in your timezone https://everytimezone.com/s/b6822e5f

## Meeting notices
## Roll Call
Please *add a comment* to this issue during the meeting to denote attendance.
Any untracked attendees will be added by the GSF team below:
- Full Name, Affiliation, (optional) GitHub username

### Antitrust Policy
Linux Foundation meetings involve participation by industry competitors, and it is the intention of the Linux Foundation to conduct all of its activities in accordance with applicable antitrust and competition laws. It is therefore extremely important that attendees adhere to meeting agendas, and be aware of, and not participate in, any activities that are prohibited under applicable US state, federal or foreign antitrust and competition laws.
### Previous Meeting

Examples of types of actions that are prohibited at Linux Foundation meetings and in connection with Linux Foundation activities are described in the Linux Foundation Antitrust Policy available at http://www.linuxfoundation.org/antitrust-policy. If you have questions about these matters, please contact your company counsel, or if you are a member of the Linux Foundation, feel free to contact Andrew Updegrove of the firm of Gesmer Updegrove LLP, which provides legal counsel to the Linux Foundation.
Notes from the previous meeting: ...

### Recordings
GSF project meetings may be recorded for use solely by the GSF team for administration purposes. In very limited instances, and with explicit approval, recordings may be made more widely available.
## Agenda
- [ ] Convene & Roll Call
- [ ] OKR & KPI updates
- [ ] Review the agenda and suggest new agenda points
- [ ] Issues
- [ ] Pull Requests
- [ ] Discussions
- [ ] AOB, Q&A & Adjourn

### Roll Call
Please *add a comment* to this issue during the meeting to denote attendance.
## OKR & KPI updates

Any untracked attendees will be added by the GSF team below:
- Full Name, Affiliation, (optional) GitHub username
## Issues

## Agenda
- [ ] Convene & Roll Call (5mins)
- [ ] Review Meeting Notices (see above)
- [ ] Approve Past Meeting Minutes
- [ ] Review Pull Requests
- [ ] Review Pull Request XXXX
- [ ] Discuss Issues
- [ ] Discuss Issue XXXXX
- [ ] Agenda item 1
- [ ] Agenda item 2
- [ ] ...
- [ ] AOB, Q&A & Adjourn (5mins)
### Principles

### Patterns

## Pull Requests

### Principles

### Patterns

## Discussions

### Principles

### Patterns

## Another Other Business

## Decisions Made
- [ ] Decision 1
- [ ] Decision 2
- [ ] ...

## Action Items
- [ ] Action 1
- [ ] Action 2
- [ ] ...
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ To use the patterns, head to https://patterns.greensoftware.foundation and searc
* **Submitted By**: The name of the person(s) submitting the pattern
* **Published Date**: The date this version of the pattern is published. This will be provided by the patterns working group upon approval
* **Tag Category**: Select the most appropriate category from: Artificial Intelligence, Cloud, or Web which might apply to this pattern
* **Tags**: A [pre-defined list of additional tags](/docs/tags.md) which might apply to the pattern (e.g. Machine Learning, Gaming, Mobile)
* **Tags**: A [pre-defined list of additional tags](https://patterns.greensoftware.foundation/tags/) which might apply to the pattern (e.g. Machine Learning, Gaming, Mobile).
* **Description**: A full description of what problem this pattern is solving
* **Solution**: How will this patter solve the problem
* **SCI Impact**: How will this pattern affect an SCI score of an application and why
Expand Down
1 change: 0 additions & 1 deletion docs/catalog/ai/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,5 +11,4 @@ import Image from "@theme/IdealImage";

<TeamMembers>
<TeamMember github="navveenb">Navveen Balani</TeamMember>
<TeamMember github="tmcclell">Tammy McClellan</TeamMember>
</TeamMembers>
13 changes: 5 additions & 8 deletions docs/catalog/cloud/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,14 +10,11 @@ import Image from "@theme/IdealImage";
## Subject Matter Experts

<TeamMembers>
<TeamMember github="greenhsu123">Sarah Hsu</TeamMember>
<TeamMember github="yelghali">Yassine El Ghali</TeamMember>
<TeamMember github="tmcclell">Tammy McClellan</TeamMember>
<TeamMember github="aoifefitton">Aoife Fitton</TeamMember>
<TeamMember github="dubrie">Bill Johnson</TeamMember>
<TeamMember github="danielvaughn">Daniel Vaughn</TeamMember>
<TeamMember github="alex-kroll">Alexander Kroll</TeamMember>
<TeamMember github="marcoshidalgonunes">Marcos Hidalgo Nunes</TeamMember>
<TeamMember github="srini1978">Srinivasan Rakhunathan</TeamMember>
<TeamMember github="bderusha">Bill DeRusha</TeamMember>
<TeamMember github="camcash17">Cameron Casher</TeamMember>
<TeamMember github="navveenb">Navveen Balani</TeamMember>
<TeamMember github="greenhsu123">Sarah Hsu</TeamMember>
<TeamMember github="tmcclell">Tammy McClellan</TeamMember>
<TeamMember github="yelghali">Yassine El Ghali</TeamMember>
</TeamMembers>
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ tags:
- size:medium
---

# Scale Kubernetes workloads based on relevent demand metrics
# Scale Kubernetes workloads based on relevant demand metrics

## Description
By default, Kubernetes scales workloads based on CPU and RAM utilization. In practice, however, it's difficult to correlate your application's demand drivers with CPU and RAM utilization.
Expand Down
45 changes: 45 additions & 0 deletions docs/catalog/cloud/use-circuit-breaker.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
---
version: 1.0
submitted_by: markus-ntt-seidl
published_date: 2023-09-28
category: cloud
description: Modern applications need to communicate with other applications on a regular basis. Since these other applications have their own deployment schedule, downtimes and availability, the network connection to these application might have problems. If the other application is not reachable, all network requests against this other application will fail and future network requests are futile.
tags:
- compute
- size:medium
---

# Use circuit breaker patterns

## Description

Modern applications need to communicate with other applications on a regular basis. Since these other applications have their own deployment schedule, downtimes and availability, the network connection to these application might have problems.
If the other application is not reachable, all network requests against this other application will fail and future network requests are futile.

## Solution

Circuit breaker patterns reject the request to the other application if health checks against the other application have failed to complete successfully. In this case a lot of network requests, and energy, can be saved.
The circuit breaker will reset itself automatically, if health checks against the other application are successful again.

## SCI Impact

`SCI = (E * I) + M per R`
[Software Carbon Intensity Spec](https://grnsft.org/sci)

The circuit breaker pattern reduces the following aspect:

- `E`: Reduces the energy consumed, as requests are not executed if the other system is known to be not available

## Assumptions

- Assumes that the communication target can be checked for availability

## Considerations

- Consider implementing an back-off strategy to automatically re-enable the requests if the resource becomes available again
- Consider handling different errors of the called application differently. For example exceptions that indicate that the called application will not be available for a longer time should be handled differently than exceptions that indicate only a short time in-availability.

## References

- [Azure Well-Architected Framework Sustainability Pillar](https://learn.microsoft.com/en-us/azure/architecture/framework/sustainability/sustainability-application-design)
- [Azure Circuit Breaker Pattern Description](https://learn.microsoft.com/en-us/azure/architecture/patterns/circuit-breaker)
2 changes: 1 addition & 1 deletion docs/guide/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -106,7 +106,7 @@ TODO

## How granular should my pattern be?

We prefer smaller atomic patterns larger patterns. A helpful way to approach a pattern is defining a specific `Action` to take on a specific `Resource`. For example, `Write efficient code` would be rejected as too generic since there is no specific action to take on a specific resource. Whereas `Cache Static Data` provides a specific action of Caching to a specific resource of Static Data.
We prefer smaller atomic patterns to larger patterns. A helpful way to approach a pattern is defining a specific `Action` to take on a specific `Resource`. For example, `Write efficient code` would be rejected as too generic since there is no specific action to take on a specific resource. Whereas `Cache Static Data` provides a specific action of Caching to a specific resource of Static Data.

### Least number of solutions per pattern

Expand Down
1 change: 1 addition & 0 deletions docs/index.mdx
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
---
sidebar_position: 1
description: "An online open-source database of green software patterns reviewed and curated by the Green Software Foundation"
---

import TeamMember, { TeamMembers } from "@site/src/components/TeamMember";
Expand Down
54 changes: 52 additions & 2 deletions docusaurus.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -35,14 +35,14 @@ const config = {
routeBasePath: "/",
// Change this to your repo.
editUrl:
"https://github.com/Green-Software-Foundation/green-software-patterns/",
"https://github.com/Green-Software-Foundation/patterns/edit/main/",
},
blog: false,
theme: {
customCss: require.resolve("./src/css/custom.css"),
},
gtag: {
trackingID: "G-593HJXNS18",
trackingID: "G-G3P4S2WSTC",
},
sitemap: {
changefreq: "weekly",
Expand Down Expand Up @@ -133,6 +133,56 @@ const config = {
disableSwitch: true,
defaultMode: "light",
},
metadata: [{
name: "twitter:card",
content: "summary",
},
{
name: "twitter:site",
content: "@gsfcommunity",
},
{
name: "twitter:title",
content: "Green Software Practitioner",
},
{
name: "twitter:description",
content: "An online open-source database of green software patterns reviewed and curated by the Green Software Foundation",
},
{
name: "twitter:image",
content: "https://learn.greensoftware.foundation/img/og-image.png",
},
{
name: "twitter:creator",
content: "@gsfcommunity",
},
{
name: "og:title",
content: "Green Software Practitioner",
},
{
name: "og:description",
content: "An online open-source database of green software patterns reviewed and curated by the Green Software Foundation",
},
{
name: "og:image",
content: "https://learn.greensoftware.foundation/img/og-image.png",
},
{
name: "og:url",
content: "https://learn.greensoftware.foundation/",
},
{
name: "og:site_name",
content: "Green Software Practitioner",
},
{
name: "og:type",
content: "website",
},

]
}),

plugins: [
Expand Down
Binary file added static/img/og-image.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading