Devs World – Telegram
Devs World
471 subscribers
162 photos
14 videos
405 links
All about software developing & architecture
@ml_world - the best materials about Machine Learning & Data Science

Our fund instagram to help homeless animals: https://www.instagram.com/ukraineanimalhelp/

Contacts: @anikishaev | creotiv@gmail.com
Download Telegram
Today we will talk on How to make real #zerodowntime in #Kubernetes during #deployment.

Many of you may think that Kubernetes will do it for you, that it already should do this. Yeah... should, but not doing.

There is an open issue on that, which still not fixed. Which lead to situation that during deployment some part of the requests will return connection error. What we of course don't want especially on #HiLoad projects where this can be critical problem.

But there is a simple #solution for that.

#ANDevHowTo #ANDevHowToKubernetes #k8s
👍21
Forwarded from Andrey Nikishaev
Друзья, боремся за жизнь этого малыша, очень нужна ваша помощь

https://send.monobank.ua/jar/9tbJNeWg6U
😢31
Today in our everyday adventure for #knowledge we will discuss difference between big and heavy #cluster vs few small ones #sharded by users/etc.

Both of them has their pros and cons, as any #solution you will ever made. So remember to make good #systemdesign you will need to gather #requirements very carefully and #analyse them to understand which parameters a valuable for you and which are not.

#ANDevHowTo #ANDevHowToArchitecture #systemarchitecture #architecture #sharding
Today in our rubric #ANDevHowTo i will teach you how to make cool approval #deploy #automation with #GitHubActions

Very often deploy, especially on production require attention and approval from many people from different teams like: dev, qa, product, support, etc.
And its very complicated to gather all this approvals manually, and most of the companies are not using any software that will help with this. But many of them using GitHub.

GitHub PRs already have approval process, but it lacks configuration.
That's why for solving this problem we will use 2 actions.

This action that auto assign people to our PR
https://github.com/marketplace/actions/auto-assign-action

This action will check that needed amount of teams and users approved PR
https://github.com/marketplace/actions/custom-approval-management

#ANDevHowToAutomation #GitHub #devops #process
👍2
🖥 Today in our #ANDevHowTo rubric we will start demystify how #Kubernetes #networking works and will emulate it with local #Linux tools. And in the end we will try to write our own CNI plugin for #K8S

Will start from the simple one - container to container connection on the same pod.

Also have small question: What command should be added to give ability to run request to the containers(pod) through the host ip 192.168.0.15?

Here is article:
https://github.com/creotiv/articles/blob/main/DevOps/K8S/Networking/package_routing_inside_the_k8s.md

#ANDevHowToNetworking #ANDevHowToKubernetes
🔥2❤‍🔥1
Тут пошерили код Дії. Ну що можу сказати:

1) як я і казав більшу частину інфри не пошерили, а саме вона цікава

2) Якість системи на рівні мідлів

Да що казати заходьте та дивітся, там все добре видно.

https://github.com/diia-open-source
👍2
Proceeding on demystifying #Kubernetes #networking.

In previous post we described the scheme and network setup for many containers in one pod. In this one we will describe how to link pods on the same node

Basically we have the same setup like in previous post, as we just adding one more pod. But the crucial part is #iptables rules for routing packages from one #networknamespace to another connecting 2 #veth pairs.

Remember that by default Kubernetes use iptables over #IPVS. An on big clusters better to switch to the IPVS as it more faster. You can do this by modyfing #ConfigMap of #KubeProxy

Here is full article: https://github.com/creotiv/articles/blob/main/DevOps/K8S/Networking/package_routing_inside_the_k8s.md

In the next post we will connect containers on different nodes. Stay in touch.

And don't forget to support my work with like

#ANDevHowTo #ANDevHowToKubernetes #ANDevHowToNetworking
🔥2
Proceeding on demystifying #Kubernetes #networking.

In previous post we described the scheme and network setup for container to container communication in 2 different pods on the same node. In this one we will describe how to link pods and containers on different nodes

Basically we have the same setup like in previous post, as we just adding one more node. But we additionally added bridge ip and routing pod<->bridge<->interface<->additional nodes

Here is full article: https://github.com/creotiv/articles/blob/main/DevOps/K8S/Networking/package_routing_inside_the_k8s.md

In the next post we will connect containers on different nodes using #K8S #Service. Stay in touch.

And don't forget to support my work with like

#ANDevHowTo #ANDevHowToKubernetes #ANDevHowToNetworking
👍3
Released a new LLM model Grok-1.

Pros:
- Better than GPT-3.5
- No censorship at all
- Free for personal and commercial use

Cons:
- Worse than GPT-4.0

https://github.com/xai-org/grok-1
🔥2
In today lecture at the #ANDevHowTo we will learn how to update configuration of our applications without redeploying it in #Kubernetes.

Why this can be needed if we just can redeploy?
1. Redeploy is taking much longer time then just config updates.
2. In HL projects redeploy may create additional load spikes, which we don't want to happen
3. Even with a graceful shutdown & preStop hook timeouts there is a chance that some of the requests can be broken.
4. It's much more complicated process, and thus it creates more risks. Because even good architected systems sometimes failing due to strange reasons.

How we can achieve this:
1. Use ConfigMap to store your configuration
2. Create config reload mechanism inside your application
3. Send signal to your services when configuration got changed.
3.1 You can use File Watcher inside the application (Simplest way)
3.2 You can send SIGHUP signal after you update configs (Manual way)
3.3 You can write a plugin that will watch for the config changes and will notify service with a signal(SIGHUP, http port/endpoint, etc)

#ANDevHowToKubernetes #K8S #Hiload #hl #highload
Продолжаем нащ эксперимент по написанию приложения на Flutter с нулевым опытом использую ChatGPT.

Вот хочу поделиться эпическими итогами своей работы за прошедшие дни. Особенно будет интересно тем кто говорит что ИИ всех уберет с рынка и теперь каждый австралопитек может быть программистом.

А еще я покажу своих котиков))

Чатик для общения и рекомендаций тут: https://news.1rj.ru/str/ualivetalks/2181

https://www.youtube.com/watch?v=OXt2jn0PzA8&ab_channel=AndreyNikishaev

#ANDevHowTo #ANDevHowToFlutter #ANDevHowToAI
👍1
О том как правильно писать гайды и туторы, так что бы они не рассинхронились с кодом и всегда работали.

Проще говоря как не создавать себе лишних проблем на пятую точку.

#ANDevHowTo #ANDevHowToTesting #ANDevHowToCloud #ANDevHowToAWS

https://www.youtube.com/watch?v=hmvgmcWqCHM&ab_channel=AndreyNikishaev
В предыдущем посте https://lnkd.in/eJbfM6xR я говорил о том как важна синхронизация всех даных на проекте. И о том что делать это руками это жопа и впринципе никогда не работает.

В этом посте я хочу показать пример того как эта проблема должна решаться и ее изящность.

Наша задача писать туториалы и гайды для документации, но таким образом что бы они были всегда привязаны к конкретной версии кода + всегда выполнялись.

Для того что бы решить эту задачу мы представляем гайды в виде тест-кейсов, которые при билде раняться вместе со всеми и по результату которых генериться файл в MD формате со статьей. Ну а если что то не работает, то мы сразу же это фиксим и соответственно апдейтим тест/гайд.

Как вы видите по коду написать тулзовину которая это будет делать сможет даже джун, а можно и вовсе попросить ChatGPT.

Подобный подход избавит вас от боли, проблем, и тысячи баг-репортов что что-то не работает.

#ANDevHowTo #ANDevHowToQA
🔥4👍1