В последнее время в онлайн-мире тихо происходит ожесточенная наступательная и оборонительная битва.
Главным героем является не Агентство национальной безопасности и не хакерская организация, а малоизвестная стартап-компания TablePlus .
DDoS-злоумышленники готовы попробовать. Они хлынули со всех сторон, обещая завалить серверы TablePlus сотнями миллионов запросов. Особенно трафик из Германии и Великобритании подобен проливному наводнению, льющемуся на тысячи миль. Всего за пять дней они инициировали более 80 миллионов запросов на загрузку, пытаясь исчерпать пропускную способность и вычислительные ресурсы TablePlus.
Что же делать друзьям TablePlus, столкнувшимся с этим массовым вторжением? Будут ли они паниковать и обращаться за помощью к Cloudflare? Будут ли они заняты блокировкой IP-адресов и отключением сервисов?
Ответ оказался таким: ничего не делать, есть и пить, когда нужно , как будто вообще ничего важного не произошло. Если бы процессор время от времени не прыгал с 0% до 1%, сервер заподозрил бы себя в «диссоциативном расстройстве личности». Все серверы TablePlus закалены в боях и не относятся к этому тривиальному вопросу серьезно.
Откуда эти смелые парни черпают уверенность?
Это спокойствие достигается благодаря уникальному выбору TablePlus в архитектурном проектировании — единому приложению. В отличие от популярной в настоящее время микросервисной архитектуры, TablePlus предпочитает сосредоточить все функции в одном сервисе, включая API, интерфейс веб-сайта, оплату и т. д. Хотя эта «унифицированная» архитектура кажется простой, у нее есть преимущества, которые нельзя недооценивать.
Другие беспокоятся о микросервисах, контейнерах и оркестрации, но TablePlus нужен только двоичный файл, и он готов к использованию.
Чтобы максимизировать производительность одного приложения, TablePlus приложила много усилий к выбору технологий. В качестве основных инструментов разработки они выбрали Golang и Rust, два высокопроизводительных языка . Благодаря превосходным возможностям одновременной обработки и механизмам управления памятью этих двух языков одна служба TablePlus может легко обрабатывать миллиарды запросов.
Но иметь отличный язык недостаточно. TablePlus также стремится к совершенству во всех аспектах разработки программного обеспечения, стремясь максимизировать производительность отдельных сервисов.
Они будут индексировать ключевые базы данных, чтобы повысить эффективность запросов;
Раздельное хранение основной базы данных и неосновных данных (например, журналов), чтобы гарантировать, что основной бизнес не будет затронут;
Используйте Nginx в качестве обратного прокси-сервера для гибкого планирования и распределения запросов;
Дальнейшее повышение производительности и безопасности с помощью таких функций, как CDN и SSL, предоставляемых Cloudflare.
Тщательно продуманные отдельные сервисы в сочетании с оптимизированной средой развертывания обеспечивают TablePlus простую и эффективную архитектуру. В сценариях с высоким уровнем параллелизма эта архитектура демонстрирует потрясающую производительность даже перед лицом DDoS-атак.
Конечно, какими бы хорошими ни были ваши навыки, кухонных ножей вы все равно боитесь . Каким бы замечательным ни был сервис, вам все равно придется разобраться, как им пользоваться. Когда дело доходит до развертывания, TablePlus также стремится к простоте и эффективности. Они в полной мере используют возможности Golang и Rust, компилируют сервис в один бинарный файл , а затем запускают его непосредственно на Linux-сервере. Этот метод развертывания «без зависимостей» не только упрощает эксплуатацию и обслуживание, но и максимально повышает производительность сервера.
Инженеры TablePlus также используют Systemctl Linux для управления процессами обслуживания и реализации таких функций, как автоматический перезапуск и мониторинг, что еще больше повышает надежность системы. По сравнению со сложной архитектурой, состоящей из сотен микросервисов, развертывание TablePlus чрезвычайно просто.
Таким образом, TablePlus поднял производительность и эффективность системы на новый уровень благодаря тщательно разработанной архитектуре единого приложения и минималистичному развертыванию. На DDoS-атаки они отреагировали спокойно, продемонстрировав силу архитектурного проектирования.
Контейнеры, виртуальные машины и оркестрация — это всего лишь причудливые трюки для TablePlus, о которых не стоит упоминать.
Благодаря цельному приложению Zhenjing Protector TablePlus сохраняет спокойствие перед лицом DDoS-атак. Когда приходят сотни миллионов запросов, системные сервисы выдерживают, каким бы сильным ни был трафик, Cloudflare выдерживает, даже если атаки обострятся, монолитная архитектура по-прежнему сохраняется.
Эта история говорит нам, что у всего есть две стороны. Одно приложение может показаться простым, но оно также может показать свою мощь в определенных сценариях . Главное — адаптироваться к местным условиям в соответствии с особенностями вашего собственного бизнеса, использовать свои сильные стороны и избегать слабых, как и TablePlus, знайте себя и врага, и вы никогда не будете в опасности.
В нашу эпоху «гибкости» и «гибкости» «пойти на встречу в одиночку» TablePlus, несомненно, немного трагично. Но они используют свои реальные действия, чтобы сказать миру: делайте хорошую работу в архитектуре, независимо от того, является ли это отдельной сущностью или микросервисами, делающими акцент на производительности, а все остальное — всего лишь облако ;
Эта история также напоминает нам, что технология никогда не бывает черно-белой. Оценка качества технологии не может быть отделена от конкретных сценариев применения . То, что подходит вам, является лучшим. Только сохраняя открытый и инновационный подход и принимая изменения, мы можем найти свою позицию в постоянно меняющейся технологической волне.
Микросервисы, безусловно, модны, но и монолитные приложения имеют свои причины для существования. Ключевым моментом является найти правильное позиционирование, использовать сильные стороны и избегать слабых, а также максимизировать преимущества.
Так же, как и TablePlus, пока другие гоняются за модой, они незаметно достигли пика производительности. Такую смелость и мудрость «идти против тренда» стоит задуматься и изучить каждому из нас.
Линус взял на себя задачу не допустить, чтобы разработчики ядра заменяли табуляции пробелами. Его отец — один из немногих руководителей, умеющих писать код, его второй сын — директор отдела технологий с открытым исходным кодом, а младший сын — ядро с открытым исходным кодом. участник Робин Ли: Естественный язык станет новым универсальным языком программирования. Модель с открытым исходным кодом будет все больше и больше отставать от Huawei: потребуется 1 год, чтобы полностью перенести 5000 часто используемых мобильных приложений на язык Hongmeng, наиболее подверженный этому . сторонние уязвимости. Расширенный текстовый редактор Quill 2.0 был выпущен с функциями, надежностью и разработчиками. Опыт был значительно улучшен. Ма Хуатэн и Чжоу Хунъи пожали друг другу руки, чтобы «устранить обиды». Meta Llama 3 официально выпущен. источник Laoxiangji не является кодом, причины этого очень трогательны. Google объявил о масштабной реструктуризации.