37
19.12.2017 1/37 Лекция 16. Веб-серверы. Веб-серверы Облачные технологии Хостинг МГТУ им. Н.Э. Баумана доц. каф. ИУ-6, к.т.н. Самарев Роман Станиславович [email protected]

Лекция 16. Веб-серверы. - e-learning.bmstu.rue-learning.bmstu.ru/moodle/pluginfile.php/3635/mod_resource/content... · Веб-серверы для Ruby ... Проект

Embed Size (px)

Citation preview

19.12.2017

1/37

Лекция 16. Веб-серверы.

Веб-серверы Облачные технологии Хостинг

МГТУ им. Н.Э. Бауманадоц. каф. ИУ-6, к.т.н. Самарев Роман Станиславович [email protected]

19.12.2017

2/37

Веб-серверы для Ruby

Apache nginx Tomcat, jBoss, Glassfish Ruby веб-серверы

WEBrick (только для отладки) Thin Unicorn Puma Phusion Passenger Standalone LiteSpeed Mongrel

19.12.2017

3/37

Apache Web-server

CERN httpd – 1991 (Tim Berners-Lee,…) NCSA httpd (Rob McCool) Apache ("a patchy server") –

1995 (Brian Behlendorf)

Apache Software Foundation http://httpd.apache.org

http://www.voneicken.com/courses/ucsb-cs290i-wi02/papers/Concrete_Apache_Arch.htm

http://www.ibm.com/developerworks/ru/library/os-apache_3/ http://www.ibm.com/developerworks/ru/library/os-apache_4/ http://beyondj2ee.files.wordpress.com/2012/06/apache-architecture.ppt

19.12.2017

4/37

Ядро Apache 1.x

http://www.voneicken.com/courses/ucsb-cs290i-wi02/papers/Concrete_Apache_Arch.htm

19.12.2017

5/37

Web-server nginx

Автор Игорь Сысоев Первая версия 4 октября 2004 NGINX, Inc.

По данным Netcraft на ноябрь 2017Общая доля сайтов составляет 18.40%https://news.netcraft.com/archives/2017/11/21/november-2017-web-server-survey.html

Предпосылки создания: http://kegel.com/c10k.html

19.12.2017

6/37

Архитектура nginx

http://www.aosabook.org/en/nginx.html

19.12.2017

7/37

Коммерческие веб-серверы

IBM WebSphere Application Server Oracle WebLogic Server Oracle GlassFish Server Oracle iPlanet Web Server Microsoft IIS …

19.12.2017

8/37

Технологии размещения Ruby-приложений

Ruby веб-серверы Apache/nginx + Phusion Passenger nginx + Unicorn, nginx + Puma

JRuby jBoss / WildFly Tomcat Glassfish Puma

19.12.2017

9/37

Thin server

http://code.macournoyer.com/thin/

Событийно управляемый однопроцессный веб-сервер.

Легковесный

Имеет собственную буферизацию запросов

Масштабирование не предусмотрено

19.12.2017

10/37

Unicorn server

http://unicorn.bogomips.org/

Однопоточный, многопроцессный веб-сервер

Одно приложение – один «worker» процесс Порождает несколько «worker» процессов Все «worker» прослушивают один unix socket Обычно используется в паре с nginx

19.12.2017

11/37

Gitlab: Nginx + Unicorn

https://blue.cse.buffalo.edu/gitlab/help/development/architecture.md

19.12.2017

12/37

Puma server

http://puma.io/ Многопоточный однопроцессный

веб-сервер Один запрос - один поток. В кластерном варианте несколько

процессов. Требует наличия балансировщика.

19.12.2017

13/37

Phusion Passenger

https://www.phusionpassenger.com/ Веб-серверы

Apache HTTP Server nginx

Модули mod_rails mod_rack

19.12.2017

14/37

JRuby

Реализация Ruby на языке Javahttp://jruby.org/

Синтаксис Ruby 2.3

Возможность использования классов Java

Проект Ruboto (приложения для Android на Ruby)

19.12.2017

15/37

Apache Tomcat

http://tomcat.apache.org Веб-сервер и контейнер сервлетов

Первая версия 3.0.x. - 1999На основе Sun Java Web Server, ASF,реализации Servlet 2.2 и спецификации JSP 1.1

19.12.2017

16/37

Java Servlet

http://en.wikipedia.org/wiki/Java_Servlet

19.12.2017

17/37

GlassFish

Oracle Corporation (initial code from Sun Microsystems)

Использует код Apache Tomcat

Первая версия 6 июня 2005

Полностью удовлетворяет спецификации Java EE 6 JSR 316

Интегрирован с NetBeans

http://glassfish.java.net

19.12.2017

18/37

Архитектура Glassfish

http://blog.tangcs.com/2011/09/21/glassfish/

19.12.2017

19/37

JBoss Application Server

JavaBeans Open Source Software Application Server (jBoss)

Разработчик Red Hat Изначально использован Apache Tomcat 5.5

Частично соответствует спецификации JavaEE

Бесплатная версия переименована в WildFly Последняя версия – WildFly 11

http://www.jboss.org/ http://www.wildfly.org/

19.12.2017

20/37

Архитектура jBoss

http://docs.jboss.org/jbossas/docs/Server_Configuration_Guide/beta500/html/JBoss_AS5_Architecture.html

19.12.2017

21/37

Improving Website reliability with Nginx timeout configuration/Jairo Diaz

http://blog.codescrum.com/2013/02/05/improving_website_reliability_with_nginx_timeout_configuration/

19.12.2017

22/37

Размещение веб-приложений

Хостинг-провайдеры

Размещение выделенного сервера Размещение на общем сервере Размещение виртуальной машины Размещение приложения

19.12.2017

23/37

Web hosting control panel

Доступ к журналам операций. Сведения о доступности и используемом пространстве.

Квоты. Конфигурирование email. Управления пользователями FTP. Управление БД. Статистика посещаемости сайта с использованием средств

анализа. Файловый менеджер с доступом через браузер.

cPanel H-Sphere DirectAdmin Webmin

http://en.wikipedia.org/wiki/Comparison_of_web_hosting_control_panels

19.12.2017

24/37

Средства управления веб-сервером

cPanel

http://cpanel.net/

Демонстрацияhttp://cpanel.net/demo/

19.12.2017

25/37

cPanelИнтерфейс хостинг-клиента

19.12.2017

26/37

Типы архитектур виртуализации

19.12.2017

27/37

Облачные вычисления

http://synthesis.ipi.ac.ru/sigmod/seminar/s20131031.html

19.12.2017

28/37

Продукты для реализации сервисных архитектур

Тип сервисной архитектуры

OpenSource Коммерческие

IaaS OpenNebula

OpenStack

VMWare vCloudCitrix Cloud SolutionsEucalyptus Enterprise…

PaaSPlatform-as-a-Service

RedHat OpenShift IBM WebSphere VMware Cloud Foundry

SaaSSoftware-as-a-Service

Gmail, Skype

19.12.2017

29/37

Infrastructure-as-a-ServiceEucalyptus Enterprise Edition

19.12.2017

30/37

Desktop-as-a-Service (частный случай IaaS)

MokaFive Suite

19.12.2017

31/37

RedHat OpenshiftPlatform-as-a-Service

RedHat OpenShift Express

PHP, Ruby Drupal, Wiki

Flex JBoss DBMS

Power Linux Apps

19.12.2017

32/37

Облачные провайдеры Heroku Cloud Application Platform

http://www.heroku.com/

MORPH LABShttp://Mor.ph

Shelly Cloudhttps://shellycloud.com/

The Engine Yard http://www.engineyard.com/

Digital Ocean (виртуальный машины от $5 / месяц)https://www.digitalocean.com/

Amazon Web Serviceshttp://aws.amazon.com/ruby/

Google Apps Platformhttps://developers.google.com/google-apps/marketplace/tutorial_ruby

http://programmingzen.com/the-best-ruby-on-rails-hosting-services/

19.12.2017

33/37

Провайдер Heroku

http://heroku.com

$ gem install heroku $ heroku keys:add $ heroku createCreated http://severe-fire-61.heroku.com/ | [email protected]:severe-fire-61.gitGit remote heroku added

$ git push heroku master

$ heroku rename railstutorial

http://railstutorial.ru/chapters/4_0/beginning#sec-heroku_setup

19.12.2017

34/37

Пример управления сайтом в Heroku

19.12.2017

35/37

Масштабированиеприложений в Heroku

https://www.speedshop.co/2015/07/29/scaling-ruby-apps-to-1000-rpm.html http://habrahabr.ru/company/1cloud/blog/272471/

Scaling Ruby Apps to 1000 Requests per Minute – A Beginner's Guide

by Nate Berkopec

19.12.2017

36/37

Median Salary by Years Experience (2016)

Median Salary by Years Experience - Skill: Ruby on Rails (United States)

Median Salary by Years Experience - Skill: Java (United States)

* Налог ~20%, аренда жилья > $3k/month, стоимость жилья >> $500k …

http://www.payscale.com/research/US/Skill=Ruby_on_Rails/Salary#by_Years_Experience

19.12.2017

37/37

Вопросы по курсу?