#rfcs #самоРазвитие
Когда хочешь постоянно инвестировать в само-развитие, то очень важно потратить свое время с пользой. Для этого можно найти ментора, который будет вести тебя в нужном направлении или возспользоваться краудсорсингом в виде советов в группах телеграмма или других соц. сетей.
Недавно я узнал об очень крутом сборнике ценной информации о фундаментальных знаниях, технологиях, протоколах - https://tools.ietf.org/rfc/
На каждую тему там можно найти документ размером с учебник.
Очень сильно рекомендую к ознакомлению. Заучивать и перечитывать все в деталях точно не думаю, что нужно. Однако, уметь пользоваться этим ресурсом для быстрого погружения в тему, это очень ценный навык, который каждый инжинер должен иметь.
В целом, я стараюсь уделять много времени фундаментальным знаниям, так как поняв их, реализацию понять очень легко.
Из последнего что я прочитал было про "The OAuth 2.0 Authorization Framework": https://tools.ietf.org/html/rfc6749
Когда хочешь постоянно инвестировать в само-развитие, то очень важно потратить свое время с пользой. Для этого можно найти ментора, который будет вести тебя в нужном направлении или возспользоваться краудсорсингом в виде советов в группах телеграмма или других соц. сетей.
Недавно я узнал об очень крутом сборнике ценной информации о фундаментальных знаниях, технологиях, протоколах - https://tools.ietf.org/rfc/
На каждую тему там можно найти документ размером с учебник.
Очень сильно рекомендую к ознакомлению. Заучивать и перечитывать все в деталях точно не думаю, что нужно. Однако, уметь пользоваться этим ресурсом для быстрого погружения в тему, это очень ценный навык, который каждый инжинер должен иметь.
В целом, я стараюсь уделять много времени фундаментальным знаниям, так как поняв их, реализацию понять очень легко.
Из последнего что я прочитал было про "The OAuth 2.0 Authorization Framework": https://tools.ietf.org/html/rfc6749
#teams #diversity
В наши дни всем ясно, что diversity - это то, что помогает прогрессу команд и компаний.
Мне больше нравится идея полчения diversity за счет личностных качеств: кто-то быстро производит результат (не самый красивый, но приносящий ценность для клиента), кто-то постоянно экспериментирует с новыми технологиями, кто-то силен в имплементации и пишет отличный код или рефакторит\ревьюит код других.
При правильном лидиршипе, развивая сильные стороны каждого из членов команды на все 100%, где ни один из участников не просто не будет осужден за тот или иной подход, а наоборот, где каждый будет прикрывать других в тех местах, где они сильны, то можно достичь отличных результатов.
Что еще я считаю важно для разработчкиов, так это 1) фундаментальные тех. знания на уверенном уровне - именно фундаментальные, 2) есть постоянная тяга к развитию, и 3) с этим человеком приятно работать в команде
В наши дни всем ясно, что diversity - это то, что помогает прогрессу команд и компаний.
Мне больше нравится идея полчения diversity за счет личностных качеств: кто-то быстро производит результат (не самый красивый, но приносящий ценность для клиента), кто-то постоянно экспериментирует с новыми технологиями, кто-то силен в имплементации и пишет отличный код или рефакторит\ревьюит код других.
При правильном лидиршипе, развивая сильные стороны каждого из членов команды на все 100%, где ни один из участников не просто не будет осужден за тот или иной подход, а наоборот, где каждый будет прикрывать других в тех местах, где они сильны, то можно достичь отличных результатов.
Что еще я считаю важно для разработчкиов, так это 1) фундаментальные тех. знания на уверенном уровне - именно фундаментальные, 2) есть постоянная тяга к развитию, и 3) с этим человеком приятно работать в команде
Forwarded from Tech Crunch
Первая квантовая телепортация была осуществлена с помощью кремниевого фотонного чипа.
Учёные из Бристольского университета в сотрудничестве с Датским техническим университетом разработали чип, который может использовать приложения квантовой физики, генерируя отдельные частицы света и манипулируя ими в программируемых наноразмерных схемах. Такие чипы способны кодировать квантовую информацию в фотонах и обрабатывать её с высокой эффективностью и чрезвычайно низким уровнем шума. Эксперимент команды впервые продемонстрировал квантовую телепортацию информации между двумя программируемыми микросхемами.
Квантовая телепортация предполагает квантовую передачу состояния квантовой частицы из одного места в другое, используя запутывание. Телепортация не только полезна для квантовой связи, но и является фундаментальным строительным блоком оптических квантовых вычислений. Хотя установить запутанную линию связи между двумя чипами в лаборатории было очень сложно, исследователи смогли продемонстрировать высококачественную с
Учёные из Бристольского университета в сотрудничестве с Датским техническим университетом разработали чип, который может использовать приложения квантовой физики, генерируя отдельные частицы света и манипулируя ими в программируемых наноразмерных схемах. Такие чипы способны кодировать квантовую информацию в фотонах и обрабатывать её с высокой эффективностью и чрезвычайно низким уровнем шума. Эксперимент команды впервые продемонстрировал квантовую телепортацию информации между двумя программируемыми микросхемами.
Квантовая телепортация предполагает квантовую передачу состояния квантовой частицы из одного места в другое, используя запутывание. Телепортация не только полезна для квантовой связи, но и является фундаментальным строительным блоком оптических квантовых вычислений. Хотя установить запутанную линию связи между двумя чипами в лаборатории было очень сложно, исследователи смогли продемонстрировать высококачественную с
#architecture #cqrs #article
Мое новогодние утро началось с прочтения статей :))
Немного о CQRS и стратегиях без Event Sourcing. На мой взгляд, статья не претендует на истинную правду, но как ещё одно мнение более чем!
Огромных всем успехов и с новым годом!
https://link.medium.com/u5tw3M30S2
Мое новогодние утро началось с прочтения статей :))
Немного о CQRS и стратегиях без Event Sourcing. На мой взгляд, статья не претендует на истинную правду, но как ещё одно мнение более чем!
Огромных всем успехов и с новым годом!
https://link.medium.com/u5tw3M30S2
Medium
Some thoughts on using CQRS without Event Sourcing
In the last couple of years, I had the opportunity to design one or the other CQRS-based system together with my clients. In these…
Forwarded from Tech Crunch
Один из основных трендов техгигантов 2019- 2020г.-привлечение талантов ИИ через скупку стартапов
Amazon, Apple, Intel и другие крупные технологические компании скупают ИИ стартапы в основном для того, чтобы сконцентрировать у себя лучшие таланты в сфере ИИ.
Самой крупной сделкой года стала покупка недавняя сделала Intel с израильским ИИ стартапом Habana Labs за $2 млрд. По данным компании PitchBook, с 2013 году Apple купила 17 стартапов в сфере ИИ.
Согласно исследованиям Стэнфордского университета, еще до совершения последней покупки Intel вложил в ИИ стартапы до $35 млрд.
Когда в июне Apple купил стартап Drive.ai, на рынке решил перекупить лучших инженеров.
Заработная плата инженеров в сфере ИИ, у которых есть ученые степени, варьируется ~$224 000 в год, что вдвое превышает среднюю зарплату для разработчиков программного обеспечения в США.
Uber нанял многих преподавателей робототехники из Университета Карнеги-Меллона в 2015 году и построил лабораторию для беспилотных автомобилей.
Facebook подписал несколько соглашений с университетами о создании лабораторий ИИ за последние годы, в т.ч. для привлечения талантов.
Amazon, Apple, Intel и другие крупные технологические компании скупают ИИ стартапы в основном для того, чтобы сконцентрировать у себя лучшие таланты в сфере ИИ.
Самой крупной сделкой года стала покупка недавняя сделала Intel с израильским ИИ стартапом Habana Labs за $2 млрд. По данным компании PitchBook, с 2013 году Apple купила 17 стартапов в сфере ИИ.
Согласно исследованиям Стэнфордского университета, еще до совершения последней покупки Intel вложил в ИИ стартапы до $35 млрд.
Когда в июне Apple купил стартап Drive.ai, на рынке решил перекупить лучших инженеров.
Заработная плата инженеров в сфере ИИ, у которых есть ученые степени, варьируется ~$224 000 в год, что вдвое превышает среднюю зарплату для разработчиков программного обеспечения в США.
Uber нанял многих преподавателей робототехники из Университета Карнеги-Меллона в 2015 году и построил лабораторию для беспилотных автомобилей.
Facebook подписал несколько соглашений с университетами о создании лабораторий ИИ за последние годы, в т.ч. для привлечения талантов.
WSJ
Tech Giants Hunt for AI Startups—and the Brains Behind Them
Technology giants are opening their checkbooks to keep pace in the hot field of artificial intelligence, where some of the best ideas and most sought-after talent reside in small startups and academia.
#db #mariadb #columnar #storage #olap
MariaDB Corporation, the commercial entity behind the MariaDB open source relational database that began life as a "fork" of MySQL, is today announcing a new version of its platform. The release, dubbed Platform X4, brings new a storage paradigm to MariaDB. This results in both cloud-friendly deployment and accommodation of analytical workloads for the platform.
https://www.zdnet.com/article/mariadb-platform-x4-adds-cloud-first-columnar-storage/
MariaDB Corporation, the commercial entity behind the MariaDB open source relational database that began life as a "fork" of MySQL, is today announcing a new version of its platform. The release, dubbed Platform X4, brings new a storage paradigm to MariaDB. This results in both cloud-friendly deployment and accommodation of analytical workloads for the platform.
https://www.zdnet.com/article/mariadb-platform-x4-adds-cloud-first-columnar-storage/
ZDNet
MariaDB Platform X4 adds cloud-first, columnar storage
New MariaDB Platform X4 release supports hybrid operational/analytical "smart transactions," standardizes on cloud object storage to do it.
Forwarded from DataEng
Стартовал новый поток курса по базам данных от Carnegie Mellon University — Advanced Database Systems
В курсе не идёт речь о каких-то определённых базах, а раскрывается их внутренее устройство. Будут затронуты как транзакционные БД (OLTP), так и аналитические, распределенные БД (OLAP).
Ссылка на расписание курса: https://15721.courses.cs.cmu.edu/spring2020/schedule.html
Ссылка на страницу курса: https://15721.courses.cs.cmu.edu/spring2020/
В курсе не идёт речь о каких-то определённых базах, а раскрывается их внутренее устройство. Будут затронуты как транзакционные БД (OLTP), так и аналитические, распределенные БД (OLAP).
Ссылка на расписание курса: https://15721.courses.cs.cmu.edu/spring2020/schedule.html
Ссылка на страницу курса: https://15721.courses.cs.cmu.edu/spring2020/
YouTube
01 - History of Databases (CMU Databases / Spring 2020)
Prof. Andy Pavlo (http://www.cs.cmu.edu/~pavlo/)
Slides: https://15721.courses.cs.cmu.edu/spring2020/slides/01-history.pdf
15-721 Advanced Database Systems (Spring 2020)
Carnegie Mellon University
https://15721.courses.cs.cmu.edu/spring2020/
Slides: https://15721.courses.cs.cmu.edu/spring2020/slides/01-history.pdf
15-721 Advanced Database Systems (Spring 2020)
Carnegie Mellon University
https://15721.courses.cs.cmu.edu/spring2020/
“Reviewing Messaging in Distributed System Architectures” by Kevin Viglucci https://link.medium.com/OMOj7DLzN3
Medium
Reviewing Messaging in Distributed System Architectures
A high-level overview of common messaging patterns & protocols used when building real-time/distributed systems.
Another pub sub technology - Apache Pulsar
has some advantages over Kafka
https://www.youtube.com/watch?v=7h7hA7APa5Y
Here is a good advantage of Pulsar over Apache:
https://kafkaesque.io/7-reasons-we-choose-apache-pulsar-over-apache-kafka/
1. Streaming and queuing Come together
2. Partitions, but not necessarily partitions
3. Logs are good, distributed ledgers are better
4. Stateless Brokers, What?
5. Geo-replication for dummies
6. Consistently Faster
7. It’s All Apache Open Source
has some advantages over Kafka
https://www.youtube.com/watch?v=7h7hA7APa5Y
Here is a good advantage of Pulsar over Apache:
https://kafkaesque.io/7-reasons-we-choose-apache-pulsar-over-apache-kafka/
1. Streaming and queuing Come together
2. Partitions, but not necessarily partitions
3. Logs are good, distributed ledgers are better
4. Stateless Brokers, What?
5. Geo-replication for dummies
6. Consistently Faster
7. It’s All Apache Open Source
YouTube
A tour of Apache Pulsar - Jowanza Joseph | #LeadDevAustin 2018
Apache Pulsar is a distributed pub/sub system develop at Yahoo! This talk covers Apache Pulsar's underlying design and protocol level semantics. We'll cover some of the advantages and disadvantages over systems like Apache Kafka and RabbitMQ. The talk will…
Та метрика, которую мы называем «загрузкой процессора» на самом деле многими людьми понимается не совсем верно.
«Работа вхолостую» означает, что процессор способен выполнить некоторые инструкции, но не делает этого, поскольку ожидает чего-то — например, ввода-вывода данных из оперативной памяти. Процентное соотношение реальной и «холостой» работы на рисунке выше — это то, что я вижу изо дня в день в работе реальных приложений на реальных серверах. Есть существенная вероятность, что и ваша программа проводит своё время примерно так же, а вы об этом и не знаете.
Что это означает для вас? Понимание того, какое количество времени процессор действительно выполняет некоторые операции, а какое — лишь ожидает данные, иногда даёт возможность изменить ваш код, уменьшив обмен данных с оперативной памятью
https://habr.com/ru/company/infopulse/blog/329206/
«Работа вхолостую» означает, что процессор способен выполнить некоторые инструкции, но не делает этого, поскольку ожидает чего-то — например, ввода-вывода данных из оперативной памяти. Процентное соотношение реальной и «холостой» работы на рисунке выше — это то, что я вижу изо дня в день в работе реальных приложений на реальных серверах. Есть существенная вероятность, что и ваша программа проводит своё время примерно так же, а вы об этом и не знаете.
Что это означает для вас? Понимание того, какое количество времени процессор действительно выполняет некоторые операции, а какое — лишь ожидает данные, иногда даёт возможность изменить ваш код, уменьшив обмен данных с оперативной памятью
https://habr.com/ru/company/infopulse/blog/329206/
Хабр
Вы неверно измеряете загрузку процессора
Та метрика, которую мы называем «загрузкой процессора» на самом деле многими людьми понимается не совсем верно. Что же такое «загрузка процессора»? Это то, наско...
Forwarded from Azamat
на самом деле есть преимущества у poetry по сравнению с простом пипом, даже внутри докера:
1) dependency resolution. это в принципе ради чего существуют все pip tools, pipenv, poetry и все такое. загугли python dependency resolution и увидишь кучу тредов, включая гитхаб обсуждения самого пипа.
смысл: твои зависимости могут требовать разные версии библиотек. очень условно говоря кто-то требует requests > 2.1, а кто-то requests < 3.0 и поетри высчитает тебе что 2.2 удовлетворяет всех. плюс когда ты делаешь апгрейд каких-то зависимостей тебе это может сильно помочь.
2) разделение дев и прод зависимостей. когда собираешь под прод контейнер там даже не будут установлены дев зависимости типа pytest, djangodebugtoolbar, etc
3) удаление пакетов. допустим ты поставил requests, он с собой много чего подтянул. пипом удалишь requests, всего его зависимости остались. poetry подчистит этот мусор
4) там вроде еще удобно билдить свои библиотеки и пушить их в PYPI, но это ни разу не пробовал
1) dependency resolution. это в принципе ради чего существуют все pip tools, pipenv, poetry и все такое. загугли python dependency resolution и увидишь кучу тредов, включая гитхаб обсуждения самого пипа.
смысл: твои зависимости могут требовать разные версии библиотек. очень условно говоря кто-то требует requests > 2.1, а кто-то requests < 3.0 и поетри высчитает тебе что 2.2 удовлетворяет всех. плюс когда ты делаешь апгрейд каких-то зависимостей тебе это может сильно помочь.
2) разделение дев и прод зависимостей. когда собираешь под прод контейнер там даже не будут установлены дев зависимости типа pytest, djangodebugtoolbar, etc
3) удаление пакетов. допустим ты поставил requests, он с собой много чего подтянул. пипом удалишь requests, всего его зависимости остались. poetry подчистит этот мусор
4) там вроде еще удобно билдить свои библиотеки и пушить их в PYPI, но это ни разу не пробовал
#linux #memory
Very short video that helps to understand that Mem Free is not the right indicator to track memory outages:
https://www.youtube.com/watch?v=1xfzRsGAP5c
Very short video that helps to understand that Mem Free is not the right indicator to track memory outages:
https://www.youtube.com/watch?v=1xfzRsGAP5c
YouTube
Understanding Linux Memory Usage - RHCSA Tutorial
How does Linux Memory Usage work?
Get an understanding of the Linux Memory usage with this free video lesson from the "Video Course Red Hat Certified System Administrator (RHCSA) Complete Video Course: Red Hat Enterprise Linux 7".
In this course you will…
Get an understanding of the Linux Memory usage with this free video lesson from the "Video Course Red Hat Certified System Administrator (RHCSA) Complete Video Course: Red Hat Enterprise Linux 7".
In this course you will…
#lniux #memory #cache #buffers
Самое главное что я искал: "The cache is not reclaimed at the time when process get stop/exit, however when the other processes requires more memory then the free available memory, kernel will run heuristics to reclaim the memory by storing the cache data and allocating that memory to new process." 😋
Cache Pages:
A cache is the part of the memory which transparently stores data so that future requests for that data can be served faster. This memory is utilized by the kernel to cache disk data and improve i/o performance.
The Linux kernel is built in such a way that it will use as much RAM as it can to cache information from your local and remote filesystems and disks. As the time passes over various reads and writes are performed on the system, kernel tries to keep data stored in the memory for the various processes which are running on the system or the data that of relevant processes which would be used in the near future. The cache is not reclaimed at the time when process get stop/exit, however when the other processes requires more memory then the free available memory, kernel will run heuristics to reclaim the memory by storing the cache data and allocating that memory to new process.
When any kind of file/data is requested then the kernel will look for a copy of the part of the file the user is acting on, and, if no such copy exists, it will allocate one new page of cache memory and fill it with the appropriate contents read out from the disk.
The data that is stored within a cache might be values that have been computed earlier or duplicates of original values that are stored elsewhere in the disk. When some data is requested, the cache is first checked to see whether it contains that data. The data can be retrieved more quickly from the cache than from its source origin.
SysV shared memory segments are also accounted as a cache, though they do not represent any data on the disks. One can check the size of the shared memory segments using ipcs -m command and checking the bytes column.
Buffers :
Buffers are the disk block representation of the data that is stored under the page caches. Buffers contains the metadata of the files/data which resides under the page cache. Example: When there is a request of any data which is present in the page cache, first the kernel checks the data in the buffers which contain the metadata which points to the actual files/data contained in the page caches. Once from the metadata the actual block address of the file is known, it is picked up by the kernel for processing.
https://serverfault.com/questions/23433/in-linux-what-is-the-difference-between-buffers-and-cache-reported-by-the-f
Самое главное что я искал: "The cache is not reclaimed at the time when process get stop/exit, however when the other processes requires more memory then the free available memory, kernel will run heuristics to reclaim the memory by storing the cache data and allocating that memory to new process." 😋
Cache Pages:
A cache is the part of the memory which transparently stores data so that future requests for that data can be served faster. This memory is utilized by the kernel to cache disk data and improve i/o performance.
The Linux kernel is built in such a way that it will use as much RAM as it can to cache information from your local and remote filesystems and disks. As the time passes over various reads and writes are performed on the system, kernel tries to keep data stored in the memory for the various processes which are running on the system or the data that of relevant processes which would be used in the near future. The cache is not reclaimed at the time when process get stop/exit, however when the other processes requires more memory then the free available memory, kernel will run heuristics to reclaim the memory by storing the cache data and allocating that memory to new process.
When any kind of file/data is requested then the kernel will look for a copy of the part of the file the user is acting on, and, if no such copy exists, it will allocate one new page of cache memory and fill it with the appropriate contents read out from the disk.
The data that is stored within a cache might be values that have been computed earlier or duplicates of original values that are stored elsewhere in the disk. When some data is requested, the cache is first checked to see whether it contains that data. The data can be retrieved more quickly from the cache than from its source origin.
SysV shared memory segments are also accounted as a cache, though they do not represent any data on the disks. One can check the size of the shared memory segments using ipcs -m command and checking the bytes column.
Buffers :
Buffers are the disk block representation of the data that is stored under the page caches. Buffers contains the metadata of the files/data which resides under the page cache. Example: When there is a request of any data which is present in the page cache, first the kernel checks the data in the buffers which contain the metadata which points to the actual files/data contained in the page caches. Once from the metadata the actual block address of the file is known, it is picked up by the kernel for processing.
https://serverfault.com/questions/23433/in-linux-what-is-the-difference-between-buffers-and-cache-reported-by-the-f
Server Fault
In Linux, what is the difference between "buffers" and "cache" reported by the free command?
This is an old question that I've seen from time to time. My understanding of it is rather limited (having read about the differences a long time ago, but the factoid(s) involved never really stuc...
#book #site-reliability
Отличный сборник всего нужного для разработчика, архитектора, и DevOps инжинера.
Раскрываются темы Сетей, Операционных Систем, Основы языков программирования, Bash, and a bunch of other useful tools
https://s905060.gitbooks.io/site-reliability-engineer-handbook/content/
Отличный сборник всего нужного для разработчика, архитектора, и DevOps инжинера.
Раскрываются темы Сетей, Операционных Систем, Основы языков программирования, Bash, and a bunch of other useful tools
https://s905060.gitbooks.io/site-reliability-engineer-handbook/content/
s905060.gitbooks.io
Introduction · Site Reliability Engineer HandBook
#linux #zombie #defunct #notOrphans
Zombies process occurs for child processes, where the entry is still needed to allow the parent process to read its child's exit status: once the exit status is read via the wait system call, the zombie's entry is removed from the process table and it is said to be "reaped". A child process always first becomes a zombie before being removed from the resource table.
Zombie processes should not be confused with orphan processes: an orphan process is a process that is still executing, but whose parent has died. These do not remain as zombie processes; instead, (like all orphaned processes) they are adopted by init (process ID 1), which waits on its children. The result is that a process that is both a zombie and an orphan will be reaped automatically.
Zombies process occurs for child processes, where the entry is still needed to allow the parent process to read its child's exit status: once the exit status is read via the wait system call, the zombie's entry is removed from the process table and it is said to be "reaped". A child process always first becomes a zombie before being removed from the resource table.
Zombie processes should not be confused with orphan processes: an orphan process is a process that is still executing, but whose parent has died. These do not remain as zombie processes; instead, (like all orphaned processes) they are adopted by init (process ID 1), which waits on its children. The result is that a process that is both a zombie and an orphan will be reaped automatically.
#kafka #architecture
A good and perhaps an opinionated video about Kafka and why it is better than traditional coupling technologies such as MQs, ETLs, etc.
https://www.youtube.com/watch?v=6yG2myKcMQE
A good and perhaps an opinionated video about Kafka and why it is better than traditional coupling technologies such as MQs, ETLs, etc.
https://www.youtube.com/watch?v=6yG2myKcMQE
YouTube
Apache Kafka vs. Integration Middleware (MQ, ETL, ESB) - Friends, Enemies or Frenemies?
This session discusses how to build an event-driven streaming platform leveraging Apache Kafka’s open source messaging, integration and streaming capabilities.
Learn the differences between an event-driven streaming platform and middleware like Message Queues…
Learn the differences between an event-driven streaming platform and middleware like Message Queues…
#lambda #aws #benchmarking
Benchmarking of AWS Lambda performance using different languages. Who wins: Java or Python? what's your guess?
https://medium.com/the-theam-journey/benchmarking-aws-lambda-runtimes-in-2019-part-i-b1ee459a293d
Benchmarking of AWS Lambda performance using different languages. Who wins: Java or Python? what's your guess?
https://medium.com/the-theam-journey/benchmarking-aws-lambda-runtimes-in-2019-part-i-b1ee459a293d
Medium
Benchmarking AWS Lambda runtimes in 2019 (part I)
Have you ever wondered whether your AWS Lambda could be faster if you used a different runtime?
Forwarded from Типичный программист
Яндекс выложила Testsuite в открытый доступ
Это такой фреймворк для тестирования HTTP-сервисов. Применяется, например, в Яндекс.Такси, где бэк состоит из сотен микросервисов.
Testsuite основан на pytest и работает на Linux и macOS. Фреймворк удобен для интеграционных тестов преимущественно по принципу чёрного ящика. Но, конечно, и один сервис тоже можно проверить.
Ключевые фишки: вызов HTTP API тестируемого сервиса, перехват запросов во внешние сервисы, проверка внешних обращений к другим сервисам и порядка их вызова, взаимодействие с БД сервиса (начальное наполнение, проверка результата).
В статье на Хабре подробно описан пример использования: http://bit.ly/2wLcrcW
Там же найдёте ссылки на репо, доки и дополнительные примеры.
Это #партнёрский пост
Это такой фреймворк для тестирования HTTP-сервисов. Применяется, например, в Яндекс.Такси, где бэк состоит из сотен микросервисов.
Testsuite основан на pytest и работает на Linux и macOS. Фреймворк удобен для интеграционных тестов преимущественно по принципу чёрного ящика. Но, конечно, и один сервис тоже можно проверить.
Ключевые фишки: вызов HTTP API тестируемого сервиса, перехват запросов во внешние сервисы, проверка внешних обращений к другим сервисам и порядка их вызова, взаимодействие с БД сервиса (начальное наполнение, проверка результата).
В статье на Хабре подробно описан пример использования: http://bit.ly/2wLcrcW
Там же найдёте ссылки на репо, доки и дополнительные примеры.
Это #партнёрский пост
#systemDesign #interviews #distributedSystems
Are you preparing for a system design interview?
Or are you a junior software developer who wants to see a bigger picture?
Or are you just an architect of distributed systems or microservices who wants to refresh your knowledge and approaches?
If you answered to any of this questions "yes", then this video and the whole channel is definitely for you!
https://www.youtube.com/watch?v=bUHFg8CZFws
Are you preparing for a system design interview?
Or are you a junior software developer who wants to see a bigger picture?
Or are you just an architect of distributed systems or microservices who wants to refresh your knowledge and approaches?
If you answered to any of this questions "yes", then this video and the whole channel is definitely for you!
https://www.youtube.com/watch?v=bUHFg8CZFws
YouTube
System Design Interview – Step By Step Guide
Please check out my other video courses here: https://www.systemdesignthinking.com
Topics mentioned in the video:
- Stages of a typical system design interview: functional requirements (API), non-functional requirements, high-level design, detailed design…
Topics mentioned in the video:
- Stages of a typical system design interview: functional requirements (API), non-functional requirements, high-level design, detailed design…
Forwarded from AWS Notes
Дешёвая (бесплатная) база данных на AWS для собственных проектов (обучения/попробовать)
#начинающим #интересующимся
Допустим, у вас есть какой-то проектик, например, на условной Django для собственных нужд — как хобби, для обучения и т.п. Он где-то хостится бесплатно или за несколько долларов в месяц.
Вы почитали, что здесь пишут про AWS и загорелись попробовать на него переехать или сразу поднять тут свой, чтобы познакомиться поближе и получить опыт. Расценки на хранение файлов (S3) совершенно комфортны, но вот проблема — у вас есть (реляционная) база данных. Вы смотрите прайс на RDS, а там самая простая начинается от 12 долларов в месяц и желание пробовать AWS резко пропадает.
Разберём варианты, что можно сделать с БД, чтобы она была дешёвой, а лучше бесплатной.
RDS
Обязательно прочтите про бесплатный AWS — открыв себе новый аккаунт, вы получите возможность целый год крутить базу на виртуалке
EC2
Можно поднять БД на дешёвой виртуалке, например, на
DynamoDB
Отличная и даже близкая к идеальной БД, по сути бесплатная (и постоянно/бессрочно/всегда) для собственных проектов, т.к. имеет суперовскую ценовую модель. Но есть одно но — не реляционная.
Очень выгодно, если ваш проект/фреймворк умеет с ней работать. Или если можете допилить его до работы с DynamoDB. На выходе получаете крутизну serverless подхода при минимальной цене (обычно совсем бесплатно).
Гляньте видео с последнего реинвента, возможно оно подскажет, как можно переделать свой проектик под DynamoDB:
https://www.youtube.com/watch?v=DIQVJqiSUkE
Aurora Serverless
Вдруг вы пропустили и не знаете, что есть реляционная база данных с ценовой моделью а-ля DynamoDB, где вы платите лишь за реально используемые ресурсы.
https://aws.amazon.com/rds/aurora/serverless/
Её использование подпадает под Free Tier, так что также можно попробовать годик бесплатно.
Задеплоить Django на Aurora Serverless можно так:
https://www.agiliq.com/blog/2019/01/complete-serverless-django/
Cassandra
Не реляционная, но с аналогичной DynamoDB ценовой моделью.
https://aws.amazon.com/ru/mcs/
S3
Речь про файловую БД. Если прикрутить прослойку в виде условной Лямбды, что будет хранить данные не в БД, а на S3, то можно вообще избавиться от БД. Однако, понятно, это обычно требует серьёзной переделки проекта.
Athena
Не БД, но можно делать SQL запросы к S3. Под Django есть djathena.
Итого. Есть разные недорогие варианты прикрутить БД в свой проект на AWS. Реляционные и нет, с переделкой и без. Выбирайте, что подходит сейчас и что будет круто в дальнейшем. Главное — пробуйте!
#начинающим #интересующимся
Допустим, у вас есть какой-то проектик, например, на условной Django для собственных нужд — как хобби, для обучения и т.п. Он где-то хостится бесплатно или за несколько долларов в месяц.
Вы почитали, что здесь пишут про AWS и загорелись попробовать на него переехать или сразу поднять тут свой, чтобы познакомиться поближе и получить опыт. Расценки на хранение файлов (S3) совершенно комфортны, но вот проблема — у вас есть (реляционная) база данных. Вы смотрите прайс на RDS, а там самая простая начинается от 12 долларов в месяц и желание пробовать AWS резко пропадает.
Разберём варианты, что можно сделать с БД, чтобы она была дешёвой, а лучше бесплатной.
RDS
Обязательно прочтите про бесплатный AWS — открыв себе новый аккаунт, вы получите возможность целый год крутить базу на виртуалке
db.t2.micro.EC2
Можно поднять БД на дешёвой виртуалке, например, на
t3a.nano это выйдет 3.4$/мес (плюс стоимость диска и некоторые другие расходы). Примитивный и самый очевидный способ. БД нужно будет поднимать и поддерживать самому, потому вряд ли рекомендуемый.DynamoDB
Отличная и даже близкая к идеальной БД, по сути бесплатная (и постоянно/бессрочно/всегда) для собственных проектов, т.к. имеет суперовскую ценовую модель. Но есть одно но — не реляционная.
Очень выгодно, если ваш проект/фреймворк умеет с ней работать. Или если можете допилить его до работы с DynamoDB. На выходе получаете крутизну serverless подхода при минимальной цене (обычно совсем бесплатно).
Гляньте видео с последнего реинвента, возможно оно подскажет, как можно переделать свой проектик под DynamoDB:
https://www.youtube.com/watch?v=DIQVJqiSUkE
Aurora Serverless
Вдруг вы пропустили и не знаете, что есть реляционная база данных с ценовой моделью а-ля DynamoDB, где вы платите лишь за реально используемые ресурсы.
https://aws.amazon.com/rds/aurora/serverless/
Её использование подпадает под Free Tier, так что также можно попробовать годик бесплатно.
Задеплоить Django на Aurora Serverless можно так:
https://www.agiliq.com/blog/2019/01/complete-serverless-django/
Cassandra
Не реляционная, но с аналогичной DynamoDB ценовой моделью.
https://aws.amazon.com/ru/mcs/
S3
Речь про файловую БД. Если прикрутить прослойку в виде условной Лямбды, что будет хранить данные не в БД, а на S3, то можно вообще избавиться от БД. Однако, понятно, это обычно требует серьёзной переделки проекта.
Athena
Не БД, но можно делать SQL запросы к S3. Под Django есть djathena.
Итого. Есть разные недорогие варианты прикрутить БД в свой проект на AWS. Реляционные и нет, с переделкой и без. Выбирайте, что подходит сейчас и что будет круто в дальнейшем. Главное — пробуйте!
Telegram
aws_notes
Бесплатный AWS
#интересующимся #начинающим
Вот читаете вы различные статьи — для админов, разработчиков, девопсов и везде встречаете AWS. Собственно, наверняка, и на этот канал подписались, просто из интереса, чтобы узнать какие-то подробности по теме…
#интересующимся #начинающим
Вот читаете вы различные статьи — для админов, разработчиков, девопсов и везде встречаете AWS. Собственно, наверняка, и на этот канал подписались, просто из интереса, чтобы узнать какие-то подробности по теме…