ืฉืืื ืืืืื! ืฉืื ืืืืื ื ืืงืืืื. ืืขืืจ ืขืืืชื ื-Avito ืื ืืืืชื ืืช ืคืืืคืืจืืช ื-Data ืืืฉื ืฉืฉ ืฉื ืื, ืืืืืจ ืขืืืชื ืขื ืื ืืกืื ืื ืชืื ืื: ืื ืืืืืื (Vertica, ClickHouse), ืกืืจืืืื ื ื-OLTP (Redis, Tarantool, VoltDB, MongoDB, PostgreSQL). ืืืืื ืชืงืืคื ืื ืขืกืงืชื ืืืกืคืจ ืจื ืฉื ืืืืจื ืืืืข - ืืืื ืฉืื ืื ืืืืฆืื ืืืคื, ืืืืงืจืื ืื ืกืื ืืจืืืื ืฉื ืืฉืืืืฉ ืืื.
ืืจืืข ืื ื ืขืืื ื-ManyChat. ืืืืืชื, ืืืืืจ ืืกืืืจืืืค - ืืืฉ, ืฉืืคืชื ื ืืฆืืื ืืืืืจืืช. ืืืฉืืฆืืจืคืชื ืืจืืฉืื ื ืืืืจื, ืขืืชื ืฉืืื ืงืืืกืืช: "ืื ืกืืืจืืืค ืฆืขืืจ ืฆืจืื ืืงืืช ืขืืฉืื ืืฉืืง ื-DBMS ืืืืืจ ืื ืชืื ืื?"
ืืืืืจ ืื, ืืืชืืกืก ืขื ืืืืืื ืฉืื ื
ืืกืื ื ืชืื ืื ืืืืขืื 2020
ืื 2020, ืืกืชืืืชื ืืกืืื ืืจืืืชื ืฉืืืฉื ืกืืืื ืฉื ืืกืื ื ืชืื ืื.
ืกืื ืจืืฉืื - ืืกืื ื ืชืื ืื ืงืืืกืืื ืฉื OLTP: PostgreSQL, SQL Server, Oracle, MySQL. ืื ื ืืชืื ืืืื, ืืื ืขืืืื ืจืืืื ืืืื ืื ืื ืื ืื ืืืืจืื ืืงืืืืช ืืืคืชืืื.
ืืกืื ืืฉื ื ืืื ืืกืืกืื ื"ืืคืก". ืื ื ืืกื ืืืชืจืืง ืืืคืืกืื ืงืืืกืืื ืขื ืืื ื ืืืฉืช SQL, ืืื ืื ืืกืืจืชืืื ื-ACID, ืขื ืืื ืืืกืคืช ืคืืฆืื ืืืื ื ืืชืืื ืืช ืืืจืงืืืืืืช ืืืจืืช. ืืืืืื, ืืืื Cassandra, MongoDB, Redis ืื Tarantool. ืื ืืคืชืจืื ืืช ืืืื ืจืฆื ืืืฆืืข ืืฉืืง ืืฉืื ืืืฉ ืืืกืืื ืืืืฉื ืืช ืื ืืฉื ืฉืืื, ืื ืืชืืจืจ ืฉืื ื ืืืื ืืืืชืจ ืืืฉืืืืช ืืกืืืืืช. ืืฆืืื ืืช ืืกืื ืื ืชืื ืื ืืืื ืืืื ื ืืืืจืื NOSQL.
ื ืืืจื ื"ืืคืกืื", ืืชืจืืื ื ืืืกืืกื ื ืชืื ืื ืฉื NOSQL, ืืืขืืื, ืื ืงืืืช ืืืื ืฉืื, ืขืฉื ืืช ืืฆืขื ืืื - ืืื ืืกืื ื ืชืื ืื ืื ืืืืื. ืืืกืืกื ื ืชืื ืื ืืื ืืฉ ืืช ืืืชื ืืืื ืืื ืืกืื ื ืชืื ืื ืงืืืกืืื ืฉื OLTP ืื ืืืืืจื NoSQL ืืืฉืื. ืืื ืืื ืืื ืฆืืจื ื-DBA ื-DevOps ืืื ืคืืขืืื ืขื ืืืืจื ืื ืืืืช ืืขื ื ืื. ืขืืืจ ืืคืชื, ืื "ืกืชื ืืกืืก" ืฉืขืืื ืืืคืฉืื, ืืื ืืืฃ ืืื ืื ืืืคืช ืืื ืืื ืืืชืงื ืขื ืืฉืจืช, ืื ืืืืืจ ืืช ืืฉืจืช ืืื ืืขืืื ืืืชื.
ืืืืืืืช ืืืืืจื ืืืืข ืืืื:
- AWS RDS ืืื ืืขืืคืช ืื ืืืืช ืขืืืจ PostgreSQL/MySQL.
- DynamoDB ืืื ืื ืืืื AWS ืืืกื ื ืชืื ืื ืืืืกืก ืืกืืืื, ืืืืื ื-Redis ื-MongoDB.
- Amazon Redshift ืืื ืืกื ื ืชืื ืื ืื ืืืื ืื ืืื.
ืืืืืจ ืืขืฆื ืืืกืืกื ื ืชืื ืื ืืฉื ืื, ืื ืืืื ืืกืืืื ืื ืืืืช, ืืื ืฆืืจื ืืขืืืื ืขื ืืืืจื.
ืืขืจื. ืืืืืืืืช ื ืืงืืืช ืขืืืจ ืกืืืืช AWS, ืืื ืืื ืืืืื ืฉืืื ืงืืืืื ืื ื-Microsoft Azure, Google Cloud ืื Yandex.Cloud.
ืื ืืืฉ ืืื? ื-2020, ืฉืื ืืืจ ืืื.
ืงืื ืกืคื ืืื ืฉืจืช
ืื ืฉืืืืช ืืืฉ ืืฉืืง ืืฉื ืช 2020 ืืื ืคืชืจืื ืืช ืืื ืฉืจืช ืื ืืื ืฉืจืช.
ืื ืกื ืืืกืืืจ ืื ืื ืืืืจ ืืืืฆืขืืช ืืืืืื ืฉื ืฉืืจืืช ืจืืื ืื ืืืฉืื ืืืืจื.
ืืื ืืคืจืืก ืืคืืืงืฆืืืช backend ืจืืืื, ืื ื ืงืื ืื ืื ืฉืืืจืื ืฉืจืช, ืืขืชืืงืื ืืืื ืืช ืืงืื, ืืคืจืกืืื ืืช ื ืงืืืช ืืงืฆื ืืืืฅ ืืืฉืืืื ืืืืคื ืงืืืข ืขืืืจ ืฉืืจืืชื ืฉืืืจืืช, ืืฉืื ืืืจืืื ื ืชืื ืื. ืื ืืชืื ืืช ืืกืื ืืจืืืช.
ืืื ืืฉ ืืจื ืืืจืช? ืขื ืฉืืจืืชืื ืืื ืฉืจืช ืืชื ืืืื.
ืื ืืคืืงืืก ืฉื ืืืืฉื ืืื: ืืื ืฉืจืช, ืืื ืืคืืื ืืฉืืจืช ืืืคืข ืืืจืืืืื ืืขื ื. ืืื ืืคืจืืก ืืช ืืฉืืจืืช, ืืขืชืง ืืช ืืงืื (ืืคืื ืงืฆืืืช) ืืืืืจ ืืคืจืกื ืืืชื ืื ืงืืืช ืืงืฆื. ืื ืื ืื ื ืคืฉืื ืืฉืืืื ืขืืืจ ืื ืงืจืืื ืืคืื ืงืฆืื ืืื, ืชืื ืืชืขืืืืช ืืืืืืช ืืืืืืจื ืฉืื ืืื ืืืืฆืขืช.
ืื ืกื ืืืืืืฉ ืืืฉื ืื ืืชืืื ืืช.
ืคืจืืกื ืงืืืกืืช. ืืฉ ืื ื ืฉืืจืืช ืขื ืขืืืก ืืกืืื. ืื ื ืืขืืื ืฉื ื ืืืคืขืื: ืฉืจืชืื ืคืืืืื ืื ืืืคืขืื ื-AWS. ืืงืฉืืช ืืืฆืื ืืืช ื ืฉืืืืช ืืืงืจืื ืืื ืืืขืืืืืช ืฉื.
ืืคื ืฉื ืืชื ืืจืืืช ืืชืืื ื, ืืฉืจืชืื ืืื ื ืืกืืืงืื ืืืืคื ืฉืืื. ืืืืช ืื ืืฆืืช ื-100%, ืืฉ ืฉืชื ืืงืฉืืช, ืืืืืช ืืื ืจืง ื-50% - ืืืื ืืืงืืช. ืื ืื ืืืืขื ืฉืืืฉ ืืงืฉืืช ืืื 30, ืื ืืืขืจืืช ืืืื ืื ืชืืื ืืืชืืืื ืขื ืืขืืืก ืืชืชืืื ืืืื.
ืคืจืืกื ืืื ืฉืจืช. ืืกืืืื ืืื ืฉืจืชืื, ืืฉืืจืืช ืืื ืืื ืืืคืขืื ืื ืฉืจืชืื. ืืฉ ืืืืจ ืืกืืื ืฉื ืืฉืืืื ืืืืืืื - ืืืืืืช Docker ืงืื ืืช ืืืื ืืช ืขื ืงืื ืคืื ืงืฆืื ืคืจืืก. ืืืขืจืืช ืืงืืืช ืืงืฉืืช ืืืฆืื ืืืช ืืืื ืืืช ืืื ืืืกืืจืช ืืื ืฉืจืช ืืขืื ืงืื ืืืื ืจ ืงืื ืขื ืงืื: ืืื ืืขืืืช ืืช ืืืงืฉื ืืกืคืฆืืคืืช ืืื ืืืืจืืช ืืช ืืงืื ืืืื ืจ.
ืืงืฉื ืืืช - ืืืื ืืื ืืืขืื, 1000 ืืงืฉืืช - 1000 ืืืืืืช. ืืคืจืืกื ืขื ืฉืจืชื ืืืืจื ืืื ืืืจ ืขืืืืชื ืฉื ืกืคืง ืืขื ื. ืื ืืืกืชืจ ืืืืืืื ืขื ืืื ืืืกืืจืช ืืื ืฉืจืช. ืืงืื ืกืคื ืืื ืื ืื ื ืืฉืืืื ืขื ืื ืฉืืื. ืืืฉื, ืฉืืื ืืืช ืืืืขื ืืืื - ืฉืืืื ื ืขื ืฉืืื ืืืช, ืืืืขื ืืืืืื ืืืงื - ืฉืืืื ื ืขื ืืืืืื. ืื ืืฉื ืืื ืื ืื ืงืืจื.
ืืจืขืืื ืฉื ืคืจืกืื ืคืื ืงืฆืื ืืื ืฉืจืช ืืชืืื ืืฉืืจืืช ืืื ืืฆื. ืืื ืืชื ืฆืจืื ืฉืืจืืช statefull (ืืืื ืชื), ืื ืื ืื ื ืืืกืืคืื ืืกื ื ืชืื ืื ืืฉืืจืืช. ืืืงืจื ืื, ืืฉืืืืืจ ืืขืืืื ืขื state, ืื ืคืื ืงืฆืื statefull ืคืฉืื ืืืชืืช ืืงืืจืืช ืืืกื ืื ืชืื ืื. ืืืช ืืขืื, ืืืืืจ ืืืืข ืืื ืืื ืืฉืืืฉืช ืืกืืืื ืืืชืืืจืื ืืชืืืืช ืืืืืจ.
ืืื ืืืืืื ืืืฉืืชืคืช ืฉื ืื ืืกืื ืื ืชืื ืื ืืืื? ืืื ืื ืืขืืืืืช ืฉื ืฉืจืช ืขื ื ืื ืืืืจื ืืฉืืืืฉ ืงืืืข (ืื ืืกืคืจ ืฉืจืชืื). ืื ืื ืืฉื ื ืื ืื ืื ื ืืฉืชืืฉืื ืืืกื ื ืชืื ืื ืงืืืกื ืื ืื ืืื, ืื ืืฉ ืื ื Devops ืืื ืื ืื ืื, ืื ืื ื ืขืืืื ืืฉืืืื ืขืืืจ ืืืืจื, ืืฉืื ืืืจืื ื ืชืื ืื 24/7. ืื ืืฉ ืื ื ืืกืืก ืงืืืกื, ืื ืื ื ืืฉืืืื ืขืืืจ ืืืื ืืขืื. ืื ืืืืืจ ืืืกื ื ืชืื ืื ืืคืืฆื ืืขืื ืืืื, ืื ืื ื ืืฉืืืื ืขืืืจ 10, 20 ืื 30 ืฉืจืชืื, ืืื ื ืืฉืืืื ืื ืืืื.
ื ืืืืืชื ืฉื ืฉืจืชืื ืฉืืืจืื ืืฆืืืชืืช ืืืื ื ืืขืืืืืช ื ืชืคืกื ืืขืืจ ืืจืข ืืืจืื. ืืืกืืกื ื ืชืื ืื ืงืื ืื ืฆืืื ืืืื ืืฉ ืื ืงืฉืืื ืืืจืื, ืืื ืืืืืืช ืขื ืืกืคืจ ืืืืืืจืื, ืืืืืืช ืงื ื ืืืื, ืงืื ืฆื ืืืก ืืืืืจ ืืืืืืจืคื - ืืคืฉืจ ืืคืชืืจ ืืืชื ืืืืฉืื ืืืกืืกื ื ืชืื ืื ืืกืืืืื, ืืื ืื ืืืช ืืืช ืืื ืืืืคื ืืืืืืื.
ืืกื ื ืชืื ืื ืืื ืฉืจืช - ืชืืืืจืื
ืฉืืื ืฉื 2020: ืืื ืืคืฉืจ ืืืคืื ืื ืืกื ื ืชืื ืื ืืื ืฉืจืช? ืืืื ืฉืืขื ืขื ื-backend ืืื ืฉืจืช... ืืืื ื ื ืกื ืืืคืื ืืช ืืกื ืื ืชืื ืื ืืื ืฉืจืช?
ืื ื ืฉืืข ืืืืจ, ืืืืืื ืฉืืกื ืื ืชืื ืื ืืื ืฉืืจืืช ืืฆืื, ืื ืืชืืื ืืืืืื ืืชืฉืชืืช ืืื ืฉืจืช. ืืื ืขื ืืืช, ืืฆื ืืกืืก ืื ืชืื ืื ืืืื ืืืื: ื'ืืื-ืืืื, ืืจื-ืืืื ืืืืืืจื ืืืืข ืื ืืืืืื ืืคืืื ืคืื-ืืืื. ืื ืื ืื ืื ืงื ืืืื ืืืชื ืืืืืื Docker ืงืืื.
ืืฆื ืฉื ื, ืืืขื ืื ืืกืื ืื ืชืื ืื ืืืืืจื ืืื ืืืืืื ืืืืช ืขืฆืืื ืฉื ืืืืืงื ืืจืืืืื: ืืจื ืืงืฆืืืช, ืชืืืื ืฉืืืืช, ื ืืืื, ืชืืืช ืืืกืืื ืืืจืื ืืืืืื. ืขืืืจ ืื ืืจืื ืืืืืงื ืฉื ืืกื ื ืชืื ืื, ืืกืคืืงื ืืืื ื ืงืื ื. Gigabytes ื- Terabytes ื ืืฆืืื ืืฉืืืืฉ ืืฉืืจ ืจืง ืขื ืืื ืืืง ืงืื ืืืืืืืงื ืฉื ืืกื ืื ืชืื ืื ืืืขืืจืืช ืืืืฆืืข ืืฉืืจ ืฉื ืฉืืืืชืืช.
ืืืชืื, ืืจืขืืื ืืื: ืื ืืืง ืืืืืืืื ืืืคืฉืจ ืืืฆืืข ืืกืจ ืืืื ื, ืืื ืื ืืคืฆื ืืช ืืืกืืก ืืืืงืื Stateful ื-Stateless.
ืืื ืฉืจืช ืขืืืจ ืคืชืจืื ืืช OLAP
ืืื ื ืจืื ืืื ืืืชืื ืืกื ื ืชืื ืื ืืืืงืื Stateful ื-Stateless ืขืฉืื ืืืืจืืืช ืืืืฆืขืืช ืืืืืืืช ืืขืฉืืืช.
ืืืืืื, ืืฉ ืื ื ืืกื ื ืชืื ืื ืื ืืืื: ื ืชืื ืื ืืืฆืื ืืื (ืืืื ืืืื ืืฆื ืฉืืื), ืชืืืื ETL ืืืืขื ื ืชืื ืื ืืืกืืก ืื ืชืื ืื, ืืื ืืืกื ืฉืฉืืื ืฉืืืืชืืช SQL ืืืกืืก ืื ืชืื ืื. ืืืื ืกืืืืช ืชืคืขืื ืงืืืกืืช ืฉื ืืืกื ื ื ืชืื ืื.
ืืกืืืื ืื, ETL ืืืืฆืข ืคืขื ืืืช ืขื ืชื ืื. ืื ืืชื ืฆืจืื ืืฉืื ืื ืืืื ืขืืืจ ืืฉืจืชืื ืฉืืื ืืกืืก ืื ืชืื ืื ืคืืขื ืขื ื ืชืื ืื ืืืืื ื-ETL, ืืื ืฉืืืื ืืื ืืฉืืื ืฉืืืืชืืช.
ืืืื ื ืกืชืื ืขื ืืืฉื ืืืืคืืช ืืืืืฉืืช ื-AWS Athena Serverless. ืืื ืืืืจื ืืืขืืืืช ืืฆืืืชืืช ืฉืขืืื ืืืืืกื ืื ื ืชืื ืื ืฉืืืจืื. ืืืงืื ืื:
- ืืืฉืชืืฉ ืฉืืื ืฉืืืืชืช SQL ืืืชื ื. ืืื ืืืืคืืืืืืฆืื ืฉื Athena ืื ืชื ืืช ืฉืืืืชืช SQL ืืืืคืฉ ืืืืืจ ืืืื ื ืชืื ืื (Metadata) ืืช ืื ืชืื ืื ืืกืคืฆืืคืืื ืืืจืืฉืื ืืืืฆืืข ืืฉืืืืชื.
- ืืืืคืืืืืืจ, ืืืชืืกืก ืขื ืื ืชืื ืื ืื ืืกืคืื, ืืืจืื ืืช ืื ืชืื ืื ืืืจืืฉืื ืืืงืืจืืช ืืืฆืื ืืื ืืืืกืื ืืื ื (ืืกืืก ื ืชืื ืื ืืื ื).
- ืฉืืืืชืช SQL ืืืืฉืชืืฉ ืืืืฆืขืช ืืืืกืื ืืื ื ืืืชืืฆืื ืืืืืจืช ืืืฉืชืืฉ.
- ืืืกืื ืืื ื ื ืืืง ืืืฉืืืื ืืฉืืืจืจืื.
ืืืจืืืืงืืืจื ืื ืื ื ืืฉืืืื ืจืง ืขืืืจ ืชืืืื ืืืฆืืข ืืืงืฉื. ืืื ืืงืฉืืช - ืืื ืขืืืืืช.
ืืืื ืืืฉืช ืขืืืื ืืืื ืืืืฉืืช ืื ืจืง ื- Athena Serverless, ืืื ืื ื-Redshift Spectrum (ื-AWS).
ืืืืืื ืฉื Athena ืืจืื ืฉืืกื ืื ืชืื ืื ืืื ืฉืจืช ืขืืื ืขื ืฉืืืืชืืช ืืืืชืืืช ืขื ืขืฉืจืืช ืืืืืช ืืจื-ืืืื ืฉื ื ืชืื ืื. ืืืืช ืืจื-ืืืื ืืืจืฉื ืืืืช ืฉืจืชืื, ืืื ืื ืื ื ืื ืฆืจืืืื ืืฉืื ืขืืืจื - ืื ืื ื ืืฉืืืื ืขื ืืืงืฉืืช. ืืืืืจืืช ืฉื ืื ืืงืฉื ื ืืืื (ืืืื) ืืืฉืืืื ืืืกืืกื ื ืชืื ืื ืื ืืืืืื ืืืืืืื ืืื Vertica, ืืื ืื ืื ื ืื ืืฉืืืื ืขื ืชืงืืคืืช ืืฉืืชื.
ืืกื ื ืชืื ืื ืืื ืืฉืื ืขืืืจ ืฉืืืืชืืช ืื-ืืืง ืื ืืืืืืช ื ืืืจืืช. ืืืืืื, ืืืฉืจ ืื ื ืืืืืืื ืืืืคื ืกืคืื ืื ื ืืืืืง ืืฉืขืจื ืขื ืืืื ืืืืช ืขืฆืืื ืฉื ื ืชืื ืื. ืืชื ื ืืืฉืืืช ืืืงืจืื ืืื. ืขืืืจ ืืงืฉืืช ืจืืืืืช, ืืขืจืืช ืืื ืืื ืืงืจื. ืืืงืจื ืื, ืฉืืืจ ืืช ืื ืชืื ืื ืืคืชืจืื ืืืืื ืืืฉืื.
ืืื ืฉืจืช ืขืืืจ ืคืชืจืื ืืช OLTP
ืืืืืื ืืงืืืืช ืืกืชืืื ืขื ืืฉืืืืช OLAP (ืื ืืืืืืช). ืืขืช ื ืกืชืื ืขื ืืฉืืืืช OLTP.
ืืืื ื ืืืืื PostgreSQL ืื MySQL ืฉื ืืชื ืืืจืืื. ืืืื ื ืขืื ืืืคืข ืื ืืื ืจืืื PostgreSQL ืื MySQL ืขื ืืฉืืืื ืืื ืืืืืื. ืืืฉืจ ืืืืคืข ืืงืื ืขืืืก ืจื ืืืชืจ, ื ืืืจ ืจืคืืืงืืช ื ืืกืคืืช ืืืืื ื ืคืืฅ ืืืง ืืขืืืก ืืงืจืืื. ืื ืืื ืืงืฉืืช ืื ืขืืืก, ืื ื ืืืืื ืืช ืืืขืชืงืื. ืืืืคืข ืืจืืฉืื ืืื ืืืืกืืจ, ืืืฉืืจ ืื ืืขืชืงืื.
ืจืขืืื ืื ืืืืฉื ืืืกื ื ืชืื ืื ืืฉื Aurora Serverless AWS. ืืขืืงืจืื ืคืฉืื: ืืงืฉืืช ืืืคืืืงืฆืืืช ืืืฆืื ืืืช ืืชืงืืืืช ืขื ืืื ืฆื ืืคืจืืงืกื. ืืฉืืื ืจืืื ืืช ืืขืืืก ืขืืื, ืืื ืืงืฆื ืืฉืืื ืืืฉืื ืืืืคืขืื ืืื ืืืืืื ืฉืืืืื ืืจืืฉ - ืืืืืืจ ืืชืืฆืข ืืืืืจืืช ืืืคืฉืจืืช. ืืฉืืชืช ืืืคืขืื ืืชืจืืฉืช ืืืืชื ืืืคื.
ืืชืื Aurora ืืฉ ืืช ืืจืขืืื ืฉื Aurora Capacity Unit, ACU. ืืื (ืืชื ืื) ืืืคืข (ืฉืจืช). ืื ACU ืกืคืฆืืคื ืืืื ืืืืืช ืืืกืืจ ืื ืขืื. ืืื ืืืืืช ืงืืืืืช ืืฉ ืืืืจืื RAM ืืฉืื, ืืขืื ืืืืกืง ืืื ืืืื. ืืืชืื ืืื, ืืื ืืื ืืืืกืืจ, ืืฉืืจ ืื ืืขืชืงืื ืืงืจืืื ืืืื.
ืืกืคืจ ืืืืืืช ืงืืืืืช Aurora ืืื ืืคืืขืืืช ืืื ืคืจืืืจ ืื ืืชื ืืืืืจื. ืืืืืช ืืืื ืืืืืช ืืืืื ืืืืืช ืืืช ืื ืืคืก (ืืืงืจื ืื, ืืกื ืื ืชืื ืื ืื ืขืืื ืื ืืื ืืงืฉืืช).
ืืืฉืจ ืืืกืืก ืืงืื ืืงืฉืืช, ืฆื ื-proxy ืืขืื ืืช Aurora CapacityUnits, ืืืืืื ืืช ืืฉืืื ืืืืฆืืขืื ืฉื ืืืขืจืืช. ืืืืืืช ืืืืืื ืืืืงืืื ืืฉืืืื ืืืคืฉืจืช ืืืขืจืืช "ืืืืื" ืืืฉืืืื: ืืืฆืื ืืืืืืืืช ACUs ืืืืืื (ืืืืคืชื ืืืืฉืื) ืืืืคืืฅ ืืช ืื ืืขืืืื ืื ืื ืืืืืื ืืืฉืืืื ืฉื ืืฉืื.
ืืืกืืก ืฉื Aurora Serverless ืืืื ืืืชืืื ืืช ืขืืืก ืืงืจืืื. ืืื ืืชืืขืื ืื ืืืืจ ืืืช ืืฉืืจืืช. ืื ืขืฉืื ืืืจืืืฉ ืืืืื ืื ืืืืืื ืืืจืื ืจื-ืืืกืืจ. ืืื ืงืกื.
ืืกื ื ืชืื ืื ืื ืืชืืื ืืืื ืืื ืืืืื ืข ืืืืฆืืช ืืืืืืช ืืืืจืืช ืฉื ืืกืฃ ืขื ืืขืจืืืช ืขื ืืืฉื ืืืชื ืฆืคืืื. ืืืืืื, ืืขืช ืืฆืืจืช MVP ืื ืฉืืืืง ืืชืจื ืืจืืืกื ืืืงืืจ, ืื ื ืืืจื ืืื ืื ืืฆืคืื ืืขืืืก ืืฆืื. ืืืชืื ืืื, ืื ืืื ืืืฉื, ืื ืื ื ืื ืืฉืืืื ืขื ืืงืจืื. ืืืฉืจ ืืชืจืืฉ ืขืืืก ืืืชื ืฆืคืื, ืืืฉื ืืืืจ ืื ืก ืื ืงืืคืืื ืคืจืกืืื, ืืืื ื ืื ืฉืื ืืืงืจืื ืืืชืจ ืืืขืืืก ืืื ืืืืคื ืืจืืื, Aurora Serverless ืืืงื ืืืืืืืืช ืืช ืืขืืืก ืืื ืืืืืจ ืืืืืจืืช ืืช ืืืฉืืืื ืืืกืจืื (ACU). ืืื ืืืืขืืื ืขืืืจืช, ืืืื ืฉืืืืื ืืืื-ืืืคืืก, ืืฉืจืชืื (ACU) ืืชืืฉืืื, ืืืขืืืืืช ืืืจืืืช ืืืคืก - ื ืื.
ืคืชืจืื ืื ืืื ื ืืชืืื ืืขืืืก ืืืื ืืฆืื ืืืืืื ืฉืืื ืืื ื ืืฉื ื ืืช ืขืืืก ืืืชืืื. ืื ืืืืืืจืื ืื ืืชืืงื ืืืฉืืืื ืืืื ืืชืจืืฉืื ืืื ืฉืืืื ื "ื ืงืืืช ืงื ื ืืืื" - ื ืงืืืช ืืื ืฉืื ืืกื ืื ืชืื ืื ืืื ื ื ืชืื ืืืจื ืืงืฆืื ืื ืืืืืืืช ืืื ืืืช. ืืืืืื, ืืชืื ืฉืืืข ืืืชืื ืฉื ืงืืืช ืงื ื ืืืืื ืื ืชืชืจืืฉ, ืืืืกืืก ืขืืื ืขื ืืืชื ืืฉืืืื ืืคืฉืื ืื ืืืื ืืืชืจืื ืื ืืืชืืืืฅ.
ืืื ืงืกื - ืื PostgreSQL ืจืืื. ืืื ืืชืืืื ืฉื ืืืกืคืช ืืืื ืืช ืื ืืชืืงื ืืื ืืืืืืื ืืืงืืช.
ืืื ืฉืจืช ืืขืืฆืืื
Aurora Serverless ืืื ืืกื ื ืชืื ืื ืืฉื ืฉื ืืชื ืืืืฉ ืขืืืจ ืืขื ื ืืื ืื ืฆื ืืื ืืืืชืจืื ืืช ืฉื Serverless. ืืขืืฉืื ืืกืคืจ ืืื ืขื ืืืกืืก, ืฉื ืืชื ืืืงืืจ ืขืืืจ ืืขื ื, ืืืืฉื ืืื ืฉืจืชืื - Serverless-by-design. ืืื ืคืืชื ืืื ืืื ืื ืื ืฉืืื ืืคืขื ืขื ืฉืจืชืื ืคืืืืื.
ืืกืืก ืื ื ืงืจื ืคืชืืช ืฉืื. ืืฉ ืื ืฉืืืฉื ืืืืงืื ืืคืชื.
ืืจืืฉืื ืืื ืืืืง ืืื ื ืชืื ืื. ืืื ืฉืืจืืช ืืืืจืื ืืืืจ ืืคืืชืจ ืืขืืืช ืืืืืื, ืืื ื ืชืื ืื, ืขืกืงืืืช ืืืืคืืืืืืฆืื ืฉื ืฉืืืืชืืช (ืืืฆื ืืืืืจ ืืฉืืื).
ืืืืืง ืืฉื ื ืืื ืงืืืฆื ืฉื ืืฉืืืืืช ืืืฉืื ืืืจืืืืืืื ืืืืฉืืืื (ืืืืืจ ืืฉ ืงืืืฆื ืฉื ืขืืืืืื ืืืืืื).
ืืืืืง ืืฉืืืฉื ืืื ืืขืจืืช ืืืกืื ื ืชืื ืื ืืืืืกืกืช ืขื S3. S3 ืืื ืืืกืื ืืืืืืงืืื ืืกืจ ืืืื ื-AWS, ืืขืจื ืืื Dropbox ืืกืจ ืืืื ืืขืกืงืื.
ืืืื ื ืจืื ืืื Snowflake ืขืืื, ืืื ืื ืฉืืชืืื ืงืจื. ืืืืืจ, ืืฉ ืืกื ื ืชืื ืื, ืื ืชืื ืื ื ืืขื ืื ืืืื, ืืื ืฉืืืืชืืช ืจืฆืืช. ืืืชืื ืืื, ืื ืืื ืืงืฉืืช ืืืกื ืื ืชืื ืื, ืืขืืื ื ืืช ืฉืืจืืช Metadata ืืืืืจ ืืืืืจืื (ืืกืืื ืจืืฉืื ื). ืืืฉ ืื ื ืืืกืื S3, ืฉืื ืืืืืกื ืื ื ืชืื ื ืืืื, ืืืืืงืื ืืื ืฉื ืงืจื ืืืงืจื-ืืืืฆืืช. ืืฉื ืืคืฉืืืช: ืื ืืืืื ืืืืื ืืจื ืืงืฆืืืช, ืื ืืืงืจื-ืืืืฆืืช ืื ืืื ืืขืกืงืืืช. ืื ืืื ืืื ืืืงืจื-ืืืืฆื ื ืคืจืืช, ืงืืืฅ ื ืคืจื. ืืืืฉืจ ืืกื ืื ืชืื ืื ืคืืขื ืืืฆื ืื, ืืชื ืืฉืื ืจืง ืขืืืจ ืืฉืื ืฉืชืืคืก ืื ืชืื ืื. ืืชืจื ืืื, ืืชืขืจืืฃ ืืืืฉื ื ืืื ืืืื (ืืืืืื ืืืชืืฉื ืืืืืกื ืืืฉืืขืืชืืช). ืฉืืจืืช ืืืื ื ืชืื ืื ืื ืขืืื ืืื ืืจืฃ, ืื ืืื ื ืืงืืง ืืืฉืืืื ืจืืื ืืื ืืืืขื ืฉืืืืชืืช, ืืืฉืืจืืช ืืืื ืืืืืฉื ืชืืื ืช ืฉืืชืืฃ.
ืขืืฉืื ืืืื ื ืืืืื ืฉืืฉืชืืฉ ืืืืข ืืืกื ืื ืชืื ืื ืฉืื ื ืืฉืื ืฉืืืืชืช SQL. ืฉืืืืชืช SQL ื ืฉืืืช ืืื ืืฉืืจืืช Metadata ืืขืืืื. ืืืชืื ืืื, ืขื ืงืืืช ืืงืฉื, ืฉืืจืืช ืื ืื ืชื ืืช ืืืงืฉื, ืื ืชืื ืื ืืืืื ืื, ืืจืฉืืืช ืืืฉืชืืฉ, ืืื ืืื ืืฉืืจื, ืืชืืื ืชืืื ืืช ืืืืคืื ืืืงืฉื.
ืืฉืื ืืื, ืืฉืืจืืช ืืืื ืืช ืืฉืงืช ืืฉืืื ืืืืฉืื. ืืฉืืื ืืืฉืื ืืื ืืฉืืื ืฉื ืฉืจืชืื ืฉืืืฆืขืื ืืืฉืืืื. ืืืืืจ, ืืืืืจ ืืืฉืืื ืฉืืืื ืืืืื ืฉืจืช 1, 2 ืฉืจืชืื, 4, 8, 16, 32 - ืืื ืฉืชืจืฆื. ืืชื ืืืจืง ืืงืฉื ืืืืฉืงื ืฉื ืืืฉืืื ืืื ืืชืืืื ืืื. ืื ืืืืช ืืืงื ืฉื ืืืช.
ืืืืจ ืืื, ืืืืจ ืฉืืืฉืืื ืืชืืื, ืืืืงืจื-ืืืืฆืืช ืืืจืืฉืืช ืืขืืืื ืืืงืฉื ืฉืื ืืชืืืืืช ืืืืืช ืืืขืชืงืืช ืืืฉืืื ื-S3. ืืืืืจ, ืืืื ื ืืืืื ืฉืืื ืืืฆืข ืฉืืืืชืช SQL ืฆืจืื ืฉืชื ืืืืฆืืช ืืืืื ืืืช ืืืืช ืืืฉื ืืื. ืืืงืจื ืื, ืจืง ืฉืืืฉ ืืืืืฆืืช ืืืจืืฉืืช ืืืขืชืงื ืืืฉืืื, ืืื ืื ืืืืืืืช ืืืืืื. ืื ืืกืืื, ืืืืืงื ืืืื ืฉืืื ืืืืงื ืืชืื ืืจืื ื ืชืื ืื ืืื ืืืืืืจ ืืขืจืืฆืื ืืืืจืื ืืืื, ืื ืชืืืื ืืืขืืจื ืืชืจืืฉ ืืืจ ืืืื: ืืฉื ืืืช, ืืขืชืื ืจืืืงืืช ืืืื ืืืงืืช, ืืื ืื ืื ืื ืื ื ืืืืจืื ืขื ืืื ืืงืฉืืช ืืคืืฆืชืืืช. ืืืชืื ืืื, ืืืืฆืืช ืืืงืจื ืืืขืชืงืืช ืืืฉืืื ืืืืฉืื, ืืขื ืืฉืืืชื, ืฉืืืืชืช ื-SQL ืืืืฆืขืช ืืืฉืืื ืืืืฉืื ืืื. ืืชืืฆืื ืฉื ืืงืฉื ืื ืืืืื ืืืืืช ืฉืืจื ืืืช, ืืกืคืจ ืฉืืจืืช ืื ืืืื - ืื ื ืฉืืืืช ืืืฆืื ืืช ืืืฉืชืืฉ ืืื ืฉืืืื ืืืืจืื ืืืชื, ืืืฆืื ืืืชื ืืืื ื-BI ืฉืื, ืื ืืืฉืชืืฉ ืื ืืืจื ืืืจืช.
ืื ืฉืืืืชืช SQL ืืืืื ืื ืจืง ืืงืจืื ืืืจืืืื ืื ืชืื ืื ืฉื ืืขื ื ืืขืืจ, ืืื ืื ืืืขืื/ืืืืฆืจ ื ืชืื ืื ืืืฉืื ืืืกื ืื ืชืื ืื. ืืืืืจ, ืื ืืืืื ืืืืืช ืฉืืืืชื ืฉืืื ืืกื, ืืืฉื, ืจืฉืืืืช ืืืฉืืช ืืืืื ืืืจืช, ืื ืฉืืืืื ืืืืคืขืช ืืืืฆื ืืืฉื ืืืฉืืื ืืืืฉืื, ืฉืืชืืจื ื ืฉืืจืช ืืืืืืืืช ืืืืกืื S3 ืืืื.
ืืชืจืืืฉ ืืืชืืืจ ืืขืื, ืืืืขืช ืืืฉืชืืฉ ืืขื ืืืขืืืช ืืืฉืืื, ืืขืื ืช ื ืชืื ืื, ืืืฆืืข ืฉืืืืชืืช, ืืฉืืช ืชืืฆืืืช, ืืฉืืื ืืชืขืจืืฃ ืขืืืจ ืืงืืช ืฉื ืฉืืืืฉ ืืืฉืืื ืืืืฉืื ืืืืจืืืืื ืืืืืื, ืืืกื ืืืจืืืืื. ืืชืขืจืืฃ ืืฉืชื ื ืืืชืื ืืืืืจ ื-AWS ืืืืืื ืืืฉืืื, ืื ืืืืืฆืข ืืื ืืื ืืืืจืื ืืฉืขื. ืืฉืืื ืฉื ืืจืืข ืืืื ืืช ืืงืจ ืคื ืฉื ืืื ืืืฉืืื ืฉื ืฉืชื ืืืื ืืช, ืืืฉืืื ืฉื ืฉืืื ื ืืืื ืืช ืขืืืื ืืงืจ ืคื ืฉื ืืื. ืืืื ืืช ืืคืฉืจืืืืช ืฉื 16, 32 ืืืื ืืช, ืืืชืื ืืืืจืืืืช ืืืงืฉืืช. ืืื ืืชื ืืฉืื ืจืง ืขื ืืืงืืช ืืืื ืฉืืืฉืืื ืคืืขื ืืคืืขื, ืื ืืฉืืื ืืงืฉืืช, ืืชื ืกืื ืฉื ืืืจืืื ืืช ืืืืืื, ืืืืจื 5-10 ืืงืืช ืฉื ืืืชื ื (ืคืจืืืจ ืฉื ืืชื ืืืืืจื) ืื ืืืืื ืืขืฆืื, ืืคื ืืช ืืฉืืืื ืืืืืืช ืืืคืฉืืื.
ืชืจืืืฉ ืจืืืื ืืืืืืื ืืื ืืืฉืจ ืืชื ืฉืืื ืืงืฉื, ืืืฉืืื ืฆืฅ, ืืืกืืช, ืชืื ืืงื, ืืื ืกืืคืจ ืขืื ืืงื, ืืื ืืืฉ ืืงืืช ืืกืืืจ, ืืืกืืคื ืฉื ืืืจ ืืชื ืืฉืื ืขืืืจ ืฉืืข ืืงืืช ืฉื ืืคืขืื ืฉื ืืืฉืืื ืืื, ื ืื ืืืฉื ืืืืฉืื ืืฉื ืื.
ืืชืจืืืฉ ืืจืืฉืื ืชืืืจ ืฉืืืืฉ ื- Snowflake ืืืืืจื ืฉื ืืฉืชืืฉ ืืืื. ืขืืฉืื ืืืื ื ืืืืื ืฉืืฉ ืืจืื ืืฉืชืืฉืื, ืืื ืงืจืื ืืืชืจ ืืชืจืืืฉ ืืืืืชื.
ื ื ืื ืฉืืฉ ืื ื ืืจืื ืื ืืืกืืื ืืืืืืช ืืืื ืฉืืคืฆืืฆืื ืื ืืืื ืืช ืืกื ืื ืชืื ืื ืฉืื ื ืืืกืคืจ ืจื ืฉื ืฉืืืืชืืช SQL ืื ืืืืืืช ืคืฉืืืืช.
ืื ืืกืฃ, ื ื ืื ืฉืืฉ ืื ื Data Scientists ืืฆืืจืชืืื ืฉืื ืกืื ืืขืฉืืช ืืืจืื ืืคืืฆืชืืื ืขื ื ืชืื ืื, ืืคืขืื ืขื ืขืฉืจืืช ืืจื-ืืืื, ืื ืชื ืืืืืืจืืื ืืืจืืืืื ืื ืฉื ืฉืืจืืช ืฉื ื ืชืื ืื.
ืขืืืจ ืฉื ื ืกืืื ืขืืืก ืืขืืืื ืืืชืืืจืื ืืขืื, Snowflake ืืืคืฉืจ ืื ืืืขืืืช ืืกืคืจ ืืฉืืืืืช ืืืฉืื ืขืฆืืืืื ืืขืื ืืืืืืช ืฉืื ืืช. ืืชืจื ืืื, ืืฉืืืืืช ืืืฉืื ืืื ืคืืขืืื ืืืืคื ืขืฆืืื, ืื ืขื ื ืชืื ืื ืขืงืืืื ืืฉืืชืคืื.
ืขืืืจ ืืกืคืจ ืจื ืฉื ืฉืืืืชืืช ืงืืืช, ืืชื ืืืื ืืืขืืืช 2-3 ืืฉืืืืืช ืงืื ืื, ืืขืจื 2 ืืืื ืืช ืื ืืืช. ื ืืชื ืืืืฉื ืืชื ืืืืช ืื, ืืื ืืืชืจ, ืืืืฆืขืืช ืืืืจืืช ืืืืืืืืืช. ืื ืืชื ืืืืจ, "ืคืชืืช ืฉืื, ืชืขืื ืืฉืืื ืงืื. ืื ืืขืืืก ืขืืื ืืื ืืขื ืคืจืืืจ ืืกืืื, ืืจื ืฉื ืืื, ืฉืืืฉืืช ืืืื. ืืฉืืขืืืก ืืชืืื ืืจืืช, ืืื ืืช ืืขืืืคืื". ืื ืฉืื ืืฉื ื ืืื ืื ืืืกืืื ืืืื ืืืชืืืืื ืืืกืชืื ืืืืืืช, ืืืืื ืืฉ ืืกืคืืง ืืฉืืืื.
ืืื ืขื ืืืช, ืื ืื ืืืกืืื ืืฉื ืื ืืืฃ ืืื ืื ืืกืชืื ืขื ืืืืืืช, ืืืฉืืืืืช ืขืืืืื ืืืืฉืื ืืืืืืื, ืืืชื ืืคืกืืง ืืฉืื ืขืืืื.
ืืืงืืื, ืขืืืจ ืฉืืืืชืืช ืืืืืช (ืืืืขื ื ื ืชืื ืื), ืืชื ืืืื ืืืขืืืช ืืฉืืื ืืื ืืืื ืืืื ืขืืืจ 32 ืืืื ืืช. ืืืฉืืื ืืื ืืฉืืื ืจืง ืขืืืจ ืืืงืืช ืืืฉืขืืช ืฉืืื ืืืงืฉื ืืขื ืงืืช ืฉืื ืคืืขืืช ืฉื.
ืืืืืื ืืช ืฉืชืืืจื ืืขืื ืืืคืฉืจืช ืื ืืืืง ืื ืจืง 2, ืืื ืื ืกืืืื ื ืืกืคืื ืฉื ืขืืืก ืขืืืื ืืืฉืืืืืช (ETL, ื ืืืืจ, ืืชืืืฉืืช ืืืืืช,...).
ืืืื ื ืกืื ืืช Snowflake. ืืืกืืก ืืฉืื ืจืขืืื ืืคื ืืืืฉืื ืืจ-ืืืฆืืข. ื-ManyChat, ืื ื ืืฉืชืืฉืื ื- Snowflake ืืื ืื ืชื ืืช ืื ืื ืชืื ืื ืฉืืฉ ืื ื. ืืื ืื ื ืฉืืืฉื ืืฉืืืืืช, ืืื ืืืืืื, ืืื ื-5 ืขื 9, ืืืืืื ืฉืื ืื. ืืฉ ืื ื ืืืื ืืช ืงืื ืื ืฆืืื ืืืืช ืฉื 16 ืืืื ืืช, 2 ืืืื ืืช, ืืื ืกืืคืจ-ืงืื ืืช ืฉื 1 ืืืื ืืช ืขืืืจ ืืฉืืืืช ืืกืืืืืช. ืื ืืืืงืื ืืืฆืืื ืืช ืืขืืืก ืืืืคืฉืจืื ืื ื ืืืกืื ืืจืื.
ืืกื ืื ืชืื ืื ืืจืืื ืืืฆืืื ืืช ืขืืืก ืืงืจืืื ืืืืชืืื. ืืื ืืืื ืขืฆืื ืืคืจืืฆืช ืืจื ืขืฆืืื ืืืฉืืืื ืืืืชื "ืืืจืืจื", ืฉื ืฉืื ืจืง ืืช ืขืืืก ืืงืจืืื. Snowflake ืืืคืฉืจ ืื ืืืชืืื ืืช ืขืืืก ืืืชืืื ืฉืื ืขื ืืฉืืืืืช ืืืฉืื ืืื. ืืืืืจ, ืืคื ืฉืฆืืื ืชื, ืื ื ืืฉืชืืฉืื ืืืกืคืจ ืืฉืืืืืช ื-ManyChat, ืืฉืืืืืช ืงืื ืื ืืกืืคืจ-ืงืื ืื ืืฉืืฉืื ืืขืืงืจ ื-ETL, ืืืขืื ืช ื ืชืื ืื. ืืื ืืืกืืื ืืืจ ืืืื ืขื ืืฉืืืืืช ืืื ืื ืืื, ืฉืืืฉ ืื ืืืฉืคืขืื ืืขืืืก ื-ETL, ืื ืื ืขืืืืื ืืืจ ืืืื.
ืืืชืื ืืื, ืืกื ืื ืชืื ืื ืืชืืื ืืืื ืืืฉืืืืช OLAP. ืขื ืืืช, ืืืจืื ืืฆืขืจ, ืื ืขืืืื ืื ืืฉืื ืขืืืจ ืขืืืกื ืขืืืื ืฉื OLTP. ืจืืฉืืช, ืืกื ื ืชืื ืื ืื ืืื ืขืืืื, ืขื ืื ืืืฉืืืืช ืื ืืืขืืช ืืื. ืฉื ืืช, ืืืืฉื ืขืฆืื, ืืืฉืจ ืขืืืจ ืื ืืงืฉื, ืืืืืช ืืฆืืจื, ืืชื ืืขืื ืืฉืืื ืืืฉืื ืืืฆืืฃ ืืืชื ืื ืชืื ืื, ืืืจืื ืืฆืขืจ, ืขืืืื ืื ืืืืจื ืืกืคืืง ืืขืืืกื OLTP. ืืืชื ื ืฉื ืฉื ืืืช ืืืฉืืืืช OLAP ืืื ืจืืืื, ืืื ืขืืืจ ืืฉืืืืช OLTP ืื ืื ืืงืืื; 100 ืืืคืืืช ืืฉื ืืื ืืืื ืืืืืช ืืืชืจ, ืื 10 ืืืคืืืช ืืฉื ืืื ืืืื ืืคืืื ืืืชืจ ืืืืืช.
ืกื ืืื
ืืกื ื ืชืื ืื ืืื ืฉืจืช ืืคืฉืจื ืขื ืืื ืืืืงืช ืืกื ืื ืชืื ืื ืืืืงืื Stateless ื-Stateful. ืืืื ืฉืืชื ืื ืฉืืื ืืืืืืืืช ืืขืื, ืืืืง ื-Stateful ืืื, ืืืืคื ืืืกื, ืืืกืื ืืืงืจื-ืืืืฆืืช ื-S3, ื-Stateless ืืื ืืืืคืืืืืืจ, ืฉืขืืื ืขื ืืื ื ืชืื ืื, ืืืคื ืืืขืืืช ืืืืื ืฉื ืืชื ืืืขืืืช ืืฉืืจืืชื Stateless ืงืื ืืฉืงื ืขืฆืืืืื.
ืืืฆืืข ืฉืืืืชืืช SQL ืืืื ืื ืืืืชืคืก ืืฉืืจืืชื ืืฆื ืืืจ ืฉืืืืืื ืืฆืืฅ ืืืฆื ืืื ืฉืจืช, ืืื ืืฉืืืืืช ืืืฉืื ืฉื Snowflake, ืืืืจืื ืจืง ืืช ืื ืชืื ืื ืืืจืืฉืื, ืืืฆืข ืืช ืืฉืืืืชื ื"ืืฆืืช".
ืืกืื ื ืชืื ืื ืืจืืช ืืืฆืืจ ืืื ืฉืจืช ืืืจ ืืืื ืื ืืฉืืืืฉ, ืื ืขืืืืื. ืืกืื ื ืชืื ืื ืืื ืืื ืฉืจืช ืืืจ ืืืื ืื ืืืคื ืืืฉืืืืช OLAP. ืืืจืื ืืฆืขืจ, ืขืืืจ ืืฉืืืืช OLTP ืื ืืฉืืฉืื... ืขื ื ืืืื ืกืื, ืฉืื ืืฉ ืืืืืืช. ืืฆื ืืื, ืื ืืื ืืก. ืืื, ืืฆื ืฉื ื, ืื ืืืืื ืืช. ืืืื ืืื ืืงืืจืืื ืืืฆื ืืจื ืืืคืื ืืกื ื ืชืื ืื ืฉื OLTP ืืื ืฉืจืชืื ืืืืืืื, ืืื ืืืืืืืช ืฉื ืืืจืืจื.
ืื ื ืืงืืื ืฉืืฆืืช ืืช ืื ืืขื ืืื. ืืื ืฉืจืช ืืื ืืขืชืื :)
ืืงืืจ: www.habr.com