áá±áž áá¬á!
áá®áá±á¬ááºážáá«ážááŸá¬áá±á¬á· Yandex áááºážááá¬ááœá±ááᯠá¡áá¯á¶ážááŒá¯ááŒá®áž áááºááŒáááºáá²á·áááºááá¯ááºáá áºáá¯ááᯠááœááºááœááºáá°áá°áá²á· ááá¯ážááŸááºážá áœá¬ áááºáá¶áá»ááºážááááºážááᯠááŒá±á¬ááŒáá«áááºá object ááá¯ááŸá±á¬ááº.
á¡áá¯á¶ážááœááºá ááá·áºááœáẠááŒááºáááá·áºááºááŸáá áºááá·áº áááºáá±á¬ááºá¡áá¯á¶ážááŒá¯ááá¯ááºááá·áº áááº-áááºáá¶áá±á¬ááºááœááºáá±ážááá·áº áááºááá¯ááºáá áºáᯠááŸááááºááŒá áºáááºá
á€áá±á¬ááºážáá«ážááẠááá·áºá¡ááœáẠá¡áá¯á¶ážáááºáá«áááá·áºáááºá
- áááá¯ááááºááᯠá áááºáá±á·áá¬áá±áá°áá áºáŠážá
- á¡á á¯á á¯áá áºáá¯ááᯠáááºáá®ážááŒá®áž áá°áááºáá»ááºážáá»á¬ážááŸáá·áº á¡áá¯ááºááŸááºáá»á¬ážáᶠááŒáááẠá¡áá»á¬ážáá°ááŸá¬ ááá¯ááááºážááœáẠáá¬ážááŸáááá¯áá±á¬ áá±á¬á·ááºáá²áá±ážáá¬ážáá°á
ááá¯áá·áºá¡ááŒá±á¬ááºážááá¯ááº
áááŒá¬áá±ážáá®áá áá»áœááºá¯ááºááẠááá¯ááºáá±ážááá¯ááºáá¬áá±á·áá»áá·áºááŸá¯á¡ááœáẠá¡á¬ážáá á¬ážáá±á·áá»áá·áºáá±ážááŸá°ážáá»á¬ážááᯠáá°áá»á¬ážááŸá¬ááœá±ááá·áº áá±ážááœááºá¡áá»áá¯ážá¡á á¬ážááŒá áºáá±á¬ SaaS áááºáá±á¬ááºááŸá¯ááᯠáá®ááœááºáá±áá«áááºá Amazon Web Services stack (áá±á¬ááºááœáẠAWS áá¯áááºááœáŸááºážáááº) ááá¯á¡áá¯á¶ážááŒá¯áá²á·áááºá áá«áá±ááá·áº ááá±á¬áá»ááºááᯠáááºáááºáá²áá² áááºáááºáá²áá² á á±á·á á±á·ááœá±ážááŒáá·áºáá±á startup áá áºáᯠá á®á ááºááŒááºážáá²á· ááá°áá®áá²á· áá¯ááºáááºážá ááºááœá±á¡ááŒá±á¬ááºáž ááœá²ááœá²ááŸá¯ááœá± ááá¯áááá¬áá±áá«áá²á
á¡á±á¬ááºáá«ááŒá¿áá¬áá»á¬ážááᯠáá»áœááºá¯ááºááŒá¯á¶ááœá±á·áá²á·ááááº-
- AWS á ááá¯ááºáá¶á¡áá»á¬ážááŒá®ážáá¯ááºáááºá Enterprise áá¯áá¹ááá®áá»á¬ážááœáẠ3 ááŸá
áºááŒá¬á¡áá¯ááºáá¯ááºááŒá®áž Dockerá Kubernetesá CI/CDá á¡ááŒá¬áá±á¬ááºá¡á
áááºážáá±á¬ááºááŒáá·áºáá»ááºááŒááºážá
ááá·áº áá»á±á¬áºááœáŸááºááŸá¯áá»á¬ážááŸáá·áº á
áááºáá°ážáááºáá±á¬ startup áááá¯ááááºáá¬áá
áºáá±á¬ááºá¡áá±ááŒáá·áºáááºáž á¡áá¬ážáá° á¡áá±á¬ááºá¡áááºáá±á¬áºáá»ááºáá«áááºá ááááºá¡áá±áá²á· AWS á áá
áẠ300-400 bucks áá¯á¶ážá
áœá²áááºááá¯á· áá±á¬ááºáá»ááºáá»áá²á·áá«áááºá Kubernetes ááẠá¡á
á¯ááá¯ááºáá
áºáá¯ááŸáá·áº node áá
áºáá¯á á¡áááºážáá¯á¶ážáá¯ááºááá
á¬ááŒáá·áº 100 áá±á«áºáá¬ááá·áº áá±ážá¡ááŒá®ážáá¯á¶ážááŒá
áºáá¬áá²á·áááºá
PS á¡á ááá¯ááºážááŸá¬ áá«ááá¯áá¯ááºááá¯á· áááá¯áá«áá°ážá - ááá¯á·áá±á¬áẠá¥ááá±áá±ážáá¬áááºááœáẠááœá±ážáá±á¬áááºáž á¡á±á¬ááºáá«áá²á·ááá¯á· ááŒá±á¬ááŒá¬ážáá²á·áá±á¬ á¥ááá± 152-FZ á¡ááŒá±á¬ááºáž áá±á·áá¬áá²á·áááºá "áá¯ááŸá¬ážáááºááá±ážááŸááºážááá¯ááºáá¶áá¬ážáá»á¬ážáááá¯ááºáá±ážááá¯ááºáá¬á¡áá»ááºá¡áááºáá»á¬ážááá¯áá¯ááŸá¬ážáááºááá±ážááŸááºážáááá¯ááºáááºááœááºááááºážáááºážááááº"ááá¯ááºááẠáááºááœá± ááá±ážáá»ááºáá°ážá á¡áááºá ááá±á¬ááºááẠáá®ááŒá¿áá¬ááœá±ááᯠááŒá±ááŸááºážááá¯á· áá¯á¶ážááŒááºáá²á·ááẠ:)
áááºáá±á¬
áá»áœááºá¯ááºá¡ááœááºá Yandex.Cloud á á¡áááá¡ááºá¹áá«áááºáá»á¬ážááŸá¬ á¡á±á¬ááºáá«á¡ááá¯ááºážááŒá áºáááºá
- 2-3 á á á»á±ážáááºáá¬ááẠ(á¡áááºáá« áá±á¬ááºážáá«ážááŸáá·áº á¡áá»á¬ážáá°ááŸá¬ áá±ážááŸá¯ááºážá á¬áááºážáá»á¬áž á¡á)
áá¯ááŸá¬ážáááºááá±ážááŸááºážáááá¯ááºáááºááœááºá¡áá¯á¶ážááŒá¯áá°áá»á¬ážáááá¯ááºáá±ážááá¯ááºáá¬áá±áá¬ááá¯ááŸá±á¬ááºááŸá¯ Amazon ááŒá®ážááẠáá¡á±á¬ááºááŒááºááá¯ááºáá±ážáá±á¬á
á€áááºáá±á¬ááºááŸá¯áá¡ááŒá¬ážááŒáá¯ááºáááºáá»á¬ážááá¯áá«áá±á·áá¬áá²á·áá±á¬áºáááºáž ááá¯á¡áá»áááºááœáẠYandex áááºá¡ááá¯ááºáááŸááá²á·áááºá
áá«áááºážááᯠáá«á·á¡ááŒá±á¬ááºážááŒá±á¬ááŒá®ážááŒá®ááá¯á· áá«ááá¯á·á¡áá¯ááºáááºážááá¯á·ááááºá
á¡ááá·áº 0á ááá¯ááºááᯠááŒááºáááºáá«á
ááááŠážá áœá¬ áá»áœááºá¯ááºááá¯á·ááẠá¡ááºáá¬áááºáá±á«áºááœáẠáááºááá¯áá±á¬ áááºááá¯ááºáá áºáᯠááá¯á¡ááºáá«áááºá áá»áœááºá¯ááºááẠAngular developer ááŒá áºáá±á¬ááŒá±á¬áá·áºá áá»áœááºá¯ááºááẠááá¯ážááŸááºážáá±á¬ SPA á¡ááá®áá±ážááŸááºáž ááá°áá¬áá¯á¶á á¶ááᯠááŒá¯áá¯ááºááŒá®áž á¡ááºáá¬áááºáá±á«áºááœáẠáááºáá«áááºá
PS Angular áá¬ážáááºáá° ááá¯á·ááá¯áẠáááºážáá
á¬ááœááºá
á¬áááºážá¡ááŒá±á¬ááºáž áááá°
Angular ááœáẠSPA ááá¯ááºáá»á¬ážáááºáá®ážááẠAngular-CLI ááᯠááá·áºááœááºážááŒáá«á áá¯á·á
npm install -g @angular/cli
á¡á±á¬ááºáá« command ááᯠá¡áá¯á¶ážááŒá¯á Angular application áá áºáá¯ááᯠáááºáá®ážááŒáá«á áá¯á·á
ng new angular-habr-object-storage
ááá¯á·áá±á¬ááºá á¡ááá®áá±ážááŸááºážááá¯áá«ááá¯á·ááœá¬ážá áááºážááá¯ááºáá±á¬ááºááá¯ááºá áœááºážááᯠá á áºáá±ážááẠáááºážááá¯ááœáá·áºáá«á
cd angular-habr-object-storage
ng serve --open
á¡ááá®áá±ážááŸááºážááᯠáááºáá®ážáá¬ážááŒá®ážááŒá
áºáá±á¬áºáááºáž áááºáá¶áá±á¬ááºááœááºáá±ážááẠá¡áááºááá·áºáááŒá
áºáá±ážáá«á áááá¯á¡ááºáá±á¬á¡áá¬á¡á¬ážáá¯á¶ážááá¯áááºááŸá¬ážááŒá®áž ááá¯á¡ááºáá±á¬ááá¯ááºáá»á¬ážááá¯áá¬áá»ááºáá¬ážááẠá¡ááºááá®áá±ážááŸááºážááᯠá¡áá±ážá
á¬ážáááºáá±á¬ááºááŸá¯ (Production) áá
áºáá¯á¡ááŒá
Ạá
á¯á
ááºážááá¯ááºááŒáá«á
áá¯á·á
Angular ááœáẠáááºááẠá¡á±á¬ááºáá« command ááŒáá·áº áááºážááᯠááŒá¯áá¯ááºááá¯ááºáááºá
ng build --prod
á€á¡áááá·áºáá±á¬áºááŒá±á¬áá·áºá á¡ááá®áá±ážááŸááºážáá¡ááŒá
áºááœáẠááá¯ááºááœá²áá
áºáá¯áá±á«áºáá¬áááºá dist
áá»áœááºá¯ááºááá¯á·ááááºááá¯ááºááŸáá·áºá
á¡áá¯ááºáá»á¬ážá áá² hosting ááᯠáááºááœá¬ážáá¡á±á¬ááºá
1 á¡áááºá·á
ááá¯ááºááá¯ááœá¬ážááŒáá·áºáá¡á±á¬ááº
ááŸááºáá»ááº:
- Yandex áááºáá±á¬ááºááŸá¯ááᯠá¡áá¯á¶ážááŒá¯ááẠYandex áá±ážáẠááá¯á¡ááºááá¯ááºááẠ(áá«áá±ááá·áº áá«á ááá±áá»á¬áá«áá°áž)
- á¡áá»áá¯á·áá±á¬áá¯ááºáá±á¬ááºáá»ááºáá»á¬ážá¡ááœáẠáááºááẠáááºáááá¯ááºááá¯ááºá¡áá±á¬áá·áºááœáẠ(á¡áááºážáá¯á¶áž 500 áá°áááº) ááŒáá·áº ááá·áºá¡áá±á¬áá·áºáá²ááá¯á· ááœá±ááœááºážááááºááŒá áºáááºá
á¡á±á¬ááºááŒááºá áœá¬ ááŸááºáá¯á¶áááºááŒá®áž ááœáá·áºááŒá¯áá»ááºááá°ááŒá®ážáá±á¬ááºá áá»áœááºá¯ááºááá¯á·ááẠááá·áºááá¯ááºááá¯ááºá¡áá±á¬áá·áºááœáẠááŸááá±áá«áááºá
áá®áá°ážááŸá áááºáááºááœáẠáá±á¬ááºáá áºáá¯á¡áá±ááŒáá·áº ááá¯ááºááᯠhosting áá¯ááºáááºá¡ááœáẠáá»áœááºá¯ááºááá¯á·á¡áá¯á¶ážááŒá¯ááá·áº "Object Storage" áááºáá±á¬ááºááŸá¯ááᯠááŸá¬ááá«áááºá
á¡ááá¯áá»á¯á¶ážááŒá±á¬ááááº-
- Object Storage ááẠAmazon á á¡áá¬ážáá° AWS S3 áááºážááá¬ááŸáá·áº ááá¯ááºáááºáá±á¬ ááá¯ááºááá¯ááŸá±á¬ááºááŸá¯áá áºáá¯ááŒá áºááŒá®áž áá¯ááºá០ááá¯ááŸá±á¬ááºááŸá¯á¡á¬áž á á®áá¶ááá·áºááœá²áááºá¡ááœáẠáááºážáááá¯ááºááá¯áẠAPI áá«ááŸáááŒá®áž AWS S3 áá²á·ááá¯á· static site áá áºáá¯ááᯠáááºáá¶áá»ááºážáááẠá¡áá¯á¶ážááŒá¯ááá¯ááºáááºá
- Object Storage ááœáẠáá»áœááºá¯ááºááá¯á·áááá¯ááºáá»á¬ážá¡ááœáẠáá®ážááŒá¬ážááá¯ááŸá±á¬ááºááŸá¯áá±áá¬áá»á¬ážááŒá áºááá·áº "áá¯á¶ážáá»á¬áž" (áá¯á¶ážáá»á¬áž) ááᯠáááºáá®ážáá«áááºá
áááºážááá¯á·áá²á០áá áºáá¯ááᯠáááºáá®ážááŒáá«á áá¯á·á áááºážááá¯áá¯ááºáá±á¬ááºáááºá áááºáá±á¬ááºááŸá¯ááœááºááá¯ážááºááœááºá "Create bucket" ááá¯ááºááá¯ááŸáááºáá«á
áá¯á¶ážáá áºáá¯á¶ážáááºáá®ážáááºá¡ááœáẠáá±á¬ááºááœáẠá¡á±á¬ááºáá«á¡ááœááºáá»á¬ážáá«ááŸááááºá áááºážááá¯á·ááᯠááŒááºáááºážááŒáá·áºááŒáá«á áá¯á·á
- áá¯á¶ážá¡áááºá ááá¯ážááá¯ážááŸááºážááŸááºážááŒá±á¬áááẠáá®ááá±á¬áá»ááºááᯠAngular ááá¯á· áá±á«áºááŒáá«á
áá¯á·á
angular-habr-object-storage
- áááºáááºá á¡ááœááºá¡á á¬ážá áá»áœááºá¯ááºááá¯á·ááẠáá»áœááºá¯ááºááá¯á·áááá¯ááºá¡áá±ážáá»áááºá¡ááá¯ááºáž áá±á¬ááºážááŒá±ážáá±ážáááºá ááá¯ááºááᯠá¡ááá²á·ááááºážáááºážáá¬ážááŒááºážááá¯ááºáá±á¬ááŒá±á¬áá·áº ááœá²áá±áá»áá¬ážáá±ážáá±á¬ gigabyte áá áºáá¯á á®á¡ááœáẠYandex ááᯠáá áºááŒá¬ážáá áºáá»ááºá០áá±ážáá»á±áá«áááºá
- á¡áá¬ááá¹áá¯áá»á¬ážááá¯áááºáááºáááºáá±á¬ááºááœáá·áºá á¡áá¯á¶ážááŒá¯áá°ááẠáá»áœááºá¯ááºááá¯á·á static site á ááá¯ááºáá áºáá¯á á®ááᯠáááºáá¶áááŸáááááºááŒá áºáá±á¬ááŒá±á¬áá·áº áááºážááœáẠlayout ááá¯ááŸááºáááºá áœá¬áá±ážááœá²ááá¯ááºáá±á¬ááŒá±á¬áá·áºá scripts áá»á¬ážááá¯áá¯ááºáá±á¬ááºááá¯ááºááẠá áááºááá¯á·ááŒá áºáááºá
- á¡áá¬ááá¹áá¯áá»á¬ážá á¬áááºážááá¯á· áááºáá±á¬ááºááœáá·áºááŸáá·áº áááºáááºáá»á¬ážááᯠáááºááẠáááºáá±á¬ááºáá«á "Limited" á¡ááŒá áºáá¬ážááá¯ááºáá«á á¡ááá®áá±ážááŸááºážáá»á¬ážá¡ááœáẠá¡ááœááºážááá¯ááºážááá¯ááºááá¯ááŸá±á¬ááºááŸá¯á¡ááŒá Ạáá¯á¶ážááá¯á¡áá¯á¶ážááŒá¯áááºá¡ááœáẠáááºážááẠááá¯á¡ááºáá«áááºá
- ááá¯ááŸá±á¬ááºááŸá¯á¡áááºážá "á á¶" á¡ááŒá áºáá¬ážáá²á·áá«á ááá¯ááá¯áááºááŸá¬ áá»áœááºá¯ááºááá¯á·áááá¯ááºááᯠáááŒá¬áááá¬áá±á¬ááºáááºáááºáá±á·ááŸáááŒá®áž ááá¯á·ááŒá±á¬áá·áº ááá¯ááºááœááºáá«áááºááá·áºááá¯ááºáá»á¬ážááᯠáááŒá¬áááá±á«ááºážáá¯ááºáá¯ááºáááºááŒá áºáááºá ááá¯á·á¡ááŒáẠáá á¹á ááºážááẠá áœááºážáá±á¬ááºáááºááŸáá·áº ááœá±áá±ážáá»á±ááŸá¯á¡áá±á«áº áááºáá±á¬ááºááŸá¯ááŸáááẠ(ááá·áºááºááᯠááá·áºááœááºážáá«)á
"Create a bucket" ááá¯ááŸáááºááŒá®áž áá¯á¶ážááá¯áááºáá®ážáá«á
ááᯠáá»áœááºá¯ááºááá¯á·áááá¯ááºááᯠáá¯á¶ážáá²ááá¯á· á¡ááºáá¯ááºáá¯ááºááẠááá¯á¡ááºáá«áááºá á¡ááœááºáá¯á¶ážáááºážáááºážááŸá¬ á¡áá®ážáá¬ážááŸá folder áá
áºáá¯ááᯠááœáá·áºáááºááŒá
áºáááºá dist
áá»áœááºá¯ááºááá¯á·áááá¯ááºááᯠáááºááá¯ááºáá»á¬ážáá¯á¶ážááŒá®áž á
á¬áá»ááºááŸá¬áá±á«áºááá¯á· ááá¯ááºááá¯ááºááœá²áá°áá«á âLoad objectsâ ááá¯ááºááᯠááŸáááºááŒááºážááẠáááºážááẠááá¯ááá¯á¡áááºááŒá±áááºá á¡ááŒá±á¬ááºážááŸá¬á á€ááá
á¹á
ááœáẠááá¯ááºááœá²áá»á¬ážááᯠááœáŸá²ááŒá±á¬ááºážááŒááºážáááŒá¯áá² áááºážááá¯á·ááᯠááŸááºáááºáá±á¬ á¡á
á®á¡á
ááºááŒáá·áº ááá¯ááºááá¯ááºáááºáá®ážááááºááŒá
áºáá«áááºá
ááá¯á·ááŒá±á¬áá·áºá áááºááá¯ááºááᯠááá¯ááŸá±á¬ááºááŸá¯áá²ááá¯á· ááá·áºááœááºážáá¬ážáá±á¬ááŒá±á¬áá·áº áá¯á¶ážá
áœá²áá°áá»á¬ážá¡á¬áž áááºááá¯ááºáá
áºáá¯á¡áá±ááŒáá·áº ááá¯ááŸá±á¬ááºááŸá¯ááá¯á· áááºáá±á¬ááºááẠá¡ááœáá·áºá¡áá±ážááᯠáá±ážá
áœááºážááá¯ááºáá«áááºá
áááºážááá¯áá¯ááºáá±á¬ááºáááºá áá®áá°ážááááºáááºááŒááºážááŸá "áááºááá¯ááº" áááºááºááá¯ááŸáááºáá«á
áááºááá¯ááºáá áºáá¯á¡ááŒá Ạáá¯á¶ážáá áºáá¯á¶ážááᯠáááºááŸááºááŒááºážá¡ááœáẠá á¬áá»ááºááŸá¬ááœááºá âHostingâ áááºááºááᯠááœá±ážáá«á á€áá±áá¬ááœáẠáá»áœááºá¯ááºááá¯á·ááẠá¡áá»á¬ážá¡á¬ážááŒáá·áº index.html ááá¯ááºá á¡áááá á¬áá»ááºááŸá¬ááᯠáá±á¬áºááŒáááºá ááá·áºááœáẠSPA á¡ááºááá®áá±ážááŸááºážáá áºáá¯ááŸááá«áá áááºáá á¬áá»ááºááŸá¬ááœáẠá¡ááŸá¬ážá¡ááœááºážáá»á¬ážá¡á¬ážáá¯á¶ážááᯠáá¯ááºáá±á¬ááºáá±ááá¯ááºáááºá ááá¯á·ááŒá±á¬áá·áº áá»áœááºá¯ááºááá¯á·ááẠá¡ááŸá¬ážá á¬áá»ááºááŸá¬ááœáẠindex.html ááá¯ááœáŸááºááŒáá«áááºá
áá»áœááºá¯ááºááá¯á·áááá¯ááºááẠáááºááá·áºááá·áºááºááŸáá áºááá·áº áááºáá±á¬ááºááá¯ááºáááºááᯠáá»áœááºá¯ááºááá¯á·áá»ááºáá»ááºážááŒááºááá«áááºá save ááá¯ááŸáááºáá«á
ááá·áºááºááᯠááŸáááºááŒá®áž á áááá áºááá·áºá¡ááŒá¬ááœááºá áá»áœááºá¯ááºááá¯á·á site ááᯠáá°ááá¯ááºážáááá¯ááºáááºááᯠáá»áœááºá¯ááºááá¯á·ááœá±á·ááŒááºááá«áááºá
á¡áá¯á¶ážáááááºáá±ážáá°á¡á¬ážáá¯á¶ážááᯠáá»á±ážáá°ážáááºáá«áááºá á€áááºááŸá¬ áá»áœááºá¯ááºá ááááá¯á¶áž áá±á¬ááºážáá«ážááŒá áºáááºá áá»áœááºá¯ááºááẠá¡ááŒá¬ážáá±á¬ Yandex áááºáá±á¬ááºááŸá¯áá»á¬ážááŸáá·áº áááºážááá¯á·á ááŸá±á·áááºážááŸáá·áº áá±á¬ááºáá¶áááºážááá¬áá»á¬ážááŒáá·áº áá±á«ááºážá ááºááŸá¯ááᯠáááºáá¶áá±á¬áºááŒááẠá á®á ááºáá¬ážáá«áááºá
á¡ááŒá¬áž Yandex áááºáá±á¬ááºááŸá¯áá»á¬ážá¡ááŒá±á¬ááºáž ááá¯á·ááá¯áẠáá±ááºáá®ááœá¶á·ááŒáá¯ážááá¯ážáááºááŸá¯ááœáẠAngular á¡áá¯á¶ážááŒá¯ááŸá¯á¡ááŒá±á¬ááºáž áááºáááºáá»áŸá áááºáááºá á¬ážááŒá±á¬ááºáž ááŸááºáá»ááºáá»á¬ážááœáẠáá±ážáá«á
source: www.habr.com