ΠΠ°Π·Π²Π°ΠΌΠ΅ Π²ΠΈ ΠΊΠ°ΠΊΠ²ΠΎ Π΅ IoT Inspector ΠΈ ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠΈ.
ΠΡΠ½ΠΎΡΠ½ΠΎ ΡΠΈΠ³ΡΡΠ½ΠΎΡΡΡΠ° Π½Π° ΠΠ½ΡΠ΅ΡΠ½Π΅Ρ Π½Π° Π½Π΅ΡΠ°ΡΠ°
Π ΠΊΠΎΠ½ΡΡΠ»ΡΠ°Π½ΡΡΠΊΠ°ΡΠ° ΡΠΈΡΠΌΠ° Bain & Company (
ΠΠ°
ΠΠ° Π΄Π° Π·Π°ΡΠΈΡΡΡ ΡΠΌΠ°ΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π°ΡΠ°, ΡΠ»ΡΠΆΠΈΡΠ΅Π»ΠΈ Π½Π° ΠΠ’ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ ΠΈ ΡΠ½ΠΈΠ²Π΅ΡΡΠΈΡΠ΅ΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ²Π°Ρ Π½ΠΎΠ²ΠΈ ΡΠΎΡΡΡΠ΅ΡΠ½ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ.
ΠΠ°ΠΊ ΡΡΠ½ΠΊΡΠΈΠΎΠ½ΠΈΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ°
IoT Inspector ΡΠ»Π΅Π΄ΠΈ Π΄Π΅ΠΉΠ½ΠΎΡΡΡΠ° Π½Π° IoT ΡΡΡΡΠΎΠΉΡΡΠ²Π°ΡΠ° Π² ΠΌΡΠ΅ΠΆΠ°ΡΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° ΡΠ΅Ρ
Π½ΠΎΠ»ΠΎΠ³ΠΈΡ
ΠΡΠΈ ΠΈΠ·ΠΏΡΠ°ΡΠ°Π½Π΅ Π½Π° ARP ΠΏΠ°ΠΊΠ΅ΡΠΈ
class ArpScan(object):
def __init__(self, host_state):
assert isinstance(host_state, HostState)
self._lock = threading.Lock()
self._active = True
self._thread = threading.Thread(target=self._arp_scan_thread)
self._thread.daemon = True
def start(self):
with self._lock:
self._active = True
utils.log('[ARP Scanning] Starting.')
self._thread.start()
def _arp_scan_thread(self):
utils.restart_upon_crash(self._arp_scan_thread_helper)
def _arp_scan_thread_helper(self):
while True:
for ip in utils.get_network_ip_range():
time.sleep(0.05)
arp_pkt = sc.Ether(dst="ff:ff:ff:ff:ff:ff") /
sc.ARP(pdst=ip, hwdst="ff:ff:ff:ff:ff:ff")
sc.sendp(arp_pkt, verbose=0)
with self._lock:
if not self._active:
return
def stop(self):
utils.log('[ARP Scanning] Stopping.')
with self._lock:
self._active = False
self._thread.join()
utils.log('[ARP Scanning] Stopped.')
Π‘Π»Π΅Π΄ ΠΊΠ°ΡΠΎ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠ° ΠΌΡΠ΅ΠΆΠ°ΡΠ°, IoT Inspector ΡΡΡΠ²ΡΡΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΡΠ²Π° Ρ ΠΊΠΎΠΈ ΡΠ°ΠΉΡΠΎΠ²Π΅ IoT Π΄ΠΆΠ°Π΄ΠΆΠΈΡΠ΅ ΠΎΠ±ΠΌΠ΅Π½ΡΡ Π΄Π°Π½Π½ΠΈ, ΠΊΠΎΠ»ΠΊΠΎ ΡΠ΅ΡΡΠΎ ΠΏΡΠ°Π²ΡΡ ΡΠΎΠ²Π° ΠΈ Π² ΠΊΠ°ΠΊΠ²ΠΈ ΠΎΠ±Π΅ΠΌΠΈ ΠΏΡΠ΅Π΄Π°Π²Π°Ρ ΠΈ ΠΏΠΎΠ»ΡΡΠ°Π²Π°Ρ ΠΏΠ°ΠΊΠ΅ΡΠΈ. Π ΡΠ΅Π·ΡΠ»ΡΠ°Ρ Π½Π° ΡΠΎΠ²Π° ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° ΠΏΠΎΠΌΠ°Π³Π° Π΄Π° ΡΠ΅ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΠ°Ρ ΠΏΠΎΠ΄ΠΎΠ·ΡΠΈΡΠ΅Π»Π½ΠΈ ΡΠ΅ΡΡΡΡΠΈ, ΠΊΡΠΌ ΠΊΠΎΠΈΡΠΎ PD ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΠΈΠ·ΠΏΡΠ°ΡΠ΅Π½ Π±Π΅Π· Π·Π½Π°Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»Ρ.
ΠΠ°ΡΠ΅Π³Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ ΡΠ°Π±ΠΎΡΠΈ ΡΠ°ΠΌΠΎ Π½Π° macOS. ΠΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΈΠ·ΡΠ΅Π³Π»ΠΈΡΠ΅ zip Π°ΡΡ
ΠΈΠ²Π° ΠΎΡ
Π’Π°Π·ΠΈ Π³ΠΎΠ΄ΠΈΠ½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅ ΠΎΠ±Π΅ΡΠ°Ρ
Π° Π΄Π° Π΄ΠΎΠ±Π°Π²ΡΡ Π²Π΅ΡΡΠΈΡ Π·Π° Linux, Π° ΠΏΡΠ΅Π· ΠΌΠ°ΠΉ - ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π·Π° Windows. ΠΠ·Ρ
ΠΎΠ΄Π½ΠΈΡΡ ΠΊΠΎΠ΄ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ° Π΅ Π½Π°Π»ΠΈΡΠ΅Π½
ΠΠΎΡΠ΅Π½ΡΠΈΠ°Π» ΠΈ Π½Π΅Π΄ΠΎΡΡΠ°ΡΡΡΠΈ
Π Π°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅ ΠΊΠ°Π·Π²Π°Ρ, ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° ΡΠ΅ ΠΏΠΎΠΌΠΎΠ³Π½Π΅ Π½Π° ΠΠ’ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈΡΠ΅ Π΄Π° ΡΡΡΡΡΡ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ Π² ΡΠΎΡΡΡΠ΅ΡΠ° Π½Π° IoT ΡΡΡΡΠΎΠΉΡΡΠ²Π° ΠΈ Π΄Π° ΡΡΠ·Π΄Π°Π²Π°Ρ ΠΏΠΎ-ΡΠΈΠ³ΡΡΠ½ΠΈ ΡΠΌΠ°ΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π°. ΠΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡΡ Π²Π΅ΡΠ΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΎΡΠΊΡΠΈΠ΅ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ Π² ΡΠΈΠ³ΡΡΠ½ΠΎΡΡΡΠ° ΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ°.
IoT Inspector Π½Π°ΠΌΠΈΡΠ° ΡΡΡΡΠΎΠΉΡΡΠ²Π°, ΠΊΠΎΠΈΡΠΎ ΠΊΠΎΠΌΡΠ½ΠΈΠΊΠΈΡΠ°Ρ ΡΠ²ΡΡΠ΄Π΅ ΡΠ΅ΡΡΠΎ, Π΄ΠΎΡΠΈ ΠΊΠΎΠ³Π°ΡΠΎ Π½ΠΈΠΊΠΎΠΉ Π½Π΅ Π³ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°. ΠΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡΡ ΡΡΡΠΎ ΡΠ°ΠΊΠ° ΠΏΠΎΠΌΠ°Π³Π° Π·Π° ΠΎΡΠΊΡΠΈΠ²Π°Π½Π΅ Π½Π° ΡΠΌΠ°ΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π°, ΠΊΠΎΠΈΡΠΎ Π·Π°Π±Π°Π²ΡΡ ΠΌΡΠ΅ΠΆΠ°ΡΠ°, ΠΊΠ°ΡΠΎ Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΠΈΠ·ΡΠ΅Π³Π»ΡΠ½Π΅ Π½Π° Π°ΠΊΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΠ²ΡΡΠ΄Π΅ ΡΠ΅ΡΡΠΎ.
IoT Inspector Π²ΡΠ΅ ΠΎΡΠ΅ ΠΈΠΌΠ° Π½ΡΠΊΠΎΠΈ Π½Π΅Π΄ΠΎΡΡΠ°ΡΡΡΠΈ. Π’ΡΠΉ ΠΊΠ°ΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ Π΅ Π΅ΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°Π»Π½ΠΎ, ΡΠΎ Π²ΡΠ΅ ΠΎΡΠ΅ Π½Π΅ Π΅ ΡΠ΅ΡΡΠ²Π°Π½ΠΎ Π½Π° Π²ΡΠΈΡΠΊΠΈ IoT ΡΡΡΡΠΎΠΉΡΡΠ²Π° Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ. Π‘Π»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΎ ΡΠ°ΠΌΠΈΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠΌΠ° ΠΎΡΡΠΈΡΠ°ΡΠ΅Π»Π½ΠΎ Π²ΡΠ·Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Π²ΡΡΡ Ρ ΡΠ°Π±ΠΎΡΠ°ΡΠ° Π½Π° ΡΠΌΠ½ΠΈΡΠ΅ Π΄ΠΆΠ°Π΄ΠΆΠΈ. ΠΠΎΡΠ°Π΄ΠΈ ΡΠ°Π·ΠΈ ΠΏΡΠΈΡΠΈΠ½Π° Π°Π²ΡΠΎΡΠΈΡΠ΅ Π½Π΅ ΠΏΡΠ΅ΠΏΠΎΡΡΡΠ²Π°Ρ ΡΠ²ΡΡΠ·Π²Π°Π½Π΅ΡΠΎ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ Ρ ΠΌΠ΅Π΄ΠΈΡΠΈΠ½ΡΠΊΠΈ Π΄ΠΆΠ°Π΄ΠΆΠΈ.
Π‘Π΅Π³Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅ ΡΠ° ΡΠΎΠΊΡΡΠΈΡΠ°Π½ΠΈ Π²ΡΡΡ
Ρ ΠΏΡΠ΅ΠΌΠ°Ρ
Π²Π°Π½Π΅ΡΠΎ Π½Π° Π³ΡΠ΅ΡΠΊΠΈ, Π½ΠΎ Π² Π±ΡΠ΄Π΅ΡΠ΅ Π΅ΠΊΠΈΠΏΡΡ Π½Π° ΠΡΠΈΠ½ΡΡΡΠ½ΡΠΊΠΈΡ ΡΠ½ΠΈΠ²Π΅ΡΡΠΈΡΠ΅Ρ ΠΏΠ»Π°Π½ΠΈΡΠ° Π΄Π° ΡΠ°Π·ΡΠΈΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡΡΠ° Π½Π° ΡΠ²ΠΎΠ΅ΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ Π΄Π° Π²ΡΠ²Π΅Π΄Π΅ Π² Π½Π΅Π³ΠΎ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΈ Π·Π° ΠΌΠ°ΡΠΈΠ½Π½ΠΎ ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅. Π’Π΅ ΡΠ΅ ΠΏΠΎΠΌΠΎΠ³Π½Π°Ρ Π·Π° ΡΠ²Π΅Π»ΠΈΡΠ°Π²Π°Π½Π΅ Π½Π° Π²Π΅ΡΠΎΡΡΠ½ΠΎΡΡΡΠ° Π·Π° ΠΎΡΠΊΡΠΈΠ²Π°Π½Π΅ Π½Π° DDoS Π°ΡΠ°ΠΊΠΈ Π΄ΠΎ 99%. ΠΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΠ΅ Π·Π°ΠΏΠΎΠ·Π½Π°Π΅ΡΠ΅ Ρ Π²ΡΠΈΡΠΊΠΈ ΠΈΠ΄Π΅ΠΈ Π½Π° ΠΈΠ·ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΠΈΡΠ΅ Π²
ΠΡΡΠ³ΠΈ IoT ΠΏΡΠΎΠ΅ΠΊΡΠΈ
ΠΡΡΠΏΠ° Π°ΠΌΠ΅ΡΠΈΠΊΠ°Π½ΡΠΊΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΠΈ ΡΡΡΡΡΠ΄Π½ΠΈΡΠ°Ρ Ρ ΠΠ°Π½ΠΈ ΠΡΠ΄ΠΌΠ°Π½, Π°Π²ΡΠΎΡ Π½Π° ΠΊΠ½ΠΈΠ³ΠΈ Π·Π° JavaScript ΠΈ HTML, ΡΡΠ·Π΄Π°Π²Π°Ρ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π·Π° Π½Π°Π±Π»ΡΠ΄Π΅Π½ΠΈΠ΅ Π½Π° Π΅ΠΊΠΎΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° Π½Π° ΠΠ½ΡΠ΅ΡΠ½Π΅Ρ Π½Π° Π½Π΅ΡΠ°ΡΠ° -
Π¦Π΅Π»ΡΠ° Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ° Π΅ Π΄Π° ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡΠ° Π΄ΠΆΠ°Π΄ΠΆΠΈ Π·Π° ΠΈΠ½ΡΠ΅Π»ΠΈΠ³Π΅Π½ΡΠ΅Π½ Π΄ΠΎΠΌ IoT Π² Π΅Π΄Π½Π° ΠΌΡΠ΅ΠΆΠ° ΠΈ Π΄Π° ΡΠ΅Π½ΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ° ΠΊΠΎΠ½ΡΡΠΎΠ»Π°. Π Π°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅ ΠΊΠ°Π·Π²Π°Ρ, ΡΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²Π°ΡΠ° ΠΎΡ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΠΈ ΡΠ΅ΡΡΠΎ Π½Π΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΠΊΠΎΠΌΡΠ½ΠΈΠΊΠΈΡΠ°Ρ ΠΏΠΎΠΌΠ΅ΠΆΠ΄Ρ ΡΠΈ ΠΈ ΡΠ°Π±ΠΎΡΡΡ ΠΎΡΠ΄Π΅Π»Π½ΠΎ. ΠΠ° Π΄Π° ΡΠ΅ΡΠ°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°, Π°Π²ΡΠΎΡΠΈΡΠ΅ Π½Π° ΠΈΠ½ΠΈΡΠΈΠ°ΡΠΈΠ²Π°ΡΠ° ΡΡΠ·Π΄Π°Π΄ΠΎΡ Π° ΡΠΎΡΡΡΠ΅Ρ, ΠΊΠΎΠΉΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ°Π±ΠΎΡΠΈ Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΌΡΠ΅ΠΆΠΎΠ²ΠΈ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΈ, Π΄ΠΆΠ°Π΄ΠΆΠΈ ΠΈ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
Π‘ΠΏΠΈΡΡΠΊ Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Π½ΠΈΡΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²Π°
ΠΡΡΠ³ ΠΎΡΠ²ΠΎΡΠ΅Π½ ΠΏΡΠΎΠ΅ΠΊΡ -
/ ΡΠ½ΠΈΠΌΠΊΠ°
ΠΡΠ΄Π΅ΡΠ΅ΡΠΎ Π½Π° ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΡ
ΠΡΠΎΠ΅ΠΊΡΠΈ Ρ ΠΎΡΠ²ΠΎΡΠ΅Π½ ΠΊΠΎΠ΄, Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΈ ΡΠ°ΠΌΠΊΠΈ Π²ΡΠ΅ ΠΏΠΎΠ²Π΅ΡΠ΅ ΡΠ΅ ΠΏΠΎΡΠ²ΡΠ²Π°Ρ Π½Π° IoT ΠΏΠ°Π·Π°ΡΠ°. Linux Foundation, ΠΊΠΎΡΡΠΎ ΡΡΡΠΎ ΡΠ°Π±ΠΎΡΠΈ Π² ΠΎΠ±Π»Π°ΡΡΡΠ° Π½Π° IoT (ΡΡΠ·Π΄Π°Π΄ΠΎΡ
Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ°
ΠΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ ΠΎΡ ΠΏΡΡΠ²ΠΈΡ Π±Π»ΠΎΠ³ Π·Π° ΠΊΠΎΡΠΏΠΎΡΠ°ΡΠΈΠ²Π½ΠΈΡ IaaS:
ΠΠ°ΠΊ REDWEB ΡΠ΅ Π½Π°ΠΌΠΈΡΠ° Π² ΠΎΠ±Π»Π°ΠΊΠ° Π½Π° IT-GRAD Π Π°Π·Π²ΠΈΡΠΈΠ΅ Π½Π° ΡΠ΅Π½ΡΡΠΎΠ²Π΅ Π·Π° Π΄Π°Π½Π½ΠΈ: ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡΠ½ΠΈ ΡΠ΅Π½Π΄Π΅Π½ΡΠΈΠΈ Avito.ru: ΠΊΠ°ΠΊ ΠΎΠ±Π»Π°ΠΊΡΡ IaaS ΠΏΠΎΠΌΠ°Π³Π° ΠΏΡΠΈ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° Π±ΠΈΠ·Π½Π΅ΡΠ° Π½Π° ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡΡΠ° ΠΠ°ΠΊ Π΄Π° ΠΏΠΎΠ΄ΠΎΠ±ΡΠΈΠΌ Π΅Π½Π΅ΡΠ³ΠΈΠΉΠ½Π°ΡΠ° Π΅ΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡ Π½Π° ΡΠ΅Π½ΡΡΡ Π·Π° Π΄Π°Π½Π½ΠΈ Π‘Π²ΡΡ ΠΏΡΠ΅Π΄ΠΈ ΠΈ ΡΠ»Π΅Π΄. ΠΠ°ΠΊ ΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ ΠΆΠΈΠ²ΠΎΡΡΡ Ρ Π½Π°ΡΡΡΠΏΠ²Π°Π½Π΅ΡΠΎ Π½Π° Π΄Π΅Π½Ρ Π½Π° ΡΠ»Π°Π³Π° Π½Π° DNS ΠΡΠ·ΡΡΠ°Π½ΠΎΠ²ΡΠ²Π°Π½Π΅ ΡΠ»Π΅Π΄ Π±Π΅Π΄ΡΡΠ²ΠΈΠ΅ ΠΊΠ°ΡΠΎ ΡΡΠ»ΡΠ³Π°: ΠΠ°ΠΊΠ²ΠΎ ΡΡΡΠ±Π²Π° Π΄Π° Π·Π½Π°Π΅ΡΠ΅ ΠΠ°ΠΊ IaaS ΠΏΠΎΠΌΠ°Π³Π° Π·Π° ΡΠ°Π·Π²ΠΈΡΠΈΠ΅ΡΠΎ Π½Π° Π±ΠΈΠ·Π½Π΅ΡΠ°: ΡΡΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°, ΠΊΠΎΠΈΡΠΎ ΠΎΠ±Π»Π°ΠΊΡΡ ΡΠ΅ ΡΠ΅ΡΠΈ
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: www.habr.com