Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ

Π£Ρ€ΠΎΠΊ β„–151. ΠšΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π½Ρ‹Π΅ классы

Обновл. 26 БСн 2021 |

Π’ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΉ ΠΆΠΈΠ·Π½ΠΈ ΠΌΡ‹ постоянно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹. Π“Ρ€Π΅Ρ‡ΠΊΠ° с ΠΊΡƒΡ€ΠΈΠ½ΠΎΠΉ Π³Ρ€ΡƒΠ΄ΠΊΠΎΠΉ Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π΅ для Π΅Π΄Ρ‹, страницы Π² ΠΊΠ½ΠΈΠ³Π΅ с ΠΎΠ±Π»ΠΎΠΆΠΊΠΎΠΉ ΠΈ ΠΏΠ΅Ρ€Π΅ΠΏΠ»Π΅Ρ‚ΠΎΠΌ, Π²Π΅Ρ‰ΠΈ Π² Ρ‚ΡƒΠΌΠ±ΠΎΡ‡ΠΊΠ΅/Ρ€ΡŽΠΊΠ·Π°ΠΊΠ΅ ΠΈ Ρ‚.Π΄. Π‘Π΅Π· этих ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² Π±Ρ‹Π»ΠΎ Π±Ρ‹ ΠΊΡ€Π°ΠΉΠ½Π΅ Π½Π΅ΡƒΠ΄ΠΎΠ±Π½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ, находящимися Π²Π½ΡƒΡ‚Ρ€ΠΈ. ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²ΡŒΡ‚Π΅, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΏΡ‹Ρ‚Π°Π΅Ρ‚Π΅ΡΡŒ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΊΠ½ΠΈΠ³Ρƒ Π±Π΅Π· ΠΏΠ΅Ρ€Π΅ΠΏΠ»Π΅Ρ‚Π° ΠΈ ΠΎΠ±Π»ΠΎΠΆΠΊΠΈ, ΠΈΠ»ΠΈ ΠΏΡ‹Ρ‚Π°Π΅Ρ‚Π΅ΡΡŒ Π΅ΡΡ‚ΡŒ Π³Ρ€Π΅Ρ‡ΠΊΡƒ с Π³Ρ€ΡƒΠ΄ΠΊΠΎΠΉ, Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ для Π΅Π΄Ρ‹/миску/Ρ‚Π°Ρ€Π΅Π»ΠΊΡƒ ΠΈ Ρ‚.Π΄. НСпорядок! Π¦Π΅Π½Π½ΠΎΡΡ‚ΡŒ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ ΠΏΠΎΠΌΠΎΠ³Π°ΡŽΡ‚ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹.

ΠšΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π½Ρ‹Π΅ классы

ΠšΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π½Ρ‹ΠΉ класс (ΠΈΠ»ΠΈ «класс-ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Β») Π² языкС C++ β€” это класс, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹ΠΉ для хранСния ΠΈ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° Π΄Π°Π½Π½Ρ‹Ρ… (ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… ΠΈΠ»ΠΈ Ρ„ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹Ρ…). БущСствуСт ΠΌΠ½ΠΎΠ³ΠΎ Ρ€Π°Π·Π½Ρ‹Ρ… ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π½Ρ‹Ρ… классов, ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΈΠΌΠ΅Π΅Ρ‚ свои прСимущСства, нСдостатки ΠΈΠ»ΠΈ ограничСния Π² использовании. БСзусловно, Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΌ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠΌ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ являСтся массив, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ ΡƒΠΆΠ΅ использовали Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ…. Π₯отя Π² языкС C++ Π΅ΡΡ‚ΡŒ стандартныС ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Π΅ массивы, Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ программистов ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π½Ρ‹Π΅ классы-массивы: std::array ΠΈΠ»ΠΈ std::vector ΠΈΠ·-Π·Π° прСимущСств, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ½ΠΈ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚. Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ стандартных массивов, ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π½Ρ‹Π΅ классы-массивы ΠΈΠΌΠ΅ΡŽΡ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ динамичСского измСнСния своСго Ρ€Π°Π·ΠΌΠ΅Ρ€Π°, ΠΊΠΎΠ³Π΄Π° элСмСнты Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‚ΡΡ ΠΈΠ»ΠΈ ΡƒΠ΄Π°Π»ΡΡŽΡ‚ΡΡ. Π­Ρ‚ΠΎ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΈΡ… Π±ΠΎΠ»Π΅Π΅ ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΌΠΈ, Ρ‡Π΅ΠΌ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Π΅ массивы, Π½ΠΎ ΠΈ бСзопаснСС.

ΠžΠ±Ρ‹Ρ‡Π½ΠΎ, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π» классов-ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² языка C++ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ:

Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€.

Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΈΠ· ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°.

ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ количСства ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², находящихся Π½Π° Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π΅.

ΠžΡ‡ΠΈΡΡ‚ΠΊΠ° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° ΠΎΡ‚ всСх ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ².

Доступ ΠΊ сохранСнным ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌ.

Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ²/элСмСнтов (Π½Π΅ всСгда).

Иногда Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π» ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π½Ρ‹Ρ… классов ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π΅ ΡΡ‚ΠΎΠ»ΡŒ ΠΎΠ±ΡˆΠΈΡ€Π½Ρ‹ΠΌ, ΠΊΠ°ΠΊ это ΡƒΠΊΠ°Π·Π°Π½ΠΎ Π²Ρ‹ΡˆΠ΅. НапримСр, ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π½Ρ‹Π΅ классы-массивы часто Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π° добавлСния/удалСния ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ ΠΈ Ρ‚Π°ΠΊ ΠΌΠ΅Π΄Π»Π΅Π½Π½Ρ‹Π΅, ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ просто Π½Π΅ Ρ…ΠΎΡ‡Π΅Ρ‚ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Ρ‚ΡŒ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ.

Π’ΠΈΠΏΠΎΠΌ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΉ Π² классах-ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°Ρ… являСтся Β«Ρ‡Π»Π΅Π½ Ρ‡Π΅Π³ΠΎ-Ρ‚ΠΎΒ». НапримСр, элСмСнты массива Β«ΡΠ²Π»ΡΡŽΡ‚ΡΡ Ρ‡Π»Π΅Π½Π°ΠΌΠΈΒ» массива (ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ‚ Π΅ΠΌΡƒ). ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΠΌΡ‹ здСсь ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ Β«Ρ‡Π»Π΅Π½ Ρ‡Π΅Π³ΠΎ-Ρ‚ΠΎΒ» Π½Π΅ Π² смыслС Ρ‡Π»Π΅Π½Π° класса C++.

Π’ΠΈΠΏΡ‹ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π½Ρ‹Ρ… классов

ΠšΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π½Ρ‹Π΅ классы ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π±Ρ‹Π²Π°ΡŽΡ‚ Π΄Π²ΡƒΡ… Ρ‚ΠΈΠΏΠΎΠ²:

ΠšΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹ значСния β€” это ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ хранят ΠΊΠΎΠΏΠΈΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² (ΠΈ, ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, отвСтствСнныС Π·Π° созданиС/ΡƒΠ½ΠΈΡ‡Ρ‚ΠΎΠΆΠ΅Π½ΠΈΠ΅ этих ΠΊΠΎΠΏΠΈΠΉ).

ΠšΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹ ссылки β€” это Π°Π³Ρ€Π΅Π³Π°Ρ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ хранят ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ ΠΈΠ»ΠΈ ссылки Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ (ΠΈ, ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Π½Π΅ отвСтствСнныС Π·Π° созданиС/ΡƒΠ½ΠΈΡ‡Ρ‚ΠΎΠΆΠ΅Π½ΠΈΠ΅ этих ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ²).

Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΉ ΠΆΠΈΠ·Π½ΠΈ, ΠΊΠΎΠ³Π΄Π° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π»ΡŽΠ±Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π² Π½ΠΈΡ… ΠΏΠΎΠΌΠ΅Ρ‰Π°ΡŽΡ‚, Π² языкС C++ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ содСрТат Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ…. НапримСр, Ссли Ρƒ вас цСлочислСнный массив, Ρ‚ΠΎ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ цСлочислСнныС значСния. Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π΄Ρ€ΡƒΠ³ΠΈΡ… языков программирования, C++ Π½Π΅ позволяСт ΡΠΌΠ΅ΡˆΠΈΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°. Если Π²Π°ΠΌ Π½ΡƒΠΆΠ½Ρ‹ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹ для хранСния Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Ρ‚ΠΈΠΏΠΎΠ² int ΠΈ double, Ρ‚ΠΎ Π²Π°ΠΌ придСтся Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π΄Π²Π° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° (ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹, ΠΎ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΡ‹ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ Π½Π° ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΌ ΡƒΡ€ΠΎΠΊΠ΅). НСсмотря Π½Π° ограничСния ΠΈΡ… использования, ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹ Ρ‡Ρ€Π΅Π·Π²Ρ‹Ρ‡Π°ΠΉΠ½ΠΎ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π΄Π΅Π»Π°ΡŽΡ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΎΡ‰Π΅, бСзопаснСС ΠΈ быстрСС.

ΠšΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π½Ρ‹ΠΉ класс-массив

БСйчас ΠΌΡ‹ напишСм цСлочислСнный класс-массив с нуля, рСализуя Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π» ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² Π² языкС Π‘++. Π­Ρ‚ΠΎΡ‚ класс-массив Π±ΡƒΠ΄Π΅Ρ‚ Ρ‚ΠΈΠΏΠ° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° значСния, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π±ΡƒΠ΄ΡƒΡ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒΡΡ ΠΊΠΎΠΏΠΈΠΈ элСмСнтов, Π° Π½Π΅ сами элСмСнты.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

ΠšΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹ стандартной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ C++

Бтандартная Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° прСдоставляСт Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ типобСзопасныС ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹ для хранСния ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΉ связанных ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ². ΠšΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹ ΡΠ²Π»ΡΡŽΡ‚ΡΡ шаблонами классов. ΠŸΡ€ΠΈ объявлСнии ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° указываСтся Ρ‚ΠΈΠΏ элСмСнтов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒΡΡ Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π΅. ΠšΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒΡΡ с использованиСм списков ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€ΠΎΠ². Они ΠΈΠΌΠ΅ΡŽΡ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ элСмСнтов для добавлСния ΠΈ удалСния элСмСнтов ΠΈ выполнСния Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ.

Π˜Ρ‚Π΅Ρ€Π°Ρ†ΠΈΡ элСмСнтов Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π΅ ΠΈ доступ ΠΊ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌ элСмСнтам ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡŽΡ‚ΡΡ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ². Π˜Ρ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ явно, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ ΠΈΡ… Ρ‡Π»Π΅Π½ΠΎΠ² ΠΈ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… нСявно, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ†ΠΈΠΊΠ»Π° range-for. Π˜Ρ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ для всСх ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² стандартной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ C++ ΠΈΠΌΠ΅ΡŽΡ‚ ΠΎΠ±Ρ‰ΠΈΠΉ интСрфСйс, Π½ΠΎ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ опрСдСляСт собствСнныС спСциализированныС ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹.

ΠšΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ Π½Π° Ρ‚Ρ€ΠΈ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ: ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹, ассоциативныС ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹ ΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹-Π°Π΄Π°ΠΏΡ‚Π΅Ρ€Ρ‹.

ΠŸΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹

ΠŸΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ порядок вставляСмых элСмСнтов.

ΠšΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ vector Π²Π΅Π΄Π΅Ρ‚ сСбя ΠΊΠ°ΠΊ массив, Π½ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ автоматичСски ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Ρ‚ΡŒΡΡ ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ нСобходимости. Он ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ прямой доступ ΠΈ связанноС Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ ΠΈ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΎΡ‡Π΅Π½ΡŒ Π³ΠΈΠ±ΠΊΡƒΡŽ Π΄Π»ΠΈΠ½Ρƒ. По этим ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠΌ Π΄Ρ€ΡƒΠ³ΠΈΠΌ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°ΠΌ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ vector являСтся Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠΌ для Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° областСй примСнСния. Если Π²Ρ‹ ΡΠΎΠΌΠ½Π΅Π²Π°Π΅Ρ‚Π΅ΡΡŒ Π² Π²Ρ‹Π±ΠΎΡ€Π΅ Π²ΠΈΠ΄Π° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°, Π½Π°Ρ‡Π½ΠΈΡ‚Π΅ с использования Π²Π΅ΠΊΡ‚ΠΎΡ€Π°. Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ свСдСния см. Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ класс.

list ΠšΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ β€” это Π΄Π²ΡƒΠ½Π°ΠΏΡ€Π°Π²Π»Π΅Π½Π½Ρ‹ΠΉ связанный список, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ обСспСчиваСт Π΄Π²ΡƒΠ½Π°ΠΏΡ€Π°Π²Π»Π΅Π½Π½Ρ‹ΠΉ доступ, Π±Ρ‹ΡΡ‚Ρ€ΡƒΡŽ вставку ΠΈ быстроС ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ Π² любом мСстС Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π΅, Π½ΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ случайный доступ ΠΊ элСмСнту Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π΅. Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ свСдСния см. Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ класс.

ΠšΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ forward_list β€” ΠΎΠ΄Π½ΠΎΠ½Π°ΠΏΡ€Π°Π²Π»Π΅Π½Π½Ρ‹ΠΉ список. Π­Ρ‚ΠΎ вСрсия ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° list Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с доступом Π² прямом Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ. Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ свСдСния см. Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ класс.

АссоциативныС ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹

Π’ ассоциативных ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°Ρ… элСмСнты Π²ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ Π² ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌ порядкС β€” Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, с сортировкой ΠΏΠΎ Π²ΠΎΠ·Ρ€Π°ΡΡ‚Π°Π½ΠΈΡŽ. Π’Π°ΠΊΠΆΠ΅ доступны нСупорядочСнныС ассоциативныС ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹. АссоциативныС ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ Π² Π΄Π²Π° подмноТСства: сопоставлСния (set) ΠΈ Π½Π°Π±ΠΎΡ€Ρ‹ (map).

УпорядочСнныС ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹ map ΠΈ set ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ Π΄Π²ΡƒΠ½Π°ΠΏΡ€Π°Π²Π»Π΅Π½Π½Ρ‹Π΅ ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹, Π° ΠΈΡ… нСупорядочСнный Π°Π½Π°Π»ΠΎΠ³ΠΈ β€” ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ с ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€ΠΎΠΌ Π² прямом Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ. Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ свСдСния см. Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ Π˜Ρ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹.

Π Π°Π·Π½ΠΎΡ€ΠΎΠ΄Π½Ρ‹ΠΉ поиск Π² ассоциативных ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°Ρ… (C++ 14)

Π Π°Π·Π½ΠΎΡ€ΠΎΠ΄Π½Ρ‹ΠΉ поиск Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ, ΠΊΠΎΠ³Π΄Π° указываСтся срСдство сравнСния «Ρ€ΠΎΠΌΠ±ΠΎΠ²ΠΈΠ΄Π½Ρ‹ΠΉ Ρ„ΡƒΠ½ΠΊΡ‚ΠΎΡ€» std::less<> ΠΈΠ»ΠΈ std::greater<> ΠΏΡ€ΠΈ объявлСнии ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅:

Если ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ срСдство сравнСния, Π·Π°Π΄Π°Π½Π½ΠΎΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ Π²Π΅Π΄Π΅Ρ‚ сСбя Ρ‚ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ Π² C++ 11 ΠΈ Π±ΠΎΠ»Π΅Π΅ Ρ€Π°Π½Π½ΠΈΡ… вСрсиях.

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ элСмСнтов Π² Map, multimap, Set ΠΈ ΠœΡƒΠ»ΡŒΡ‚ΠΈΠ½Π°Π±ΠΎΡ€ Π±Ρ‹Π»ΠΈ ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠΆΠ΅Π½Ρ‹ для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ Ρ€Π°Π·Π½ΠΎΡ€ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡƒΡ‚ΠΎΡ‡Π½ΡΡŽΡ‰Π΅Π³ΠΎ запроса:

ΠšΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹-Π°Π΄Π°ΠΏΡ‚Π΅Ρ€Ρ‹

ΠšΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€-Π°Π΄Π°ΠΏΡ‚Π΅Ρ€ β€” это Ρ€Π°Π·Π½ΠΎΠ²ΠΈΠ΄Π½ΠΎΡΡ‚ΡŒ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ ассоциативного ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ интСрфСйс для простоты ΠΈ ясности. АдаптСры ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹.

ΠšΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ queue соотвСтствуСт сСмантикС FIFO (ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ поступил β€” ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ обслуТСн). ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ элСмСнт, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ отправляСтся, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ вставляСтся, Π² ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ элСмСнтом, ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅ΠΌΡ‹ΠΌ ΠΈΠ· ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ. Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ свСдСния см. Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ класс.

ΠšΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ priority_queue упорядочСн Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ Π² ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ всСгда оказываСтся элСмСнт с наибольшим Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ. Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ свСдСния см. Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ класс.

ΠšΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ stack соотвСтствуСт сСмантикС LIFO (послСдним поступил β€” ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ обслуТСн). ПослСдний элСмСнт, ΠΎΡ‚ΠΏΡ€Π°Π²Π»Π΅Π½Π½Ρ‹ΠΉ Π² стСк, становится ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅ΠΌΡ‹ΠΌ элСмСнтом. Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ свСдСния см. Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ класс.

Π’Π°ΠΊ ΠΊΠ°ΠΊ Π°Π΄Π°ΠΏΡ‚Π΅Ρ€Ρ‹ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹, ΠΈΡ… нСльзя ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ с Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°ΠΌΠΈ стандартной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ C++. Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ свСдСния см. Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ Алгоритмы.

ВрСбования для элСмСнтов ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ²

ДСструктору Π½Π΅ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅.

Для Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°Ρ… ΠΌΠΎΠΆΠ΅Ρ‚ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ конструктор ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ равСнства. НапримСр, нСупорядочСнным ассоциативным ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°ΠΌ трСбуСтся ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° сравнСния Π½Π° равСнство ΠΈ Ρ…ΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ.

Доступ ΠΊ элСмСнтам ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°

Доступ ΠΊ элСмСнтам ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² осущСствляСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ². Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ свСдСния см. Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ Π˜Ρ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹.

Для ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€Π° ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΉ стандартной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ C++ ΠΌΠΎΠΆΠ½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ†ΠΈΠΊΠ»Ρ‹ for Π½Π° основС Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ΠΎΠ².

Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ²

Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² Ρ€Π°Π·Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° (C++ 14)

Π’ C++ 14 ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ·Π΄Π½ΠΈΡ… вСрсиях ΠΌΠΎΠΆΠ½ΠΎ ΡΡ€Π°Π²Π½ΠΈΠ²Π°Ρ‚ΡŒ нСсхоТиС ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹ ΠΈ (ΠΈΠ»ΠΈ) Ρ‚ΠΈΠΏΡ‹ элСмСнтов, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΎΠ΄Π½Ρƒ std::equal ΠΈΠ· std::mismatch std::is_permutation ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠ·ΠΎΠΊ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΈΠ»ΠΈ, ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‰ΠΈΡ… Π΄Π²Π° ΠΏΠΎΠ»Π½Ρ‹Ρ… Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°. Π­Ρ‚ΠΈ ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΡΡ€Π°Π²Π½ΠΈΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹ Ρ€Π°Π·Π½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ‹. Π­Ρ‚ΠΈ ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠ·ΠΊΠΈ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ ΠΌΠ΅Π½Π΅Π΅ ΠΏΠΎΠ΄Π²Π΅Ρ€ΠΆΠ΅Π½Ρ‹ ошибкам ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ для Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π° значСния false Π² ΠΎΠ΄Π½ΠΎ ΠΈ Ρ‚ΠΎ ΠΆΠ΅ врСмя, ΠΊΠΎΠ³Π΄Π° ΡΡ€Π°Π²Π½ΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹ Ρ€Π°Π·Π½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ‹. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ рСкомСндуСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ эти ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠ·ΠΊΠΈ, Ссли Ρƒ вас Π½Π΅Ρ‚ Ρ‡Π΅Ρ‚ΠΊΠΎΠΉ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρ‹ отсутствия ΠΈΠ»ΠΈ Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ std::list ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ прСимущСства ΠΏΡ€ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ с Π΄Π²ΠΎΠΉΠ½Ρ‹ΠΌ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ΠΎΠΌ.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π—Π°Ρ‡Π΅ΠΌ ΠΈ ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹: разбираСмся с Docker, Kubernetes ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ инструмСнтами

ΠΠ²Ρ‚ΠΎΡ€ΠΈΠ·ΡƒΠΉΡ‚Π΅ΡΡŒ

Π—Π°Ρ‡Π΅ΠΌ ΠΈ ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹: разбираСмся с Docker, Kubernetes ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ инструмСнтами

Цитируя Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² Docker, Β«ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ β€” это стандартная Π΅Π΄ΠΈΠ½ΠΈΡ†Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния, Π² ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΡƒΠΏΠ°ΠΊΠΎΠ²Π°Π½ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ со всСми Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΌΠΈ для Π΅Π³ΠΎ Ρ€Π°Π±ΠΎΡ‚Ρ‹ зависимостями β€” ΠΊΠΎΠ΄ΠΎΠΌ прилоТСния, срСдой запуска, систСмными инструмСнтами, Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°ΠΌΠΈ ΠΈ настройками».

ΠšΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΡƒΠΆΠ΅ Π±ΠΎΠ»Π΅Π΅ дСсяти Π»Π΅Ρ‚ ΠΈ Π½Π° сСгодняшний дСнь ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ‡Π΅Ρ‚Π²Π΅Ρ€Ρ‚ΡŒ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΉ-Π»ΠΈΠ΄Π΅Ρ€ΠΎΠ² Π² сфСрС IT Π·Π°Π΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‚ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π½Ρ‹Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π² ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ΅Π½Π΅, Π° Π΅Ρ‰Ρ‘ ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΆΠ΅, согласно опросам, ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Π»ΠΈ ΠΏΡ€ΠΈΡΡ‚ΡƒΠΏΠΈΡ‚ΡŒ ΠΊ этому Π² 2019-ΠΌ Π³ΠΎΠ΄Ρƒ.

На Ρ€Ρ‹Π½ΠΊΠ΅ сущСствуСт Π½Π΅ΠΌΠ°Π»ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… срСды запуска ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² ΠΈ оркСстрации, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ CoreOS rkt, LXC, OpenVZ, containerd, Apache Mesos ΠΈ Docker Swarm. Однако Π±ΠΎΠ»Π΅Π΅ 4/5 ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² запускаСтся Π² срСдС Docker, Π° для оркСстрации Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ Π²Ρ‹Π±Ρ€Π°Π»ΠΈ Kubernetes. Об этих систСмах ΠΌΡ‹ ΠΈ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ.

Π§Π΅ΠΌ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹

Π›Π΅Π³ΠΊΠΎΠ²Π΅ΡΠ½ΠΎΡΡ‚ΡŒ, быстродСйствиС ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π° высоком ΡƒΡ€ΠΎΠ²Π½Π΅ абстракции, дСлСгируя ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с ΠΆΠ΅Π»Π΅Π·ΠΎΠΌ ΠΈ ОБ ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€Ρƒ, β€” это прСимущСства ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ², ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠ΅ ΡΠ½ΠΈΠ·ΠΈΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ расходы, связанныС с Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ ΠΈ эксплуатациСй ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π΄Π΅Π»Π°ΡŽΡ‰ΠΈΡ… Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π½Π° ΠΈΡ… Π±Π°Π·Π΅ ΡΡ‚ΠΎΠ»ΡŒ ΠΏΡ€ΠΈΠ²Π»Π΅ΠΊΠ°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ для бизнСса.

ВСхничСским ΠΆΠ΅ спСциалистам ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹ ΠΏΡ€Π΅ΠΆΠ΄Π΅ всСго полюбились Π·Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡƒΠΏΠ°ΠΊΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ вмСстС с Π΅Π³ΠΎ срСдой запуска, Ρ€Π΅ΡˆΠ°Ρ Ρ‚Π΅ΠΌ самым ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ зависимостСй Π² Ρ€Π°Π·Π½Ρ‹Ρ… окруТСниях. НапримСр, Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠ΅ вСрсий языковых Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ Π½Π° Π½ΠΎΡƒΡ‚Π±ΡƒΠΊΠ΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° ΠΈ Π² ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… окруТСниях Ρ€Π°Π½ΠΎ ΠΈΠ»ΠΈ ΠΏΠΎΠ·Π΄Π½ΠΎ ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Ρ‚ ΠΊ сбоям, ΠΈ Π½ΡƒΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ ΠΏΠΎΡ‚Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ врСмя Π½Π° ΠΈΡ… Π°Π½Π°Π»ΠΈΠ·, Π° ΠΊΠ°ΠΊ максимум β€” Ρ€Π΅ΡˆΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ ΠΏΡ€ΠΎΠ½ΠΈΠΊΡˆΠΈΡ… Π² ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ΅Π½ Π±Π°Π³ΠΎΠ². ИспользованиС ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² устраняСт ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ «А Π½Π° ΠΌΠΎΠ΅ΠΉ машинС всС Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΎ! Β―\_(ツ)_/Β―Β».

Π’Π°ΠΊΠΆΠ΅ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΡΠΎΠΊΡ€Π°Ρ‚ΠΈΡ‚ΡŒ врСмя Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ прилоТСния ΠΈ ΡƒΠΏΡ€ΠΎΡ‰Π°ΡŽΡ‚ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈΠΌ Π² ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ΅Π½Π΅ благодаря лёгкости Π² настройкС ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ, возмоТности Π²Π΅Ρ€ΡΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Ρ‘ вмСстС с ΠΊΠΎΠ΄ΠΎΠΌ прилоТСния ΠΈ ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΌ инструмСнтам оркСстрирования, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΌ быстро ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ инфраструктуру. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, фактичСскоС отсутствиС привязки ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² ΠΊ хостинговой ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ Π΄Π°Ρ‘Ρ‚ ΠΎΠ³Ρ€ΠΎΠΌΠ½ΡƒΡŽ Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΈ Π²Ρ‹Π±ΠΎΡ€Π΅ ΠΈΠ»ΠΈ смСнС ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€Π° β€” Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ ΠΈΡ… Π±Π΅Π· ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠΉ Π² ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΌ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Π½Π° Π»ΠΈΡ‡Π½ΠΎΠΌ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅, bare metal сСрвСрах ΠΈ Π² ΠΎΠ±Π»Π°Ρ‡Π½Ρ‹Ρ… сСрвисах.

Π§Π΅ΠΌ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹ ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ ΠΎΡ‚ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… машин

НаиболСС частым вопросом ΠΏΡ€ΠΈ Π²Ρ‹Π±ΠΎΡ€Π΅ срСды запуска прилоТСния являСтся вопрос ΠΎ Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°ΠΌΠΈ ΠΈ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ машинами β€” двумя самыми популярными опциями Π½Π° Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚. ΠœΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ Π΅ΡΡ‚ΡŒ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΈΠ°Π»ΡŒΠ½Π°Ρ Ρ€Π°Π·Π½ΠΈΡ†Π°. ΠšΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€, Π² сущности, являСтся ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹ΠΌ Π²Π½ΡƒΡ‚Ρ€ΠΈ ОБ пространством, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΠΌ для доступа ΠΊ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½Ρ‹ΠΌ рСсурсам ядро host-систСмы. Π’Πœ прСдставляСт собой ΠΌΠ°ΡˆΠΈΠ½Ρƒ Ρ†Π΅Π»ΠΈΠΊΠΎΠΌ со всСми Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΌΠΈ для Π΅Ρ‘ Ρ€Π°Π±ΠΎΡ‚Ρ‹ устройствами. Из этого ΠΎΠ±Ρ€Π°Π·ΡƒΡŽΡ‚ΡΡ отличия, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠ΅ практичСскоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅:

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ

Для эффСктивной Ρ€Π°Π±ΠΎΡ‚Ρ‹ прилоТСния Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°Ρ… нСдостаточно просто ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠ±Ρ€Π°Π· ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° ΠΈ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π΅Π³ΠΎ. НуТно ΠΏΠΎΠ·Π°Π±ΠΎΡ‚ΠΈΡ‚ΡŒΡΡ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° прилоТСния ΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° соотвСтствовала Π±Π°Π·ΠΎΠ²Ρ‹ΠΌ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ°ΠΌ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈΠ·Π°Ρ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ…ΠΎΡ€ΠΎΡˆΠΎ ΠΈΠ·Π»ΠΎΠΆΠΈΠ»Π° компания RedHat.

1 ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ β€” 1 сСрвис

ΠšΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½Ρƒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ β€” Π½Π΅ слСдуСт ΠΏΠΎΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ Π² Π½Π΅Π³ΠΎ всС сущности, ΠΎΡ‚ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… зависит ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π‘Π»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ этому ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡƒ позволяСт Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ большСй ΠΏΠ΅Ρ€Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΡΡ‚ΠΈ ΠΎΠ±Ρ€Π°Π·ΠΎΠ² ΠΈ, Ρ‡Ρ‚ΠΎ самоС Π³Π»Π°Π²Π½ΠΎΠ΅, позволяСт Π±ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ½ΠΊΠΎ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ β€” ΡƒΠ·ΠΊΠΈΠΌ мСстом вашСго сСрвиса ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ какая-Ρ‚ΠΎ Ρ‡Π°ΡΡ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ³ΠΎ стэка Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ, ΠΈ Ρ€Π°Π·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ всСх Π΅Π³ΠΎ частСй ΠΏΠΎ Ρ€Π°Π·Π½Ρ‹ΠΌ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°ΠΌ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Ρ‚ΠΎΡ‡Π΅Ρ‡Π½ΠΎ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ вашСго сСрвиса.

ΠΠ΅ΠΈΠ·ΠΌΠ΅Π½Π½ΠΎΡΡ‚ΡŒ ΠΎΠ±Ρ€Π°Π·Π°

ВсС измСнСния Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π²Π½ΠΎΡΠΈΡ‚ΡŒΡΡ Π½Π° стадии сборки ΠΎΠ±Ρ€Π°Π·Π° β€” соблюдСниС этого ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ° страхуСт вас ΠΎΡ‚ ΡƒΡ‚Ρ€Π°Ρ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΈ ΡƒΠ½ΠΈΡ‡Ρ‚ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°. ΠΠ΅ΠΈΠ·ΠΌΠ΅Π½Π½ΠΎΡΡ‚ΡŒ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° Ρ‚Π°ΠΊΠΆΠ΅ Π΄Π°Ρ‘Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹Π΅ Π·Π°Π΄Π°Ρ‡ΠΈ Π² CI/CD систСмах β€” Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Ρ€Π°Π·Π½ΠΎΠ³ΠΎ Ρ€ΠΎΠ΄Π° тСстирования, ускоряя Ρ‚Π΅ΠΌ самым процСсс Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π°.

Π£Ρ‚ΠΈΠ»ΠΈΠ·ΠΈΡ€ΡƒΠ΅ΠΌΠΎΡΡ‚ΡŒ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ²

Π­Ρ‚ΠΎΡ‚ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ являСт собой яркий ΠΏΡ€ΠΈΠΌΠ΅Ρ€ соврСмСнной ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ Β«ΠžΠ±Ρ€Π°Ρ‰Π°ΠΉΡΡ с инфраструктурой ΠΊΠ°ΠΊ со скотом, Π½Π΅ ΠΊΠ°ΠΊ с ΠΏΠΈΡ‚ΠΎΠΌΡ†Π°ΠΌΠΈΒ». Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ любой ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π² любой ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΡƒΠ½ΠΈΡ‡Ρ‚ΠΎΠΆΠ΅Π½ ΠΈ Π·Π°ΠΌΠ΅Π½Ρ‘Π½ Π½Π° Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π±Π΅Π· остановки обслуТивания. ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° Π² Π²ΠΈΠ΄Π΅ Π΅Π³ΠΎ ΠΎΠ±Ρ€Π°Π·Π° сущностно ΠΎΡ‚Π΄Π΅Π»Π΅Π½Π° ΠΎΡ‚ нСпосрСдствСнно Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰Π΅Π³ΠΎ Ρ€Π°Π±ΠΎΡ‚Ρƒ экзСмпляра ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°, Ρ‡Ρ‚ΠΎ позволяСт Β«ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ ΠΏΠΎΠ΄ Π½ΠΎΠΆΒ» экзСмпляры, ΠΊΠΎΠ³Π΄Π° потрСбуСтся β€” ΠΏΡ€ΠΈ сбоС ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ состояния ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°, ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Π½Π° ΠΏΠΎΠ½ΠΈΠΆΠ΅Π½ΠΈΠ΅ ΠΈ Ρ‚. Π΄. БоотвСтствиС этому ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡƒ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π²Ρ‹Ρ…ΠΎΠ΄ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² ΠΈΠ· строя Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Π½ΠΎΠ²ΠΎΡΡ‚ΡŒΡŽ для вашСго прилоТСния: ротация ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² Π΄ΠΎΠ»ΠΆΠ½Π° ΡΡ‚Π°Ρ‚ΡŒ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ ΠΊ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅.

ΠžΡ‚Ρ‡Ρ‘Ρ‚Π½ΠΎΡΡ‚ΡŒ

ΠšΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠΌΠ΅Ρ‚ΡŒ Ρ‚ΠΎΡ‡ΠΊΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ состояния Π΅Π³ΠΎ готовности (readiness probe) ΠΈ ТизнСспособности (liveness probe), ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ Π»ΠΎΠ³ΠΈ для отслСТивания состояния Π·Π°ΠΏΡƒΡ‰Π΅Π½Π½ΠΎΠ³ΠΎ Π² Π½Ρ‘ΠΌ прилоТСния.

Π£ΠΏΡ€Π°Π²Π»ΡΠ΅ΠΌΠΎΡΡ‚ΡŒ

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΈΠΌΠ΅Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ с ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΌ Π΅Π³ΠΎ процСссом β€” Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ для ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠ³ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ своСй Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ ΠΈΠ·Π²Π½Π΅. Π­Ρ‚ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π°ΠΊΠΊΡƒΡ€Π°Ρ‚Π½ΠΎ Π·Π°ΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ, прСпятствуя ΠΏΠΎΡ‚Π΅Ρ€Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… Π΄Π°Π½Π½Ρ‹Ρ… Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ остановки ΠΈΠ»ΠΈ уничтоТСния ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°.

Π‘Π°ΠΌΠΎΠ΄ΠΎΡΡ‚Π°Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ

ΠžΠ±Ρ€Π°Π· с ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΎΠ±Π»Π°Π΄Π°Ρ‚ΡŒ всСми Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΌΠΈ зависимостями для Ρ€Π°Π±ΠΎΡ‚Ρ‹ β€” Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°ΠΌΠΈ, ΠΊΠΎΠ½Ρ„ΠΈΠ³Π°ΠΌΠΈ ΠΈ ΠΏΡ€ΠΎΡ‡ΠΈΠΌ. БСрвисы ΠΆΠ΅ ΠΊ этим зависимостям Π½Π΅ относятся, ΠΈΠ½Π°Ρ‡Π΅ это ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΡ€Π΅Ρ‡ΠΈΠ»ΠΎ Π±Ρ‹ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡƒ Β«1 ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ β€” 1 сСрвис». Π‘Π²ΡΠ·Π½ΠΎΡΡ‚ΡŒ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ², зависящих Π΄Ρ€ΡƒΠ³ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³Π°, ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ инструмСнтов оркСстрирования, ΠΎ Ρ‡Ρ‘ΠΌ Π±ΡƒΠ΄Π΅Ρ‚ рассказано Π½ΠΈΠΆΠ΅.

Π›ΠΈΠΌΠΈΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ рСсурсов

К Π»ΡƒΡ‡ΡˆΠΈΠΌ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ°ΠΌ эксплуатации ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² относится настройка рСсурсных Π»ΠΈΠΌΠΈΡ‚ΠΎΠ² (CPU ΠΈ RAM): слСдованиС этой ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ позволяСт ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ ΠΊ экономии рСсурсов ΠΈ воврСмя Ρ€Π΅Π°Π³ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° ΠΈΡ… ΠΈΠ·Π±Ρ‹Ρ‚ΠΎΡ‡Π½ΠΎΠ΅ ΠΏΠΎΡ‚Ρ€Π΅Π±Π»Π΅Π½ΠΈΠ΅.

Docker

Когда ΠΌΡ‹ Π³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°Ρ… Π² соврСмСнных IT-систСмах, ΠΏΡ€Π΅ΠΆΠ΄Π΅ всСго ΠΌΡ‹ ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Π΅ΠΌ Docker β€” open-source-Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΡŽ, благодаря своСй популярности ΡΡ‚Π°Π²ΡˆΡƒΡŽ Π² IT синонимом слова Β«ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Β».

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ сущности Docker

Dockerfile

ВСкстовый Ρ„Π°ΠΉΠ», ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ для создания ΠΎΠ±Ρ€Π°Π·Π° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°. Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΡ‚ Π² сСбС ссылку Π½Π° Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ ΠΎΠ±Ρ€Π°Π·, слуТащий ΠΎΡ‚ΠΏΡ€Π°Π²Π½ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ ΠΏΡ€ΠΈ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠ±Ρ€Π°Π·Π° ΠΈ Π½Π°Π±ΠΎΡ€ инструкций для сборки, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ установка зависимостСй, компиляция прилоТСния ΠΈ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΠΎΠ². Π’Π°ΠΊΠΆΠ΅ ΠΎΠ½ содСрТит Ρ‚ΠΎΡ‡ΠΊΡƒ Π²Ρ…ΠΎΠ΄Π° Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ β€” ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡƒΡŽ ΠΏΡ€ΠΈ Π΅Π³ΠΎ запускС.

Image

Готовая файловая систСма, сформированная ΠΏΠΎ инструкциям ΠΈΠ· Dockerfile ΠΈ слуТащая ΠΏΡ€ΠΎΠΎΠ±Ρ€Π°Π·ΠΎΠΌ для запускаСмых ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ².

Instance

Π—Π°ΠΏΡƒΡ‰Π΅Π½Π½Ρ‹ΠΉ экзСмпляр ΠΎΠ±Ρ€Π°Π·Π°, минимальная Π΅Π΄ΠΈΠ½ΠΈΡ†Π° дСплоя Π² Docker.

Volume

ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΠ°Ρ ΠΊ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°ΠΌ файловая систСма, Π½Π΅ ΡΠ²Π»ΡΡŽΡ‰Π°ΡΡΡ ΠΈΡ… Π½Π΅ΠΎΡ‚ΡŠΠ΅ΠΌΠ»Π΅ΠΌΠΎΠΉ Ρ‡Π°ΡΡ‚ΡŒΡŽ ΠΈ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π°Ρ нСзависимо ΠΎΡ‚ ΠΎΠ±Ρ€Π°Π·Π°. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Volume Ρ€Π΅ΡˆΠ°Π΅Ρ‚ΡΡ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° сохранности Π΄Π°Π½Π½Ρ‹Ρ…, записанных Π² процСссС Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² Π² локальной Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмС послС ΠΈΡ… уничтоТСния.

Registry

Π Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ для хранСния Docker-ΠΎΠ±Ρ€Π°Π·ΠΎΠ². Registry ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹ΠΌ, Ρ‚Π°ΠΊ ΠΈ ΠΏΡ€ΠΈΠ²Π°Ρ‚Π½Ρ‹ΠΌ, Π·Π°Ρ‰ΠΈΡ‰Ρ‘Π½Π½Ρ‹ΠΌ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΎΠΌ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ.

ΠŸΡ€ΠΎΡ†Π΅ΡΡ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π² срСдС Docker

Π’ΠΈΠΏΠΈΡ‡Π½Ρ‹ΠΉ процСсс Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π² срСдС Docker выглядит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ: Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°ΡŽΡ‚ Π½Π° свои ΠΌΠ°ΡˆΠΈΠ½Ρ‹ Docker, Π·Π°Π³Ρ€ΡƒΠΆΠ°ΡŽΡ‚ собранный Π·Π°Ρ€Π°Π½Π΅Π΅ ΠΎΠ±Ρ€Π°Π· с установлСнной срСдой сборки ΠΈ выполнСния прилоТСния, Π° Π·Π°Ρ‚Π΅ΠΌ Π·Π°ΠΏΡƒΡΠΊΠ°ΡŽΡ‚ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ, которая Ρ‚Π°ΠΊΠΆΠ΅ пробросит Π² Π½Π΅Π³ΠΎ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ с исходниками. Для установки Docker Π½Π΅ трСбуСтся особого ΠΆΠ΅Π»Π΅Π·Π° β€” ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ установлСн Π½Π° Π²ΠΏΠΎΠ»Π½Π΅ заурядной машинС. Однако Ρƒ Π½Π΅Π³ΠΎ ΠΈΠΌΠ΅ΡŽΡ‚ΡΡ ограничСния ΠΏΠΎ вСрсиям ОБ β€” Windows 7 64bit ΠΈΠ»ΠΈ Π²Ρ‹ΡˆΠ΅ для ПК с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ Hyper-V, macOS Sierra 10.12 для устройств ΠΎΡ‚ Apple ΠΈ вСрсиСй ядра 3.10 для систСм с Linux. ΠšΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹ Docker ΡΠ²Π»ΡΡŽΡ‚ΡΡ Ρ€ΠΎΠ΄Π½ΠΎΠΉ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠ΅ΠΉ для ОБ Linux ΠΈ Π·Π°ΠΏΡƒΡΠΊΠ°ΡŽΡ‚ΡΡ Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΡ… с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… машин ΠΏΠΎΠ΄ Π΅Ρ‘ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ.

Π˜Π½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΠΈ ΠΏΠΎ установкС Docker Π½Π° Ρ€Π°Π·Π½Ρ‹Ρ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ…: Windows, Mac, Linux Ubuntu.

Π§Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ваш ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ Π½Π° Docker, послС Π΅Π³ΠΎ установки Π²Π²Π΅Π΄ΠΈΡ‚Π΅ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС docker run hello-world β€” эта ΠΊΠΎΠΌΠ°Π½Π΄Π° Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ ΠΎΠ±Ρ€Π°Π· hello-world с Docker hub’а (ΠΏΡƒΠ±Π»ΠΈΡ‡Π½ΠΎ доступный Docker registry), создаст ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ этот ΠΎΠ±Ρ€Π°Π·, ΠΈ выдаст ΠΏΡ€ΠΈΠ²Π΅Ρ‚ΡΡ‚Π²Π΅Π½Π½ΡƒΡŽ Ρ„Ρ€Π°Π·Ρƒ:

Hello from Docker!
This message shows that your installation appears to be working correctly.
.

ΠžΡ€ΠΊΠ΅ΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ²: Kubernetes

ΠžΡ€ΠΊΠ΅ΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ β€” это Π² высокой стСпСни Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ процСсс управлСния связанными сущностями, Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ Π³Ρ€ΡƒΠΏΠΏΡ‹ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… машин ΠΈΠ»ΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ².
Kubernetes (Ρ‚Π°ΠΊΠΆΠ΅ встрСчаСтся Π² Π²ΠΈΠ΄Π΅ Π°ΠΊΡ€ΠΎΠ½ΠΈΠΌΠ° K8s) β€” это ΡΠΎΠ²ΠΎΠΊΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ сСрвисов, Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰ΠΈΡ… ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π½Ρ‹ΠΉ кластСр ΠΈ Π΅Π³ΠΎ оркСстрированиС. Kubernetes Π½Π΅ замСняСт Docker β€” ΠΎΠ½ ΡΠ΅Ρ€ΡŒΡ‘Π·Π½ΠΎ Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅Ρ‚ Π΅Π³ΠΎ возмоТности, упрощая ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅ΠΌ, сСтСвой ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ, расходом рСсурсов, балансировкой Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΈ ΠΎΡ‚ΠΊΠ°Π·ΠΎΡƒΡΡ‚ΠΎΠΉΡ‡ΠΈΠ²ΠΎΡΡ‚ΡŒΡŽ запускаСмых ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.

NetApp Kubernetes Service ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ cloud-agnostic кластСр с ΡƒΠΆΠ΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹ΠΌΠΈ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ°ΠΌΠΈ дСплоя ΠΈ управлСния ΠΆΠΈΠ·Π½Π΅Π½Π½Ρ‹ΠΌ Ρ†ΠΈΠΊΠ»ΠΎΠΌ прилоТСния, автоматичСским ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ инфраструктуры, ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠ΅ΠΉ с сСрвисами Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠΌ Π΄Ρ€ΡƒΠ³ΠΈΠΌ, снизив Π·Π°Ρ‚Ρ€Π°Ρ‚Ρ‹ Π½Π° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ слоТной инфраструктуры.

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ сущности, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΠΎΠΏΠ΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ Kubernetes

Node (master ΠΈ slave)

Π£Π·Π»Ρ‹, ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… состоит кластСр Kubernetes. Master-Π½ΠΎΠ΄Π° осущСствляСт ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ Π½Π°Π΄ кластСром Ρ‡Π΅Ρ€Π΅Π· ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊ ΠΈ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠ², обСспСчиваСт интСрфСйс взаимодСйствия с ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌΠΈ посрСдством API-сСрвСра ΠΈ содСрТит Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ etcd, Π³Π΄Π΅ находится конфигурация кластСра, статусы Π΅Π³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΈ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Π΅. Slave-Π½ΠΎΠ΄Π° ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π° ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ для запуска ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ², для этого Π½Π° Π½Π΅ΠΉ установлСны Π΄Π²Π° сСрвиса Kubernetes β€” сСтСвой ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ‚ΠΎΡ€ ΠΈ Π°Π³Π΅Π½Ρ‚ ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊΠ°.

Namespace

Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π½Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ Ρ€Π°Π·Π³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°Ρ‚ΡŒ рСсурсы кластСра ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌΠΈ ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ.

Минимальная Π΅Π΄ΠΈΠ½ΠΈΡ†Π° развёртывания Π² Kubernetes, Π³Ρ€ΡƒΠΏΠΏΠ° ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ², собранных для совмСстного дСплоя Π½Π° Π½ΠΎΠ΄Π΅. Π“Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹ Ρ€Π°Π·Π½ΠΎΠ³ΠΎ Π²ΠΈΠ΄Π° Π² Pod ΠΈΠΌΠ΅Π΅Ρ‚ смысл, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ΠΈ зависят Π΄Ρ€ΡƒΠ³ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³Π° ΠΈ ΠΏΠΎΡ‚ΠΎΠΌΡƒ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Π·Π°ΠΏΡƒΡ‰Π΅Π½Ρ‹ Π½Π° ΠΎΠ΄Π½ΠΎΠΉ Π½ΠΎΠ΄Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠΊΡ€Π°Ρ‚ΠΈΡ‚ΡŒ врСмя ΠΎΡ‚ΠΊΠ»ΠΈΠΊΠ° ΠΏΡ€ΠΈ ΠΈΡ… взаимодСйствии. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ β€” ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹ с Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΈ ΠΊΡΡˆΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΌ Π΅Π³ΠΎ сСрвисом.

ReplicaSet

ΠžΠ±ΡŠΠ΅ΠΊΡ‚, ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰ΠΈΠΉ ΠΈ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ соотвСтствиС Π·Π°ΠΏΡƒΡ‰Π΅Π½Π½ΠΎΠ³ΠΎ Π½Π° кластСрС количСства Ρ€Π΅ΠΏΠ»ΠΈΠΊ Pod’ов. Установка количСства Ρ€Π΅ΠΏΠ»ΠΈΠΊ большС ΠΎΠ΄Π½ΠΎΠΉ трСбуСтся для ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ отказоустойчивости ΠΈ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ прилоТСния. ΠžΠ±Ρ‰Π΅ΠΏΡ€ΠΈΠ½ΡΡ‚ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ReplicaSet с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Deployment.

Deployment

ΠžΠ±ΡŠΠ΅ΠΊΡ‚, Π΄Π΅ΠΊΠ»Π°Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎ ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰ΠΈΠΉ Pod’ы, количСство Ρ€Π΅ΠΏΠ»ΠΈΠΊ ΠΈ ΡΡ‚Ρ€Π°Ρ‚Π΅Π³ΠΈΡŽ ΠΈΡ… Π·Π°ΠΌΠ΅Π½Ρ‹ ΠΏΡ€ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ².

StatefulSet

ДСйствуСт ΠΏΠΎ Ρ‚ΠΎΠΌΡƒ ΠΆΠ΅ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡƒ, Ρ‡Ρ‚ΠΎ ΠΈ ReplicaSet, ΠΎΠ΄Π½Π°ΠΊΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ позволяСт ΠΎΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ ΠΈ ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ ΠΏΡ€ΠΈ пСрСзапускС ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ сСтСвой адрСс Pod’ов ΠΈΠ»ΠΈ ΠΈΡ… дисковоС Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅.

DaemonSet

ΠžΠ±ΡŠΠ΅ΠΊΡ‚, ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ Π·Π° Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π½ΠΎΠ΄Π΅ (ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹Ρ…) Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΏΡƒΡ‰Π΅Π½ΠΎ ΠΏΠΎ экзСмпляру ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ Pod’а.

Job ΠΈ CronJob

ΠžΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, Π·Π°ΠΏΡƒΡΠΊΠ°ΡŽΡ‰ΠΈΠ΅ соотвСтствСнно ΠΎΠ΄Π½ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎ ΠΈ рСгулярно ΠΏΠΎ Ρ€Π°ΡΠΏΠΈΡΠ°Π½ΠΈΡŽ ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ Pod ΠΈ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΠ΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Π΅Π³ΠΎ Ρ€Π°Π±ΠΎΡ‚Ρ‹.

Label ΠΈ Selector

ΠœΠ΅Ρ‚ΠΊΠΈ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠ΅ ΠΌΠ°Ρ€ΠΊΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ рСсурсы ΠΈ Ρ‚Π΅ΠΌ самым ΡƒΠΏΡ€ΠΎΡ‰Π°Ρ‚ΡŒ Π³Ρ€ΡƒΠΏΠΏΠΎΠ²Ρ‹Π΅ манипуляции, связанныС с Π½ΠΈΠΌΠΈ.

Service

Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚ для ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ прилоТСния Π² качСствС сСтСвого сСрвиса, Π² Ρ‚ΠΎΠΌ числС Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰ΠΈΠΉ балансировку Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ Pod’ами прилоТСния.

Если ΡΡ€Π°Π²Π½ΠΈΡ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Docker ΠΈ Kubernetes, Ρ‚ΠΎ станСт понятна Ρ€Π°Π·Π½ΠΈΡ†Π° Π² Π·Π°Π΄Π°Ρ‡Π°Ρ…, Ρ€Π΅ΡˆΠ°Π΅ΠΌΡ‹Ρ… этими инструмСнтами: ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Docker управляСт ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°ΠΌΠΈ, Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ Kubernetes управляСт самим Docker.

Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠ΅ΠΉ (Configuration/Complexity Management)

Π Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ IT-систСм Π²Π΅Π΄Ρ‘Ρ‚ ΠΊΠΎ всё Π±ΠΎΠ»ΡŒΡˆΠ΅ΠΌΡƒ ΠΈΡ… ΡƒΡΠ»ΠΎΠΆΠ½Π΅Π½ΠΈΡŽ, ΠΈ это ΠΏΠΎΡ€ΠΎΠΆΠ΄Π°Π΅Ρ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ управлСния β€” Π΄Π°ΠΆΠ΅ Π½Π° нСбольшом количСствС сСрвСров ΠΈΠ»ΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² Ρ€ΡƒΡ‡Π½ΠΎΠ΅ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΏΡ€Π΅Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ практичСски любоС ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Π² Ρ‚Ρ€ΡƒΠ΄ΠΎΠ²ΠΎΠΉ ΠΏΠΎΠ΄Π²ΠΈΠ³, Π° Π½Π° дСсятках ΠΈΠ»ΠΈ сотнях Π΄Π΅Π»Π°Π΅Ρ‚ Π΅Π³ΠΎ Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ΠΌ. К ΡΡ‡Π°ΡΡ‚ΡŒΡŽ, Π½ΠΎΠ²Ρ‹Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Π²Π΅Π΄ΡƒΡ‚ ΠΈ ΠΊ Π½ΠΎΠ²Ρ‹ΠΌ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡΠΌ β€” Π² этом Ρ€Π°Π·Π΄Π΅Π»Π΅ ΠΌΡ‹ расскаТСм ΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… инструмСнтах управлСния ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠ΅ΠΉ (configuration management) ΠΈΠ»ΠΈ, ΠΊΠ°ΠΊ Π΅Ρ‰Ρ‘ принято Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ, управлСния ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ (complexity management). Они ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для установки, управлСния ΠΈ обновлСния ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Kubernetes: Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, с ΠΈΡ… ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, состоящСС ΠΈΠ· Ρ„Ρ€ΠΎΠ½Ρ‚Π΅Π½Π΄Π°, бэкСнда ΠΈ всСх Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… для ΠΈΡ… Ρ€Π°Π±ΠΎΡ‚Ρ‹ сСрвисов, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Kubernetes, ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹ с Π²Π΅Π±-сСрвСрами, Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ…, сСрвСрами ΠΎΡ‡Π΅Ρ€Π΅Π΄Π΅ΠΉ ΠΈ Ρ‚. Π΄.

ΠŸΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»Π΅Π½Π½Ρ‹Π΅ Π² этом Ρ€Π°Π·Π΄Π΅Π»Π΅ инструмСнты ΠΎΠ±Π»Π°Π΄Π°ΡŽΡ‚ ΠΎΠ±ΡˆΠΈΡ€Π½Ρ‹ΠΌΠΈ сообщСствами ΠΈ мноТСством Π³ΠΎΡ‚ΠΎΠ²Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΉ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ ΡΡΠΊΠΎΠ½ΠΎΠΌΠΈΡ‚ΡŒ массу Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΏΡ€ΠΈ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΉ настройкС сСрвисов, ΠΏΠ΅Ρ€Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΈ адаптируя ΡƒΠΆΠ΅ написанный Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌΠΈ ΠΊΠΎΠ΄.

Kustomize

Благодаря популярности Ρƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΈ своСй простотС, начиная с вСрсии Kubernetes 1.14, Kustomize являСтся встроСнным инструмСнтом управлСния ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠ΅ΠΉ. Для описания ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ чистый язык Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠΈ YAML Π±Π΅Π· возмоТности ΡˆΠ°Π±Π»ΠΎΠ½ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ использования ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ², Ρ‡Ρ‚ΠΎ являСтся ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ Π΅Π³ΠΎ сильной ΠΈ слабой сторонами, упрощая процСсс настройки ΠΈ вмСстС с Ρ‚Π΅ΠΌ сильно Π΅Π³ΠΎ ограничивая.

Ansible

ΠœΠ½ΠΎΠ³ΠΎΡ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ инструмСнт, для ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ конфигурация Kubernetes-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ β€” лишь ΠΎΠ΄Π½ΠΎ ΠΈΠ· Π²Π΅Π»ΠΈΠΊΠΎΠ³ΠΎ мноТСства ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, рСализованная с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ модуля ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ. НапримСр, Ansible ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ использован для настройки Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… машин, развСртывания ΠΎΠ±Π»Π°Ρ‡Π½ΠΎΠΉ инфраструктуры, выполнСния бэкапов ΠΈ Ρ‚.Π΄. Π•Π³ΠΎ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ позволяСт Ρ€Π΅ΡˆΠ°Ρ‚ΡŒ Ρ€Π°Π·Π½ΠΎΠΎΠ±Ρ€Π°Π·Π½Ρ‹Π΅ Π·Π°Π΄Π°Ρ‡ΠΈ, связанныС с IT-ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°ΠΌΠΈ, ΠΎΠ΄Π½ΠΈΠΌ инструмСнтом β€” Π½ΠΎ Ρ†Π΅Π½ΠΎΠΉ мСньшСй Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π² ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΈ управлСния ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠ΅ΠΉ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Kubernetes. Для описания ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ YAML ΠΈ язык шаблонов Jinja2.

УправляйтС Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ… Π² Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ Ansible NetApp.

Jsonnet

Π’Π°ΠΊΠΆΠ΅ ΠΊΠ°ΠΊ ΠΈ Ansible, Jsonnet Π½Π΅ являСтся Ρ‡Π΅ΠΌ-Ρ‚ΠΎ спСцифичным для Kubernetes, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π·Π½Π°ΠΊΠΎΠΌΡ‹ с Π½ΠΈΠΌ ΠΈΠΌΠ΅Π½Π½ΠΎ благодаря K8s. Jsonnet описываСт ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½ΠΎΠ³ΠΎ JSON, Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰Π΅Π³ΠΎ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ, тСкстовыС Π±Π»ΠΎΠΊΠΈ, ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹, ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, условныС Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. ΠžΡ‡Π΅Π½ΡŒ ΠΌΠΎΡ‰Π½Ρ‹ΠΉ ΠΈ Π³ΠΈΠ±ΠΊΠΈΠΉ инструмСнт.

ΠŸΠ°ΠΊΠ΅Ρ‚Π½Ρ‹ΠΉ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Kubernetes. Π­Ρ‚ΠΎΡ‚ инструмСнт описываСт прилоТСния Π² Π²ΠΈΠ΄Π΅ Π΄Π΅ΠΊΠ»Π°Ρ€Π°Ρ‚ΠΈΠ²Π½Ρ‹Ρ… Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌ (charts), ΡΠΎΠ·Π΄Π°ΡŽΡ‰ΠΈΡ…ΡΡ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ языка Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠΈ YAML ΠΈ шаблонов Golang. Helm ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ ΡˆΠΈΡ€ΠΎΠΊΠΎΠΉ Π±Π°Π·ΠΎΠΉ Π³ΠΎΡ‚ΠΎΠ²Ρ‹Ρ… Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌ, Π΄Π°Ρ‘Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²Π΅Ρ€ΡΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΈ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒΡΡ ΠΌΠ΅ΠΆΠ΄Ρƒ вСрсиями Ρ€Π΅Π»ΠΈΠ·ΠΎΠ², Ρ‚. Π΅. ΠΎΡ‚ΠΊΠ°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ. Из всСх ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹Ρ… здСсь инструмСнтов являСтся Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΌ Π² ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΈ управлСния прилоТСниями Kubernetes ΠΈ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ слоТным способом описания ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΈΠ·-Π·Π° шаблонов Golang, вСсьма Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚Π΅Π»Π΅Π½ ΠΊ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΌ Π½Π°Π²Ρ‹ΠΊΠ°ΠΌ.

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ пСрСчислСны лишь Ρ‚Π΅ инструмСнты, Ρ‡Ρ‚ΠΎ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π·Π°ΡΠ»ΡƒΠΆΠΈΠ²Π°ΡŽΡ‚ внимания ΠΏΠΎ Π½Π°ΡˆΠ΅ΠΌΡƒ мнСнию. Помимо Π½ΠΈΡ… сущСствуСт Π΅Ρ‰Ρ‘ с Π΄ΠΎΠ±Ρ€Ρ‹ΠΉ дСсяток Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ для Π·Π°Π΄Π°Ρ‡ управлСния ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠ΅ΠΉ Π² Kubernetes: Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Kapitan, Ksonnet, Replicated Ship ΠΈ Ρ‚. Π΄. ΠŸΡ€ΠΈ Π²Ρ‹Π±ΠΎΡ€Π΅ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Π° управлСния ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠ΅ΠΉ ΠΌΡ‹ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒΡΡ с трСбованиями, ΠΏΡ€Π΅Π΄ΡŠΡΠ²Π»ΡΠ΅ΠΌΡ‹ΠΌΠΈ ΠΊ Π½Π΅ΠΌΡƒ, ΠΈ Ρ€ΡƒΠΊΠΎΠ²ΠΎΠ΄ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΎΠΌ Ρ€Π°Π·ΡƒΠΌΠ½ΠΎΠΉ достаточности, Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Π±Π΅Π· Π½ΡƒΠΆΠ΄Ρ‹ излишнС слоТный инструмСнт β€” Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΌ ΠΏΡƒΡ‚Π΅ΠΌ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°Ρ‡Π°Ρ‚ΡŒ с Ρ‡Π΅Π³ΠΎ-Ρ‚ΠΎ простого, Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ задСйствуя Π±ΠΎΠ»Π΅Π΅ ΠΌΠΎΡ‰Π½Ρ‹ΠΉ инструмСнт, ΠΊΠΎΠ³Π΄Π° Π²ΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ‚ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ.

ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ для хостинга ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ²

Одним ΠΈΠ· основных ΠΌΠΎΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΏΡ€ΠΈ Π²Ρ‹Π²ΠΎΠ΄Π΅ Π² ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ΅Π½ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π½ΠΎΠ³ΠΎ прилоТСния являСтся Π²Ρ‹Π±ΠΎΡ€ Ρ‚ΠΎΠ³ΠΎ, Π³Π΄Π΅ ΠΆΠ΅ Π² ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΌ счётС это ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΏΡƒΡ‰Π΅Π½ΠΎ. Π’ этой части ΡΡ‚Π°Ρ‚ΡŒΠΈ ΠΌΡ‹ постараСмся ΠΏΠΎΠΌΠΎΡ‡ΡŒ Π²Π°ΠΌ, описав Π΄Π²Π° основных Π½Π° сСгодняшний дСнь Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π°, ΠΈΡ… ΡΠΈΠ»ΡŒΠ½Ρ‹Π΅ ΠΈ слабыС стороны.

Π‘Π²ΠΎΡ‘ ΠΆΠ΅Π»Π΅Π·ΠΎ (bare metal)

Π­Ρ‚ΠΎΡ‚ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°Π·Π²Π°Ρ‚ΡŒ консСрвативным β€” Π²Ρ‹Π±Ρ€Π°Π² Π΅Π³ΠΎ, Π²Ρ‹ ΠΏΠΎΠΊΡƒΠΏΠ°Π΅Ρ‚Π΅ ΠΈΠ»ΠΈ Π°Ρ€Π΅Π½Π΄ΡƒΠ΅Ρ‚Π΅ сСрвСры, Π½Π°Π½ΠΈΠΌΠ°Π΅Ρ‚Π΅ спСциалистов ΠΈ строитС свой собствСнный кластСр. ΠžΡ‡Π΅Π²ΠΈΠ΄Π½Ρ‹Π΅ Π΅Π³ΠΎ ΠΏΠ»ΡŽΡΡ‹ β€” тонкая настройка, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ контроля Π½Π°Π΄ инфраструктурой ΠΈ, ΠΊΠ°ΠΊ слСдствиС, прСвосходящая ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ с Π±ΠΎΠ»Π΅Π΅ высокой ΠΎΡ‚Π΄Π°Ρ‡Π΅ΠΉ ΠΎΡ‚ Π±ΡŽΠ΄ΠΆΠ΅Ρ‚Π° Π² Π΄ΠΎΠ»Π³ΠΎΠΉ пСрспСктивС. Из минусов ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ большиС финансовыС (Π² Ρ‚ΠΎΠΌ числС ΠΊΠ°ΠΏΠΈΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅) ΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π·Π°Ρ‚Ρ€Π°Ρ‚Ρ‹ Π½Π° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ ΠΎΡ‚ спСциалистов ΠΏΠΎ Π΅Ρ‘ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ΅. Как ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, этот Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Π²Ρ‹Π±ΠΈΡ€Π°ΡŽΡ‚ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠ΅ Π²Ρ‹Π²Π΅Ρ€Π΅Π½Π½Ρ‹Π΅ долгосрочныС ΠΏΠ»Π°Π½Ρ‹, ΡƒΠΆΠ΅ обСспСчСнныС солидным Π±ΡŽΠ΄ΠΆΠ΅Ρ‚ΠΎΠΌ.

ΠžΠ±Π»Π°Ρ‡Π½Ρ‹Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ (SaaS)

ΠšΡ€ΡƒΠΏΠ½Ρ‹Π΅ ΠΎΠ±Π»Π°Ρ‡Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€Ρ‹ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ своим ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°ΠΌ сСрвисы для запуска ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² β€” Π³ΠΎΡ‚ΠΎΠ²Ρ‹Π΅ срСды, ΠΎΠ±Ρ‘Ρ€Π½ΡƒΡ‚Ρ‹Π΅ ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΌ интСрфСйсом управлСния. ΠŸΠΎΡΡ‚Ρ€ΠΎΠ΅Π½Π½Ρ‹Π΅ ΠΏΠΎ Ρ‚Π°ΠΊΠΎΠΌΡƒ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡƒ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ Software as a Service (SaaS). Они Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… ΠΊΠ°ΠΏΠΈΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… Π·Π°Ρ‚Ρ€Π°Ρ‚, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ вся инфраструктура арСндуСтся, Π° конфигурация создаётся Π² минимальном ΠΎΠ±ΡŠΡ‘ΠΌΠ΅, относящСмуся ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΊ запускаСмому ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ. Π‘Π°ΠΌΠΈ ΠΆΠ΅ кластСры Π½Π°ΡΡ‚Ρ€Π°ΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€ΠΎΠΌ ΠΏΠΎ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΌΡƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ Π½Π΅Π±ΠΎΠ»ΡŒΡˆΠΎΠΌΡƒ ΠΎΠ±ΡŠΠ΅ΠΌΡƒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ². SaaS-Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ β€” ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ для стартап-ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΉ, Π½Π΅Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΈ Ρ€Π°Π·Π²ΠΈΠ²Π°ΡŽΡ‰ΠΈΡ…ΡΡ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ². Π‘Π°ΠΌΡ‹ΠΌ большим минусом этого Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°Π·Π²Π°Ρ‚ΡŒ ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½Π½ΡƒΡŽ Π² сравнСнии с bare metal ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΈ условии ΠΌΠ½ΠΎΠ³ΠΎΠ»Π΅Ρ‚Π½Π΅Π³ΠΎ использования.

Π₯ΠΎΡ‚ΠΈΡ‚Π΅ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½ΡƒΡŽ ΡΠΎΡ…Ρ€Π°Π½Π½ΠΎΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Ρ…, создаваСмых ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°Ρ…? NetApp Trident ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π»Π΅Π³ΠΊΠΎ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π² Π²Π°ΡˆΡƒ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π½ΡƒΡŽ инфраструктуру Π½Π°Π΄Π΅ΠΆΠ½ΠΎΠ΅ ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ Π΄Π°Π½Π½Ρ‹Ρ… enterprise-уровня.

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Π•Ρ‰Ρ‘ Π½Π΅Π΄Π°Π²Π½ΠΎ Π½Π΅ смолкали Π΄Π΅Π±Π°Ρ‚Ρ‹ Π½Π° Ρ‚Π΅ΠΌΡƒ оправданности использования ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² Π² ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ΅Π½Π΅, Ρ‚ΠΎ ΠΈ Π΄Π΅Π»ΠΎ Π±Ρ‹Π»ΠΈ ΡΠ»Ρ‹ΡˆΠ½Ρ‹ обвинСния Π² ΠΈΡ… нСнадСТности. Однако врСмя Π½Π΅ стоит Π½Π° мСстС, индустрия ΠΎΡ†Π΅Π½ΠΈΠ»Π° ΠΈΡ… ΠΏΠ΅Ρ€ΡΠΏΠ΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ, сдСлала свой Π²Ρ‹Π±ΠΎΡ€, ΠΈ инвСстиции Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π½Ρ‹Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΏΠΎΡ‚Π΅ΠΊΠ»ΠΈ ΡˆΠΈΡ€ΠΎΠΊΠΎΠΉ Ρ€Π΅ΠΊΠΎΠΉ, с ΠΊΠ°ΠΆΠ΄Ρ‹ΠΌ Π΄Π½Π΅ΠΌ дСлая Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π½Π° ΠΈΡ… Π±Π°Π·Π΅ всё ΡƒΠ΄ΠΎΠ±Π½Π΅Π΅ ΠΈ ΠΏΡ€ΠΈΠ²Π»Π΅ΠΊΠ°Ρ‚Π΅Π»ΡŒΠ½Π΅Π΅. На сСгодняшний дСнь ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½ΡƒΡŽ настройку кластСра ΠΈ Π΄Π΅ΠΏΠ»ΠΎΠΉ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π² Π½Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΎΠ΄ΠΈΠ½ лишь Π²Π΅Π±-интСрфСйс, ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π² нСсколько страниц Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ β€” Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ это стало просто. А ΠΈΡ… низкая ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ машинами ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒ откусываСт Ρƒ Π’Πœ всё Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ долю Ρ€Ρ‹Π½ΠΊΠ°, забирая Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ для своСй Ρ€Π°Π±ΠΎΡ‚Ρ‹ спСцифики устройства Π’Πœ. БСзусловно, ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹ Π·Π°Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Π»ΠΈ сСбя ΠΊΠ°ΠΊ ΠΆΠΈΠ·Π½Π΅- ΠΈ конкурСнтоспособноС Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅, ΡΠΎΠΊΡ€Π°Ρ‰Π°ΡŽΡ‰Π΅Π΅ врСмя Π²Ρ‹Π²ΠΎΠ΄Π° ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π° Π½Π° Ρ€Ρ‹Π½ΠΎΠΊ, ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒ Π΅Π³ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ эксплуатации.

РассказываСт Π‘Π΅Ρ€Π³Π΅ΠΉ Π‘Ρ€ΠΎΠ΄ΠΈΠ½. ВСкст ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΈΠ»ΠΈ вмСстС с NetApp

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *