Skip to content

Commit eacdb0a

Browse files
authored
azure ready
1 parent 3cfe1ac commit eacdb0a

File tree

1 file changed

+90
-3
lines changed

1 file changed

+90
-3
lines changed

README.md

Lines changed: 90 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -632,6 +632,14 @@ From [University of Washington - The Cybersecurity Implications of Chinese Under
632632

633633
From [The incredible story of the underwater internet](https://www.techradar.com/news/internet/the-incredible-story-of-the-underwater-internet-1291295)
634634

635+
<img width="588" height="573" alt="image" src="https://github.com/user-attachments/assets/5ab9859a-4621-4515-b6c0-889333e5c7e4" />
636+
637+
From [General schematic diagram of a multi-layer space information network](https://www.researchgate.net/figure/General-schematic-diagram-of-a-multi-layer-space-information-network_fig1_356546892)
638+
639+
<img width="735" height="537" alt="image" src="https://github.com/user-attachments/assets/af1fd854-5aef-4e71-ae10-859afd2b3ac8" />
640+
641+
From [Telecommunications Networks](https://www.pinterest.com/pin/gprs-network-scheme-in-telecommunications-networks--996843698745182256/)
642+
635643
</details>
636644

637645
### Cloud Computing Era (1990s-2010)
@@ -666,30 +674,110 @@ From [The incredible story of the underwater internet](https://www.techradar.com
666674
<details>
667675
<summary><b>AWS EC2/S3 (2006)</b></summary>
668676

677+
> `Infrastructure as API`: declare topology (instances, networks, volumes, buckets) and desired counts; the control plane validates and places; the data plane carries packets/IO. This blueprint is echoed across all major clouds.
678+
669679
- **Key people**: Andy Jassy (AWS CEO), Werner Vogels (CTO)
670680
- **Technical innovations**: API-driven infrastructure, pay-per-use model
671681
- **Architecture**: Multi-tenant infrastructure, virtualization at scale
672682
- **Impact**: Fundamentally changed IT procurement and operations models
683+
- Control vs data planes:
684+
- Control plane (APIs): instance/volume/image lifecycle, placement, health, and inventory; account‑scoped policy and quotas; idempotent create/update with request tokens.
685+
- Data plane (packet/IO paths): hypervisor isolation + virtual NIC/block devices move bytes; separate from control to keep runtime traffic flowing during control-plane events.
686+
- Compute isolation and lifecycle:
687+
- Early EC2 ran Xen (paravirt → HVM); later generations use Nitro (dedicated hardware cards offloading network/storage and minimizing host attack surface) on KVM.
688+
- CPU/mem isolation via VT‑x/AMD‑V + IOMMU; per‑tenant vNIC/vBlock devices; DMA guarded by IOMMU.
689+
- Instance states: pending → running → {stopping|stopped} → {shutting‑down|terminated}; API idempotency and eventual consistency on reads.
690+
- Boot/user‑data: 169.254.169.254 metadata; user‑data passed to cloud‑init for early config.
691+
- Images and block storage:
692+
- AMI: root snapshot + metadata (virtualization type, device mapping); older AKI/ARI (kernel/ramdisk) images existed initially.
693+
- EBS (network block storage): attach/detach over network; snapshots are incremental, copy‑on‑write; volume types trade latency vs IOPS throughput.
694+
- Instance store: ephemeral NVMe/SATA directly on host, very fast but non‑persistent.
695+
- Networking primitives:
696+
- EC2‑Classic (initial) then VPC (virtual private clouds) with subnets, route tables, NAT, NACLs; security groups are stateful firewalls at the instance ENI.
697+
- Elastic IPs, ENIs (multi‑NIC), Placement Groups (latency/bandwidth aware), and later SR‑IOV/ENA for high PPS/low jitter.
698+
- Elastic primitives (autoscale/load):
699+
- Auto Scaling Groups (ASG): desired/min/max size; policies based on CloudWatch (CPU, RPS, Q length); launch templates/configs define AMI + instance type.
700+
- Elastic Load Balancing (ELB/ALB/NLB): spreads traffic across instances/AZs; health checks drive replace/heal loops.
701+
- S3 object storage model:
702+
- Buckets (per region) with a flat key namespace; `folders` are prefix conventions.
703+
- Objects are immutable; writes create new versions if versioning is enabled; range GETs and multipart upload for large objects.
704+
- Consistency: originally eventual for overwrite/list; later strong read‑after‑write (not in the 2006 launch).
705+
- Durability/availability: multi‑AZ replication in a region targeting `11 nines` durability; storage classes + lifecycle policies for cost/latency trade‑offs.
706+
- Access: signed REST/HTTP APIs, pre‑signed URLs, bucket policies/IAM; optional server‑side encryption and KMS integration.
707+
- Reliability and economics:
708+
- Regions → Availability Zones (independent power/network); fault domains constrain placement and replication.
709+
- Pay‑as‑you‑go; later options add Reserved/Spot/ Savings instruments; right‑size and autoscale to cut idle cost.
673710

674711
</details>
675712
<details>
676713
<summary><b>Google App Engine (2008)</b></summary>
677714

715+
> Mental model: Provide code + config; the platform provisions sandboxes, scales instances on demand, and wires managed services (Datastore, Memcache, Task Queues) without VM management.
716+
678717
- **Technical approach**: Platform-as-a-Service (PaaS) model
679718
- **Developer experience**: Focus on application code, not infrastructure
680719
- **Constraints**: Language/framework restrictions, quotas, managed scaling
681720
- **Impact**: Introduced developers to serverless concepts and auto-scaling
682-
721+
- Architecture and runtimes (early):
722+
- Sandboxed, opinionated runtimes: initially Python 2.5 → later Java, Go, etc. Limited syscalls and no arbitrary native code.
723+
- Request model: short request deadlines (initially ~30s), no long-lived background threads; later added Task Queues and Cron for async/offline work.
724+
- Configuration: app.yaml (handlers, instance class, scaling mode), index.yaml (Datastore composite indexes), cron.yaml, queue.yaml.
725+
- Scaling modes and instances:
726+
- Automatic, Basic, Manual scaling; “scale to zero” when idle on Automatic.
727+
- Instance classes (F1/F2/…, memory/CPU buckets). Warmup requests reduce cold-start latency.
728+
- Versioned deployments; traffic splitting by version (percent or cookie-based) enables canaries/gradual rollouts.
729+
- Built-in services:
730+
- Datastore (Bigtable-based): entity groups for transactional boundaries; ancestor queries offer strong consistency; non-ancestor queries historically eventual-consistent; later options improved consistency.
731+
- Task Queues, Cron, Memcache API, Users API, Images, Mail, URLFetch (egress HTTP(S)).
732+
- Storage and persistence:
733+
- Blobstore (early) for large objects; later Cloud Storage integration. Strong vs eventual consistency trade-offs documented.
734+
- Logs and metrics surfaced via Admin Console; per-app quotas and budgets to avoid noisy-neighbor and runaway costs.
735+
- Networking and security:
736+
- Outbound HTTP(S) via URLFetch proxy; inbound is HTTP(S) via Google frontends with load balancing and SSL termination.
737+
- App identity/service accounts for calling Google APIs; access control via project IAM as the platform evolved.
738+
- 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.
739+
- Lasting impact: Popularized autoscale, managed services, traffic-splitting, and minimal ops for web apps—precursors to modern serverless patterns.
740+
683741
</details>
684742

685743
<details>
686744
<summary><b>Microsoft Azure (2010)</b></summary>
687745

746+
> `Templates as contracts`: ARM/Bicep describe desired state; resource providers validate, place, and reconcile; policy enforces guardrails; identity authenticates every control-plane call.
747+
688748
- **Initial focus**: Platform-as-a-Service with .NET integration
689749
- **Evolution**: Expanded to full IaaS/PaaS/SaaS portfolio
690750
- **Technical innovations**: Resource Manager model, integrated identity with Azure AD
691751
- **Enterprise focus**: Hybrid capabilities, enterprise compliance certifications
692-
752+
- Fabric era → Cloud Services (classic):
753+
- Fabric Controller managed clusters (`stamps`) and deployed Web/Worker Roles from service packages (csdef/cscfg).
754+
- Availability primitives: Fault Domains (rack/power) and Update Domains (rolling upgrade orchestration).
755+
- Azure Resource Manager (ARM) evolution:
756+
- ARM introduced resource groups, resource providers (RP), and idempotent, declarative deployments (JSON; now Bicep).
757+
- API versioning per RP; async operations with operation status; what-if previews; deployment at RG/subscription/tenant scopes.
758+
- Governance: locks, tags, policy assignments, blueprints/initiatives for standardized environments.
759+
- Identity, keys, and compliance
760+
- Azure AD (Entra ID) for identity/RBAC; Managed Identity for workloads; Key Vault for secrets/keys/certs with RBAC/ACLs.
761+
- Azure Policy for guardrails (deny/append/deployIfNotExists); Activity Log for control-plane auditing.
762+
- Networking stack:
763+
- VNets, subnets, private IPs, public IPs (SKUs), NSGs (stateful firewall), UDRs, Application Security Groups.
764+
- Load Balancers (Basic/Standard), Application Gateway (L7), Azure Firewall, Front Door, Private Link/Endpoints, VNet Peering, ExpressRoute.
765+
- DNS: private/public zones; Service Endpoints (optimized service access) and Private Link (private data-plane).
766+
- Compute and storage:
767+
- VMs with availability sets and zones; VM Scale Sets (VMSS) for homogeneous pools; extensions (Custom Script, agents).
768+
- Managed Disks (Standard/Premium; LRS/ZRS) and Storage accounts with replication options (LRS/ZRS/GRS/GZRS/RAGRS).
769+
- Images: Shared Image Gallery; disk snapshots; proximity placement groups for latency-sensitive workloads.
770+
- Observability and operations:
771+
- Azure Monitor (metrics, logs), Log Analytics workspaces, Diagnostic settings; Service Health and activity diagnostics.
772+
- Update/maintenance: rolling upgrades using Update Domains; Maintenance control for host updates on select SKUs.
773+
- Orchestration tie-ins (AKS and platform services):
774+
- AKS: managed control plane, node pools on VMSS, cluster autoscaler; networking via Azure CNI or kubenet; Azure Load Balancer/AGIC integration.
775+
- Identity integration (managed identity, ACR pull), Azure Policy for Kubernetes, Private Clusters, availability zones awareness.
776+
- PaaS services (App Service, Functions, Cosmos DB, Service Bus) built on the same intent→validate→place control-plane principles.
777+
- Security and cost controls:
778+
- Defender for Cloud recommendations, Just-In-Time VM access, disk/SAS policies.
779+
- Budgets and cost analysis; reservations/spot for compute optimization.
780+
693781
</details>
694782

695783
### Cloud-Native & Beyond (2013-Present)
@@ -701,7 +789,6 @@ From [The incredible story of the underwater internet](https://www.techradar.com
701789
> - Developer experience improvements through abstraction
702790
> - Growing focus on energy efficiency and carbon footprint
703791
704-
705792
<details>
706793
<summary><b>Docker (2013)</b></summary>
707794

0 commit comments

Comments
 (0)