Cloud computing je postao dominantan model za isporuku IT resursa i usluga. Umesto posedovanja i održavanja fizičke infrastrukture, organizacije sada mogu da iznajmljuju računarsku snagu, skladište, baze podataka i druge servise od cloud provajdera. Za DevOps inženjera, poznavanje cloud platformi je apsolutno neophodno, jer se većina modernih aplikacija deployuje i pokreće u cloudu. Ovaj tutorijal će vas provesti kroz osnovne koncepte cloud computinga i ključne servise tri vodeća cloud provajdera: Amazon Web Services (AWS), Microsoft Azure i Google Cloud Platform (GCP).
Zašto su Cloud platforme ključne u DevOps-u?
Cloud platforme donose brojne prednosti koje su u potpunosti usklađene sa DevOps principima:
Skalabilnost i elastičnost: Lako skaliranje resursa gore ili dole u zavisnosti od potreba, omogućavajući aplikacijama da se nose sa promenljivim opterećenjem.
Brzina i agilnost: Brzo provisioniranje resursa omogućava brži razvoj i deployment aplikacija.
Globalna dostupnost: Mogućnost deployovanja aplikacija u različitim geografskim regionima, poboljšavajući performanse i dostupnost za korisnike širom sveta.
Smanjenje operativnih troškova: Eliminacija potrebe za kupovinom i održavanjem hardvera, plaćanje samo za korišćene resurse (pay-as-you-go model).
Automatizacija: Cloud platforme nude bogate API-je i alate za automatizaciju provisioninga i upravljanja infrastrukturom (IaC).
Managed servisi: Cloud provajderi nude managed servise (npr. managed baze podataka, keš servisi) koji smanjuju operativno opterećenje za timove.
Osnovni koncepti Cloud Computinga
Modeli usluga
IaaS (Infrastructure as a Service): Pruža osnovne računarske resurse (virtuelne mašine, mreže, skladište). Korisnik ima najveću kontrolu nad infrastrukturom. Primeri: AWS EC2, Azure Virtual Machines, GCP Compute Engine.
PaaS (Platform as a Service): Pruža platformu za razvoj, pokretanje i upravljanje aplikacijama, apstrahujući osnovnu infrastrukturu. Korisnik se fokusira na kod. Primeri: AWS Elastic Beanstalk, Azure App Service, GCP App Engine.
SaaS (Software as a Service): Pruža kompletnu softversku aplikaciju putem interneta. Korisnik samo koristi aplikaciju. Primeri: Gmail, Salesforce, Dropbox.
Modeli deploymenta
Public Cloud: Cloud resursi su u vlasništvu i pod upravom trećeg provajdera i dostupni su javno putem interneta. Primeri: AWS, Azure, GCP.
Private Cloud: Cloud resursi su ekskluzivno namenjeni jednoj organizaciji. Mogu biti hostovani on-premise ili od strane trećeg provajdera.
Hybrid Cloud: Kombinacija public i private cloud okruženja, omogućavajući deljenje podataka i aplikacija između njih.
Vodeće Cloud platforme
Amazon Web Services (AWS)
AWS je najveći i najzreliji cloud provajder, sa širokim spektrom servisa.
Ključni servisi za DevOps:
Compute:
EC2 (Elastic Compute Cloud): Virtuelne mašine (VMs) u cloudu. Omogućava potpunu kontrolu nad instancama.
Lambda: Serverless compute servis. Pokreće kod bez provisioniranja ili upravljanja serverima.
ECS (Elastic Container Service) / EKS (Elastic Kubernetes Service): Managed servisi za pokretanje Docker kontejnera i Kubernetes klastera.
Storage:
S3 (Simple Storage Service): Objektno skladište za skalabilno i trajno skladištenje podataka (fajlova, slika, video zapisa).
EBS (Elastic Block Store): Blok skladište za EC2 instance (kao hard disk za VM).
Networking:
VPC (Virtual Private Cloud): Izolovana virtuelna mreža u AWS cloudu. Omogućava definisanje podmreža, IP adresa, rutiranja.
Route 53: DNS web servis.
ELB (Elastic Load Balancing): Distribuira dolazni saobraćaj na više EC2 instanci.
Cloud SQL: Managed relacione baze podataka (MySQL, PostgreSQL, SQL Server).
Cloud Datastore / Firestore: Managed NoSQL baza podataka.
Management & Governance:
Cloud IAM: Upravljanje identitetima i pristupom.
Cloud Monitoring / Cloud Logging: Monitoring i logovanje.
Deployment Manager: Infrastructure as Code za GCP resurse.
Praktičan primer: Postavljanje web aplikacije na AWS EC2
Ovaj primer će vas provesti kroz korake za ručno postavljanje jednostavne web aplikacije (Nginx web server) na AWS EC2 instancu. Iako se u produkciji preferira automatizacija (IaC), razumevanje manuelnih koraka je važno za osnovno razumevanje.
Preduslovi:
AWS nalog sa pristupom EC2 servisu.
SSH klijent (npr. OpenSSH na Linux/macOS, PuTTY na Windowsu).
Koraci:
Pokretanje EC2 instance:
Prijavite se na AWS Management Console.
Idite na EC2 servis.
Kliknite na Launch instances.
Odaberite Amazon Linux 2 AMI (ili Ubuntu Server).
Odaberite t2.micro (Free Tier eligible).
Kreirajte novi Key pair (npr. my-ec2-key.pem) i preuzmite ga. Čuvajte ga na sigurnom mestu i postavite mu odgovarajuće dozvole (chmod 400 my-ec2-key.pem).
Konfigurišite Network settings: Kreirajte novu Security group. Dozvolite SSH sa vaše IP adrese (ili Anywhere za testiranje, ali nije preporučljivo za produkciju) i HTTP (port 80) sa Anywhere.
Kliknite na Launch instance.
Povezivanje na EC2 instancu putem SSH-a:
Nakon što se instanca pokrene (status Running), pronađite njenu Public IPv4 address u EC2 konzoli.
Otvorite terminal i povežite se: bash ssh -i "/path/to/my-ec2-key.pem" ec2-user@<Public_IPv4_Address> (Ako ste odabrali Ubuntu, korisničko ime je ubuntu umesto ec2-user).
Instalacija Nginx web servera:
Nakon što ste se uspešno povezali, ažurirajte pakete: bash sudo yum update -y # Za Amazon Linux # sudo apt update -y # Za Ubuntu
Instalirajte Nginx: bash sudo yum install nginx -y # Za Amazon Linux # sudo apt install nginx -y # Za Ubuntu
Omogućite Nginx da se pokreće pri podizanju sistema: bash sudo systemctl enable nginx
Provera web aplikacije:
Otvorite web pretraživač i unesite Public IPv4 address vaše EC2 instance. Trebalo bi da vidite podrazumevanu Nginx dobrodošlicu stranicu.
Ovaj primer je pojednostavljen i služi samo za demonstraciju. U realnom scenariju, koristili biste IaC alate (Terraform, CloudFormation) za automatizaciju ovih koraka, kao i CI/CD pipeline za deployment aplikacije.
Zaključak
Cloud platforme su transformisale IT industriju i postale su nezaobilazni deo DevOps prakse. Razumevanje osnovnih koncepata cloud computinga i poznavanje ključnih servisa vodećih cloud provajdera (AWS, Azure, GCP) je od suštinskog značaja za svakog DevOps inženjera. Kontinuirano učenje i praktično iskustvo sa cloud platformama će vam omogućiti da dizajnirate, implementirate i upravljate skalabilnim, otpornim i efikasnim rešenjima u cloudu.