Blog

IBM Bluemix – Platform as a Service cloud platforma

IBM Bluemix slavit će treći rođendan u lipnju. Sigurni smo da je došao trenutak da i oprezniji IT arhitekti počnu ozbiljno računati na cloud paradigmu.
, 01.04.2017.

Evo nam skoro 2017. godina pred vratima – neke cloud platforme stare su već više od desetljeća, npr. Amazon Elastic Compute (kolovoz 2006). Druge su malo mlađe; IBM Bluemix slavit će treći rođendan u lipnju. Sigurni smo da je došao trenutak da i oprezniji IT arhitekti počnu ozbiljno računati na cloud paradigmu. Više je razloga za to, najočitiji su: uspostava DevOps metodologije razvoja, razvoj sustava arhitekturom mikroservisa, poliglotno programiranje, uvođenje agilnih principa kao što je izgradnja prototipate fleksibilnost u razvoju i deploymentu. Cloud nije nužan za realizaciju nabrojanih paradigmi, ali definitivno pomaže. Ponekad je jedina realna opcija (štedi vrijeme, novac). U ovom članku predstavit ćemo kako IBM Bluemix može pomoći u izgradnji vaših budućih modernih aplikacija.

Get your cloud together” – bluemix.com

Odmah na početku da utvrdimo gradivo: IBM Bluemix je PaaS platforma. Bluemix osigurava platformu za naše aplikacije i servise, dok mi brinemo samo o kodu naše aplikacije i podatkovnom sloju. U praksi to znači da mi zapakiramo programski kod i jednostavnom ga komandom pošaljemo u cloud. Nakon toga dovoljno je kliknuti start i naša aplikacija je spremna za korištenje. Doslovno je tako, nema sastančenja, odobravanja na više nivoa, deployment servera, čekanja da naš najdraži sistemaš nađe vremena za našu aplikaciju, provjere je li deployana baš upravo tražena verzija, a kada se pronađe bug ponavljanja cijele procedure. Štoviše, cijela procedura može biti još jednostavnija korištenjem Bluemix Live Sync servisa, koji će ažurirati cloud aplikaciju nakon spremanja promjene na razvojnom računalu.

Bluemix dolazi u četiri okusa: public, dedicated, private i local.

Public Bluemix je onaj pravi Bluemix. Javno je dostupan, s najvećim brojem dostupnih usluga, trenutačno njih preko 130! Započeti je jednostavno. Dovoljno je kreirati korisnički račun, pri čemu nije potrebno unijeti podatke o kreditnoj kartici. Kreiranjem računa započinje trial period u trajanju od 30 dana, u kojem možemo koristiti ukupno 2 GB RAM memorije za naše aplikacije. Istekom triala možemo nastaviti koristiti besplatnu količinu resursa, ali moramo registrirati podatke o kartici. Kroz kalendarski mjesec besplatno nam je ukupno 375 GB-sati (GB-hours). Gigabajt-sat je jedinica naplate na Bluemixu, 375 GB-sati je oko 31 dan korištenja kontejnera od pola GB. Naravno, gašenjem i paljenjem aplikacija moguće je optimizirati potrošnju resursa.

Servisi u Bluemixu raspoređeni su u 12 kategorija. Zbog kompletnosti i boljeg poimanja koje su nam sve funkcionalnosti na raspolaganju, navodimo sve kategorije. Kategorije su: Compute, Network, Storage, Data & Analytics, Watson, Internet of Things, APIs, DevOps, Security, Application Services, Mobile i Integrate. Već pregledom kategorija vidimo da su nam dostupne funkcionalnosti za razvoj različitih tipova aplikacija. Želimo li deployati Java, Node.JS, PHP ili Phyton aplikaciju dovoljno je zaviriti u kategoriju Compute kataloga servisa i pronaći ćemo već pripremljeni server/kontejner koji je spreman pokrenuti našu aplikaciju.

Kada Public Bluemix ne zadovoljava naše nefunkcionalne zahtjeve, tu je Bluemix Dedicated. Pojednostavljeno, Bluemix Dedicated možemo zamisliti kao kopiju javnog Bluemixa dostupnog samo nama. Kod Bluemix Dedicateda na raspolaganju nam je rezervirani hardver, fizički i mrežno odvojen od javnog. Time dobivamo veću razinu sigurnosti, privatnosti te osigurane performanse. Spajajući ga VPN-om s našim, on-premise IT-om, dobivamo produžetak naše postojeće infrastrukture.

Ako smo već značajno investirali u svoju infrastrukturu i ni pod kojim uvjetima aplikacija ni podaci ne smiju izaći izvan okvira naše ustanove, tada je Bluemix Local realna opcija. Bluemix Local isporučuje se kao as-a-service. IBM-ovi djelatnici isporučuju nam ga na pripremljenu infrastrukturu.

Servisi. Puno servisa.

Danas dići svoj cloud i nije tako teško. Potrebno je ponešto hardvera, virtualizacijska platforma ili OpenStack(IaaS) i CloudFoundry(PaaS). Bluemix je temeljen upravo na kombinaciji OpenStack i CloudFoundry platformi. Ipak postoji velika razlika između lokalne cloud platforme i Bluemixa. Samoinstalacijom CloudFoundry platforme dobijemo praznu kutiju koju možemo puniti našim servisima. Bluemix nam po loginu nudi preko 130 kvalitetnih servisa, koje možemo odmah početi koristiti. U kratkom pregledu servisa opisat ćemo one koji bi vam mogli biti najkorisniji. U posebnom okviru možete pročitati o DevOps servisima. Svakako ih je uputno poznavati i mogu biti od velike koristi. Bitno je napomenuti da ih nije nužno koristiti. Kao ni bilo koji drugi servis što se toga tiče. Kod odabira servisa trebamo se voditi primarno našom vizijom arhitekture i razvoja svakog (mikro)servisa. Prvi od odabira koji moramo napraviti je u kojem ćemo obliku isporučiti naše aplikacije u Bluemix. Trenutačno na raspolaganju imamo CloudFoundry, IBM Containers (Docker) te beta-programe IBM Virtual Servers i OpenWhisk. CloudFoundry je tip kontejnera koji Bluemix podržava od prvog dana. U nekim slučajevima to je i dalje najjednostavniji način isporuke aplikacije u Bluemix. Ipak, ako smo prihvatili ili želimo zakoračiti u Docker ekosustav, IBM Containers je privlačnija opcija. U tom kontekstu Bluemix možemo promatrati kao još jedan Docker host. Isporuka aplikacije radi se u formi kontejnera. Pri tome nismo sputani već unaprijed pripremljenim IBM-ovim Docker imageima (iako se radi o imageima provjerenima od malicioznog koda), već možemo pushati svoje image.

Virtual Servers i OpenWhisk su beta-opcije. Kroz Virtual Servers korisnici mogu kreirati svoje OpenStack virtualne mašine. Ta opcija je dobar odabir kada trebamo potpunu kontrolu nad sadržajem virtualne mašine. OpenWhisk se pak nalazi na drugom kraju spektra. Radi se o vrlo zanimljivoj serverless arhitekturi u kojoj nas interesira izvršavanje našeg koda, a sve ostalo je briga platforme. Želite programirati u Swiftu? Isprobajte OpenWhisk.

Watson servisi – mozak za aplikacije

Od današnjih aplikacija svi očekuju da budu pametnije, tj. da imaju ugrađeno znanje i “osjećaju” što mi korisnici očekujemo od aplikacija. IBM je jedan od pionira u domeni izgradnje sustava velikih kognitivnih mogućnosti. Još se sjećamo legendarnog meča Garija Kasparova i Deep Bluea iz ’97. te onog iz 2011. između ponajboljih Jeopardyevih natjecatelja i sustava Watson. U oba meča IBM-ovo tehnološko rješenje pobijedilo je najbolje igrače šaha i Jeopardya. Tehnologija Watsona danas nam je svima dostupna kroz Bluemix servise. Tako na raspolaganju imamo servis koji analizira nestrukturirani tekst i slike. Možemo ga učiti pojmovima iz naše domene kako bismo dobili što bolje odgovore na postavljena pitanja. Imamo potrebu “u letu”“ prevoditi tekst iz jednog jezika u drugi? Language translator servis može nam pomoći u tome. Za audiomogućnosti naše aplikacije možemo koristiti Text to Speech i Speech to Text servise. Možemo ih kombinirati s Conversation (virtualni agenti, chat botovi) i Tone Analyzer servisima. Kada pogledamo kolekciju Watson servisa koje imamo na raspolaganju, vidimo da je stvaranje automatiziranog sustava za helpdesk stvarnost.

Analytics – analizirajmo dok se događa

U nekim situacijama jednostavno moramo reagirati dok se one događaju. Uzmimo na primjer sustav uzbunjivanja opasnosti od tsunamija. Kada dođe voda do grla (doslovce), tada je prekasno. Za takav sustav trebaju nam mogućnosti prikupljanja podataka s veće količine senzora, koreliranje događaja i poduzimanje akcija. Bluemix Streaming Analytics servis omogućava upravo to. Zajedno s Predictive Analytics servisom možemo naše aplikacije obogatiti mogućnostima donošenja kvalitetnih odluka.

Data – servisi koji čuvaju naše podatke

Gotovo svaka aplikacija ima potrebu da sačuva podatke. Cloud ne mijenja tu činjenicu. Ono što se mijenja jest činjenica da često nećemo imati samo jedan tip spremišta podataka, već više njih. Tako će nam ponekad najelegantnija biti NoSQL varijanta kao što je Cloudant DB. Taj nam servis nudi 1 GB besplatnog prostora za korištenje. Idealno kad nam treba JSON baza. Ponekad će nam biti pogodnija graf baza (IBM Graph servis), a ponekad key:value spremište kao što je Redis. Naravno, relacijska baza je često neizostavna i tu možemo birati između open source varijanti (PostgreSQL, MySQL) ili IBM DB2 on Cloud.

Hibridne aplikacije

Često nismo u mogućnosti sve komponente aplikacije preseliti u cloud. Regulatorna ograničenja mogu nam zabraniti da podatke spremamo na server izvan teritorija države. U tim slučajevima možemo podatke držati u bazama podataka koje su on-premise, dok aplikaciju razvijamo u cloudu. Da bismo zaštitili podatke u tranzitu, možemo koristiti Secure Gateway Service, koji kreira sigurni kanal između aplikacija u cloudu i on-premise komponenti.

Ovim kratkim pregledom dostupnih servisa predstavili smo vrh sante leda. Pozivamo vas da iskoristite besplatnu registraciju i otkrijete sve prednosti Bluemix platforme za vašu novu cloud aplikaciju.

IBM Bluemix DevOps Services

Kod ozbiljnijeg razvoja aplikacija morat ćemo se pozabaviti problemom razvojnog ciklusa, koji uključuje sam razvoj (programiranje), repozitorij koda, planiranje i bug tracking, build i deployment. U DevOps svijetu želimo se približiti modelu razvoja continuous deliverya (CD). Dobra vijest je da Bluemix DevOps servisi nude alate kojima kroz kratko vrijeme možemo doći do CD modela razvoja. Ako započinjemo s novim projektom, jedna od prvih stvari koje moramo riješiti je repozitorij koda. Bluemix DevOps nudi nam kreiranje privatnog Git ili Jazz SCM repozitorija u cloudu. Ako smo već kreirali projekt na GitHubu, možemo povezati repozitorij s DevOps servisom. Kada smo riješili repozitorij koda i kreirali naš projekt, potreban nam je alat za razvoj (IDE). Vjerojatno smo već odabrali najdraži nam IDE, ali ako nismo, web IDE je već spreman u internetskom pregledniku. Najpogodniji je za web razvoj (JS, HTML, CSS), ali može poslužiti i za ostale programske jezike (podržava syntax highlighting) u slučajevima kada nemamo na raspolaganju naš najdraži IDE. Kada smo osigurali preduvjete za timski razvoj, možemo se pozabaviti socijalnim aspektom, tj. našim razvojnim timom i radnim zadacima. Track and plan omogućava nam da kreiramo radne zadatke (backlog) te pratimo prijavke o greškama. Kako ćemo, velika je vjerojatnost, raditi po Agile principima, možemo planirati sprintove. U svakom trenutku možemo pratiti napredak tima. Na primjer, možemo pratiti burn up chart s metrikom završenih i planiranih storya.

Naš kod moramo nekako zapakirati i instalirati na izvršnu okolinu. DevOps Build & Deploy servis taj nam posao podosta olakšava. Ta se funkcionalnost također naziva i pipeline, kako bi se naglasio aspekt continuous deploymenta.

devops pipeline

DevOps pipeline s tri stagea.

 

bluemix konzola

Bluemix konzola.

Tagovi:
Povratak