You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@@ -281,7 +281,7 @@ From [Computer History Museum - Zuse Completes Z3 Machine](https://www.computerh
281
281
<details>
282
282
<summary><b>ENIAC (1945)</b></summary>
283
283
284
-
> ENIAC's most significant technical limitation—the difficulty of reprogramming—directly inspired the stored-program concept central to modern computers. This limitation led John von Neumann to articulate the architecture that bears his name in the 1945 `First Draft of a Report on the EDVAC`, which became the blueprint for most subsequent computers.
284
+
> ENIAC's most significant technical limitation, the difficulty of reprogramming, directly inspired the stored-program concept central to modern computers. This limitation led John von Neumann to articulate the architecture that bears his name in the 1945 `First Draft of a Report on the EDVAC`, which became the blueprint for most subsequent computers.
285
285
286
286
-**John Mauchly & J. Presper Eckert**: Led the engineering team at University of Pennsylvania
287
287
-**Physical Specifications**:
@@ -405,7 +405,7 @@ From [IBM Mainframes 45 Years of Evolution - System/360 Model 20](https://archi
405
405
> Advanced Research Projects Agency Network (`ARPA`; later `DARPA`).
406
406
> Defense Advanced Research Projects Agency (U.S. Department of Defense R&D agency)
407
407
408
-
> Three enduring ideas born here: packet switching, end‑to‑end principle, and layered protocols—precursors to modern SDN (Software-Defined Networking) overlays and service meshes.
408
+
> Three enduring ideas born here: packet switching, end‑to‑end principle, and layered protocols, precursors to modern SDN (Software-Defined Networking) overlays and service meshes.
409
409
410
410
-**Key people**: Vint Cerf, Bob Kahn, Leonard Kleinrock, J.C.R. Licklider
411
411
-**Technical innovations**: Packet switching, distributed network without central control
@@ -436,7 +436,7 @@ From [Encyclopedia Britannica - Visual representation of the spread of ARPANET a
436
436
<details>
437
437
<summary><b>Intel 4004 (1971)</b></summary>
438
438
439
-
> Constraints (4‑bit ALU, tiny stack) drove tight, loop‑unrolled code and table‑driven arithmetic—early examples of co‑design between software and silicon limits.
439
+
> Constraints (4‑bit ALU, tiny stack) drove tight, loop‑unrolled code and table‑driven arithmetic, early examples of co‑design between software and silicon limits.
440
440
441
441
-**Federico Faggin, Ted Hoff, Stanley Mazor**: Designers of the first commercial microprocessor
@@ -603,7 +603,7 @@ From [Implementation of the PCIe-PHY](https://github.com/brown9804/PCIe-Physical
603
603
<details>
604
604
<summary><b>IBM PC (1981) / DNS (1983)</b></summary>
605
605
606
-
> The PC’s open bus/BIOS (Basic Input/Output System) and DNS’s hierarchical delegation are both `open interfaces` that unlocked third‑party ecosystems—key to later cloud modularity.
606
+
> The PC’s open bus/BIOS (Basic Input/Output System) and DNS’s hierarchical delegation are both `open interfaces` that unlocked third‑party ecosystems, key to later cloud modularity.
607
607
608
608
609
609
-**IBM PC**: Open architecture led to clone market and standardization
@@ -686,7 +686,7 @@ From [Telecommunications Networks](https://www.pinterest.com/pin/gprs-network-sc
- Outcomes: Higher utilization, better isolation, faster provisioning, the substrate for cloud multi‑tenancy.
703
703
704
704
</details>
705
705
@@ -768,7 +768,7 @@ From [Telecommunications Networks](https://www.pinterest.com/pin/gprs-network-sc
768
768
- Outbound HTTP(S) via URLFetch proxy; inbound is HTTP(S) via Google frontends with load balancing and SSL termination.
769
769
- App identity/service accounts for calling Google APIs; access control via project IAM as the platform evolved.
770
770
- Developer workflow: Declarative configs + gcloud tooling; zero-manage infra (no servers to patch). Vendor lock-in mitigated over time with portable APIs and later 2nd-gen runtimes.
771
-
- Lasting impact: Popularized autoscale, managed services, traffic-splitting, and minimal ops for web apps—precursors to modern serverless patterns.
771
+
- Lasting impact: Popularized autoscale, managed services, traffic-splitting, and minimal ops for web apps, precursors to modern serverless patterns.
772
772
773
773
</details>
774
774
@@ -968,9 +968,9 @@ From [K8s cluster components](https://kubernetes.io/docs/concepts/architecture/)
968
968
- Labeling indicates products meeting energy efficiency criteria under standardized tests.
969
969
- Measurement methodology
970
970
- TEC (Typical Energy Consumption) models: integrates active/idle/sleep/off over a duty cycle to yield kWh/year.
971
-
- Server testing leverages SPEC SERT (Standard Performance Evaluation Corporation—Server Efficiency Rating Tool) to couple performance with power.
971
+
- Server testing leverages SPEC SERT (Standard Performance Evaluation Corporation, Server Efficiency Rating Tool) to couple performance with power.
972
972
- Power states and sleep: wake latency and user experience constraints included in eligibility criteria.
973
-
- Technical levers: Display power management (DPMS—Display Power Management Signaling), low‑power SoCs (Systems on Chip), aggressive idle states (C‑states) and frequency scaling (DVFS—Dynamic Voltage and Frequency Scaling).
973
+
- Technical levers: Display power management (DPMS, Display Power Management Signaling), low‑power SoCs (Systems on Chip), aggressive idle states (C‑states) and frequency scaling (DVFS, Dynamic Voltage and Frequency Scaling).
974
974
- Impact: Baselines for procurement; nudged component vendors toward better idle efficiency and automatic sleep policies.
975
975
976
976
</details>
@@ -1127,7 +1127,7 @@ From [K8s cluster components](https://kubernetes.io/docs/concepts/architecture/)
1127
1127
1128
1128
### Monitor and Request Quota Increases
1129
1129
1130
-
- Regularly monitor quotas: Use the Azure Portal `Usage + quotas` (per Subscription/Region/Provider) and service blades (e.g., vCPU—virtual CPU families).
1130
+
- Regularly monitor quotas: Use the Azure Portal `Usage + quotas` (per Subscription/Region/Provider) and service blades (e.g., vCPU, virtual CPU families).
1131
1131
- Proactively request increases: Submit quota increases ahead of scale events; some are self‑serve, others require support.
1132
1132
- Automate monitoring: Script checks and alerts for thresholds.
1133
1133
- What to monitor (examples):
@@ -1218,7 +1218,7 @@ From [K8s cluster components](https://kubernetes.io/docs/concepts/architecture/)
1218
1218
1219
1219
### Right-Size and Optimize Consumption
1220
1220
1221
-
- Use autoscaling and Spot VMs (Virtual Machine Scale Sets—VMSS):
1221
+
- Use autoscaling and Spot VMs (Virtual Machine Scale Sets, VMSS):
1222
1222
```powershell
1223
1223
az vmss create -g MyRg -n batch-spot `
1224
1224
--image UbuntuLTS --orchestration-mode Uniform `
@@ -1259,21 +1259,223 @@ From [K8s cluster components](https://kubernetes.io/docs/concepts/architecture/)
1259
1259
```
1260
1260
### Adopt Carbon- and Cost-Aware Scheduling
1261
1261
1262
-
- Use carbon/cost‑aware strategies: Prefer regions/times with lower carbon intensity or price for deferrable jobs.
1262
+
-**Implementing Carbon and Cost-Aware Strategies**:
1263
+
-**Workload Classification by Flexibility**:
1264
+
-**Time-Flexible Workloads**: Batch processing, ETL jobs, machine learning training, and backups that can be deferred to lower-carbon or lower-cost periods
1265
+
-**Location-Flexible Workloads**: Stateless services, content delivery, and analytics that can run in multiple regions
1266
+
-**Fixed Workloads**: User-facing applications and latency-sensitive services that must run continuously regardless of carbon/cost conditions
1267
+
1268
+
-**Regional Strategy Implementation**:
1269
+
- Select primary regions based on a combination of:
1270
+
* Average carbon intensity (lower is better)
1271
+
* Renewable energy percentage (higher is better)
1272
+
* Cost efficiency (lower $/compute unit)
1273
+
* Latency requirements (proximity to users)
1274
+
-**Example regional selection matrix**:
1275
+
```
1276
+
| Region | Avg. Carbon | Renewable % | Cost Index | Latency | Score |
# Find the lowest carbon window before the deadline
1292
+
best_window = min(
1293
+
[window for window in carbon_forecasts if window.time < deadline],
1294
+
key=lambda w: w.carbon_intensity
1295
+
)
1296
+
1297
+
# Schedule the job during that window
1298
+
return schedule_at(job, best_window.time)
1299
+
```
1300
+
1301
+
- **Hybrid Approaches**:
1302
+
- Combine region selection and time scheduling for maximum impact
1303
+
- Implement "follow-the-sun/follow-the-wind" strategies where workloads migrate to regions with abundant solar or wind energy based on time of day
1304
+
- Create optimization algorithms that continuously adjust workload placement based on real-time carbon intensity, cost, and performance metrics
1263
1305
- Automate with orchestrators: AKS scheduler plugins, external metrics; Functions/Logic Apps for timers.
1264
-
- Signals and data: Combine grid carbon indicators (gCO₂/kWh) with price/capacity; track kgCO₂e and $/hr in dashboards.
1306
+
- **Carbon and Cost Signal Integration**:
1307
+
- **Data Sources for Carbon-Aware Decisions**:
1308
+
- **Grid Carbon Intensity APIs**: Integrate with services like WattTime, ElectricityMaps, or regional grid operators that provide real-time and forecasted carbon intensity data (measured in gCO₂/kWh)
1309
+
- **Example API integration**:
1310
+
```powershell
1311
+
# Fetch real-time carbon intensity for westeurope region
1312
+
$carbonData = Invoke-RestMethod -Uri "https://api.carbonintensity.org.uk/regional/westeurope" -Method Get
- Label/taint `green` pools; HPA (Horizontal Pod Autoscaler) with external carbon metrics to pause/resume background work.
1346
+
-**Carbon-Aware Node Management**:
1347
+
-**Label nodes with carbon intensity**: Use Kubernetes labels (`carbon-intensity=low/medium/high`) to track which regions or availability zones have cleaner energy at any given time.
1348
+
-**Apply taints to "green" pools**: Mark node pools in low-carbon regions with taints (e.g., `carbon-preference=green:NoSchedule`) so only workloads that explicitly tolerate them will run there. This reserves the cleanest infrastructure for carbon-sensitive workloads.
1349
+
-**Example node labeling**:
1350
+
```powershell
1351
+
# Label nodes in a region with lower carbon intensity
# Deployment that tolerates and prefers green nodes
1360
+
apiVersion: apps/v1
1361
+
kind: Deployment
1362
+
metadata:
1363
+
name: carbon-aware-batch
1364
+
spec:
1365
+
template:
1366
+
spec:
1367
+
tolerations:
1368
+
- key: "carbon-preference"
1369
+
operator: "Equal"
1370
+
value: "green"
1371
+
effect: "NoSchedule"
1372
+
```
1373
+
- **Carbon-Aware Auto-Scaling**:
1374
+
- **HPA with external carbon metrics**: Configure Horizontal Pod Autoscaler to ingest carbon intensity data from external sources (like WattTime API or ElectricityMaps) through the Kubernetes custom metrics API.
1375
+
- **Scale down during high-carbon periods**: Automatically reduce replicas when carbon intensity is high, then scale back up during cleaner energy periods.
1376
+
- **Example HPA configuration**:
1377
+
```yaml
1378
+
apiVersion: autoscaling/v2
1379
+
kind: HorizontalPodAutoscaler
1380
+
metadata:
1381
+
name: carbon-aware-hpa
1382
+
spec:
1383
+
scaleTargetRef:
1384
+
apiVersion: apps/v1
1385
+
kind: Deployment
1386
+
name: batch-processor
1387
+
minReplicas: 1
1388
+
maxReplicas: 10
1389
+
metrics:
1390
+
- type: External
1391
+
external:
1392
+
metric:
1393
+
name: grid.carbon.intensity
1394
+
selector:
1395
+
matchLabels:
1396
+
region: westeurope
1397
+
target:
1398
+
type: Value
1399
+
value: 150 # Scale down when gCO₂/kWh exceeds this threshold
1400
+
behavior:
1401
+
scaleDown:
1402
+
stabilizationWindowSeconds: 300
1403
+
```
1404
+
1271
1405
- Batch/ETL (Extract–Transform–Load) patterns:
1272
-
- Time windows aligned to low‑carbon forecasts
1273
-
- Bounded retries with DLQs (Dead‑Letter Queues) for safety
1274
-
- Governance:
1275
-
- Budgets/alerts for cost and emissions
1276
-
- Documented RTO/RPO when shifting regions/windows
1406
+
- **Time-Shifted Workload Scheduling**:
1407
+
- Schedule resource-intensive jobs to run during periods of low carbon intensity, typically when renewable energy is abundant
1408
+
- Use cron expressions with wider windows plus carbon-aware logic to determine exact execution time
1409
+
- Example using Azure Logic App with carbon intensity trigger:
- Track and report carbon savings for ESG (Environmental, Social, Governance) reporting
1474
+
- Document how carbon-aware scheduling contributes to corporate sustainability goals
1475
+
- Create automated reports showing:
1476
+
* Carbon saved vs. baseline
1477
+
* Cost impact of carbon-aware scheduling
1478
+
* Sustainability improvements over time
1277
1479
1278
1480
> [!NOTE]
1279
1481
> Quotas, capacity, cost, and carbon are coupled constraints. Make deployments portable (IaC), keep a ranked list of viable regions/SKUs, and wire alerts so you can react before users feel it.
0 commit comments