„Chillin‘“ at Amazon
618 subscribers
27 photos
1 video
7 files
370 links
Amazonian SDE is sharing, 'cause sharing is caring 👨‍💻

note: I do not represent any of my employers in this channel
Download Telegram
Forwarded from Хабр
This media is not supported in your browser
VIEW IN TELEGRAM
«Спейс Шаттл» летит в музей
Learn & practice Git

With this platform you can learn and practice Git and discover its features you might haven't been aware of. With all the exercises provided you will rapidly become a Git Master!

https://gitexercises.fracz.com/
Forwarded from Go
Microservices

Hello, world!\n 😄
This week I came across my notes and bookmarks and made a list of resources where to start learning about microservices, and I’d like to share it here. Hope it’s gonna be useful.

📒Posts & Articles:
- 35 Microservices Interview Questions You Most Likely Can't Answer: https://dev.to/aershov24/35-microservices-interview-questions-you-most-likely-can-t-answer-2eoc
- Martin Fowler’s microservices, classic: https://martinfowler.com/articles/microservices.html
- Nice intro into Microservices topic from NGINX team: https://www.nginx.com/blog/introduction-to-microservices/

📚A book to read: “Building Microservices: Designing Fine-Grained Systems” - https://www.amazon.com/Building-Microservices-Designing-Fine-Grained-Systems-ebook/dp/B00T3N7XB4

🧑‍🏫Tutorials
🔴If you’d like to start from practice in a hard mode, feel free to go here:
- “Introduction to Microservices in Gohttps://ewanvalentine.io/microservices-in-golang-part-0/ This is a big and somewhat complete series/tutorial of building a service from scratch in Go, including docker, CI configuration, deployment, Kubernetes and much more things.

🟢Easy-going practices are:
- An option with MySQL: “Build a REST API as a Go microservice together with MySQL” -https://dev.to/johanlejdung/a-mini-guide-build-a-rest-api-as-a-go-microservice-together-with-mysql-27m2
- MongoDB-based example: “Microservices: An Example With Docker, Go, and MongoDB” - https://dzone.com/articles/microservices-an-example-with-docker-go-and-mongod
#devops #book

Языке очень простой, написано интересно, читается легко

Прочитал первые 150 страниц взахлёб
The DevOps Handbook (2016)
Авторы: Gene Kim, Jez Humble, Patric Debois, John Willis
Количество страниц: 600

Эффективное управление технологиями имеет решающее значение для конкурентоспособности бизнеса. На протяжении десятилетий технологические лидеры пытались найти баланс между гибкостью, надежностью и безопасностью. Последствия возможных сбоев еще никогда не были столь значительными - например, утечка данных о держателях карт или временная недоступность необходимого тысячам людей сервиса. В книге рассказывается, как объединять управление продуктами, разработку, контроль качества, ИТ-операции и информационную безопасность, чтобы повысить эффективность вашей компании и добиться успеха на рынке.

Достоинства:
Небольшой объем;
Практикоориентированность.

Недостатки:
Не замечено.

Скачать книгу

#english #book #advanced
Forwarded from Хабр
PostgreSQL Antipatterns: убираем медленные и ненужные сортировки

Разбираемся, когда сортировка в запросе точно не нужна и несёт с собой потерю производительности, когда от неё можно относительно дёшево избавиться, а когда сделать из нескольких — одну.
#gzip #compression

Bandwidth optimization

Web servers use gzip to reduce the total amount of data transferred to clients. When a browser with gzip support sends a request, it adds “gzip” to its Accept-Encoding header. When the web server receives the request, it generates the response as normal, then checks the Accept-Encoding header to determine how to encode the response. If the server supports gzip, it uses gzip to compress each resource. It then delivers the compressed copies of each resource with an added Content-Encoding header, specifying that the resource is encoded using gzip. The browser then decompresses the content into its original uncompressed version before rendering it to the user.

However, this comes at a cost. Compression is a CPU-intensive process, and the more you compress a file, the longer it takes. Because of this, gzip offers a range of compression levels from 1 to 9; 1 offers the fastest compression speed but at a lower ratio, and 9 offers the highest compression ratio but at a lower speed. The gzip application uses level 6 by default, favoring higher compression over speed. Nginx, on the other hand, uses level 1, favoring higher speeds over file size savings.

https://www.pingdom.com/blog/can-gzip-compression-really-improve-web-performance/
#python

This article series is a guide to modern Python tooling with a focus on simplicity and minimalism.1 It walks you through the creation of a complete and up-to-date Python project structure, with unit tests, static analysis, type-checking, documentation, and continuous integration and delivery.

Here is a list of the articles in this series:

Chapter 1: Setup (this article)
Chapter 2: Testing
Chapter 3: Linting
Chapter 4: Typing
Chapter 5: Documentation
Chapter 6: CI/CD

https://cjolowicz.github.io/posts/hypermodern-python-01-setup/
#go #goroutines

Go uses goroutines while a language like Java uses threads.

The creation of a goroutine does not require much memory - only 2kB of stack space. They grow by allocating and freeing heap storage as required. Threads on the other hand start out at 1Mb (500 times more), along with a region of memory called a guard page that acts as a guard between one thread’s memory and another.

A server handling incoming requests can therefore create one goroutine per request without a problem, but one thread per request will eventually lead to the dreaded OutOfMemoryError. This isn’t limited to Java - any language that uses OS threads as the primary means of concurrency will face this issue.

Threads have significant setup and teardown costs because it has to request resources from the OS and return it once its done. The workaround to this problem is to maintain a pool of threads. In contrast, goroutines are created and destroyed by the runtime and those operations are pretty cheap. The language doesn’t support manual management of goroutines.

https://blog.nindalf.com/posts/how-goroutines-work/