Сервис архитектурасы

Cloud Spark сервисі келесі компоненттерді қамтиды:
- Cloud Spark кластері;
- Docker Registry бар виртуалды машина;
- VK Object Storage;
- Cloud ML Platform сервисі.
Cloud Spark кластері — Cloud Containers сервисі негізінде өрістетілген K8s кластері. Кластер құрамына мыналар кіреді:
- Spark Driver процесі іске қосылған master-түйін. Бұл процесс пайдаланушы қолданбасын тапсырмаларға (орындау бірліктеріне) бөледі және оларды параллель орындау үшін worker-түйіндерге таратады.
- Саны пайдаланушы қолданбасының қажеттіліктеріне байланысты берілген шектерде өзгеретін worker-түйіндер. Пайдаланушы қолданбасы іске қосылған кезде worker-түйіндерде Spark Executor процесі іске қосылады, ол Spark Driver процесінен келетін тапсырмаларды орындайды және нәтижені Spark Driver-ға қайтарады.
- Spark Operator — кластердің өмірлік циклін басқару құралы. Ол өрістету, масштабтау және жаңарту процестерін автоматтандырады. Spark Operator тапсырмаларды (пайдаланушы қолданбаларын орындау сұрауларын) қабылдайды және тапсырмаларды орындау мен нәтижелерді жинау үшін қажетті подтарды іске қосады.
- Spark History Server — тапсырмалардың орындалуы туралы ақпарат жинақталатын сервис. Сервис тапсырмалардың орындалу тарихын қарауға, кластер өнімділігін талдауға және мәселелерді диагностикалауға болатын интерфейс ұсынады.
- Authorization — Spark History Server үшін авторизация сервисі.
- API server — Spark компоненттерімен өзара әрекеттесуге арналған API қамтитын сервер.
Docker Registry ішінде әдепкі бойынша пайдаланылатын контейнердің Docker-бейнесі сақталады, оған Cloud Spark кластерін өрістетуге және онда пайдаланушы қолданбаларын іске қосуға арналған кітапханалар, тәуелділіктер және баптаулар кіреді.
Қажет болған жағдайда пайдаланушы Docker Registry-ге өз Docker-бейнелерін жүктеп, кейін оларды сервисте пайдалана алады.
VK Object Storage — S3 қолдауы бар VK Cloud платформасының объектілік қоймасы. Cloud Spark сервисін өрістету кезінде сервиспен біріктірілген бакет автоматты түрде жасалады. Ол әдепкі бойынша Spark History Server үшін логтарды сақтау, тәуелділіктерді, пайдаланушы қолданбаларының коды бар файлдарды және пайдаланушы тапсырмаларын орындауға қажетті басқа артефактілерді жүктеу үшін пайдаланылады.
Cloud Spark сервисіне қосымша бакеттерді де қосуға болады.
Cloud ML Platform сервисі Cloud Spark кластерімен жұмыс істеу әдістерін ұсынатын кіріктірілген Python-кітапхананы қамтиды. Кітапхананы пайдалану мыналарға мүмкіндік береді:
- Кластердің параметрлері мен күйі туралы ақпарат алып, оның жұмысын басқаруға.
- SparkApplication түріндегі пайдалануға дайын манифестерді алып, оларды өз қолданбаларыңызға бейімдеуге.
- SparkApplication түріндегі манифестер арқылы кластерде Spark тапсырмаларын іске қосуға.
- Spark тапсырмаларының орындалу барысы туралы ақпарат жинауға.
- Kubernetes secrets жасауға. Secrets пайдаланушы тапсырмаларын орындау кезінде қажетті сезімтал деректерді қауіпсіз сақтауға және пайдалануға мүмкіндік береді.
- ConfigMaps жасауға — конфигурациялық деректерді сақтауға арналған Kubernetes объектілері. ConfigMaps пайдаланудың мақсаты — пайдаланушы қолданбасының кодын әртүрлі орындау орталары арасында тасымалдауды жеңілдету.