From 5e008b2ff3120f270d36bf954a57625723a46097 Mon Sep 17 00:00:00 2001 From: Yassine EL GHALI Date: Fri, 28 Oct 2022 03:36:14 +0200 Subject: [PATCH 01/41] Create evaluate-using-a-service-mesh.md --- .../cloud/evaluate-using-a-service-mesh.md | 40 +++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 docs/catalog/cloud/evaluate-using-a-service-mesh.md diff --git a/docs/catalog/cloud/evaluate-using-a-service-mesh.md b/docs/catalog/cloud/evaluate-using-a-service-mesh.md new file mode 100644 index 00000000..199dc105 --- /dev/null +++ b/docs/catalog/cloud/evaluate-using-a-service-mesh.md @@ -0,0 +1,40 @@ +--- +version: 1.0 +submitted_by: yelghali +published_date: tbd +category: cloud +tags: +- security +- network +- kubernetes +- role:cloud-engineer +- size:medium +--- + +# Evaluate using a service mesh + +## Description +A service mesh deploys additional containers for communication, typically in a sidecar pattern, to provide more operational capabilities leading to an increase in CPU usage and network traffic. + +Nevertheless, it allows you to decouple your application from these capabilities as it moves them out from the application layer, and down to the infrastructure layer. + +## Solution +Carefully consider the increase in CPU usage and network traffic generated by service mesh communication components before making the decision to use one. + + +## SCI Impact +`SCI = (E * I) + M per R` +[Software Carbon Intensity Spec](https://grnsft.org/sci) + +Regarding the SCI equation, not using a service mesh will impact: + +- `E`: By reducing CPU utilization and network traffic, we reduce the amount of energy required. +- `M`: reducing CPU utilization and network data reduces the amount of resources required, which decreases the embodied carbon emissions. + +## Assumptions +The application does not have compliance requirements for using a service mesh. + +## Considerations +Should you use a service mesh ? The answer depends on your requirements. +Typically you would use a service mesh where there is a corporate policy that traffic on the network must be encrypted for all applications. +Other scenarios might include traffic splitting for A/B testing. From 845c97efdb89bea1301fb741ef9ad8cebfef7f68 Mon Sep 17 00:00:00 2001 From: Yassine EL GHALI Date: Fri, 28 Oct 2022 04:19:39 +0200 Subject: [PATCH 02/41] Create containerize-your-workload-where-applicable.md --- ...ainerize-your-workload-where-applicable.md | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 docs/catalog/cloud/containerize-your-workload-where-applicable.md diff --git a/docs/catalog/cloud/containerize-your-workload-where-applicable.md b/docs/catalog/cloud/containerize-your-workload-where-applicable.md new file mode 100644 index 00000000..57508e21 --- /dev/null +++ b/docs/catalog/cloud/containerize-your-workload-where-applicable.md @@ -0,0 +1,36 @@ +--- +version: 1.0 +submitted_by: yelghali +published_date: tbd +category: cloud +tags: +- compute +- kubernetes +- role:cloud-engineer +- size:medium +--- + +# Containerize your workload where applicable + +## Description +Containers may reduce unnecessary resource allocation and increase utilization of the compute resources, as they allow for bin packing and require less compute resources than virtual machines. + +## Solution +Use [Draft](https://github.com/Azure/draft) to simplify application containerization by generating Dockerfiles and Kubernetes manifests. + +## SCI Impact +`SCI = (E * I) + M per R` +[Software Carbon Intensity Spec](https://grnsft.org/sci) + +Regarding the SCI equation, containerizing workloads will impact: + +- `E`: By reducing CPU and RAM utilization, we reduce the amount of energy required. +- `M`: Reducing compute resources decreases the embodied carbon emissions. + +## Assumptions +The application supports containerization. + +## Considerations +Using containers may not be enough to reduce carbon impact of a large monolith application. + +Consider modernizing your applications into micro-services architectures, that allow independent sizing and scaling of their logical components. From 270966109ee70c68f63aa3e58168c78f3efb30ea Mon Sep 17 00:00:00 2001 From: Yassine EL GHALI Date: Sat, 29 Oct 2022 02:25:57 +0200 Subject: [PATCH 03/41] Create Design for independent scaling of logical components.md --- ...dependent scaling of logical components.md | 39 +++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 docs/catalog/cloud/Design for independent scaling of logical components.md diff --git a/docs/catalog/cloud/Design for independent scaling of logical components.md b/docs/catalog/cloud/Design for independent scaling of logical components.md new file mode 100644 index 00000000..dba4ebbc --- /dev/null +++ b/docs/catalog/cloud/Design for independent scaling of logical components.md @@ -0,0 +1,39 @@ +--- +version: 1.0 +submitted_by: yelghali +published_date: tbd +category: cloud +tags: +- compute +- kubernetes +- role:software-engineer +- role:cloud-engineer +- size:medium +--- + +# Design for independent scaling of logical components + +## Description +A microservice architecture may reduce the compute resources required, as it allows for independent scaling of its logical components and ensures they are scaled according to the demand. + +## Solution + +Use [Dapr](dapr.io) Framework or other cloud native projects to help you separate your application functionality into different microservices, to allow independent scaling of its logical components. + +## SCI Impact +`SCI = (E * I) + M per R` +[Software Carbon Intensity Spec](https://grnsft.org/sci) + +Regarding the SCI equation, designing for independent scaling of logical components will impact: + +- `E`: By optimizing the most consuming application components, we reduce the amount of energy consumed by the application globally. +- `M`: By scaling the components based on demand and maximizing resource utilization, we reduce the total embodied carbon emissions. + +## Assumptions + +The application logical components are deployed on platforms with auto-scaling capabilities, such as Kubernetes. + +## Considerations +Microservice frameworks use additional components or resources in order to provide additional functionnalities (messaging, secure traffic, tracing, etc.). This may result in a increase in carbon emissions. + +In practice, use only the frameworks capabilities that are necessary. From 75809d8e44d835a81aa25c66887370b4e929ed97 Mon Sep 17 00:00:00 2001 From: Yassine EL GHALI Date: Sat, 29 Oct 2022 02:34:35 +0200 Subject: [PATCH 04/41] Update Design for independent scaling of logical components.md --- .../Design for independent scaling of logical components.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/catalog/cloud/Design for independent scaling of logical components.md b/docs/catalog/cloud/Design for independent scaling of logical components.md index dba4ebbc..0194dc2d 100644 --- a/docs/catalog/cloud/Design for independent scaling of logical components.md +++ b/docs/catalog/cloud/Design for independent scaling of logical components.md @@ -18,7 +18,7 @@ A microservice architecture may reduce the compute resources required, as it all ## Solution -Use [Dapr](dapr.io) Framework or other cloud native projects to help you separate your application functionality into different microservices, to allow independent scaling of its logical components. +Use [Dapr](https://dapr.io) Framework or other cloud native projects to help you separate your application functionality into different microservices, to allow independent scaling of its logical components. ## SCI Impact `SCI = (E * I) + M per R` From 8522481d648e033a1a050e0ad70e8b952c7095a7 Mon Sep 17 00:00:00 2001 From: Yassine EL GHALI Date: Sat, 29 Oct 2022 03:56:07 +0200 Subject: [PATCH 05/41] Create Use energy efficient hardware.md --- .../cloud/Use energy efficient hardware.md | 42 +++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 docs/catalog/cloud/Use energy efficient hardware.md diff --git a/docs/catalog/cloud/Use energy efficient hardware.md b/docs/catalog/cloud/Use energy efficient hardware.md new file mode 100644 index 00000000..5576dbe9 --- /dev/null +++ b/docs/catalog/cloud/Use energy efficient hardware.md @@ -0,0 +1,42 @@ +--- +version: 1.0 +submitted_by: yelghali +published_date: tbd +category: cloud +tags: +- compute +- kubernetes +- role:software-engineer +- role:cloud-engineer +- size:medium +--- + +# Use energy efficient hardware + +## Description + +Cloud virtual machines are offered with different capabilties, based different hardware processors. + +Hence using virtual machines based on efficient processors would impact hardware efficiency and reduce carbon emissions. + + +## Solution + +Use new cloud virtual machines that have been engineered with "cloud native processors" to efficiently run scale-out, cloud-native workloads and consume energy efficiently. + + +## SCI Impact +`SCI = (E * I) + M per R` +[Software Carbon Intensity Spec](https://grnsft.org/sci) + +Regarding the SCI equation, using energy efficient hardware will impact: + +- `M`: By using energy efficient hardware, we reduce the total embodied carbon emissions. + +## Assumptions + +The cloud provider offers VM Skus hosted based efficient hardware. + +## Considerations + +Energy efficient VMs tend to be cost effective as well, you should however consider also SKU availability in the region you choose for deployment. From 71f28cea77ac1eda5e876567ba3f582a4cb9db07 Mon Sep 17 00:00:00 2001 From: Yassine EL GHALI Date: Sat, 29 Oct 2022 04:10:17 +0200 Subject: [PATCH 06/41] Update Design for independent scaling of logical components.md --- .../Design for independent scaling of logical components.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/catalog/cloud/Design for independent scaling of logical components.md b/docs/catalog/cloud/Design for independent scaling of logical components.md index 0194dc2d..2c5237c6 100644 --- a/docs/catalog/cloud/Design for independent scaling of logical components.md +++ b/docs/catalog/cloud/Design for independent scaling of logical components.md @@ -34,6 +34,6 @@ Regarding the SCI equation, designing for independent scaling of logical compone The application logical components are deployed on platforms with auto-scaling capabilities, such as Kubernetes. ## Considerations -Microservice frameworks use additional components or resources in order to provide additional functionnalities (messaging, secure traffic, tracing, etc.). This may result in a increase in carbon emissions. +Microservice frameworks use additional components or resources in order to provide additional capabilities (messaging, secure traffic, tracing, etc.). This may result in a increase in carbon emissions. In practice, use only the frameworks capabilities that are necessary. From e4983b2dc07f13d21198200a58df3896f8ed0207 Mon Sep 17 00:00:00 2001 From: Yassine EL GHALI Date: Sat, 29 Oct 2022 04:44:49 +0200 Subject: [PATCH 07/41] Update Use energy efficient hardware.md --- docs/catalog/cloud/Use energy efficient hardware.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/catalog/cloud/Use energy efficient hardware.md b/docs/catalog/cloud/Use energy efficient hardware.md index 5576dbe9..ddadc5b3 100644 --- a/docs/catalog/cloud/Use energy efficient hardware.md +++ b/docs/catalog/cloud/Use energy efficient hardware.md @@ -35,7 +35,7 @@ Regarding the SCI equation, using energy efficient hardware will impact: ## Assumptions -The cloud provider offers VM Skus hosted based efficient hardware. +The cloud provider offers VM Skus based on efficient hardware. ## Considerations From 7dfd1dfd6513b29364813e042cfeee7c688425d1 Mon Sep 17 00:00:00 2001 From: Yassine EL GHALI Date: Mon, 31 Oct 2022 15:25:39 +0100 Subject: [PATCH 08/41] Update evaluate-using-a-service-mesh.md --- docs/catalog/cloud/evaluate-using-a-service-mesh.md | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/docs/catalog/cloud/evaluate-using-a-service-mesh.md b/docs/catalog/cloud/evaluate-using-a-service-mesh.md index 199dc105..b6bfefa8 100644 --- a/docs/catalog/cloud/evaluate-using-a-service-mesh.md +++ b/docs/catalog/cloud/evaluate-using-a-service-mesh.md @@ -4,6 +4,7 @@ submitted_by: yelghali published_date: tbd category: cloud tags: +- cloud - security - network - kubernetes @@ -11,7 +12,7 @@ tags: - size:medium --- -# Evaluate using a service mesh +# Use a service mesh only if needed ## Description A service mesh deploys additional containers for communication, typically in a sidecar pattern, to provide more operational capabilities leading to an increase in CPU usage and network traffic. @@ -19,7 +20,8 @@ A service mesh deploys additional containers for communication, typically in a s Nevertheless, it allows you to decouple your application from these capabilities as it moves them out from the application layer, and down to the infrastructure layer. ## Solution -Carefully consider the increase in CPU usage and network traffic generated by service mesh communication components before making the decision to use one. +- Use a service mesh if your application lacks features that can be added by one, such as distributed tracing or traffic encryption. +- A service mesh can typically be enabled only for some resources, which allows you to use it for required applications only, and not the entire platform. ## SCI Impact @@ -28,8 +30,8 @@ Carefully consider the increase in CPU usage and network traffic generated by se Regarding the SCI equation, not using a service mesh will impact: -- `E`: By reducing CPU utilization and network traffic, we reduce the amount of energy required. -- `M`: reducing CPU utilization and network data reduces the amount of resources required, which decreases the embodied carbon emissions. +- `E`: By reducing CPU usage and network traffic, we reduce the amount of energy required. +- `M`: reducing CPU usage and network data reduces the amount of resources required, which decreases the embodied carbon emissions. ## Assumptions The application does not have compliance requirements for using a service mesh. @@ -37,4 +39,4 @@ The application does not have compliance requirements for using a service mesh. ## Considerations Should you use a service mesh ? The answer depends on your requirements. Typically you would use a service mesh where there is a corporate policy that traffic on the network must be encrypted for all applications. -Other scenarios might include traffic splitting for A/B testing. +Other scenarios might include distributed tracing and traffic splitting for A/B testing. From 6a04aace90cc85e7bcd50de2d6bddfb4393a63f8 Mon Sep 17 00:00:00 2001 From: Yassine EL GHALI Date: Mon, 31 Oct 2022 15:35:08 +0100 Subject: [PATCH 09/41] Update containerize-your-workload-where-applicable.md --- .../cloud/containerize-your-workload-where-applicable.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/docs/catalog/cloud/containerize-your-workload-where-applicable.md b/docs/catalog/cloud/containerize-your-workload-where-applicable.md index 57508e21..1b6e02e8 100644 --- a/docs/catalog/cloud/containerize-your-workload-where-applicable.md +++ b/docs/catalog/cloud/containerize-your-workload-where-applicable.md @@ -4,19 +4,20 @@ submitted_by: yelghali published_date: tbd category: cloud tags: +- cloud - compute - kubernetes - role:cloud-engineer - size:medium --- -# Containerize your workload where applicable +# Containerize your workloads ## Description Containers may reduce unnecessary resource allocation and increase utilization of the compute resources, as they allow for bin packing and require less compute resources than virtual machines. ## Solution -Use [Draft](https://github.com/Azure/draft) to simplify application containerization by generating Dockerfiles and Kubernetes manifests. +Use [Draft](https://github.com/Azure/draft) tool to simplify application containerization by generating Dockerfiles and Kubernetes manifests. ## SCI Impact `SCI = (E * I) + M per R` @@ -24,7 +25,7 @@ Use [Draft](https://github.com/Azure/draft) to simplify application containeriza Regarding the SCI equation, containerizing workloads will impact: -- `E`: By reducing CPU and RAM utilization, we reduce the amount of energy required. +- `E`: By reducing CPU and RAM usage, we reduce the amount of energy required. - `M`: Reducing compute resources decreases the embodied carbon emissions. ## Assumptions From 1f665d9ceeae04baefa2539521f7b1546bd947b5 Mon Sep 17 00:00:00 2001 From: Yassine EL GHALI Date: Mon, 31 Oct 2022 16:20:59 +0100 Subject: [PATCH 10/41] Update Design for independent scaling of logical components.md --- ...for independent scaling of logical components.md | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/docs/catalog/cloud/Design for independent scaling of logical components.md b/docs/catalog/cloud/Design for independent scaling of logical components.md index 2c5237c6..126d1d4d 100644 --- a/docs/catalog/cloud/Design for independent scaling of logical components.md +++ b/docs/catalog/cloud/Design for independent scaling of logical components.md @@ -5,29 +5,30 @@ published_date: tbd category: cloud tags: - compute +- cloud - kubernetes - role:software-engineer - role:cloud-engineer - size:medium --- -# Design for independent scaling of logical components +# Scale logical components independently ## Description -A microservice architecture may reduce the compute resources required, as it allows for independent scaling of its logical components and ensures they are scaled according to the demand. +A microservice architecture may reduce the compute resources required, as it allows each independent component to be scaled according to its own demand. ## Solution -Use [Dapr](https://dapr.io) Framework or other cloud native projects to help you separate your application functionality into different microservices, to allow independent scaling of its logical components. +Use cloud native projects like [Dapr](https://dapr.io) Framework to help you separate your application functionality into different microservices, to allow independent scaling of its logical components. ## SCI Impact `SCI = (E * I) + M per R` [Software Carbon Intensity Spec](https://grnsft.org/sci) -Regarding the SCI equation, designing for independent scaling of logical components will impact: +Regarding the SCI equation, scaling logical components independently will impact: -- `E`: By optimizing the most consuming application components, we reduce the amount of energy consumed by the application globally. -- `M`: By scaling the components based on demand and maximizing resource utilization, we reduce the total embodied carbon emissions. +- `E`: By optimizing the scaling of the most consuming application components, we reduce the amount of energy consumed by the application globally. +- `M`: By scaling each component independently, we can right size its resources to maximize their utilization, thereby reducing the application total embodied carbon emissions. ## Assumptions From a620cddcc6610c68c7e8d3d7735470bd5d80036d Mon Sep 17 00:00:00 2001 From: Yassine EL GHALI Date: Mon, 31 Oct 2022 16:28:32 +0100 Subject: [PATCH 11/41] Update Use energy efficient hardware.md --- docs/catalog/cloud/Use energy efficient hardware.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/docs/catalog/cloud/Use energy efficient hardware.md b/docs/catalog/cloud/Use energy efficient hardware.md index ddadc5b3..84186530 100644 --- a/docs/catalog/cloud/Use energy efficient hardware.md +++ b/docs/catalog/cloud/Use energy efficient hardware.md @@ -4,6 +4,7 @@ submitted_by: yelghali published_date: tbd category: cloud tags: +- cloud - compute - kubernetes - role:software-engineer @@ -11,7 +12,7 @@ tags: - size:medium --- -# Use energy efficient hardware +# Use cloud native processors VMs ## Description @@ -22,7 +23,7 @@ Hence using virtual machines based on efficient processors would impact hardware ## Solution -Use new cloud virtual machines that have been engineered with "cloud native processors" to efficiently run scale-out, cloud-native workloads and consume energy efficiently. +Use new cloud virtual machines that have been engineered with [cloud native processors](https://www.forbes.com/sites/davealtavilla/2022/10/13/amperes-efficient-128-core-cloud-native-processor-builds-momentum-in-sustainable-data-centers/) to efficiently run scale-out, cloud-native workloads and consume energy efficiently. ## SCI Impact @@ -31,7 +32,7 @@ Use new cloud virtual machines that have been engineered with "cloud native proc Regarding the SCI equation, using energy efficient hardware will impact: -- `M`: By using energy efficient hardware, we reduce the total embodied carbon emissions. +- `E`: By using energy efficient hardware, we reduce the total embodied carbon emissions. ## Assumptions From 35f10e72a1748421fd6d863bf68075dd7e286182 Mon Sep 17 00:00:00 2001 From: Yassine EL GHALI Date: Mon, 31 Oct 2022 17:26:12 +0100 Subject: [PATCH 12/41] Update containerize-your-workload-where-applicable.md --- .../cloud/containerize-your-workload-where-applicable.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/docs/catalog/cloud/containerize-your-workload-where-applicable.md b/docs/catalog/cloud/containerize-your-workload-where-applicable.md index 1b6e02e8..65a55cbb 100644 --- a/docs/catalog/cloud/containerize-your-workload-where-applicable.md +++ b/docs/catalog/cloud/containerize-your-workload-where-applicable.md @@ -35,3 +35,6 @@ The application supports containerization. Using containers may not be enough to reduce carbon impact of a large monolith application. Consider modernizing your applications into micro-services architectures, that allow independent sizing and scaling of their logical components. + +## References +Microsoft Azure Well Architected Framework [sustainability patterns](https://learn.microsoft.com/en-us/azure/architecture/framework/sustainability/sustainability-application-platform) From bb6da69efbb6c73dca320dd6c2bef76c2b5b3cdf Mon Sep 17 00:00:00 2001 From: Yassine EL GHALI Date: Tue, 1 Nov 2022 01:37:26 +0100 Subject: [PATCH 13/41] Update containerize-your-workload-where-applicable.md --- .../cloud/containerize-your-workload-where-applicable.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/catalog/cloud/containerize-your-workload-where-applicable.md b/docs/catalog/cloud/containerize-your-workload-where-applicable.md index 65a55cbb..439d3c61 100644 --- a/docs/catalog/cloud/containerize-your-workload-where-applicable.md +++ b/docs/catalog/cloud/containerize-your-workload-where-applicable.md @@ -17,7 +17,9 @@ tags: Containers may reduce unnecessary resource allocation and increase utilization of the compute resources, as they allow for bin packing and require less compute resources than virtual machines. ## Solution -Use [Draft](https://github.com/Azure/draft) tool to simplify application containerization by generating Dockerfiles and Kubernetes manifests. +Containerize your applications with their minimal dependencies. + +You can use [Draft](https://github.com/Azure/draft) tool to simplify application containerization by generating Dockerfiles and Kubernetes manifests. ## SCI Impact `SCI = (E * I) + M per R` From 2a2be0eaa4a0a4c006e75715c23b74e8ddaa635b Mon Sep 17 00:00:00 2001 From: franziska-nttdata-hesselfeld <116342219+franziska-nttdata-hesselfeld@users.noreply.github.com> Date: Fri, 11 Nov 2022 15:45:41 +0100 Subject: [PATCH 14/41] Create use-alternative-data-compression-tools-to-gzip.md --- ...ernative-data-compression-tools-to-gzip.md | 41 +++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 docs/catalog/web/use-alternative-data-compression-tools-to-gzip.md diff --git a/docs/catalog/web/use-alternative-data-compression-tools-to-gzip.md b/docs/catalog/web/use-alternative-data-compression-tools-to-gzip.md new file mode 100644 index 00000000..bdc4a628 --- /dev/null +++ b/docs/catalog/web/use-alternative-data-compression-tools-to-gzip.md @@ -0,0 +1,41 @@ +--- +version: 1.0 +submitted_by: franziska-nttdata-hesselfeld +published_date: TBD +category: web +tags: + - compute + - web + - role:web-developer + - size:medium +--- + +# Use alternative data compression tools to gzip + +## Description + +Compressing and decompressing files creates overheads in time and energy usage. It takes time/energy to compress the file, send it and uncompress it. Replacing gzip with ZSTD offers a reduction in compression size and compression timing. See numerical compression results in referenced blog post. + +## Solution + +Replacing gzip with ZSTD for example offers a reduction in compression size and compression timing. See numerical compression results in referenced blog post. + +## SCI Impact + +`SCI = (E * I) + M per R` +[Software Carbon Intensity Spec](https://grnsft.org/sci) + +Concerning the SCI equation, using alternative data compression tools to gzip will impact one part: + +- `E`: Quicker compression/decompression times and quicker transmission over a network (due to smaller file size) will result in less E consumed by the software. + +## Assumptions + + +## Considerations + + +## References + +- [Blogpost](https://lemire.me/blog/2021/06/30/compressing-json-gzip-vs-zstd/) +- [Similar Issue](vitejs/vite#5295) From 7cf7a75cb0f62362cde41fb618331131e8b965cd Mon Sep 17 00:00:00 2001 From: Franziska Warncke <116342219+franziska-warncke@users.noreply.github.com> Date: Fri, 6 Oct 2023 12:52:37 +0200 Subject: [PATCH 15/41] Update use-alternative-data-compression-tools-to-gzip.md --- ...ernative-data-compression-tools-to-gzip.md | 20 +++++++++---------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/docs/catalog/web/use-alternative-data-compression-tools-to-gzip.md b/docs/catalog/web/use-alternative-data-compression-tools-to-gzip.md index bdc4a628..ab52f795 100644 --- a/docs/catalog/web/use-alternative-data-compression-tools-to-gzip.md +++ b/docs/catalog/web/use-alternative-data-compression-tools-to-gzip.md @@ -1,39 +1,37 @@ --- version: 1.0 -submitted_by: franziska-nttdata-hesselfeld +submitted_by: franziska-warncke published_date: TBD -category: web +category: cloud tags: - - compute - - web - - role:web-developer + - cloud - size:medium --- -# Use alternative data compression tools to gzip +# Compress stored data ## Description -Compressing and decompressing files creates overheads in time and energy usage. It takes time/energy to compress the file, send it and uncompress it. Replacing gzip with ZSTD offers a reduction in compression size and compression timing. See numerical compression results in referenced blog post. +Storing much uncompressed data can result in unnecessary bandwidth waste and increase the storage capacity requirements. ## Solution -Replacing gzip with ZSTD for example offers a reduction in compression size and compression timing. See numerical compression results in referenced blog post. +Use the right compression tool for the use case to reduce the storage requirements, including both capacity and required bandwidth to write or retrieve data. ## SCI Impact `SCI = (E * I) + M per R` [Software Carbon Intensity Spec](https://grnsft.org/sci) -Concerning the SCI equation, using alternative data compression tools to gzip will impact one part: +Concerning the SCI equation, using compression when storing data impact one part: -- `E`: Quicker compression/decompression times and quicker transmission over a network (due to smaller file size) will result in less E consumed by the software. +- `E`: Decrease the amount of storage and therefor less E for the storage. However, we should be aware that there may be a slight increase in energy consumed due to compressing and de-compressing data. ## Assumptions ## Considerations - +- Consider the tradeoff of compression: Does the benefit of compression outweigh the increased carbon cost in the resources (CPU, RAM) needed to perform the compression/decompression? ## References From e690f41e80e2aee176ea80c927e8713fa045ad1a Mon Sep 17 00:00:00 2001 From: Franziska Warncke <116342219+franziska-warncke@users.noreply.github.com> Date: Fri, 6 Oct 2023 13:00:59 +0200 Subject: [PATCH 16/41] Rename use-alternative-data-compression-tools-to-gzip.md to compress-stored-data.md Signed-off-by: Franziska Warncke --- ...-data-compression-tools-to-gzip.md => compress-stored-data.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename docs/catalog/web/{use-alternative-data-compression-tools-to-gzip.md => compress-stored-data.md} (100%) diff --git a/docs/catalog/web/use-alternative-data-compression-tools-to-gzip.md b/docs/catalog/web/compress-stored-data.md similarity index 100% rename from docs/catalog/web/use-alternative-data-compression-tools-to-gzip.md rename to docs/catalog/web/compress-stored-data.md From f5c7f5596253edcecc190a344d6c4af6451a8654 Mon Sep 17 00:00:00 2001 From: Franziska Warncke <116342219+franziska-warncke@users.noreply.github.com> Date: Fri, 6 Oct 2023 16:29:01 +0200 Subject: [PATCH 17/41] DCO Remediation Commit for Franziska Warncke <116342219+franziska-warncke@users.noreply.github.com> I, Franziska Warncke <116342219+franziska-warncke@users.noreply.github.com>, hereby add my Signed-off-by to this commit: 7cf7a75cb0f62362cde41fb618331131e8b965cd I, Franziska Warncke <116342219+franziska-warncke@users.noreply.github.com>, hereby add my Signed-off-by to this commit: e690f41e80e2aee176ea80c927e8713fa045ad1a Signed-off-by: Franziska Warncke <116342219+franziska-warncke@users.noreply.github.com> From a4c9eb4bd844036a9802d0fbece3f43ee0be2341 Mon Sep 17 00:00:00 2001 From: franziska-nttdata-hesselfeld <116342219+franziska-nttdata-hesselfeld@users.noreply.github.com> Date: Fri, 6 Oct 2023 16:33:55 +0200 Subject: [PATCH 18/41] DCO Remediation Commit for franziska-nttdata-hesselfeld <116342219+franziska-nttdata-hesselfeld@users.noreply.github.com> I, franziska-nttdata-hesselfeld <116342219+franziska-nttdata-hesselfeld@users.noreply.github.com>, hereby add my Signed-off-by to this commit: 2a2be0eaa4a0a4c006e75715c23b74e8ddaa635b Signed-off-by: franziska-nttdata-hesselfeld <116342219+franziska-nttdata-hesselfeld@users.noreply.github.com> From 04854c3dfd1c66165977c8aae2b3a3e21534dd6e Mon Sep 17 00:00:00 2001 From: Franziska Warncke Date: Fri, 6 Oct 2023 16:42:43 +0200 Subject: [PATCH 19/41] Small adaptions - Move file to the right folder - Add resource link to the references Signed-off-by: Franziska Warncke --- docs/catalog/{web => cloud}/compress-stored-data.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) rename docs/catalog/{web => cloud}/compress-stored-data.md (86%) diff --git a/docs/catalog/web/compress-stored-data.md b/docs/catalog/cloud/compress-stored-data.md similarity index 86% rename from docs/catalog/web/compress-stored-data.md rename to docs/catalog/cloud/compress-stored-data.md index ab52f795..6d350542 100644 --- a/docs/catalog/web/compress-stored-data.md +++ b/docs/catalog/cloud/compress-stored-data.md @@ -34,6 +34,4 @@ Concerning the SCI equation, using compression when storing data impact one part - Consider the tradeoff of compression: Does the benefit of compression outweigh the increased carbon cost in the resources (CPU, RAM) needed to perform the compression/decompression? ## References - -- [Blogpost](https://lemire.me/blog/2021/06/30/compressing-json-gzip-vs-zstd/) -- [Similar Issue](vitejs/vite#5295) +- [Microsoft Azure Well-Architected Framework](https://learn.microsoft.com/en-us/azure/well-architected/sustainability/sustainability-storage#enable-storage-compression) From c0a7de4aaf83c2357aaad3ece61ba477940804ef Mon Sep 17 00:00:00 2001 From: Franziska Warncke <116342219+franziska-warncke@users.noreply.github.com> Date: Fri, 13 Oct 2023 16:58:47 +0200 Subject: [PATCH 20/41] Add assumptions after review Signed-off-by: Franziska Warncke --- docs/catalog/cloud/compress-stored-data.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/docs/catalog/cloud/compress-stored-data.md b/docs/catalog/cloud/compress-stored-data.md index 6d350542..af0168b2 100644 --- a/docs/catalog/cloud/compress-stored-data.md +++ b/docs/catalog/cloud/compress-stored-data.md @@ -28,8 +28,9 @@ Concerning the SCI equation, using compression when storing data impact one part - `E`: Decrease the amount of storage and therefor less E for the storage. However, we should be aware that there may be a slight increase in energy consumed due to compressing and de-compressing data. ## Assumptions - - +- You have the ability to choose, wehter you use compression or not. If you store much, much data you are forced to use compression to keep storage costs reasonable. +- If you are storage space constrainted you are forced to use a high compression (even when there is high CPU required) and also the other way around. + ## Considerations - Consider the tradeoff of compression: Does the benefit of compression outweigh the increased carbon cost in the resources (CPU, RAM) needed to perform the compression/decompression? From a87d39f745e8c11567fd4e7dc4141c0ba210bec0 Mon Sep 17 00:00:00 2001 From: Franziska Warncke <116342219+franziska-warncke@users.noreply.github.com> Date: Wed, 8 Nov 2023 08:26:18 +0100 Subject: [PATCH 21/41] Adapt after review Signed-off-by: Franziska Warncke --- docs/catalog/cloud/compress-stored-data.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/catalog/cloud/compress-stored-data.md b/docs/catalog/cloud/compress-stored-data.md index af0168b2..774d9e66 100644 --- a/docs/catalog/cloud/compress-stored-data.md +++ b/docs/catalog/cloud/compress-stored-data.md @@ -23,9 +23,10 @@ Use the right compression tool for the use case to reduce the storage requiremen `SCI = (E * I) + M per R` [Software Carbon Intensity Spec](https://grnsft.org/sci) -Concerning the SCI equation, using compression when storing data impact one part: +Concerning the SCI equation, using compression when storing data impact two parts: - `E`: Decrease the amount of storage and therefor less E for the storage. However, we should be aware that there may be a slight increase in energy consumed due to compressing and de-compressing data. +- `M`: Decrease the amount of storage and therefor less M ## Assumptions - You have the ability to choose, wehter you use compression or not. If you store much, much data you are forced to use compression to keep storage costs reasonable. From 09a2bdc3a2f10bfb4b36e1535b20b107c97cadea Mon Sep 17 00:00:00 2001 From: Franziska Warncke <116342219+franziska-warncke@users.noreply.github.com> Date: Fri, 10 Nov 2023 10:04:01 +0100 Subject: [PATCH 22/41] Update Use energy efficient hardware.md Signed-off-by: Franziska Warncke --- docs/catalog/cloud/Use energy efficient hardware.md | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/docs/catalog/cloud/Use energy efficient hardware.md b/docs/catalog/cloud/Use energy efficient hardware.md index 84186530..0b548b5d 100644 --- a/docs/catalog/cloud/Use energy efficient hardware.md +++ b/docs/catalog/cloud/Use energy efficient hardware.md @@ -16,7 +16,7 @@ tags: ## Description -Cloud virtual machines are offered with different capabilties, based different hardware processors. +Cloud virtual machines are offered with different capabilities based on different hardware processors. Hence using virtual machines based on efficient processors would impact hardware efficiency and reduce carbon emissions. @@ -33,11 +33,16 @@ Use new cloud virtual machines that have been engineered with [cloud native proc Regarding the SCI equation, using energy efficient hardware will impact: - `E`: By using energy efficient hardware, we reduce the total embodied carbon emissions. +- `M`: By using energy efficient hardware, we reduce also the embodied emissions. ## Assumptions -The cloud provider offers VM Skus based on efficient hardware. +The cloud provider offers VM SKUs based on efficient hardware. + ## Considerations Energy efficient VMs tend to be cost effective as well, you should however consider also SKU availability in the region you choose for deployment. +Azure: https://azure.microsoft.com/en-us/blog/azure-virtual-machines-with-ampere-altra-arm-based-processors-generally-available/ +Google: https://cloud.google.com/blog/products/compute/tau-t2a-is-first-compute-engine-vm-on-an-arm-chip + From e0fabe59b394068a4b102909d590264ff6375679 Mon Sep 17 00:00:00 2001 From: Franziska Warncke <116342219+franziska-warncke@users.noreply.github.com> Date: Fri, 10 Nov 2023 10:12:41 +0100 Subject: [PATCH 23/41] Update Design for independent scaling of logical components.md Signed-off-by: Franziska Warncke --- .../Design for independent scaling of logical components.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/catalog/cloud/Design for independent scaling of logical components.md b/docs/catalog/cloud/Design for independent scaling of logical components.md index 126d1d4d..05148bdd 100644 --- a/docs/catalog/cloud/Design for independent scaling of logical components.md +++ b/docs/catalog/cloud/Design for independent scaling of logical components.md @@ -19,7 +19,7 @@ A microservice architecture may reduce the compute resources required, as it all ## Solution -Use cloud native projects like [Dapr](https://dapr.io) Framework to help you separate your application functionality into different microservices, to allow independent scaling of its logical components. +Use cloud native projects help you separate your application functionality into different microservices, to allow independent scaling of its logical components. ## SCI Impact `SCI = (E * I) + M per R` From 446581f749c281f702a992c3e556c76818a973bc Mon Sep 17 00:00:00 2001 From: Franziska Warncke <116342219+franziska-warncke@users.noreply.github.com> Date: Fri, 10 Nov 2023 13:18:40 +0100 Subject: [PATCH 24/41] Update containerize-your-workload-where-applicable.md Signed-off-by: Franziska Warncke --- .../cloud/containerize-your-workload-where-applicable.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/docs/catalog/cloud/containerize-your-workload-where-applicable.md b/docs/catalog/cloud/containerize-your-workload-where-applicable.md index 439d3c61..b845fa22 100644 --- a/docs/catalog/cloud/containerize-your-workload-where-applicable.md +++ b/docs/catalog/cloud/containerize-your-workload-where-applicable.md @@ -17,9 +17,7 @@ tags: Containers may reduce unnecessary resource allocation and increase utilization of the compute resources, as they allow for bin packing and require less compute resources than virtual machines. ## Solution -Containerize your applications with their minimal dependencies. - -You can use [Draft](https://github.com/Azure/draft) tool to simplify application containerization by generating Dockerfiles and Kubernetes manifests. +Containerize your applications with their minimal dependencies. You can use tools for generating Dockerfiles and Kubernetes manifests. ## SCI Impact `SCI = (E * I) + M per R` From 265ed0b15ff087ada7e50acad36d2949ec7297cc Mon Sep 17 00:00:00 2001 From: Franziska Warncke <116342219+franziska-warncke@users.noreply.github.com> Date: Fri, 10 Nov 2023 13:32:06 +0100 Subject: [PATCH 25/41] Update evaluate-using-a-service-mesh.md Signed-off-by: Franziska Warncke --- docs/catalog/cloud/evaluate-using-a-service-mesh.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/docs/catalog/cloud/evaluate-using-a-service-mesh.md b/docs/catalog/cloud/evaluate-using-a-service-mesh.md index b6bfefa8..f750030f 100644 --- a/docs/catalog/cloud/evaluate-using-a-service-mesh.md +++ b/docs/catalog/cloud/evaluate-using-a-service-mesh.md @@ -37,6 +37,4 @@ Regarding the SCI equation, not using a service mesh will impact: The application does not have compliance requirements for using a service mesh. ## Considerations -Should you use a service mesh ? The answer depends on your requirements. -Typically you would use a service mesh where there is a corporate policy that traffic on the network must be encrypted for all applications. -Other scenarios might include distributed tracing and traffic splitting for A/B testing. +Consider alternative methods outside of an service mesh to fulfill application requirements, for example custom DNS servers or configuration that is injected into the application From 834b620161d29fda630f07be74e91938b231764a Mon Sep 17 00:00:00 2001 From: Markus Seidl <103509715+markus-gsf-seidl@users.noreply.github.com> Date: Wed, 6 Dec 2023 06:21:29 +0100 Subject: [PATCH 26/41] Azure WAF Use DDoS Protection Azure WAF Use DDoS Protection Signed-off-by: Markus Seidl <103509715+markus-gsf-seidl@users.noreply.github.com> --- docs/catalog/cloud/use-ddos-protection.md | 43 +++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 docs/catalog/cloud/use-ddos-protection.md diff --git a/docs/catalog/cloud/use-ddos-protection.md b/docs/catalog/cloud/use-ddos-protection.md new file mode 100644 index 00000000..b84bc6d2 --- /dev/null +++ b/docs/catalog/cloud/use-ddos-protection.md @@ -0,0 +1,43 @@ +--- +version: 1.0 +submitted_by: markus-ntt-seidl +published_date: TBD +category: cloud +description: [PATTERN_DESCRIPTION_METADATA] +tags: + - cloud + - size:small +--- + +# Use DDoS protection + +## Description + +Distributed Denial of Service (DDoS) is used to increase the load of server in a way, that they are unable to respond to any legitimate requests. This is mostly done to harm the owner of the service or hardware. +Due to the nature of attack, a lot of environmental resources are used up by nonsensical requests. + +## Solution + +All cloud providers provide some form of DDoS protection (AWS Shield, Azure DDoS Protection, GCP DDoS Protection, CloudFlare, ...) that can prevent those attacks. + +## SCI Impact + +`SCI = (E * I) + M per R` +[Software Carbon Intensity Spec](https://grnsft.org/sci) + +This pattern affects the SCI as follows: + +- `R`: The amount of requests will be reduced, due to not fulfilling DDoS requests + +## Assumptions + +- Assumes that the budget of the project can afford the costs for the DDoS protection service + +## Considerations + +- Consider purchasing the advanced protection tiers of the cloud providers to be fully protected against similar DDoS attack patterns + +## References + +- [Azure Well-Architected Framework Sustainability Pillar](https://learn.microsoft.com/en-us/azure/architecture/framework/sustainability/sustainability-application-design) + From 9698581c01f597eb5b9b54bd524f85e72ed0dd1a Mon Sep 17 00:00:00 2001 From: Franziska Warncke <116342219+franziska-warncke@users.noreply.github.com> Date: Wed, 6 Dec 2023 14:17:41 +0100 Subject: [PATCH 27/41] Update Design for independent scaling of logical components.md Signed-off-by: Franziska Warncke --- ...esign for independent scaling of logical components.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/catalog/cloud/Design for independent scaling of logical components.md b/docs/catalog/cloud/Design for independent scaling of logical components.md index 05148bdd..7d0e7ef1 100644 --- a/docs/catalog/cloud/Design for independent scaling of logical components.md +++ b/docs/catalog/cloud/Design for independent scaling of logical components.md @@ -32,9 +32,9 @@ Regarding the SCI equation, scaling logical components independently will impact ## Assumptions -The application logical components are deployed on platforms with auto-scaling capabilities, such as Kubernetes. +- The application logical components are deployed on platforms with auto-scaling capabilities, such as Kubernetes. ## Considerations -Microservice frameworks use additional components or resources in order to provide additional capabilities (messaging, secure traffic, tracing, etc.). This may result in a increase in carbon emissions. - -In practice, use only the frameworks capabilities that are necessary. +- Microservice frameworks use additional components or resources in order to provide additional capabilities (messaging, secure traffic, tracing, etc.). This may result in a increase in carbon emissions. In practice, use only the frameworks capabilities that are necessary. +- Do not make microservices too small as communication incours overhead which has a carbon impact. +- Consider alternatives to http/s for communication, like GPRC and others. From 523abeed56c55afa351eeed6fdcefb97033360b4 Mon Sep 17 00:00:00 2001 From: Franziska Warncke <116342219+franziska-warncke@users.noreply.github.com> Date: Wed, 6 Dec 2023 14:36:49 +0100 Subject: [PATCH 28/41] Update containerize-your-workload-where-applicable.md Signed-off-by: Franziska Warncke --- .../containerize-your-workload-where-applicable.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/catalog/cloud/containerize-your-workload-where-applicable.md b/docs/catalog/cloud/containerize-your-workload-where-applicable.md index b845fa22..2f5141b6 100644 --- a/docs/catalog/cloud/containerize-your-workload-where-applicable.md +++ b/docs/catalog/cloud/containerize-your-workload-where-applicable.md @@ -14,7 +14,7 @@ tags: # Containerize your workloads ## Description -Containers may reduce unnecessary resource allocation and increase utilization of the compute resources, as they allow for bin packing and require less compute resources than virtual machines. +Containers allow resources to be used more flexible as workloads can be easily moved between machines. It may reduce unnecessary resource allocation and increase utilization of the compute resources, as they allow for bin packing and require less compute resources than virtual machines. ## Solution Containerize your applications with their minimal dependencies. You can use tools for generating Dockerfiles and Kubernetes manifests. @@ -29,12 +29,12 @@ Regarding the SCI equation, containerizing workloads will impact: - `M`: Reducing compute resources decreases the embodied carbon emissions. ## Assumptions -The application supports containerization. +- The application supports containerization. ## Considerations -Using containers may not be enough to reduce carbon impact of a large monolith application. - -Consider modernizing your applications into micro-services architectures, that allow independent sizing and scaling of their logical components. +- Using containers may not be enough to reduce carbon impact of a large monolith application. +- Consider modernizing your applications into micro-services architectures, that allow independent sizing and scaling of their logical components. +- You may use a container orchestration system for automating software deployment, scaling, and management. ## References Microsoft Azure Well Architected Framework [sustainability patterns](https://learn.microsoft.com/en-us/azure/architecture/framework/sustainability/sustainability-application-platform) From 5289d798bee7c3d488a3191cf78d45f04b3761fa Mon Sep 17 00:00:00 2001 From: cathmaughan Date: Mon, 4 Mar 2024 16:45:52 +0100 Subject: [PATCH 29/41] Update Design for independent scaling of logical components.md @russelltrow Technical writer review Signed-off-by: cathmaughan --- ...r independent scaling of logical components.md | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/docs/catalog/cloud/Design for independent scaling of logical components.md b/docs/catalog/cloud/Design for independent scaling of logical components.md index 7d0e7ef1..a4b00d8a 100644 --- a/docs/catalog/cloud/Design for independent scaling of logical components.md +++ b/docs/catalog/cloud/Design for independent scaling of logical components.md @@ -15,26 +15,25 @@ tags: # Scale logical components independently ## Description -A microservice architecture may reduce the compute resources required, as it allows each independent component to be scaled according to its own demand. +A microservice architecture may reduce the amount of compute resources required as it allows each independent component to be scaled according to its own demand. ## Solution -Use cloud native projects help you separate your application functionality into different microservices, to allow independent scaling of its logical components. +Using cloud native projects can help you separate your application functionality into different microservices. This kind of microservice architecture allows for independent scaling of the application's logical components. ## SCI Impact `SCI = (E * I) + M per R` [Software Carbon Intensity Spec](https://grnsft.org/sci) -Regarding the SCI equation, scaling logical components independently will impact: +Scaling logical components independently will impact SCI as follows: - `E`: By optimizing the scaling of the most consuming application components, we reduce the amount of energy consumed by the application globally. -- `M`: By scaling each component independently, we can right size its resources to maximize their utilization, thereby reducing the application total embodied carbon emissions. +- `M`: By scaling each component independently, we can right-size its resources to maximize their utilization, thereby reducing the application's total embodied carbon emissions. ## Assumptions -- The application logical components are deployed on platforms with auto-scaling capabilities, such as Kubernetes. +- The application's logical components are deployed on platforms with auto-scaling capabilities, such as Kubernetes. ## Considerations -- Microservice frameworks use additional components or resources in order to provide additional capabilities (messaging, secure traffic, tracing, etc.). This may result in a increase in carbon emissions. In practice, use only the frameworks capabilities that are necessary. -- Do not make microservices too small as communication incours overhead which has a carbon impact. -- Consider alternatives to http/s for communication, like GPRC and others. +- Microservice frameworks use additional components or resources in order to provide additional capabilities (messaging, secure traffic, tracing, etc.). This may result in an increase in carbon emissions. As such, only the necessary framework capabilities should be used. +- Communication incurs overheads, which also have a carbon impact. As such, microservices should not be made too small. Alternatively, communication tools other than http/s should be considered, such as GPRC. From 4f923de0a3f1ef5e7d9dd797f68063ce48baaee7 Mon Sep 17 00:00:00 2001 From: cathmaughan Date: Mon, 4 Mar 2024 16:54:50 +0100 Subject: [PATCH 30/41] Update Use energy efficient hardware.md Signed-off-by: cathmaughan --- .../cloud/Use energy efficient hardware.md | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/docs/catalog/cloud/Use energy efficient hardware.md b/docs/catalog/cloud/Use energy efficient hardware.md index 0b548b5d..be6db4a4 100644 --- a/docs/catalog/cloud/Use energy efficient hardware.md +++ b/docs/catalog/cloud/Use energy efficient hardware.md @@ -12,28 +12,26 @@ tags: - size:medium --- -# Use cloud native processors VMs +# Use cloud native processor VMs ## Description -Cloud virtual machines are offered with different capabilities based on different hardware processors. - -Hence using virtual machines based on efficient processors would impact hardware efficiency and reduce carbon emissions. +Cloud virtual machines come with different capabilities based on different hardware processors. As such, using virtual machines based on the efficiency of their processors would impact hardware efficiency and reduce carbon emissions. ## Solution -Use new cloud virtual machines that have been engineered with [cloud native processors](https://www.forbes.com/sites/davealtavilla/2022/10/13/amperes-efficient-128-core-cloud-native-processor-builds-momentum-in-sustainable-data-centers/) to efficiently run scale-out, cloud-native workloads and consume energy efficiently. +Using new cloud virtual machines that have been engineered with [cloud native processors](https://www.forbes.com/sites/davealtavilla/2022/10/13/amperes-efficient-128-core-cloud-native-processor-builds-momentum-in-sustainable-data-centers/) allows you to efficiently run scale-out, cloud-native workloads and consume energy efficiently. ## SCI Impact `SCI = (E * I) + M per R` [Software Carbon Intensity Spec](https://grnsft.org/sci) -Regarding the SCI equation, using energy efficient hardware will impact: +Using energy efficient hardware impacts SCI as follows: - `E`: By using energy efficient hardware, we reduce the total embodied carbon emissions. -- `M`: By using energy efficient hardware, we reduce also the embodied emissions. +- `M`: By using energy efficient hardware, we also reduce the embodied emissions. ## Assumptions @@ -42,7 +40,8 @@ The cloud provider offers VM SKUs based on efficient hardware. ## Considerations -Energy efficient VMs tend to be cost effective as well, you should however consider also SKU availability in the region you choose for deployment. -Azure: https://azure.microsoft.com/en-us/blog/azure-virtual-machines-with-ampere-altra-arm-based-processors-generally-available/ -Google: https://cloud.google.com/blog/products/compute/tau-t2a-is-first-compute-engine-vm-on-an-arm-chip +Energy efficient VMs tend to be cost effective as well. However, you should consider SKU availability in the region you choose for deployment: + +- Azure: https://azure.microsoft.com/en-us/blog/azure-virtual-machines-with-ampere-altra-arm-based-processors-generally-available/ +- Google: https://cloud.google.com/blog/products/compute/tau-t2a-is-first-compute-engine-vm-on-an-arm-chip From 8d0c93032bd6024daca12bb2e87be1e26307ca51 Mon Sep 17 00:00:00 2001 From: cathmaughan Date: Mon, 4 Mar 2024 17:06:56 +0100 Subject: [PATCH 31/41] Update compress-stored-data.md @russelltrow technical writer review Signed-off-by: cathmaughan --- docs/catalog/cloud/compress-stored-data.md | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/docs/catalog/cloud/compress-stored-data.md b/docs/catalog/cloud/compress-stored-data.md index 774d9e66..43dd29ab 100644 --- a/docs/catalog/cloud/compress-stored-data.md +++ b/docs/catalog/cloud/compress-stored-data.md @@ -12,28 +12,27 @@ tags: ## Description -Storing much uncompressed data can result in unnecessary bandwidth waste and increase the storage capacity requirements. +Storing too much uncompressed data can result in bandwidth waste and increase the storage capacity requirements. ## Solution -Use the right compression tool for the use case to reduce the storage requirements, including both capacity and required bandwidth to write or retrieve data. +Using the right compression tool for each use case reduces the storage requirements. This includes both the capacity and required bandwidth to write or retrieve data. ## SCI Impact `SCI = (E * I) + M per R` [Software Carbon Intensity Spec](https://grnsft.org/sci) -Concerning the SCI equation, using compression when storing data impact two parts: +Using compression when storing data impacts SCI as follows: -- `E`: Decrease the amount of storage and therefor less E for the storage. However, we should be aware that there may be a slight increase in energy consumed due to compressing and de-compressing data. -- `M`: Decrease the amount of storage and therefor less M +- `E`: Decreasing the amount of storage means less energy is consumed for the storage. However, compressing and de-compressing data may also cause a slight increase in energy consumed. +- `M`: Decreasing the amount of storage means there is less embodied carbon emitted. ## Assumptions -- You have the ability to choose, wehter you use compression or not. If you store much, much data you are forced to use compression to keep storage costs reasonable. -- If you are storage space constrainted you are forced to use a high compression (even when there is high CPU required) and also the other way around. +- You have the ability to choose whether you use compression or not. This is not the case if you store a lot of data, as compression is needed to keep storage costs reasonable. In the same way, if you have a limited amount of storage space, you will be forced to use a high compression (even when a high CPU is required). ## Considerations -- Consider the tradeoff of compression: Does the benefit of compression outweigh the increased carbon cost in the resources (CPU, RAM) needed to perform the compression/decompression? +- The benefit of compression should always be considered in terms of the trade-off with the increased carbon cost of the resources (e.g. CPU, RAM) needed to perform the compression/decompression. ## References - [Microsoft Azure Well-Architected Framework](https://learn.microsoft.com/en-us/azure/well-architected/sustainability/sustainability-storage#enable-storage-compression) From 46f722892de396429b3a1955b459ef89ec01f35e Mon Sep 17 00:00:00 2001 From: cathmaughan Date: Mon, 4 Mar 2024 17:13:23 +0100 Subject: [PATCH 32/41] Update containerize-your-workload-where-applicable.md @russelltrow technical review done. Please check second sentence on the solution step is accurate Signed-off-by: cathmaughan --- .../containerize-your-workload-where-applicable.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/catalog/cloud/containerize-your-workload-where-applicable.md b/docs/catalog/cloud/containerize-your-workload-where-applicable.md index 2f5141b6..57f094f6 100644 --- a/docs/catalog/cloud/containerize-your-workload-where-applicable.md +++ b/docs/catalog/cloud/containerize-your-workload-where-applicable.md @@ -14,16 +14,16 @@ tags: # Containerize your workloads ## Description -Containers allow resources to be used more flexible as workloads can be easily moved between machines. It may reduce unnecessary resource allocation and increase utilization of the compute resources, as they allow for bin packing and require less compute resources than virtual machines. +Containers allow resources to be used more flexibly, as workloads can be easily moved between machines. Containers allow for bin packing and require less compute resources than virtual machines, meaning a reduction in unnecessary resource allocation and an increase in utilization of the compute resources. ## Solution -Containerize your applications with their minimal dependencies. You can use tools for generating Dockerfiles and Kubernetes manifests. +Containerize your applications with their minimal dependencies. This can be done using tools for generating Dockerfiles and Kubernetes manifests. ## SCI Impact `SCI = (E * I) + M per R` [Software Carbon Intensity Spec](https://grnsft.org/sci) -Regarding the SCI equation, containerizing workloads will impact: +Containerizing workloads impacts SCI as follows: - `E`: By reducing CPU and RAM usage, we reduce the amount of energy required. - `M`: Reducing compute resources decreases the embodied carbon emissions. @@ -32,8 +32,8 @@ Regarding the SCI equation, containerizing workloads will impact: - The application supports containerization. ## Considerations -- Using containers may not be enough to reduce carbon impact of a large monolith application. -- Consider modernizing your applications into micro-services architectures, that allow independent sizing and scaling of their logical components. +- Using containers may not be enough to reduce the carbon impact of a large monolith application. +- Consider modernizing your applications into micro-service architectures that allow independent sizing and scaling of their logical components. - You may use a container orchestration system for automating software deployment, scaling, and management. ## References From 11f59f57a461c80a43f2ded699d70aa1ea07ed80 Mon Sep 17 00:00:00 2001 From: cathmaughan Date: Mon, 4 Mar 2024 17:19:46 +0100 Subject: [PATCH 33/41] Update evaluate-using-a-service-mesh.md @russelltrow techhnical writer review Signed-off-by: cathmaughan --- docs/catalog/cloud/evaluate-using-a-service-mesh.md | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/docs/catalog/cloud/evaluate-using-a-service-mesh.md b/docs/catalog/cloud/evaluate-using-a-service-mesh.md index f750030f..9ec5078b 100644 --- a/docs/catalog/cloud/evaluate-using-a-service-mesh.md +++ b/docs/catalog/cloud/evaluate-using-a-service-mesh.md @@ -15,20 +15,16 @@ tags: # Use a service mesh only if needed ## Description -A service mesh deploys additional containers for communication, typically in a sidecar pattern, to provide more operational capabilities leading to an increase in CPU usage and network traffic. - -Nevertheless, it allows you to decouple your application from these capabilities as it moves them out from the application layer, and down to the infrastructure layer. +A service mesh deploys additional containers for communication, typically in a sidecar pattern, to provide more operational capabilities. This can result in an increase in CPU usage and network traffic but also allows you to decouple your application from these capabilities, moving them out from the application layer and down to the infrastructure layer. ## Solution -- Use a service mesh if your application lacks features that can be added by one, such as distributed tracing or traffic encryption. -- A service mesh can typically be enabled only for some resources, which allows you to use it for required applications only, and not the entire platform. - +Use a service mesh if your application lacks features that can be added one by one, such as distributed tracing or traffic encryption. However, use it for required applications only, and not the entire platform. ## SCI Impact `SCI = (E * I) + M per R` [Software Carbon Intensity Spec](https://grnsft.org/sci) -Regarding the SCI equation, not using a service mesh will impact: +Not using a service mesh impacts SCI as follows: - `E`: By reducing CPU usage and network traffic, we reduce the amount of energy required. - `M`: reducing CPU usage and network data reduces the amount of resources required, which decreases the embodied carbon emissions. @@ -37,4 +33,4 @@ Regarding the SCI equation, not using a service mesh will impact: The application does not have compliance requirements for using a service mesh. ## Considerations -Consider alternative methods outside of an service mesh to fulfill application requirements, for example custom DNS servers or configuration that is injected into the application +Consider alternative methods outside of an service mesh to fulfill application requirements, for example custom DNS servers or a configuration that is injected into the application From 4ff60f86e27aafa411ae1aedd17fefd685ea7ac5 Mon Sep 17 00:00:00 2001 From: cathmaughan Date: Mon, 4 Mar 2024 17:26:26 +0100 Subject: [PATCH 34/41] Update use-ddos-protection.md @russelltrow please check the SCI impact. I wanted to explain the 'R' but not sure what I put is accurate. Signed-off-by: cathmaughan --- docs/catalog/cloud/use-ddos-protection.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/docs/catalog/cloud/use-ddos-protection.md b/docs/catalog/cloud/use-ddos-protection.md index b84bc6d2..c43b2e10 100644 --- a/docs/catalog/cloud/use-ddos-protection.md +++ b/docs/catalog/cloud/use-ddos-protection.md @@ -13,29 +13,29 @@ tags: ## Description -Distributed Denial of Service (DDoS) is used to increase the load of server in a way, that they are unable to respond to any legitimate requests. This is mostly done to harm the owner of the service or hardware. +Distributed denial of service (DDoS) attacks are used to increase the server load so that it is unable to respond to any legitimate requests. This is usually done to harm the owner of the service or hardware. Due to the nature of attack, a lot of environmental resources are used up by nonsensical requests. ## Solution -All cloud providers provide some form of DDoS protection (AWS Shield, Azure DDoS Protection, GCP DDoS Protection, CloudFlare, ...) that can prevent those attacks. +All cloud providers have some form of DDoS protection (AWS Shield, Azure DDoS Protection, GCP DDoS Protection, CloudFlare, etc.) that can prevent those attacks. ## SCI Impact `SCI = (E * I) + M per R` [Software Carbon Intensity Spec](https://grnsft.org/sci) -This pattern affects the SCI as follows: +DDoS protection impacts the SCI as follows: -- `R`: The amount of requests will be reduced, due to not fulfilling DDoS requests +- `R`: The functional unit is impacted because the amount of requests will be reduced. ## Assumptions -- Assumes that the budget of the project can afford the costs for the DDoS protection service +- There is budget for the DDoS protection service. ## Considerations -- Consider purchasing the advanced protection tiers of the cloud providers to be fully protected against similar DDoS attack patterns +- Consider purchasing advanced protection to be fully protected against other attack patterns similar to DDoS attacks. ## References From d78da0504417af95f00a8028865cfbfd53991b56 Mon Sep 17 00:00:00 2001 From: Russell Trow Date: Thu, 14 Mar 2024 05:50:24 +0000 Subject: [PATCH 35/41] Update and rename Design for independent scaling of logical components.md to design-for-independent-scaling-of-logical-components.md Signed-off-by: Russell Trow --- ... => design-for-independent-scaling-of-logical-components.md} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename docs/catalog/cloud/{Design for independent scaling of logical components.md => design-for-independent-scaling-of-logical-components.md} (98%) diff --git a/docs/catalog/cloud/Design for independent scaling of logical components.md b/docs/catalog/cloud/design-for-independent-scaling-of-logical-components.md similarity index 98% rename from docs/catalog/cloud/Design for independent scaling of logical components.md rename to docs/catalog/cloud/design-for-independent-scaling-of-logical-components.md index a4b00d8a..39a4c2ac 100644 --- a/docs/catalog/cloud/Design for independent scaling of logical components.md +++ b/docs/catalog/cloud/design-for-independent-scaling-of-logical-components.md @@ -1,7 +1,7 @@ --- version: 1.0 submitted_by: yelghali -published_date: tbd +published_date: 2024-03-14 category: cloud tags: - compute From 1c90f6d4b2fb4f42fea1d3db65f44ddbe8a55c90 Mon Sep 17 00:00:00 2001 From: Russell Trow Date: Thu, 14 Mar 2024 05:50:58 +0000 Subject: [PATCH 36/41] Update and rename Use energy efficient hardware.md to use-energy-efficient-hardware.md Signed-off-by: Russell Trow --- ...y efficient hardware.md => use-energy-efficient-hardware.md} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename docs/catalog/cloud/{Use energy efficient hardware.md => use-energy-efficient-hardware.md} (98%) diff --git a/docs/catalog/cloud/Use energy efficient hardware.md b/docs/catalog/cloud/use-energy-efficient-hardware.md similarity index 98% rename from docs/catalog/cloud/Use energy efficient hardware.md rename to docs/catalog/cloud/use-energy-efficient-hardware.md index be6db4a4..0295f7ed 100644 --- a/docs/catalog/cloud/Use energy efficient hardware.md +++ b/docs/catalog/cloud/use-energy-efficient-hardware.md @@ -1,7 +1,7 @@ --- version: 1.0 submitted_by: yelghali -published_date: tbd +published_date: 2024-03-14 category: cloud tags: - cloud From 2fc691690ffe6290459a49813b4c68161a7c54be Mon Sep 17 00:00:00 2001 From: Russell Trow Date: Thu, 14 Mar 2024 05:51:12 +0000 Subject: [PATCH 37/41] Update compress-stored-data.md Signed-off-by: Russell Trow --- docs/catalog/cloud/compress-stored-data.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/catalog/cloud/compress-stored-data.md b/docs/catalog/cloud/compress-stored-data.md index 43dd29ab..4bab788c 100644 --- a/docs/catalog/cloud/compress-stored-data.md +++ b/docs/catalog/cloud/compress-stored-data.md @@ -1,7 +1,7 @@ --- version: 1.0 submitted_by: franziska-warncke -published_date: TBD +published_date: 2024-03-14 category: cloud tags: - cloud From 864ba0e0c2c25e314e258c0b10b60870e547c838 Mon Sep 17 00:00:00 2001 From: Russell Trow Date: Thu, 14 Mar 2024 05:51:26 +0000 Subject: [PATCH 38/41] Update containerize-your-workload-where-applicable.md Signed-off-by: Russell Trow --- .../cloud/containerize-your-workload-where-applicable.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/catalog/cloud/containerize-your-workload-where-applicable.md b/docs/catalog/cloud/containerize-your-workload-where-applicable.md index 57f094f6..4f8c3efd 100644 --- a/docs/catalog/cloud/containerize-your-workload-where-applicable.md +++ b/docs/catalog/cloud/containerize-your-workload-where-applicable.md @@ -1,7 +1,7 @@ --- version: 1.0 submitted_by: yelghali -published_date: tbd +published_date: 2024-03-14 category: cloud tags: - cloud From ecc4f2f957a66f27f457919d07b42c7f99526b20 Mon Sep 17 00:00:00 2001 From: Russell Trow Date: Thu, 14 Mar 2024 05:51:42 +0000 Subject: [PATCH 39/41] Update evaluate-using-a-service-mesh.md Signed-off-by: Russell Trow --- docs/catalog/cloud/evaluate-using-a-service-mesh.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/catalog/cloud/evaluate-using-a-service-mesh.md b/docs/catalog/cloud/evaluate-using-a-service-mesh.md index 9ec5078b..38e66313 100644 --- a/docs/catalog/cloud/evaluate-using-a-service-mesh.md +++ b/docs/catalog/cloud/evaluate-using-a-service-mesh.md @@ -1,7 +1,7 @@ --- version: 1.0 submitted_by: yelghali -published_date: tbd +published_date: 2024-03-14 category: cloud tags: - cloud From 3246455d71b055631bf3c5324ef9ad2217f5804e Mon Sep 17 00:00:00 2001 From: Russell Trow Date: Thu, 14 Mar 2024 05:52:14 +0000 Subject: [PATCH 40/41] Update use-ddos-protection.md Signed-off-by: Russell Trow --- docs/catalog/cloud/use-ddos-protection.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/catalog/cloud/use-ddos-protection.md b/docs/catalog/cloud/use-ddos-protection.md index c43b2e10..84a43a5f 100644 --- a/docs/catalog/cloud/use-ddos-protection.md +++ b/docs/catalog/cloud/use-ddos-protection.md @@ -1,9 +1,9 @@ --- version: 1.0 submitted_by: markus-ntt-seidl -published_date: TBD +published_date: 2024-03-14 category: cloud -description: [PATTERN_DESCRIPTION_METADATA] +description: Distributed denial of service (DDoS) attacks are used to increase the server load so that it is unable to respond to any legitimate requests. This is usually done to harm the owner of the service or hardware. tags: - cloud - size:small From 123d72c949d33048870b7231efe225b148761746 Mon Sep 17 00:00:00 2001 From: Russell Trow Date: Thu, 14 Mar 2024 05:57:56 +0000 Subject: [PATCH 41/41] Rename design-for-independent-scaling-of-logical-components.md to scale-logical-components-independently.md Signed-off-by: Russell Trow --- ...al-components.md => scale-logical-components-independently.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename docs/catalog/cloud/{design-for-independent-scaling-of-logical-components.md => scale-logical-components-independently.md} (100%) diff --git a/docs/catalog/cloud/design-for-independent-scaling-of-logical-components.md b/docs/catalog/cloud/scale-logical-components-independently.md similarity index 100% rename from docs/catalog/cloud/design-for-independent-scaling-of-logical-components.md rename to docs/catalog/cloud/scale-logical-components-independently.md