Green-Software-Foundation / patterns

An online open-source database of software patterns reviewed and curated by the Green Software Foundation across a wide range of categories.
https://patterns.greensoftware.foundation/
Other
82 stars 29 forks source link

Resource Management for Pods & Containers #211

Open XOvationwidAbhi opened 1 year ago

XOvationwidAbhi commented 1 year ago

Describe the pattern you'd like to propose Containers help optimize application run-time environment and limit the amount of resources an application draws from a virtual machine or an operating system

Describe specific emission impact from this pattern Optimizing the amount of CPU and RAM a pod (set of containers) or a container can exhaust will increase application efficiency while reducing the amount of energy it consumes.

References to this pattern This is a new pattern on the current list and I am proposing this under a header for DevOps. This is a reusable architecture pattern in DevOps-driven container lifecycles.

Additional context For every running container, you can specify resource limits e.g.

spec.containers[].resources.limits.cpu spec.containers[].resources.limits.memory spec.containers[].resources.requests.cpu spec.containers[].resources.requests.memory

holanita commented 1 year ago

Thanks @instrumentalwithabhi note that this project is currently on hold. Your issue will be handled as soon as we are back to business. Assigning @greenhsu123.

markus-gsf-seidl commented 1 year ago

Hi @instrumentalwithabhi ,

Thanks for your submission, we have already some patterns in this regard:

Can you check if these patterns overlap with your suggestion or how this differentiates? Thanks!

XOvationwidAbhi commented 1 year ago

Hello @markus-ntt-seidl @greenhsu123 Thank you for your kind response. I did go through the existing patterns including the ones mentioned above and the pattern I have proposed is different. The patterns mentioned in Cloud header are more specific to a hardware or virtual machine level i.e. relevant to the Operating System resources.

The one I am suggesting goes granular to Container level under the header of DevOps. A container is a black box of app + relevant compute/storage resources that offer a layer of abstraction and interoperability from the resource intensive VM/OS layer. Let me know if more details are needed please. This link might help detail the suggested pattern: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ (note this article is Kubernetes specific and containers can run without Kubernetes on other container orchestration layers too).