როდესაც თქვენ ყიდულობთ ჩვენს საიტზე ბმულების საშუალებით, ჩვენ შეიძლება მივიღოთ შვილობილი საკომისიო. აი, როგორ მუშაობს.

2016 წელს ჩვენ შევესწარით ახალი სიტყვის სწრაფ ზრდას: სერვერის გარეშე. ნომინალური მნიშვნელობით, ტერმინი ჟღერს, როგორც სერვერები აღარ არსებობს. რა თქმა უნდა, ეს აბსურდია. ყველა უსერვერო პროგრამა მუშაობს სერვერზე სადღაც. მაგრამ ეს ნიშნავს, რომ მთელი აპლიკაციები შეიძლება წარმატებით აშენდეს თქვენს სერვერებზე კოდის განლაგების გარეშე.

მიუხედავად იმისა, რომ ტერმინი "უსერვერო" შეიძლება იყოს შეცდომაში შემყვანი, სერვერის მართვის მესამე მხარისთვის დელეგირების მნიშვნელობა ძალიან რეალურია. ოცნება იმაზე, რომ ნაკლები დრო დახარჯო სერვერებზე ფიქრში და მეტი დრო შექმნას პროგრამული უზრუნველყოფა, შეიძლება რეალობად იქცეს.

სერვერის გარეშე მოქმედებაში

ზე ბიუსტი (სადაც მე ვმუშაობ ინჟინერიის დირექტორად) ჩვენ ვემსახურებით შინაარსს 50 მილიონზე მეტ უნიკალურ მკითხველს თვეში. ეს ნიშნავს, რომ ჩვენი მასშტაბის ტრაფიკი არის მნიშვნელოვანი, მაგრამ ასევე მოულოდნელი, რადგან სტატიები შეიძლება ნებისმიერ მომენტში გახდეს ვირუსული. ჩვენს მოძველებულ VM-ზე დაფუძნებულ ინფრასტრუქტურას უჭირდა შენარჩუნება და ჩვენი ინჟინრები ძალიან დიდ დროს ხარჯავდნენ ოპერაციებზე. ჩვენ დავიწყეთ უსერვერო პლატფორმების, როგორც გამოსავლის ყურება და, რამდენიმე წარმატებული ექსპერიმენტის შემდეგ, დავიწყეთ გადაადგილება მთელ ჩვენს დასტაზე. ეს იყო სრული წარმატება; ჩვენი პროექტები უფრო შენარჩუნებულია, უფრო ადვილი სამოქმედო და იაფია.

ამაზონის ვებ სერვისები

ძნელია უსერვეროზე ლაპარაკი ფოკუსირების გარეშე ამაზონის ვებ სერვისები (AWS). AWS გახდა უსერვეროსის სინონიმი, რადგან ის პასუხობს ერთ კრიტიკულ კითხვას: სად მიდის საბაჟო კოდი? მესამე მხარის სერვისებისა და პლატფორმების გამოყენების კონცეფცია ახალი არ არის. მონაცემთა ბაზები, push-შეტყობინებები, ქეშირება და აპლიკაციის მრავალი სხვა ფენა ხელმისაწვდომი იყო „სერვისად“ გარკვეული პერიოდის განმავლობაში, მაგრამ ისინი იჯდნენ თქვენი აპლიკაციის კიდეზე. თქვენ ჯერ კიდევ გჭირდებათ ადგილი ძირითადი აპლიკაციის კოდისთვის, რომელიც ჩვეულებრივ იყო სერვერი (და ხშირად ბევრი მათგანი), რომელიც პასუხობდა გარე მოთხოვნებს.

აქ შემოვიდა AWS. მისმა პროდუქტებმა AWS Lambda და AWS API Gateway გამოავლინეს პრიმიტივები, რამაც გაამარტივა პერსონალური აპლიკაციის კოდის განთავსება საკუთარი სერვერების მართვის გარეშე.

AWS ლამბდა

ლამბდა არის Amazon-ის ფუნქცია-როგორც სერვისის (FaaS) ვერსია. ეს საკმაოდ მარტივია: თქვენ წერთ კოდს და ატვირთავთ მას - თუმცა მხოლოდ ამჟამად Node.js, JavaScript, Python-ს და C#-ს აქვთ ოფიციალური მხარდაჭერა. შემდეგ AWS გაუშვებს ამ კოდს მოვლენების საპასუხოდ, როგორიცაა HTTP მოთხოვნები, S3 ატვირთვები, DynamoDB განახლებები, Kinesis ნაკადები და მრავალი სხვა. სკალირება ხდება ავტომატურად და თქვენ იტენებით მხოლოდ მაშინ, როდესაც თქვენი ფუნქციები გაშვებულია.

არცერთი ეს მახასიათებელი არ არის მკაცრად მოთხოვნა სერვერის გარეშე, მაგრამ AWS-მა რა თქმა უნდა დააყენა ბარი მაღალი. ნებისმიერ უსერვერო პლატფორმას ექნება მოქალაქეობის არმქონე FaaS შეთავაზება ძალიან მარცვლოვანი ბილინგით AWS-ის მიერ შექმნილი პრეცედენტის გამო.

სხვა პლატფორმები

ამაზონს შეიძლება ჰქონდეს ლიდერი, მაგრამ სხვა პროვაიდერები სწრაფად იჭერენ წინ. ყველა მთავარმა ღრუბლოვანმა პლატფორმამ ახლახან გამოუშვა სერვისები, რომლებიც გამიზნულია სერვერის გარეშე აპლიკაციებზე. აქ არის რამდენიმე:

  • Google Cloud ფუნქციები: ჯერ კიდევ ალფაში, ეს უზრუნველყოფს AWS Lambda-ს მსგავს ფუნქციონირებას და ასევე შეიძლება გააქტიურდეს HTTP მოთხოვნით.
  • Azure ფუნქციები: ესეც ლამბდას ჰგავს და ჯერ კიდევ შედარებით ახალია. Azure-ს აქვს სასიამოვნო ინტერფეისი და აადვილებს ფუნქციების გამოვლენას HTTP-ით ცალკე მარშრუტიზაციის სერვისის საჭიროების გარეშე.
  • IBM OpenWhisk: ერთადერთი ძირითადი უსერვერო პლატფორმა, რომელიც ღია წყაროა. თუ გაინტერესებთ საკუთარი უსერვერო პლატფორმის განლაგება ან უბრალოდ გაინტერესებთ როგორ მუშაობენ ისინი ქუდის ქვეშ, მოგინდებათ ამის გამოკვლევა.

გამოწვევები

სერვერების არარსებობა არ ნიშნავს ოპერაციების არარსებობას
სერვერების არარსებობა არ ნიშნავს ოპერაციების არარსებობას

სერვერის გარეშე არ მოდის მისი გამოწვევები. სივრცე ახალია და, როგორც ასეთი, საზოგადოება ჯერ კიდევ აღმოაჩენს საუკეთესო პრაქტიკას - განსაკუთრებით მაშინ, როდესაც საქმე ეხება ოპერაციებს. მე მინახავს ადამიანები, რომლებიც ვარაუდობენ, რომ სერვერის არარსებობა ასევე ნიშნავს ოპერაციების არარსებობას. ეს არ შეიძლებოდა შორს იყოს სიმართლისგან.

ოპერაციების ჩემი საყვარელი განმარტება მოდის საქველმოქმედო მაიორები: "ოპერაციები არის თქვენი ორგანიზაციის ტექნიკური უნარების, პრაქტიკის და კულტურული ფასეულობების ერთობლიობა სისტემების დიზაინის, მშენებლობისა და შენარჩუნების, ტრანსპორტირების შესახებ. პროგრამული უზრუნველყოფა და პრობლემების გადაჭრა ტექნოლოგიასთან." ეს ლამაზად ასახავს, ​​თუ რამდენად ინტეგრალურია ოპერაციები ნებისმიერი პროგრამული გუნდისთვის და სერვერის გარეშე არ იცვლება რომ. როგორც არასდროს, ჩვენ გვჭირდება ინსტრუმენტები ჩვენი აპლიკაციების განლაგების, შენარჩუნებისა და მონიტორინგისთვის.

სამწუხაროდ, სერვერზე წვდომის არქონა ნიშნავს, რომ ჩვენ არ შეგვიძლია გამოვიყენოთ მრავალი ინსტრუმენტები, რომლებიც გამოცდილი იყო ბოლო რამდენიმე ათწლეულის განმავლობაში. მე ველით, რომ ჩვენ ვიხილავთ ბევრ ახალ სტარტაპის მესამე მხარის სერვისებს, რომლებიც მიზნად ისახავს ამ პრობლემების გადაჭრას სერვერის გარეშე დეველოპერებისთვის. ზოგიერთმა კომპანიამ უკვე შექმნა ან შეცვალა არსებული ინსტრუმენტები, მათ შორის IOpipe და Honeycomb.io.

ღია კოდის საზოგადოებამ აღიარა ამ გამოწვევების ზოგიერთი ნაწილი და უპასუხა ინსტრუმენტებისა და ჩარჩოების ფართო სპექტრით, რომლებიც სპეციალურად მიზნად ისახავს სერვერების გარეშე. აქ Amazon-ის ბაზარზე დომინირება აშკარაა, რადგან მათი უმეტესობა მხოლოდ ამჟამად უჭერს მხარს AWS-ს.

რა თქმა უნდა, შესაძლებელია თავად შექმნათ და განათავსოთ სერვერის გარეშე აპლიკაციები, მაგრამ მე არ გირჩევთ ეს – თუნდაც რამდენიმე საბოლოო წერტილით, აწყობა, შეფუთვა, ზიპინგი, ატვირთვა და ვერსიების შექმნა რთული ხდება მართვა.

აქ არის მხოლოდ რამდენიმე ჩარჩო, რომელიც გასათვალისწინებელია:

  • სერვერის გარეშე ჩარჩო: ეს არის ყველაზე ძველი და ყველაზე ჩამოყალიბებული ჩარჩო უსერვერო აპლიკაციების შესაქმნელად. მას აქვს ძლიერი დანამატის სისტემა და ინტეგრირდება საზოგადოების მიერ შემუშავებულ ბევრ დანამატთან. მისი განცხადებული მიზანია საბოლოოდ მხარი დაუჭიროს განლაგებას ნებისმიერ მთავარ ღრუბლოვან პლატფორმაზე.
  • Apex: ეს დაწერილია Go-ში, მაგრამ მხარს უჭერს Python, Node.js, Go და Java გაშვების ენებს. შემქმნელი, TJ Holowaychuk, არის ადგილი ღია კოდის საზოგადოებაში და აქვს შესანიშნავი გრძნობა იმისა, თუ რა ქმნის კარგი დეველოპერის ხელსაწყოებს.
  • ჭაჭელი: AWS-ის მიერ შექმნილი და შენახული ერთადერთი ჩარჩო. ამჟამად ის უბრალოდ მხარს უჭერს პითონს.
  • შეფ: Bustle-ის საკუთარი ღია კოდის ჩარჩო, რომელიც გამოიყენება ჩვენი წარმოების ყველა სერვისისთვის. იგი ფოკუსირებულია ექსკლუზიურად Node.js-ის გაშვების დროზე და ცდილობს იყოს აზრი იმის შესახებ, თუ როგორ უნდა ააწყოთ, შექმნათ და განათავსოთ აპლიკაციები.

Მომავალი

2017 წელი გაგრძელდება უსერვერო ტექნოლოგიების სწრაფი დანერგვით ყველასთვის, დაწყებული სტარტაპებიდან და დამთავრებული Fortune 500 კომპანიებით. მის ახალ მდგომარეობაშიც კი, სერვერის გარეშე მოძრაობა მნიშვნელოვანი წინგადადგმული ნაბიჯია გუნდებს უკეთესი პროგრამული უზრუნველყოფის შესაქმნელად. ეს იყო ჩვენი გამოცდილება Bustle-ში და მე ვესაუბრე ინჟინრებს სხვა კომპანიების მსგავსი ისტორიებით. Capital One-მა, iRobot-მა და Nordstrom-მა საჯაროდ ისაუბრეს სერვერის გარეშე გამოყენების შესახებ.

სერვერები სრულად არასოდეს გაქრება, მაგრამ სიამოვნებაა პროგრამული უზრუნველყოფის შექმნა და სხვის ნებაზე ფიქრი მათზე. თუ ეს შეესაბამება თქვენს გამოყენებას, გირჩევთ, გაითვალისწინოთ სერვერის გარეშე თქვენი შემდეგი პროექტისთვის.

ეს სტატია თავდაპირველად გამოჩნდა net ჟურნალი ნომერი 292; იყიდე აქ!

Დაკავშირებული სტატიები:

  • 4 ყველაზე ცვალებადი განვითარება ტექნოლოგიაში
  • 20 სასარგებლო ინსტრუმენტი ვებ დეველოპერებისთვის
  • 15 API დეველოპერებმა უნდა იცოდნენ