MEAN vs. LAMP Stack Za i protiv
Web-hrpe su se razvijali desetljećima s napretkom tehnologije i pozadinskih jezika. Dva najpopularnija web-mjesta trenutno su LAMP i MEAN. Oni se oslanjaju na dvije različite tehnologije za pozadinske jezike, baze podataka i poslužiteljska okruženja. Pojam "stack" odnosi se na tehnologije koje se međusobno slažu kako bi stvorile okruženje web-poslužitelja.
U ovom članku, želio bih razjasniti ova dva web stacka gledajući na njihove tehnologije izbora, i za i protiv. Gdje se svaki stog ističe? A koje bi vrste projekata najviše imale koristi od bilo koje opcije? Ako ste novi u web tehnologijama ili samo želite saznati više o tim dvjema hrpama, ovaj vodič ima sve što vam treba.
Tradicionalni razvoj LAMP-a
Većina programera bi trebala znati za tradicionalni LAMP stog jer je to bilo od ranog weba. LAMP označava Linux, Apache, MySQL i PHP. Svaki od njih su pojedinačni softverski paketi koji se kombiniraju kako bi stvorili svestrano poslužiteljsko rješenje.
Najveći razlog za pridržavanje LAMP-a je sigurnost i široku podršku. To je bio oko za desetljeća, i to je dokazana metoda hosting web stranice.
Sve pozadinske tehnologije poput PHP-a i MySQL-a dobro su poznate i podržavaju svi glavni pružatelji usluga hostinga. Ako radite na LAMP stog možete u osnovi hostirati bilo gdje. Osim toga, dobivate pristup najpopularnijim CMS motorima. WordPress, Drupal i Joomla rade na PHP / MySQL.
Tamo su prilagodljive opcije unutar LAMP arhitekture kao što je LEMP zamjenjuje Apache s nginx. Također možete pokrenuti varijantu na Windows poslužitelju kao WAMP stog.
Međutim, svi jezgreni programi - uključujući Apache, MySQL i PHP - bili su otvoreni, i napravljen prvenstveno za Linux. Zbog toga Linux ima najviše smisla za poslužiteljsko okruženje i zato je LAMP testirao vrijeme modernog web razvoja.
Većina programera ide ovom rutom jer je najjednostavniji način za dobivanje internetske stranice. Na forumima koji pokrivaju sve što je potrebno za konfiguriranje i rješavanje problema s LAMP okruženjem pronaći ćete mnogo podrške. Na primjer, možete provjeriti ovo Serverfault pitanje za više informacija.
JavaScript Backend s MEAN
Node.js je najnovija tehnologija za razvojne programere koja je odlučila pokrenuti skalabilne aplikacije izgrađene s JavaScriptom. Čvor napaja MEAN stog, i nudi primarnu prednost: sve radi na jednom jeziku.
SREDNJA označava MongoDB, Express.js, Angular.js, i naravno Node.js. Ovaj akronim ne postavlja zahtjeve za poslužiteljski operacijski sustav ili poslužiteljski softver. MEAN stog može se izvoditi na bilo kojem OS-u, i Node čak dolazi sa svojim vlastitim poslužiteljem za obradu JS-a na pozadini.
Na web-mjestu Mean.io naći ćete mnogo dokumentacije i podrške.
Iako je ovaj stack dobio mnogo pozornosti, još uvijek nema ni približno stabilne podrške kao tradicionalni LAMP stack.
Pa zašto bi netko išao s MEAN-om? Zato što je u konačnici brže i lakše mjeriti. MongoDB je a NoSQL baza podataka koja optimizira upite. Korištenje fullstack JavaScripta također poboljšava razvoj jer se jedan jezik odnosi na sve frontend i backend poslove.
Plus mnogi drugi JS okviri udaraju na tržište kao stabilna rješenja. Na primjer, MEAN se može prebaciti na a MEEN stog zamjenjujući Angular s Ember.
Programeri će voljeti MEAN stog jer to razdvaja kod za održivost i rast. To ga čini lakše organizirati JavaScript web aplikacije tako da rade u prirodnom okruženju.
Mnogo toga se može naučiti o ovoj temi, a to je vjerojatno najveća prepreka za ulazak novih programera. Učenje svih tehnologija potrebnih za upravljanje MEAN aplikacijom može potrajati mjesecima. Ali ako volite Node, i želite pokrenuti sve na JavaScriptu, to je vrijedno truda.
Evo nekih tutorijala za početnike.
- Apsolutni početnički vodič za Node.js
- Felixov Node.js Vodič za početnike
- Uvod u Express.js
- Naučite graditi moderne web-aplikacije pomoću MEAN-a
- Početak rada s Node.js, Express i MongoDB
PHP u odnosu na čvor
PHP je prisutan od sredine 90-ih, i doista je najpopularniji pozadinski jezik. Mnogi web-programeri počinju s PHP-om (ili na kraju uče) jer je on toliko dominantan na svim web-platformama i davateljima hostinga.
Čvor je noviji okvir, ali je njegova popularnost iznimno brzo porasla. To uključuje popularnost NPM-a kao upravitelja paketa za web-programere i proširuje se dalje na snažne okvire frontendova kao što je Angular 2.
Druga korist od Nodea je u tome dolazi s vlastitim web-poslužiteljem. JavaScript je korijen svega na MEAN stog, pa ako volite JS onda ćete stvarno voljeti graditi MEAN web aplikacije.
Mnogi programeri smatraju da je PHP loše oblikovan jezik jer je kreator, Rasmus Lerdorf ga zapravo nije dizajnirao kao jezik. PHP je počeo kao generičko rješenje za web-lokacije, i brzo je prerasla u veliku biblioteku nepovezanih funkcija.
No, s PHP 7 pokušava popraviti mnoge pogreške u jeziku, i besplatno OOP okviri, kao što je Laravel, PHP je sada puno bolji jezik nego što je ikada bio.
Tako se raspravlja o jeziku Vaš osobni izbor. Stvarno volite pisati JavaScript? Tada bi čvor s MEAN stog mogao biti vrijedan razmatranja.
Ako već znate PHP i želite se držati onoga što znate, LAMP je i održiva ruta.
Ukupni pros & cons:
Tamo su više slojeva svakog web stog za usporedbu, uključujući operativni sustav, poslužiteljski softver, bazu podataka i pozadinski jezik.
(1) MEAN stog također uključuje Angular što je okvir frontenda. U skupu LAMP-a nema potrebnog okvira, ali uvijek možete dodati vlastite u bilo koju aplikaciju koju gradite.
(2) Što se tiče OS-a, LAMP stack traži derivat Linuxa. Linux je obično najbolji izbor za okruženje poslužitelja bez obzira na stog, a vrijedi i za MEAN.
(3) Sada je OS poslužitelja samo računalni softver, ali nije softver web poslužitelja. Da biste dobili ovo trebate program kao što su Apache ili nginx. LAMP koristi Apache jer je to jedan od najstabilnijih dostupnih izbora.
(4) MEAN koristi Node.js poslužitelj koji je dio paketa čvora. To je još uvijek prilično novo, i iako ima dosta podrške, Node nema ni približno jednake zajednice kao Apache.
(5) I poslužitelj čvora zahtijeva pozadina JavaScripta (bez proširenja). apaš omogućuje većinu pozadinskih jezika, i postoji mnogo besplatnih proširenja za veću podršku. Ali od sada Apache nema ništa za Node podršku.
(6) Upravljanje bazom podataka gdje ćete naći najveća razlika. LAMP koristi MySQL za relacijsku pohranu podataka, dok MEAN koristi MongoDB koji je ne-relacijska baza podataka. Ne-relacijski DB-ovi su puno brže, i pružiti lakši način skaliranja s većim prometom.
(7) Imajte na umu to PHP nije ograničen samo na MySQL. Može koristiti MongoDB i druge alternative kao što su PostgreSQL ili SQLite. To je samo da većina PHP programera zna MySQL, tako da je glavni kandidat za tipični LAMP stack.
(8) MEAN tipično trči brže i mjerilo veće, ali zahtijevaju puno više vremena i znanja poslužitelja za učenje sustava. LAMP stacks su pokušao i istiniti, i oni dolaze Izvan kutije s najsigurnijom infrastrukturom i najširom mogućom podrškom.
(9) Programski jezici čine veliku razliku između dva hrpe. LAMP primarno radi na PHP-u koji uključuje WordPress i Laravel okvir. MEAN radi na ExpressJS / NodeJS za pozadinu s AngularJS na sučelju.
(10) MEAN je full-stack JavaScript, i morat ćete puno naučiti kako to trčati. To je čest izbor novih startupa spremni gurnuti granice u razvoju web aplikacija. LAMP je tradicionalniji s JS na sučelju, PHP na pozadini. Napravljen je za ljude koji to žele dobiti web stranice online bez previše brige.
Pogledajte ovaj vodič za usporedbu da biste saznali nešto više. Ni izbor nije ispravan ili pogrešan, samo različit i napravljen za različite projekte.
Završavati
Rekao bih da se većina web-lokacija oslanja na stog LAMP jer je testirana i ima mnogo korisnih tema za pitanja i odgovore koje su indeksirane u Googleu. MEAN je još uvijek u porastu i također ima mnogo podrške, ali može biti i više tehničke nego što većina ljudi želi.
Slobodno pokušajte oboje i pogledajte ih sami. Moguće je instalirajte obje postavke lokalno na računalu, i nadogradite ih bez udaljenog poslužitelja.
A ako tražite više informacija o bilo kojem od stogova, u nastavku sam prikupio skup korisnih veza.
- Naučite graditi moderne web-aplikacije pomoću MEAN-a (Thinkster.io)
- Docker LAMP Stack Admin (Jessesnet.com)
- Kako instalirati Linux, Apache, MySQL, PHP (LAMP) stog na Debian 8 (Digitalocean.com)