Home » Пять больших подарков с открытым исходным кодом от нас

Пять больших подарков с открытым исходным кодом от нас

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

Прежде чем я перейду к реальным подаркам с открытым исходным кодом, которыми мы смогли поделиться в этом году, я думаю, важно отметить тот факт, что 37signals не является компанией-разработчиком программного обеспечения с открытым исходным кодом. В том смысле, что мы не зарабатываем деньги на открытом исходном коде. Мы не продаем услуги, хостинг, обучение или лицензии. Ничего подобного. Мы продаем программное обеспечение для бизнеса.

Нашей основной продукцией являются инструменты управления проектами. Базовый лагерь и наша система электронной почты ПРИВЕТ. В этом году мы также закончили совершенно новую систему календарей, которая будет работать вместе с HEY, которая будет выпущена в ближайшее время, а также совершенно новую для нас категорию продуктов с люкс ONCE, где первое приложение только что вышло в закрытую бета-версию. Рядом лавина улучшений продукта для Basecamp и электронной почты HEY.

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

Вот пять больших подарков с открытым исходным кодом, которые мы сделали в этом году:

Камаль
Мы переехали из облака в 2023 году. Мы взяли наш облачный бюджет в три миллиона долларов и сократили его более чем вдвое, купив собственное оборудование и запустив его самостоятельно. Для этого мы создали собственный инструмент развертывания поверх Docker под названием Камаль. Это облегчило нам работу с нашими голыми металлическими коробками с той же эргономикой, к которой мы привыкли в облаке. Это уже породило активное сообщество внешних участников пожиная плоды простоты и экономии, которые мы видели.

Это осознание того, что, хотя Kubernetes и другие инструменты привнесли большую сложность и стандартизацию в мир гиперскейлеров, существует также потребность в более простых предложениях с гораздо (НАМНОГО!) более низкой кривой обучения. Вам не нужна степень доктора философии в области оркестровки контейнеров, чтобы иметь возможность развертывать приложения в HEY, Basecamp или даже в чем-то меньшем. Камаль — это результат того, что мы сделали два шага назад от отраслевых стандартов и спросили: «Действительно ли нам все это нужно?».

Read more:  Письма от 7 апреля 2024 г.: «Новый участник Wild Rose Country»

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

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

В этой последней части на помощь приходит Solid Cache. Мы используем Redis для кэширования HTML-фрагментов на стороне сервера с давних времен. Большой прорыв в этой области произошел с истечением срока действия ключей в течение определенного периода времени. десятилетие назад. Подход к кэшированию в стиле русской куклы по-прежнему является лучшим способом глубокого кэширования в Rails.

Но помимо того, что это работает, оно ограничено объемом оперативной памяти, доступной для кэширования. Поэтому, учитывая тот факт, что современные SSD-накопители стали невероятно быстрыми, мы подумали, что хранить эти фрагменты на диске, а не в памяти, будет не только достаточно хорошо, но и намного лучше. Оказалось, это правда!

Мы сейчас храню месяцы ценность кешей фрагментов для Basecamp и HEY за небольшую плату, которую могла бы обеспечить наша старая система на базе Redis. Это означает более быстрое время отклика, простое шифрование конфиденциального контента и меньшее количество движущихся частей.

Solid Cache подключается непосредственно к платформе кэширования Rails, поэтому для большинства существующих приложений Rails это, по сути, изменение без необходимости настройки.

Оформить заказ углубленная презентация Solid Cache от Донала из Rails World, чтобы узнать больше.

Сплошная очередь
Как и в случае с кэшированием, мы уже давно используем систему очередей заданий на базе Redis в 37signals. Он называется Resque, и за прошедшие годы он вырастил миллион щупалец и «горячих пятен», чтобы справляться с требованиями обработки более ста миллионов рабочих мест каждый день. В наших Gemfiles у нас было не менее 7 различных драгоценных камней, связанных с Resque, и мы все еще жаждали большей наблюдаемости и понимания.

Поэтому мы подумали: если современные твердотельные накопители достаточно хороши для кэширования, то, вероятно, теперь они также достаточно хороши и для организации очередей. И да, да, они есть. Особенно с учетом последних достижений в технологии баз данных, в частности синтаксиса SKIP LOCKED, доступного в MySQL 8+ и PostgreSQL 9.5+.

Read more:  Итальянская фондовая биржа, комментарий заседания от 23 ноября 2023 г.

Этот тезис также подтвердился. Сейчас мы выполняем миллионы заданий через Solid Queue, где они могут воспользоваться транзакционными гарантиями ACID, повышенной наблюдаемостью и свежим ветерком чистого дизайна, основанного на более чем десятилетнем опыте работы с очередями в больших масштабах.

Мы создали Solid Queue с самого начала с целью, чтобы он мог стать новым механизмом организации очередей по умолчанию для Rails 8. Поэтому, хотя он лучше всего работает с MySQL 8+ и PostgreSQL 9.5+ из-за поддержки SKIP LOCKED, он также будет работать. на более низких уровнях пропускной способности с помощью SQLite. Это означает, что учитываются все базы данных Rails по умолчанию. Rails 8 больше не будет BYOQ (Bring-Your-Own-Queue). Джобс будет работать «из коробки». Хороший!

Улица
Горячий провод, наш альтернативный набор фреймворков JavaScript для создания современных веб-приложений, в 2023 году пришел в упадок. Похоже, многие люди наконец поняли, что будущее Интернета не обязательно строить, отправляя JSON туда и обратно. . Фактически вы можете отправить HTML прямо с сервера в браузер, добавить несколько контроллеров Stimulus в поток навигации, работающий на Turbo, и в итоге получить потрясающие приложения, которые используют лишь крошечный кусочек внешнего кода, который сегодня считается необходимым.

Strada принесла последнюю часть этой головоломки, когда дело доходит до нативных мобильных приложений. Он позволяет создавать полностью встроенные элементы управления для сопряжения с гибридными веб-представлениями. Вот как мы создаем отличный натив 4.7+ мобильный Программы для Basecamp и HEY. У них есть встроенные элементы управления и обрезка там, где это важно, а затем для всего остального используется HTML, отображаемый на стороне сервера. С помощью Strada мы теперь можем программно управлять этими собственными элементами прямо из HTML, созданного на сервере.

Это означает, что мы можем выпускать новые функции в Интернете, которые мгновенно становятся доступными благодаря встроенным элементам управления в приложениях, не дожидаясь одобрения App Store. Это большая победа с точки зрения мобильной производительности.

Оформить заказ подробная презентация Strada от Джея из Rails World, чтобы узнать больше.

Турбо 8
Турбо это сердце Hotwire. В этом суть прогрессивного улучшения. Вы можете поместить его в свое приложение Rails (или любой другой серверный фреймворк!), абсолютно ничего не меняя, и все будет работать намного быстрее и плавнее. Если вам нужно еще больше, вы можете повышайте уровень с помощью Turbo Frames для ленивой загрузки частей страницы или ограничения взаимодействия меньшими областями страницы. И, наконец, вы можете управлять каждой частью DOM через Web Socket (или в ответ на запросы) через Турбо-стримы это позволит вам добавлять, обновлять и удалять любой элемент прямо с сервера. Это чудесно.

Read more:  Пять вещей, которые нужно знать: езда на велосипеде по Роуз-Сити и открытие паба в Северном Портленде

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

Большим преимуществом является то, что вы можете автоматически сохранять положение прокрутки и поля ввода. Это очень важно для такого сложного пользовательского интерфейса, как календарь, поэтому обернуть это в такую ​​простую в использовании форму, как «перенаправить на эту страницу, затем выполнить преобразование», просто идеально.

Turbo 8 — единственное в этом списке, которое еще не выпущено полностью, но уже доступна бета-версия, так что она уже близко.

Оформить заказ углубленная презентация Turbo Morphing от Хорхе из Rails World, чтобы узнать больше (или читайте об этом в нашем блоге разработчиков).

Все это было сделано командой из 13 программистов Ruby и 7 нативных программистов. Пока они продвигали Basecamp и HEY, большие прыжки вперед. И создал новый календарь HEY и ONCE #1. Сотрудничаем со всего мира, работаем удаленно. Я действительно горжусь этим.

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

Итак, огромное спасибо всем, кто купил HEY для себя или помог бизнесу купить Basecamp. Вы буквально позволяете всему этому. Да ты! Даже если кредитная карта не выходит из вашего кошелька, ваши устные рекомендации о наших товарах абсолютно необходимы.

Я не знаю, будет ли каждый год таким же плодородным, как 2023 год, но я обещаю вам, что мы постараемся. В календаре HEY и ONCE #1 так много технологических достижений, что я не могу дождаться, когда мы их извлечем и поделимся. Новые границы с PWA, устанавливаемые приложенияи #nobuild действительно захватывающие. Мы сделаем все возможное, чтобы продолжать продвигать Интернет, делая его более простым и легким местом для построения нового и существующего бизнеса. Мир, где единственный разработчик остается конкурентоспособным.

Хорошего Рождества и Нового года!


Leave a Comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.