IaaS, PaaS, SaaS කියන්නේ මොනවද? – Cloud Computing එකේ මූලික Models තුන සරලව
Cloud Computing ඉගෙනගන්න පටන් ගත්තම අනිවාර්යයෙන්ම හම්බවෙන terms තුනක් තියෙනවා.
IaaS PaaS SaaS
මුලින් බලද්දී නම් මේවා ටිකක් confusing.
“මේ තුනේ වෙනස මොකක්ද?”
“Server එක කවුද manage කරන්නේ?”
“Developer කෙනාට මොනවද කරන්න තියෙන්නේ?”
“Company එකට මොන responsibility එකද?”
මේ questions ටික almost හැම beginner කෙනෙක්ටම තියෙනවා.
හැබැයි concept එක තේරුම් ගත්තම මේ තුන හරිම ලේසි.
අපි අද ඒක simple example එකක් එක්ක බලමු.
මුලින්ම මේක හිතන්න
හිතන්න ඔයාට Pizza එකක් කන්න ඕන කියලා.
Pizza එක කන්න ඔයාට options කිහිපයක් තියෙනවා.
Ingredients ටික ගෙනල්ලා, dough එක හදලා, sauce එක හදලා, oven එක manage කරලා, Pizza එක මුල ඉඳලාම ඔයාම හදනවා.
Ready-made dough සහ ingredients ටිකක් use කරලා, final cooking එක ඔයා කරනවා.
Restaurant එකකට ගිහින් complete Pizza එක order කරනවා.
Cloud Computing වල IaaS, PaaS, SaaS කියන models තුනත් මේ වගේ.
Main difference එක තමයි:
“කොච්චර දේවල් අපි manage කරනවද, කොච්චර දේවල් Cloud Provider එක manage කරනවද?”
1. IaaS – Infrastructure as a Service
IaaS කියන්නේ Cloud Provider එක අපිට basic infrastructure resources ලබාදෙන model එක.
උදාහරණ:
Virtual Machines
Storage
Networking
Load Balancers
Firewalls
IP Addresses
හැබැයි මේකේ control වැඩියි.
ඒත් responsibility එකත් වැඩියි.
Cloud Provider එක physical hardware, data center, networking infrastructure වගේ base layer එක manage කරනවා.
හැබැයි operating system, application, patches, runtime, configurations වගේ දේවල් manage කරන්න වෙන්නේ අපිට.
සරල example එකක්
ඔයා AWS EC2 instance එකක් create කරනවා කියලා හිතන්න.
AWS එක ඔයාට Virtual Machine එක ලබාදෙනවා.
හැබැයි ඒ machine එක ඇතුළේ:
Linux install/configure කරන එක
Security updates කරන එක
Nginx install කරන එක
Application deploy කරන එක
Monitoring setup කරන එක
වගේ දේවල් බොහෝවිට ඔයාටම කරන්න වෙනවා.
ඒ නිසා IaaS කියන්නේ:
“Infrastructure එක provider එකෙන්, control එක වැඩියෙන් අපිට.”
IaaS Examples
Amazon EC2
Azure Virtual Machines
Google Compute Engine
DigitalOcean Droplets
IaaS හොඳ කාටද?
Infrastructure එක ගැන වැඩි control එකක් ඕන teams වලට.
Custom configurations තියෙන systems වලට.
Legacy applications migrate කරන companies වලට.
Cloud Engineers සහ DevOps Engineers ලාට IaaS ගැන හොඳ understanding එකක් තිබ්බොත් ගොඩක් වැදගත්.
2. PaaS – Platform as a Service
PaaS වලදී Cloud Provider එක infrastructure එක විතරක් නෙවෙයි, application run කරන්න අවශ්ය platform එකත් manage කරනවා.
මෙතන Developer කෙනාට server එක ගැන ගොඩක් worry වෙන්න අවශ්ය නැහැ.
ඔයා code එක develop කරනවා.
Platform එකට deploy කරනවා.
Provider එක පිටිපස්සේ infrastructure manage කරනවා.
ඒක developer කෙනෙක්ට ලොකු relief එකක්.
Example එකක්
හිතන්න ඔයා Node.js Application එකක් හදනවා කියලා.
IaaS use කරනවා නම්:
Server එක create කරන්න ඕන.
Node.js install කරන්න ඕන.
Web server configure කරන්න ඕන.
Security patches manage කරන්න ඕන.
Scaling ගැන බලන්න ඕන.
හැබැයි PaaS එකක් use කරනවා නම්?
ඔයා code එක deploy කරනවා.
Platform එක application run කරනවා.
Server provisioning, runtime, scaling වගේ දේවල් බොහෝවිට provider manage කරනවා.
Developer කෙනාට තමන්ගේ code එක ගැන focus කරන්න පුළුවන්.
මේක තමයි PaaS එකේ beauty එක.
PaaS Examples
Heroku
Google App Engine
Azure App Service
AWS Elastic Beanstalk
PaaS වල ලොකුම වාසිය
Development speed.
Developer කෙනෙක්ට infrastructure maintain කරනවාට වඩා product එක build කරන එකට time spend කරන්න පුළුවන්.
ඒක startups සහ fast-moving engineering teams වලට ගොඩක් powerful.
හැබැයි trade-off එකක් තියෙනවා
Control එක අඩු වෙනවා.
Platform එක provider manage කරන නිසා custom configurations වලට limitations තියෙන්න පුළුවන්.
එහෙමයි Cloud එක.
Convenience වැඩි වෙන තරමට control එක ටිකක් අඩු වෙන්න පුළුවන්.
3. SaaS – Software as a Service
SaaS කියන්නේ අපි හැමෝම දැනටමත් use කරන model එක.
හැබැයි අපිට ඒක Cloud Computing model එකක් කියලා හිතෙන්නේ නැති වෙන්න පුළුවන්.
SaaS වලදී complete application එක provider විසින් manage කරනවා.
User කෙනාට infrastructure ගැන කිසිම දෙයක් බලන්න අවශ්ය නැහැ.
Server එක කොහෙද?
Database එක මොකක්ද?
Operating system එක මොකක්ද?
Updates දාන්නේ කවුද?
මේ කිසිම දෙයක් user කෙනාගේ problem එකක් නෙවෙයි.
User කෙනාට තියෙන්නේ service එක use කරන එක.
SaaS Examples
Gmail
Google Docs
Microsoft 365
Slack
Salesforce
Dropbox
Gmail use කරනකොට Gmail එක run වෙන්නේ කොහොමද කියලා අපි server configure කරනවද?
නැහැ.
අපි account එකට login වෙනවා.
Email send කරනවා.
Service එක use කරනවා.
ඒ තමයි SaaS.
SaaS සරලව
“Software එක complete service එකක් විදිහට use කරන එක.”
IaaS vs PaaS vs SaaS
මේ තුනේ biggest difference එක:
Responsibility එක.
IaaS
Provider manage කරනවා:
Physical Servers
Storage
Networking
Virtualization
User manage කරනවා:
Operating System
Runtime
Applications
Data
Security Configurations
PaaS
Provider manage කරනවා:
Infrastructure
Operating System
Runtime
Platform
Developer manage කරනවා:
Application
Code
Data
SaaS
Provider almost everything manage කරනවා.
User කරන්නේ:
Login වෙනවා
Configure කරනවා
Software එක use කරනවා
Simple hierarchy එකක් විදිහට:
IaaS → වැඩි control, වැඩි responsibility
PaaS → balanced control, less infrastructure work
SaaS → least control, least management effort
Real-World Example එකක්
හිතන්න company එකකට Customer Support System එකක් ඕන කියලා.
IaaS Approach
Virtual Servers create කරනවා.
Operating Systems configure කරනවා.
Database install කරනවා.
Application deploy කරනවා.
Monitoring සහ backups manage කරනවා.
Everything almost team එකම manage කරනවා.
PaaS Approach
Application code එක build කරනවා.
PaaS platform එකකට deploy කරනවා.
Platform එක infrastructure, runtime, scaling වගේ දේවල් manage කරනවා.
SaaS Approach
Zendesk වගේ ready-made SaaS product එකක් subscribe කරනවා.
Account එක create කරනවා.
Users add කරනවා.
Use කරනවා.
මෙතන තමයි biggest lesson එක.
හැම problem එකකටම තමන්ගේම server හදන්න ඕන නැහැ.
Engineer කෙනෙක්ගේ smartness එක sometimes build කරන එකේ නෙවෙයි.
Already solved problem එකක් නැවත build නොකරන එකේ.
“හොඳම එක මොකක්ද?”
IaaS, PaaS, SaaS වලින් එකක් “best” කියලා general answer එකක් නැහැ.
Need එක අනුව choice එක වෙනස් වෙනවා.
Full control එකක් ඕන නම් IaaS.
Fast application development ඕන නම් PaaS.
Ready-made software solution එකක් ඕන නම් SaaS.
Good engineering කියන්නේ හැම වෙලාවෙම complicated solution එකක් තෝරන එක නෙවෙයි.
Problem එකට හරි abstraction level එක තෝරන එක.
ඒක තමයි වැදගත්.
Cloud Engineer කෙනෙක් මේ තුන දැනගන්න ඕන ඇයි?
Cloud Engineer කෙනෙක්ට server create කරන්න දැනගන්න එක විතරක් enough නෙවෙයි.
Business requirement එකක් අහලා:
“මේකට Infrastructure build කරන්න ඕනද?”
“Managed Platform එකක් use කරන්න පුළුවන්ද?”
“Already SaaS solution එකක් තියෙනවද?”
කියලා හිතන්න ඕන.
මොකද unnecessary infrastructure කියන්නේ unnecessary complexity.
Complexity වැඩි වුණොත්:
Cost වැඩි වෙනවා
Security risk වැඩි වෙනවා
Maintenance වැඩි වෙනවා
Engineers ලගේ time waste වෙනවා
ඒ නිසා sometimes best cloud architecture decision එක:
“මේක අපි build නොකරමු.”
මතක තියාගන්න ලේසිම විදිහ
IaaS කියන්නේ:
“මට infrastructure දෙන්න. ඉතුරු ටික මම manage කරන්නම්.”
PaaS කියන්නේ:
“මට application deploy කරන්න platform එකක් දෙන්න. Infrastructure ඔයා manage කරන්න.”
SaaS කියන්නේ:
“මට complete software එක දෙන්න. මම ඒක use කරන්නම්.”
ඔය lines තුන මතක තිබ්බොත් IaaS, PaaS, SaaS කවදාවත් confuse වෙන්නේ නැහැ.
අවසානයේ...
Cloud Computing වල ලස්සනම දේ තමයි හැම දෙයක්ම එකම level එකේ manage කරන්න ඕන නැති එක.
අපිට control ඕන තැන control ගන්න පුළුවන්.
Speed ඕන තැන platform එකක් use කරන්න පුළුවන්.
Already built solution එකක් තියෙන තැන SaaS use කරන්න පුළුවන්.
Technology ඉගෙනගන්නකොට tools ටික මතක තියාගන්නවාට වඩා, “ඇයි මේ model එක තියෙන්නේ?” කියලා තේරුම්ගන්න.
එතකොට AWS, Azure හෝ GCP ඉගෙනගන්නකොට services ටික isolated products වගේ පේන්නේ නැහැ.
ඒවා පිටිපස්සේ තියෙන thinking pattern එක පේන්න පටන් ගන්නවා.
ඒ moment එකේ තමයි Cloud Computing ඇත්තටම interesting වෙන්නේ.
