Проектирование интернет-систем

Содержание

Слайд 2

Эталонная модель OSI/ISO 7. Доступ к сетевым службам 6. Представление и

Эталонная модель OSI/ISO

7. Доступ к сетевым службам
6. Представление и шифрование данных
5.

Управление сеансом связи
4. Прямая связь между конечными пунктами и надёжность
3. Определение маршрута и логическая адресация
2. Физическая адресация
1. Работа со средой передачи, сигналами и двоичными данными
Слайд 3

Сетевая модель на практике

Сетевая модель на практике

Слайд 4

Сервер Клиент-серверная архитектура ПО Сервер - программный компонент вычислительной системы, выполняющий

Сервер

Клиент-серверная архитектура ПО
Сервер - программный компонент вычислительной системы, выполняющий сервисные (обслуживающие)

функции по запросу клиента, предоставляя ему доступ к определённым ресурсам или услугам
Слайд 5

Стандартные серверы Универсальные серверы не предоставляют никаких услуг самостоятельно, а предоставляют

Стандартные серверы

Универсальные серверы  не предоставляют никаких услуг самостоятельно, а предоставляют серверам услуг

упрощённый интерфейс к ресурсам межпроцессного взаимодействия и/или унифицированный доступ клиентов к различным услугам. Inetd, RPC
Маршрутизации
Сетевых служб DHCP, DNS, RADIUS, VPN
Информационных служб time, finger, SNMP, NTP
Файловые серверы FTP, SFTP, HTTP, SMB, NFS

Серверы доступа к данным LDAP, *SQL, NoSQL
Службы обмена сообщениями SMTP, POP3, IMAP, Jabber, NNTP, IRC
Серверы удаленного доступа telnet, SSH, RSH, X-Window System, RDP
Серверы приложений Игровые, Стрим, …

Слайд 6

Состав серверного ПО Сервер приложения Файловый сервер Сервер доступа к данным

Состав серверного ПО

Сервер приложения
Файловый сервер
Сервер доступа к данным
Сервер обмена сообщениями
Сетевые службы
Информационные

службы
Удаленный доступ
Универсальные серверы

Операционная система
+
ПО, входящее в состав ОС

СУБД

Веб-сервер

Обработчик

Слайд 7

Стек LAMP Linux операционная система Apache веб-сервер MySQL / MariaDB СУБД

Стек LAMP

Linux операционная система Apache веб-сервер MySQL / MariaDB СУБД PHP / Python /

Perl обработчик
LEMP – Nginx [Engine-X]
WAMP – Windows
WASP – Windows, SQL Server
Слайд 8

Стек MEAN MongoDB документоориентированная СУБД Express.js каркас веб-приложений Angular.js MVC-фреймворк для

Стек MEAN

MongoDB документоориентированная СУБД Express.js каркас веб-приложений Angular.js MVC-фреймворк для фронтенда Node.js платформа для серверной разработки
JavaScript в основе

всего
Слайд 9

Client Side Server Side LAMP vs. MEAN любой фронтенд или его

Client Side

Server Side

LAMP vs. MEAN

любой фронтенд или его отсутствие
PHP
Apache
MySQL
Linux

ОС +
ПО, входящее в

состав ОС

СУБД

Веб-сервер

Обработчик

Angular.js
Express.js
Node.js
MongoDB
любая ОС

Слайд 10

LEMP в теории

LEMP в теории

Слайд 11

…и на практике

…и на практике

Слайд 12

…и в реальности

…и в реальности

Слайд 13

…через год

…через год

Слайд 14

Будни DevOps

Будни DevOps

Слайд 15

True or False? The most reliable systems are built using cheap,

True or False?

The most reliable systems are built using cheap, unreliable

components.
The techniques that Google uses to scale to billions of users follow the same patterns you can use to scale a system that handles hundreds of users.
The more risky a procedure is, the more you should do it.
Some of the most important software features are the ones that users never see.
You should pick random machines and power them off.
The code for every feature Facebook will announce in the next six months is probably in your browser already.
Updating software multiple times a day requires little human effort.
Being oncall doesn’t have to be a stressful, painful experience.
You shouldn’t monitor whether machines are up.
Operations and management can be conducted using the scientific principles of experimentation and evidence.
Google has rehearsed what it would do in case of a zombie attack.
Слайд 16

Слайд 17

Напоследок In The Elements of Programming Style, Kernighan and Plauger (1978)

Напоследок

In The Elements of Programming Style, Kernighan and Plauger (1978) wrote:
Debugging

is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.