Бастаушы нұсқаулық

Техникалық стекке түсініктеме және дұрыс таңдау әдісі

Техникалық стек барлық платформаларда пайда болады және оны барлық әзірлеушілер айтады.

Вадим Щербаковтың Unsplash фотосы

Бағдарламалық жасақтама немесе DevOps туралы конференцияны іздейік немесе конференцияға қатысайық, біз фразалармен көптеген нәтижелерге қол жеткіземіз: LAMP стекі, MEAN стек, MERN стек, ... Құрылыстың алғашқы сатысында адамдар дұрыс техникалық жинақты таңдаудың маңыздылығын атап өтеді. . Сонымен бұл нені білдіреді және неге бұл маңызды?

Стек дегеніміз не?

Мен компанияда жұмыс істеген алғашқы күндерді есіме түсірдім, алғашқы жобаны құру кезінде өте қызықты болды, бірінші рет көптеген жаңа терминдер туралы естідім: «Вагрант», «Симфония», «Нгинкс», «Балансты теңдестіру», «CI жүгірушілер», «… Бір жобадағы заттар !! »деп қуандым. Мен олар туралы бұрын-соңды естіген емеспін, өйткені мен өзім оқитынмын, мектепке де, желіде достарым да болмаған. Біраз уақыт жұмыс істегеннен кейін мен тізімделгендердің тіркесімін түсіндім, бұл техникалық стек деп аталады. Толығымен жұмыс істейтін жүйеде тек кодтар ғана емес, сонымен қатар операциялық жүйе және веб-сервер, мәліметтер базасы сияқты қажетті бағдарламалар бар ... Біз Lego ойнау сияқты бөлшектерді жинаққа жинаймыз.

Техникалық стек немесе шешім стегі - бұл толықтай платформа құра отырып, бір-бірімен өзара әрекеттесетін әртүрлі аппараттық және бағдарламалық құралдар жиынтығы.
Техникалық стек анатомиясы.

Стек қалай көрінеді?

Жинақта жалпы компоненттер бар және әр компонент белгілі бір рөл атқарады:

  • Операциялық жүйе
  • HTTP сервері
  • Мәліметтер базасының сервері
  • Серверлік тіл

Мысалы, LAMP стек мыналарды қамтиды:

  • Linux
  • Апачи
  • MySQL немесе MariaDB
  • PHP немесе Python

Жоғарыдағы сурет веб-қосымшаның қарапайым жұмысын түсіндіреді. LAMP стекін айтыңыз, сервер Linux ОЖ-де жұмыс істейді, Apache HTTP сервері ретінде ойнайды. Пайдаланушы сұрау жібергенде, HTTP сервері тексеріліп, сұрауды App серверіне тапсырады, бұл жағдайда ол PHP болады. Бағдарлама MySQL дерекқорынан деректерді ала алады және JSON / XML / HTML форматында жауап қайтара алады.

Қазіргі уақытта хостинг провайдерлерінің көпшілігі (AWS, GCP, Digital Ocean,…) бірнеше секунд ішінде ортақ стектерді орнатуға көмектесетін жылдам сілтемелер ұсынады. Егер сіз оның іс жүзінде қалай жұмыс істейтінін түсінгіңіз келсе, таза Linux данасын сатып алып, компоненттерді өзіңіз орнатып көре аласыз, бұл уақытты қажет етеді.

Дұрыс жинақты қалай таңдауға болады?

Бұл әдетте команданың деңгейіне, танысына байланысты. Егер сіздің командаларыңыз PHP-ті игеруге дағдыланған болса, онда LAMP стек - ең жақсы таңдау. Егер олар ASP.NET-ті жетік білсе, сіз Microsoft экожүйесін алғыңыз келетін шығар.

Slack сонымен қатар LAMP қолданады. (Дереккөз)

Кейде стек компаниялардың өсуіне қарай таңдалады. Твиттер - бұл жақсы мысал, компания алдымен Ruby on Rails қолданды, бірақ көбірек трафикті басқару үшін 2010 жылы Java / Scala-да қайта жазылатындығын жариялады.

Өнімді әзірлеудің алғашқы сатысында техникалық жинақты таңдаудың маңыздылығын атап өтемін. Бұл жүйенің архитектурасын, жұмыс құнын және масштабталуын болжай отырып, бақылауға көмектеседі.

Танымал стектер

LAMP дестесі

Көптеген веб-сайттар қолданатын ең танымал стек. Құрамында Linux, Apache, MySQL, PHP / Python / Perl бар. Осы стек негізінде Wordpress, Drupal сияқты танымал CMS жұмыс істейді.

DigitalOcean ұсынған сурет.

LAMP пайдалану кезіндегі керемет нәрсе - оның барлық компоненттері ашық көздер, үлкен қауымдастықтан көмек алу оңай, ал Linux сервері қол жетімді.

Осы стектің бірнеше нұсқалары бар:

  • MAMP - MacOS
  • WAMP - Windows
  • XAMPP - кросс-платформа
  • LEMP - Apache бағдарламасын Nginx-пен ауыстырыңыз

MEAN стек

Соңғы жылдардағы ең танымал стектердің бірі: MongoDB, Express, Angular, NodeJS. Басқа нұсқа - MERN, бұрышты React-қа ауыстыру.

Менің ойымша, бұл шынымен де стек емес, өйткені ОС жоқ. NodeJS тек серверлік код үшін ғана емес, сонымен қатар веб-сервер ретінде де қолданылады. Іс жүзінде біз Nginx-ті прокси-сервер ретінде қолданып, NodeJS процесін трафикті жақсарту үшін артта қалдыруымыз керек.

LAMP стекіне ұқсас, бұл стектің барлық бөліктері ақысыз, ең қызығы, сіз барлық қосымшаны тек Javascript көмегімен жасай аласыз, артқы және алдыңғы жағынан да, бұл сіздің уақытыңыз бен бюджетіңізді үнемдейді.

WISA стекі

Бұл стек құрамында: Windows, IIS, SQL Server, ASP.NET бар. Барлық Microsoft корпорациясы!

WISA негізінен қымбат лицензиялық төлемге байланысты ірі кәсіпорындарда қолданылады (Visual Studio, Windows, SQL Server,…). Артықшылықтары - бұл жылдам өсу және тұрақтылық. C # өте жақсы тіл, ASP.NET - SQL Server-пен жақсы серіктес және Microsoft бізге көптеген пайдалы құралдарды ұсынады. Сіз дәл премиум ойыншысыз.

Алайда, C # енді ашық бастапқы тілге айналады. Mac жүйесіне арналған Visual Studio бар .NET Core дүниеге келді, Linux үшін SQL Server шығарылды және болашақта біз Linux-та Microsoft стекін іске қоса аламыз ба?

Менің соңғы сөздерім

Әзірлеушілердің әрқайсысының өздерінің сүйікті техникалық стектері бар. Ешқандай дұрыс немесе бұрыс нәрсе жоқ, ол көптеген факторларға байланысты: бюджет, таныстық, нарық, контекст, мерзім,… Сонымен қатар, құрамдастарға ешқандай шектеулер жоқ, мысалы, MySQL-ді LAMP-де PostgreSQL-мен ауыстыруға болады. Осылайша, менің кеңесім - сіз және сіздің командаңызға ыңғайлы біреуін таңдап, керемет қолдану.

Пайдаланылған әдебиеттер

  • Веб-сайтыңызға арналған дұрыс бағдарламалық жасақтаманы таңдау
  • Шешім стекі - Википедия