Docker Security Cheat Sheet:
RULE #0 - Keep Host and Docker up to date
RULE #1 - Do not expose the Docker daemon socket (even to the containers)
RULE #2 - Set a user
RULE #3 - Limit capabilities (Grant only specific capabilities, needed by a container)
RULE #4 - Add –no-new-privileges flag
RULE #5 - Disable inter-container communication (--icc=false)
RULE #6 - Use Linux Security Module (seccomp, AppArmor, or SELinux)
RULE #7 - Limit resources (memory, CPU, file descriptors, processes, restarts)
RULE #8 - Set filesystem and volumes to read-only
RULE #9 - Use static analysis tools
RULE #10 - Set the logging level to at least INFO
Rule #11 - Lint the Dockerfile at build time
more details about each rule: https://cheatsheetseries.owasp.org/cheatsheets/Docker_Security_Cheat_Sheet.html
Source: https://github.com/OWASP/CheatSheetSeries
RULE #0 - Keep Host and Docker up to date
RULE #1 - Do not expose the Docker daemon socket (even to the containers)
RULE #2 - Set a user
RULE #3 - Limit capabilities (Grant only specific capabilities, needed by a container)
RULE #4 - Add –no-new-privileges flag
RULE #5 - Disable inter-container communication (--icc=false)
RULE #6 - Use Linux Security Module (seccomp, AppArmor, or SELinux)
RULE #7 - Limit resources (memory, CPU, file descriptors, processes, restarts)
RULE #8 - Set filesystem and volumes to read-only
RULE #9 - Use static analysis tools
RULE #10 - Set the logging level to at least INFO
Rule #11 - Lint the Dockerfile at build time
more details about each rule: https://cheatsheetseries.owasp.org/cheatsheets/Docker_Security_Cheat_Sheet.html
Source: https://github.com/OWASP/CheatSheetSeries
cheatsheetseries.owasp.org
Docker Security - OWASP Cheat Sheet Series
Website with the collection of all the cheat sheets of the project.
Code Review Checklist: Go Concurrency
https://github.com/code-review-checklists/go-concurrency
идет как дополнение к https://github.com/golang/go/wiki/CodeReviewComments
https://github.com/code-review-checklists/go-concurrency
идет как дополнение к https://github.com/golang/go/wiki/CodeReviewComments
GitHub
GitHub - code-review-checklists/go-concurrency: Checklist for code reviews
Checklist for code reviews. Contribute to code-review-checklists/go-concurrency development by creating an account on GitHub.
Practical Go Lessons Book
https://www.practical-go-lessons.com/
По словам автора, он начал писать эту книгу в 2018 по ночам и по выходным, а в конце 2020 года уволился с основной работы и начал писать книгу фул тайм 😱. Огромный респект автору.
Книга подходит больше новичкам, мне очень понравились иллюстрации которых очень много! [405 штук]
https://www.practical-go-lessons.com/
По словам автора, он начал писать эту книгу в 2018 по ночам и по выходным, а в конце 2020 года уволился с основной работы и начал писать книгу фул тайм 😱. Огромный респект автору.
Книга подходит больше новичкам, мне очень понравились иллюстрации которых очень много! [405 штук]
Kubernetes deployment strategies
Коротко о том какие в k8s есть стратегии деплоя с примерами:
https://github.com/ContainerSolutions/k8s-deployment-strategies
tl;dr:
* recreate: terminate the old version and release the new one
* ramped: release a new version on a rolling update fashion, one after the other
* blue/green: release a new version alongside the old version then switch traffic
* canary: release a new version to a subset of users, then proceed to a full rollout
* a/b testing: release a new version to a subset of users in a precise way (HTTP headers, cookie, weight, etc.). This doesn’t come out of the box with Kubernetes, it imply extra work to setup a smarter loadbalancing system (Istio, Linkerd, Traeffik, custom nginx/haproxy, etc).
* shadow: release a new version alongside the old version. Incoming traffic is mirrored to the new version and doesn't impact the response.
Коротко о том какие в k8s есть стратегии деплоя с примерами:
https://github.com/ContainerSolutions/k8s-deployment-strategies
tl;dr:
* recreate: terminate the old version and release the new one
* ramped: release a new version on a rolling update fashion, one after the other
* blue/green: release a new version alongside the old version then switch traffic
* canary: release a new version to a subset of users, then proceed to a full rollout
* a/b testing: release a new version to a subset of users in a precise way (HTTP headers, cookie, weight, etc.). This doesn’t come out of the box with Kubernetes, it imply extra work to setup a smarter loadbalancing system (Istio, Linkerd, Traeffik, custom nginx/haproxy, etc).
* shadow: release a new version alongside the old version. Incoming traffic is mirrored to the new version and doesn't impact the response.
GitHub
GitHub - ContainerSolutions/k8s-deployment-strategies: Kubernetes deployment strategies explained
Kubernetes deployment strategies explained. Contribute to ContainerSolutions/k8s-deployment-strategies development by creating an account on GitHub.
23 апреля приглашаем всех гоферов на GopherCon Russia 2021: online, бесплатно, лучшие доклады, стенды партнёров, горячие споры в чатах! Среди спикеров этого года Mat Ryer, Aaron Schlesinger и Felix Geisendörfer. А для тех, кто хочет не только пообщаться и послушать доклады, но и прокачать свои навыки на практике, подготовили 4 воркшопа: Kubernetes-операторы, линтеры с ruleguard, профилирование и оптимизация, Fuzz и Property-Based тесты. Все подробности регистрация на https://www.gophercon-russia.ru/
www.gophercon-russia.ru
GopherCon Russia 2021
Конференция разработчиков на Go, 23-25 апреля 2021 года, Online.
image_2021-05-13_20-49-54.png
150.1 KB
Go 1.17 Add IsPrivate() helper to check if an IP is private according to RFC 1918 & RFC 4193
https://github.com/6543-forks/go/commit/c73fccc384c699f857abd0a566bbbc1529969fd9
https://github.com/6543-forks/go/commit/c73fccc384c699f857abd0a566bbbc1529969fd9
How to Make Your Code Reviewer Fall in Love with You:
1. Review your own code first
2. Write a clear change list description
3. Automate the easy stuff
4. Answer questions with the code itself
5. Narrowly scope changes
6. Separate functional and non-functional changes
7. Break up large change lists
8. Respond graciously to critiques
9. Be patient when your reviewer is wrong
10. Communicate your responses explicitly
11. Artfully solicit missing information
12. Award all ties to your reviewer
13. Minimize lag between rounds of review
https://mtlynch.io/code-review-love/
1. Review your own code first
2. Write a clear change list description
3. Automate the easy stuff
4. Answer questions with the code itself
5. Narrowly scope changes
6. Separate functional and non-functional changes
7. Break up large change lists
8. Respond graciously to critiques
9. Be patient when your reviewer is wrong
10. Communicate your responses explicitly
11. Artfully solicit missing information
12. Award all ties to your reviewer
13. Minimize lag between rounds of review
https://mtlynch.io/code-review-love/
mtlynch.io
How to Make Your Code Reviewer Fall in Love with You
Best practices for code review when you're the author.
The Busy Developers's Guide to Go Profiling, Tracing and Observability
https://github.com/DataDog/go-profiler-notes/blob/main/guide/README.md
https://github.com/DataDog/go-profiler-notes/blob/main/guide/README.md
GitHub
go-profiler-notes/guide/README.md at main · DataDog/go-profiler-notes
felixge's notes on the various go profiling methods that are available. - DataDog/go-profiler-notes
FA3t6syVgAo40X8.jpeg
50.2 KB
LOL😭😭😭
Someone nuked the DNS A and AAA records for Facebook, Instagram, and WhatsApp Face with hand over mouth
Someone nuked the DNS A and AAA records for Facebook, Instagram, and WhatsApp Face with hand over mouth
Освой программу обучения Golang+JS Full Stack вместе с NIX!
📍Харьков, Украина
Технологии Golang востребованы и в простых мобильных приложениях, и в крупных серверных системах. Изучи перспективное IT-направление с экспертами NIX — построй успешную карьеру!
Во время обучения ты получишь базовые знания о фронтэнд и бекэнд-разработке и сможешь закрепить их на практике. По окончании обучения этих навыков будет достаточно, чтобы попробовать свои силы на позицию Junior Golang Developer в NIX.
Чему ты научишься:
▪️использовать базовые инструменты Golang-разработчика;
основам работы в окружении Linux, а также HTML/CSS;
▪️настраивать web-сервера;
▪️работать с Git и базами данных;
▪️разрабатывать SPA на фреймворке VueJS (от основ до введения во Vuex).
Обрати внимание: старт обучения в конце ноября-начале декабря. Чтобы попасть в группу, оставь заявку на сайте. Мы обязательно с тобой свяжемся и пригласим пройти онлайн-тестирование на программу обучения!
📍Харьков, Украина
Технологии Golang востребованы и в простых мобильных приложениях, и в крупных серверных системах. Изучи перспективное IT-направление с экспертами NIX — построй успешную карьеру!
Во время обучения ты получишь базовые знания о фронтэнд и бекэнд-разработке и сможешь закрепить их на практике. По окончании обучения этих навыков будет достаточно, чтобы попробовать свои силы на позицию Junior Golang Developer в NIX.
Чему ты научишься:
▪️использовать базовые инструменты Golang-разработчика;
основам работы в окружении Linux, а также HTML/CSS;
▪️настраивать web-сервера;
▪️работать с Git и базами данных;
▪️разрабатывать SPA на фреймворке VueJS (от основ до введения во Vuex).
Обрати внимание: старт обучения в конце ноября-начале декабря. Чтобы попасть в группу, оставь заявку на сайте. Мы обязательно с тобой свяжемся и пригласим пройти онлайн-тестирование на программу обучения!
Всегда приятно прочитать о Go в книге про Rust 😜
"Here’s the idea in a slogan from the Go language documentation: 'Do not communicate by sharing memory; instead, share memory by communicating.'"
link: https://doc.rust-lang.org/book/ch16-02-message-passing.html#using-message-passing-to-transfer-data-between-threads
"Here’s the idea in a slogan from the Go language documentation: 'Do not communicate by sharing memory; instead, share memory by communicating.'"
link: https://doc.rust-lang.org/book/ch16-02-message-passing.html#using-message-passing-to-transfer-data-between-threads
Playground теперь поддерживает go "tip" версию:
go.dev/play/?v=gotip
source: https://twitter.com/bradfitz/status/1466106506588217346?s=20
go.dev/play/?v=gotip
source: https://twitter.com/bradfitz/status/1466106506588217346?s=20
go.dev
Go Playground - The Go Programming Language
https://twitter.com/felixge/status/1468155086648061952
немного медленно первый раз загружается но в целом дает намного больше возможностей для code review 🎉
немного медленно первый раз загружается но в целом дает намного больше возможностей для code review 🎉
Twitter
Felix Geisendörfer
Pro Tip: Are you tired of reviewing GitHub PR diff chunks out of context? Replace github.com with github.dev in the URL to enjoy a much better reviewing experience. via @__jakub_g