Skip to content
CertDirectory.io
Back to the blog
8 min read

Heroku කියන්නේ මොකක්ද?

Kavinda Dilshan10 Oct 2026

Heroku කියන්නේ මොකක්ද? – Code එකෙන් Live Application එකක් වෙන්න යන ලේසිම පාරක්

Developer කෙනෙක් විදිහට අපිට හරිම exciting moment එකක් තියෙනවා.

Days ගණනක් code කරපු Application එක...

අන්තිමට browser එකකින් open වෙලා,

“It’s Live!”

කියන moment එක.

හැබැයි ඒ moment එකට එන්න කලින් traditional විදිහට කරන්න තියෙන දේවල් ගොඩක් තියෙනවා.

Server එකක් create කරන්න.

Operating System configure කරන්න.

Runtime install කරන්න.

Dependencies setup කරන්න.

Web Server configure කරන්න.

Security ගැන බලන්න.

Deployment configure කරන්න.

Monitoring setup කරන්න.

Application එක scale කරන්න.

Code එක ලියලා ඉවර වුණත්...

Infrastructure story එක තවම පටන් ගත්තේ විතරයි.

ඒ complexity එක අඩු කරන්න හදපු platforms වලින් ඉතාම ජනප්‍රිය එකක් තමයි Heroku.


Heroku කියන්නේ මොකක්ද?

සරලව කියනවා නම්,

Heroku කියන්නේ Developers ලාට Applications build, deploy, manage සහ scale කරන්න පුළුවන් Cloud Platform එකක්.

Heroku එක Platform as a Service — PaaS model එකක්.

ඒ කියන්නේ Developer කෙනෙක්ට underlying servers, hardware සහ infrastructure වල ගොඩක් complexity එක manage කරන්න අවශ්‍ය නැහැ.

Developer කෙනාට තමන්ගේ Application එක ගැන focus කරන්න පුළුවන්.

Heroku අදත් තමන්ව fully managed, container-based PaaS එකක් ලෙස describe කරන අතර, apps deploy, manage සහ scale කිරීම සඳහා platform එක infrastructure complexity එකෙන් developer වෙන් කරනවා.


මේක example එකකින් බලමු

හිතන්න ඔයා Python වලින් web application එකක් හදලා තියෙනවා කියලා.

Local computer එකේ Application එක perfect.

දැන් ඒක Internet එකට දාන්න ඕන.

Traditional approach එකේදී:

Server එකක් ගන්න ඕන.

Linux configure කරන්න ඕන.

Python install කරන්න ඕන.

Application dependencies install කරන්න ඕන.

Nginx වගේ Web Server එකක් setup කරන්න ඕන.

SSL configure කරන්න ඕන.

Application process එක manage කරන්න ඕන.

Server එක crash වුණොත් recover කරන්න ඕන.

Suddenly...

Software Developer කෙනෙක්ගේ simple requirement එක,

“මගේ application එක online කරන්න ඕන”

කියන එක Infrastructure project එකක් වෙලා.

Heroku මේ experience එක වෙනස් කරන්න try කරනවා.

ඔයා code එක deploy කරනවා.

Heroku platform එක ඒ code එක run කරන්න අවශ්‍ය managed environment එක provide කරනවා.

ඒක තමයි PaaS වල power එක.


Heroku සහ PaaS අතර connection එක

අපි කලින් IaaS, PaaS, SaaS ගැන කතා කළා.

Heroku කියන්නේ PaaS එකට හොඳ real-world example එකක්.

IaaS එකකදී:

“Server එක දෙන්න. ඉතුරු ටික මම manage කරන්නම්.”

PaaS එකකදී:

“මගේ Application එක දෙන්නම්. Run කරන්න platform එක ඔයා manage කරන්න.”

Heroku මේ දෙවැනි model එකට අයිති.

Developer කෙනාට Server එකේ Operating System patch කරනවාට වඩා,

Application එක improve කරන්න time spend කරන්න පුළුවන්.

Infrastructure engineer නොවී Application එක Internet එකට ගෙනියන්න පුළුවන්.


Heroku වල “Dyno” කියන්නේ මොකක්ද?

Heroku ගැන ඉගෙනගන්නකොට අනිවාර්යයෙන් අහන්න ලැබෙන term එකක්:

Dyno

Dyno කියන්නේ Heroku Application එකේ code run වෙන isolated container environment එකක්.

Heroku තමන්ගේ apps run කරන containers වලට Dynos කියනවා. මේ containers application code එක සහ dependencies run කරන්න isolated Linux-based environment එකක් ලබාදෙනවා.

Simple විදිහට හිතන්න:

Your Code → Heroku → Dyno → Running Application

ඔයාගේ Application එකට traffic වැඩි වෙනවා නම් additional Dynos use කරලා capacity වැඩි කරන්න පුළුවන්.

මේක තමයි scaling concept එකටත් සම්බන්ධ වෙන්නේ.


Application එක deploy වෙන්නේ කොහොමද?

මේ process එකේ ලස්සනම part එක simplicity එක.

Developer කෙනා source code එක Heroku වෙත deploy කරනවා.

Platform එක application එකේ language සහ dependencies හඳුනාගෙන, application එක run කරන්න අවශ්‍ය build process එක handle කරනවා.

Heroku documentation අනුව build process එක application source code, dependencies සහ start command එක මත පදනම්ව runnable artifact එකක් සකස් කරලා Dyno environment එකක application එක start කරනවා.

Developer කෙනාට experience එක roughly මේ වගේ:

Write Code

↓

Push Code

↓

Heroku Builds Application

↓

Application Runs

↓

Users Access It

ඒ simplicity එක නිසාම Heroku ගොඩක් developers ලා අතර popular වුණා.


“Server එක කොහෙද?”

මේ question එක interesting.

Heroku use කරන Developer කෙනෙක්ට බොහෝ වෙලාවට physical server එක ගැන care කරන්න අවශ්‍ය නැහැ.

CPU එක physically තියෙන්නේ කොහෙද?

Server rack එක මොකක්ද?

Operating System patches කවුද manage කරන්නේ?

Underlying infrastructure එක කොහොමද orchestrate වෙන්නේ?

මේ complexity එක platform එක hide කරනවා.

මේකට තමයි Abstraction කියන්නේ.

Cloud Computing වල powerful idea එකක්.

Complexity disappear වෙන්නේ නැහැ.

Someone else manages it for you.


Heroku වලින් මොන Languages use කරන්න පුළුවන්ද?

Heroku modern application development සඳහා languages සහ frameworks කිහිපයක් support කරනවා.

උදාහරණ විදිහට:

  • Node.js

  • Python

  • Java

  • Ruby

  • PHP

  • Go

  • Scala

  • .NET

වගේ technologies platform එකේ භාවිතා කරන්න පුළුවන්.

ඒ නිසා Heroku එක එක programming language එකකට විතරක් සීමා වෙලා නැහැ.


Database එකක් ඕන නම්?

Application එකකට Server එක විතරක් ඇති වෙන්නේ නැහැ.

Database එකක් ඕන වෙන්න පුළුවන්.

Caching ඕන.

Logging ඕන.

Monitoring ඕන.

Email service එකක් ඕන.

Search service එකක් ඕන.

Heroku ecosystem එකේ managed data services සහ Add-ons තියෙන නිසා මේ වගේ external capabilities Application එකකට connect කරන්න පුළුවන්.

උදාහරණයක් විදිහට database එකක් manually server එකකට install කරනවා වෙනුවට managed database service එකක් connect කරන්න පුළුවන්.

Again...

Less infrastructure work. More application work.


Heroku developers ලාට attractive වෙන්නේ ඇයි?

1. Deployment Simple

Developer කෙනෙක්ට infrastructure configuration ගැන deep knowledge එකක් නැති වුණත් Application එක deploy කරන්න පුළුවන්.

Especially beginners ලාට මේක powerful.

Local machine එකෙන් Internet එකට application එක ගෙනියන process එක තේරුම්ගන්න පුළුවන්.


2. Infrastructure Complexity අඩුයි

Operating System management.

Server provisioning.

Runtime management.

Basic platform operations.

මේවා platform එක handle කරන නිසා Developer කෙනාට තමන්ගේ Product එකට focus කරන්න පුළුවන්.


3. Faster Development

Startup එකකට idea එකක් තියෙනවා කියලා හිතන්න.

ඔවුන්ට මාස ගණනක් infrastructure build කරන්න ඕන නැහැ.

Prototype එකක් හදන්න.

Deploy කරන්න.

Users ලාට දෙන්න.

Feedback ගන්න.

Improve කරන්න.

Again deploy කරන්න.

මේ speed එක modern software development වල priceless.


Startup එකක් ගැන හිතන්න

Developers දෙන්නෙක් ඉන්න small startup එකක්.

Great idea එකක් තියෙනවා.

හැබැයි dedicated DevOps Team එකක් නැහැ.

Cloud Engineers ලා නැහැ.

Infrastructure Team එකක් නැහැ.

ඔවුන්ට choice දෙකක් තියෙන්න පුළුවන්.

Option 1

Servers manually build කරන්න.

Networking configure කරන්න.

Deployment pipeline build කරන්න.

Monitoring setup කරන්න.

Infrastructure maintain කරන්න.

Option 2

Managed platform එකකට application එක deploy කරලා product එක build කරන එකට focus කරන්න.

Small team එකකට දෙවැනි option එක sometimes huge advantage එකක්.

මොකද startup එකේ most valuable resource එක money විතරක් නෙවෙයි.

Time.


හැබැයි Heroku හැම Application එකකටම හොඳද?

නැහැ.

මේක වැදගත්.

Good Engineer කෙනෙක් tool එකකට emotional attachment එකක් තියාගන්නේ නැහැ.

Requirement එක බලනවා.

Heroku වගේ PaaS එකක් simplicity ලබාදෙනවා.

හැබැයි simplicity වෙනුවෙන් infrastructure level control එකේ කොටසක් platform එකට දෙන්න වෙනවා.

Highly customized networking configuration එකක් ඕන නම්?

Special hardware requirements තියෙනවා නම්?

Very specific infrastructure architecture එකක් ඕන නම්?

Extremely large-scale system එකකට custom optimization ඕන නම්?

එතකොට IaaS, containers, Kubernetes හෝ වෙන architecture එකක් suitable වෙන්න පුළුවන්.

මේක Cloud Engineering වල recurring lesson එකක්:

Convenience සහ Control අතර trade-off එකක් තියෙනවා.


Heroku vs AWS EC2 – Simple Difference එක

හිතන්න Application එකක් deploy කරන්න ඕන කියලා.

AWS EC2 වගේ IaaS approach එකක්

Virtual Machine එකක් ගන්නවා.

Operating System manage කරනවා.

Runtime configure කරනවා.

Application deploy කරනවා.

Infrastructure ගැන වැඩි control එකක් තියෙනවා.

Responsibility එකත් වැඩියි.

Heroku වගේ PaaS approach එකක්

Application code එක deploy කරනවා.

Platform එක infrastructure complexity එකේ විශාල කොටසක් manage කරනවා.

Control අඩුයි.

Developer convenience වැඩියි.

මෙතන “හොඳ එක” එකක් නැහැ.

Use case එක අනුව solution එක වෙනස්.


Heroku අපිට උගන්වන ලොකු lesson එක

Heroku ගැන ඉගෙනගන්න එක product එකක් ගැන ඉගෙනගන්න එක විතරක් නෙවෙයි.

මේක Cloud Computing වල ඉතාම powerful concept එකක් teach කරනවා.

Abstraction.

Physical Server එකෙන්...

Virtual Machine එකට.

Virtual Machine එකෙන්...

Container එකට.

Container එකෙන්...

Platform එකට.

අපි ටික ටික infrastructure complexity එකෙන් ඉහළට එනවා.

Developer කෙනාට eventually කියන්න පුළුවන්:

“මට Server එක manage කරන්න ඕන නැහැ. මට මගේ Application එක run කරන්න ඕන.”

PaaS වල whole philosophy එක almost ඒ sentence එක ඇතුළේ තියෙනවා.


DevOps Engineer කෙනෙක් නම් Heroku ගැන දැනගන්න ඕන ඇයි?

Sometimes people think:

“Heroku infrastructure hide කරනවා නම් DevOps ඉගෙනගන්න කෙනෙක්ට ඒක වැදගත් නෑ නේද?”

Actually opposite.

Heroku use කරනකොට abstraction එකේ value එක තේරෙනවා.

ඊට පස්සේ underlying infrastructure ඉගෙනගන්නකොට questions එනවා.

Heroku automatic build එක internally solve කරන්නේ මොන problem එකද?

Dyno කියන්නේ container concept එකට කොහොමද relate වෙන්නේ?

Scaling happen වෙන්නේ කොහොමද?

Configuration manage කරන්නේ කොහොමද?

Logs collect වෙන්නේ කොහොමද?

Application failure එකක් handle කරන්නේ කොහොමද?

මේ questions තමයි deeper Cloud සහ DevOps knowledge එකට door එක open කරන්නේ.


Developer කෙනෙක්ට තියෙන beautiful feeling එක

Programming ඉගෙනගන්න මුල් දවස්වල අපි code එක ලියන්නේ අපේ laptop එකේ.

localhost

එතනින් එහාට Application එකක් ගෙනියන එක sometimes mysterious.

හැබැයි පළවෙනි වතාවට තමන් හදපු Application එක Internet එකේ live වෙලා...

තමන්ගේ phone එකෙන් open වෙලා...

වෙන කෙනෙක්ට link එකක් send කරලා...

ඔවුන් ඒ Application එක use කරනවා දකිද්දී...

ඒ feeling එක වෙනම එකක්.

එතනදී code එක files ටිකක් විතරක් නෙවෙයි.

එක Product එකක් වෙලා.

Heroku වගේ platforms developers ලාට ඒ gap එක cross කරන්න ගොඩක් ලේසි කළා.


අවසානයේ...

Heroku කියන්නේ simply “website hosting service” එකක් විතරක් නෙවෙයි.

එක Platform as a Service model එක තේරුම්ගන්න හොඳ example එකක්.

Developer කෙනා කියනවා:

“මේ මගේ Code එක.”

Platform එක කියනවා:

“Infrastructure එක ගැන මම බලන්නම්. ඔයා Application එක build කරන්න.”

ඒක තමයි Heroku වල beauty එක.

Cloud Computing වල ultimate goal එක හැම වෙලාවෙම more servers manage කරන එක නෙවෙයි.

Sometimes goal එක:

Servers ගැන අඩුවෙන් හිතලා, Users ලාට value දෙන software එක ගැන වැඩියෙන් හිතන එක.

Technology evolve වෙනවා.

Platforms වෙනස් වෙනවා.

Tools එනවා, යනවා.

හැබැයි මේ principle එක දිගටම තියෙනවා:

Good infrastructure should help developers build — not stand in their way.

Heroku cloud platform explained.png