Problems Solved #
Understanding the problems the cloud solves matters more than memorizing its features. When you know why a feature exists, you can use it properly — not just because it’s available. This section covers the real problems organizations faced before the cloud, and how the cloud addresses them directly through modern architectural approaches.
Capacity Planning That’s Never Quite Right #
This is the most fundamental problem of the traditional infrastructure era. Organizations had to decide how many servers they needed — long before the actual load was known.
In traditional architecture, capacity planning was a guessing game about the future. Engineers had to estimate application traffic for the next 3 to 5 years, then project that into the number of CPUs, RAM, and storage capacity to buy right now. The process almost always ended in one of two extreme scenarios: over-provisioning or under-provisioning.
flowchart TD
subgraph Over["Over-Provisioning (Cost Waste)"]
O1[Buy 100 Servers for Peak Load] --> O2[Actual Average Load Only 20%]
O2 --> O3["80% Capacity Idle, Bills Keep Coming"]
end
subgraph Under["Under-Provisioning (System Failure)"]
U1[Buy 20 Servers to Match Normal Budget] --> U2["Traffic Spikes During Flash Sale / Events"]
U2 --> U3["Overload -> Server Crash -> Customers Leave"]
end
subgraph Elastic["Elastic Cloud (Optimal & Adaptive)"]
E1[Start with 20 Servers] --> E2[Automatically Scale Up to 100 When Traffic Is High]
E2 --> E3[Automatically Scale Down to 20 When Traffic Drops]
endOver-provisioning: The Budget-Waste Trap #
In the over-provisioning scenario, IT teams bought excess capacity to anticipate peak traffic (for example, year-end promotions or Harbolnas). The problem is that those peaks usually only happen for a few hours or days a year. For the remaining 360 days, those expensive servers sat idle in the data center, consuming electricity, cooling, and rack space without producing any business value. The average utilization of traditional data centers often sat at just 10% to 15%.
Under-provisioning: The Risk of Losing Business #
Conversely, in the under-provisioning scenario, IT teams bought as few servers as possible to save budget. When an application suddenly went viral or an unexpected traffic spike hit, servers immediately ran out of resources. As a result, the application became slow or died entirely. This caused direct financial loss for the business and damaged the company’s reputation with users.
The cloud solves this dilemma by introducing elasticity. Infrastructure capacity in the cloud is no longer static; it dynamically follows the actual traffic curve. You no longer need to guess peak capacity; you simply let the system scale automatically.
Procurement Time That Stifles Innovation #
In the traditional infrastructure era, adding capacity wasn’t a matter of clicking a button in a console. There was a very long supply chain and procurement bureaucracy.
flowchart TD
subgraph Trad["Traditional Server Procurement Process (4-12 Weeks)"]
T1[Engineer Identifies Requirements] --> T2[Submit Purchase Request to Procurement]
T2 --> T3["Management, Finance, & Security Approval"]
T3 --> T4["Tender / Price Negotiation with Vendor"]
T4 --> T5[Purchase Order Sent to Vendor]
T5 --> T6[Hardware Production & Delivery Process]
T6 --> T7["Hardware Received, Assembled, & Wired"]
T7 --> T8["OS, Hypervisor, & Network Installation"]
T8 --> T9[Handover to Application Team]
end
subgraph Cld["Cloud Provisioning (2-10 Minutes)"]
C1[Engineer Identifies Requirements] --> C2["Run Terraform Script / API Call"]
C2 --> C3[Platform Allocates Resources Automatically]
C3 --> C4[Server Ready to Use]
endLong procurement times weren’t just a technical speed issue — they hampered an organization’s ability to experiment. If a startup team wanted to test a new feature idea, they had to wait weeks just to get a trial server. If the experiment failed, the time and procurement cost invested were wasted.
With the cloud, the provisioning process is defined as code (Infrastructure as Code). Engineers can spin up hundreds of servers for experiments in minutes, test the application, and delete them immediately when done — paying only a few cents for the duration of the test.
The Capital Expenditure (CapEx) Burden #
Traditional infrastructure requires a large upfront capital investment (Capital Expenditure) before a single line of code runs in a production environment. This is an extremely high barrier to entry, especially for startups and new innovation projects.
flowchart TD
subgraph Cap["CapEx (Traditional Infrastructure)"]
direction TB
C_Start["Month 0 (Initial Investment)"] -->|"Rp 8 Billion"| C_HW["Buy Server Hardware, Storage, Router, & Switch"]
C_HW --> C_DC["Build/Rent Data Center Space & Generator"]
C_DC --> C_Life["3-5 year lifecycle"] -->|"Depreciation & New Hardware"| C_Refresh["Buy New Hardware (Reinvestment)"]
end
subgraph Op["OpEx (Cloud Computing)"]
direction TB
O_Start["Month 0"] -->|"Pay Rp 0"| O_Serving["Start Serving Applications"]
O_Serving -->|"Month 1: Rp 2 Million"| O_Billing["Pay Only for Resources Used"]
O_Billing -->|"Month 2: Rp 5 Million (Traffic Up)"| O_ScaleUp["Costs Scale with Application Size"]
O_ScaleUp -->|"Month 3: Rp 1.5 Million (Traffic Down)"| O_ScaleDown["Costs Drop as Load Drops"]
endThe Financial Risk of CapEx #
This large initial investment carries very high financial risk. If the project fails or the product isn’t accepted by the market, the billions of rupiah spent on physical servers can’t be fully recovered. The hardware depreciates quickly and becomes a dead asset.
The Financial Flexibility of OpEx #
The shift to the Operational Expenditure (OpEx) model in the cloud changes the game. You don’t buy hardware; you rent it by the second or by the minute. Budget that used to be allocated to buying iron (servers) can now be spent entirely on hiring top talent or marketing the product. This democratizes access to world-class technology infrastructure.
Operational Overhead That Drains Focus #
Running your own data center demands managing an entire ecosystem of physical and non-physical support. These tasks are extremely time-consuming and divert engineering teams’ focus from the business’s core product.
flowchart TD
subgraph OnPrem["Traditional IT Team (Focused on Hardware Operations)"]
direction TB
OP1[Replace Failed Hard Drives & RAM]
OP2[Manage Room Temperature & Data Center AC]
OP3[Monitor Generator Backup & Fuel]
OP4[Handle Network Cables & Physical Switches]
OP_Focus["Only 20% of Time for Improving Application Features"]
OP1 & OP2 & OP3 & OP4 --> OP_Focus
end
subgraph CloudNative["Cloud-Native IT Team (Focused on Business Value)"]
direction TB
CN1[Write Infrastructure-as-Code Scripts]
CN2[Optimize Code & Database Queries]
CN3[Improve Application Security]
CN4[Analyze User Experience Performance]
CN_Focus["80% of Time Focused on Product Quality & Users"]
CN1 & CN2 & CN3 & CN4 --> CN_Focus
endLow-level operational tasks — the undifferentiated heavy lifting — like maintaining air conditioners, making sure generators have enough fuel, and replacing failed hard drives provide no direct competitive value to the product. Users don’t care how tidy the network cables are in your data center; they only care whether your application works quickly and reliably.
The cloud takes over all this physical overhead through the shared responsibility model. The provider handles hardware maintenance, power redundancy, cooling, and physical security of the data center building, while your team can focus 100% on writing application code and business innovation.
Slow and Expensive Geographic Scalability #
Serving users across global regions with traditional infrastructure is an extremely slow process that costs a fortune.
flowchart TD
subgraph TradGlobal["Traditional Physical Expansion (6-18 Months)"]
direction TB
TG1[Rent Colocation Space in Tokyo & Frankfurt] --> TG2[Send Network Engineering Team Abroad]
TG2 --> TG3[Import Hardware & Negotiate with Local ISPs]
TG3 --> TG4[Manually Configure Cross-Continent Data Replication]
end
subgraph CloudGlobal["Global Cloud Expansion (Minutes)"]
direction TB
CG1[Pick Target Region in Cloud Console] --> CG2["Adjust Terraform / Cloud Config Code"]
CG2 --> CG3["Terraform Apply (Infrastructure Ready Across Countries)"]
endIf your application initially runs in Jakarta, and you want to expand to serve users in Europe or America, placing physical servers globally takes months of logistics, customs, and local data center negotiations. High network latency (from the physical distance between a Jakarta data center and users in America) makes the user experience terrible.
Global cloud providers have private fiber optic backbone networks connecting dozens of regions worldwide. You can duplicate your application architecture to a US or European region by changing a single line in your infrastructure code — without sending a single engineer abroad.
Disaster Recovery (DR) Limitations #
Building a reliable Disaster Recovery strategy in the traditional infrastructure era was a luxury only giant corporations could afford, because it required multiplied investment costs.
flowchart TD
subgraph ActivePassive["Active-Passive DR (Downtime on Failover)"]
AP_LB["Load Balancer"] -->|"100% Traffic"| AP_Pri["Primary DC (Active)"]
AP_Pri -. "Replication (Sync/Async)" .-> AP_Sec["Secondary DC (Standby)"]
AP_LB -. "Failover (Takes Time)" .-> AP_Sec
end
subgraph ActiveActive["Active-Active DR (Zero Downtime)"]
AA_LB["Load Balancer"] -->|"50% Traffic"| AA_A["AZ-1a (Active)"]
AA_LB -->|"50% Traffic"| AA_B["AZ-1b (Active)"]
AA_A <-->|"Fast & synchronous replication"| AA_B
endTo have good disaster protection traditionally, you had to rent a second data center (secondary data center) in a different geographic location to avoid the same natural disasters (earthquakes, floods). You had to buy backup hardware with similar specifications and keep it running continuously, just to receive data synchronization from the primary data center. That means paying 2x infrastructure costs for capacity that was rarely used.
Disaster Recovery Advantages in the Cloud: #
- Built-in Multi-AZ Redundancy: Managed services in the cloud (like databases or object storage) have automatic data replication between Availability Zones (AZs), synchronously, without complicated additional license fees.
- Pilot Light & Warm Standby: You don’t need to keep an entire backup server fleet fully running in a DR region. You can leave it off or at the smallest size (pilot light), then use automation to scale it up within minutes when disaster strikes.
- Ease of Testing: You can easily run disaster recovery drills by duplicating the entire architecture with Infrastructure as Code into a test environment, without disrupting production operations.
Summary #
- Traditional capacity planning is always wrong — either over-provisioning (budget waste) or under-provisioning (system crash risk). The cloud solves this with real-time elasticity.
- 4–12 week procurement times stifle innovation — the cloud shortens provisioning to minutes. This enables fast experimentation and accelerates time-to-market.
- Large upfront CapEx drains capital — the cloud’s OpEx model lets organizations pay for what they use and allocate capital to core product development.
- Data center operational overhead diverts focus — maintaining hardware and physical facilities moves to the provider, freeing IT teams to focus on business value.
- Geographic expansion becomes easy — deploying applications around the world can be done in minutes through the provider’s global infrastructure.
- Disaster recovery becomes affordable and reliable — built-in Multi-AZ features, automatic data replication, and IaC make disaster recovery no longer the monopoly of giant companies.
← Previous: Cloud Evolution Next: Myths and Misconceptions →