When building apps, we focus on minimizing costs, time to market, bugs, bundle size, application speed, SEO, but we spend almost no effort trying to minimize the damage our applications are making to the environment.
Global-Warming
So Carbon dioxide (CO2) is a greenhouse gas that gets pumped to the atmosphere and acts like a blanket that traps heat.
There is also Methane (CH4) it has 25 times the heating potential of Carbon dioxide.
What is CO2e (Carbon Dioxide Equivalent)
It's 1 ton of Methane, 25 tons of Carbons + some other gases.
Google says it's
The standard unit for measuring carbon footprints. The idea is to express the impact of each different greenhouse gas in terms of the amount of CO2 that would create the same amount of warming.
There was a Paris Climate agreement in 2016 where 187 states agreed on trying to keep the increase in temperature to 2 degrees or ideally 1.5 degrees (We already reached 1 degree)
No one cares about 2 degrees We don't even feel it.
Let me tell you that there are species will extinct if this happened
A report from the UN says that is likely we hit 3.2C by the end of the century
What happens when the climate rise 5°C
All water ice on the planet will meltdown, raising the sea levels a few dozen meters above the normal “sea levels” and destroying the coastlines, and it will be a catastrophic event obviously, and millions upon millions of animal species (discovered and Undiscovered) will die.
We need to start reducing the climate rise curve
As a Developer you have an impact (A big one too)
Electricity is responsible for 30% of the CO2e.
80% of the world's electricity is created from burning Fossil fuels.
So don't waste electricity, because we destroying our planet to create some electricity so don't wast it.
Microsoft Azure and Google Cloud are Carbon-neutral firms.
Carbon neutral: A product or company that's carbon neutral (or carbon-free) is removing the same amount of carbon dioxide it's emitting into the atmosphere to achieve net-zero carbon emissions, usually by purchasing carbon offsets or credits to make up the difference.
Servers "Carbon" Cost
(The carbon released to create the electricity to run the server)
Let's talk about an absolute Dell server
To run a server
It's about 600 kilograms of carbons that are the electrical cost of it was running at 100% for a year
Idle server
Still costs electricity even nothing running on it, still cost about 25% or 150 kilograms of carbon a year
To create the server
If we said we created that particular server and got four yeara lifespan it produced 320 kilograms of carbon
So idle servers waste almost half a ton of CO2e per year (creation + idleness)
What the hell is serverless?
It's an execution model where the cloud provider (AWS, Azure, or Google Cloud) is responsible for executing a piece of code by dynamically allocating the resources. And only charging for the amount of resources used to run the code.
How serverless help
So when you use something like Microsoft Asure, Google Cloud or AWS your code gets executed next to my code, So we utilize all the servers at 100%, So no waste.
Serverless is greener because
CO2e was released to create the server
CO2e was released to power the server
If you don't run 100% of your server you are wasting CO2eserverless run servers at 100%
How to go Serverless in Node.js?
We have
- Microsoft Azure Function
- AWS Lambda Function
- Google Cloud Function
So there is a problem when you use azure function you got this
module.exports = async function(context, req) {
context.log("Javascript HTTP trigger function processed a request.");
if (req.query.name || (req.body && req.body.name)) {
context.res = {
// status: 200, /* Defaults to 200 */
body: "Hello " + (req.query.name || req.body.name)
};
} else {
context.res = {
status: 400,
body: "Please pass a name on the query string or in the request body"
};
}
};
So we gonna use nestjs
with Microsoft Azure
nest add @nestjs/azure-func-http
Basically, it adds or updates 10 files into your nest project to serverless application
And when you want to deploy (I recommend to) use a tool named Hexa
npm install -g @manekinekko/hexa
hexa init
hexa deploy
And you are good to go
To know more about nestjs with
- Microsoft Azure: go to Nitr.ooo
- Google Clouds: See this video
- AWS Lambda: Read this article
I'm gonna write about serverless and nodejs again but tech-wise only, with AWS, Google and Azure
Credits
Photo by Ciprian Morar on Unsplash
Top comments (0)