Ente.io виклали у опенсорс код бекенду

Переклад статті https://ente.io/blog/open-sourcing-our-server/

Ми робимо останній крок у нашій опенсорс мандрівці. Наші клієнтські додатки завжди були відкритими. Сьогодні ми також відкриваємо вихідний код нашого бекенду.

Ente тепер повністю відкритий.

Ми об'єднали весь наш код в одному репозиторії - просто клонуйте ente-io/ente на GitHub, і ви матимете сучасний, повністю шифрований, повний стек (клієнти для мобільних пристроїв/веб-сайтів/робочого столу, бекенду та CLI) альтернативу Google Photos та Apple Photos.

Us at work!

Це той самий код, який ми використовуємо у продакшені, тому він випробуваний в реальних бойових умовах. Це не просто зліпок коду - це активний, живий, постійно оновлюваний репозиторій, де ми щоденно працюємо.

Ми вважаємо, що багато з вас знайдуть цей проєкт корисним - можливо, ви зацікавитеся як майбутній засновник, який думає про те, як реалізувати щось з end-to-end шифруванням, або ви любитель самостійно розгортати додатки, або ви інженер Go/Flutter/TypeScript, який хоче подивитися на приклад взаємодії цих технологій в реальному продукті. Усім вам ми раді бути корисними.

Але наша справжня мета за відкриттям вихідного коду бекенду полягає в тому, щоб запропонувати ще одну причину для клієнтів Ente відчувати гордість тим, що, обравши Ente, вони зробили правильний вибір.

Ente тепер повністю відкритий, і весь код розміщений на github.com/ente-io/ente. Якщо ви клієнт чи потенційний клієнт, це, ймовірно, все, що вам треба знати.

Щодо решти публікації, я б хотів надати більш філософську перспективу того, чому ми це робимо, і також розповісти історію, чому ми це робимо зараз.

Чому

Те, що наш бекенд ще не був відкритим відразу, було випадковим капризом еволюції продукту. У наших думках він завжди був призначений для відкритого використання, і навіть якщо він ще не був таким, ми знали, що відкриття проєкту у опенсорс є невідворотним.

Чому ми були так впевнені? Наслідування, довіра і вдячність.

Наслідування

Завдяки нашому end-to-end шифруванню та відкритому (і зовнішньо перевіреному) клієнтському коду, клієнтам не потрібно довіряти нам. Приємно, що вони це роблять, але їм не потрібно - математика криптографії забезпечує конфіденційність їхніх даних, а не довіра. Дещо контрінтуїтивно, цей момент змусив нас депріоритизувати відкриття коду нашого бекенду. Ми знали, що весь секретний соус у клієнті, бекенд - це просто тупі канали для шифрованого зберігання блоків. Відкриття коду бекенду, це хоча і гарно, але технічно нічого це нічого більше не додавало - продукт вже був безпечним, не вимагаючи довіри.

Однак відкриття коду бекенду додає не-технічний аспект. З бекендом також відкриваються всі частини, якими користуються наші клієнти. Незалежно від того, що станеться з Ente, їх гілка коду Ente залишиться непорушеною, і вони можуть бути спокійні. Звісно, ми не хочемо, щоб з Ente щось погане трапилося, але уявіть це як страховку, яку купуєте для своєї сім'ї на випадок, якщо вам самим трапиться щось погане. Для нас, всі наші клієнти - це як родина, і тримати наш код відкритим - це наша страховка на майбутнє.

Довіра

Хоча я тільки що зазначив, що нашим клієнтам не потрібно довіряти нам, нам подобається, коли вони це роблять. Загалом життя занадто коротке, щоб мати справу з людьми чи компаніями, які тобі не подобаються, і довіра є основою пристрасті. Довіра також будує психологічну безпеку, яка, можливо, так само важлива для клієнта, як технічна безпека їх даних.

Коли ми відкрили наші файли Figma, багато наших клієнтів звернулися до нас і подякували за нашу відкритість. Щоб узагальнити їхні відгуки, "вам не потрібно було це робити - ніхто інший ніколи не відкривав свої Figma дизайни, це не зовсім така річ - але той факт, що ви це зробили, і виборочно, заставляє нас більше довіряти вам". Було також деякі вторинні вигоди (наприклад, клієнти коментували ранні прототипи майбутніх функцій), але для нас найбільшою перемогою було завоювання довіри. І ми сподіваємося, що відкриття коду бекенду додасть до цього.

Вдячність

Нарешті, вдячність. Є роки безперервної роботи, яку ми всі вкладаємо в створення Ente, і ми горді тим, що ми вже досягли, але ми усвідомлюємо, що нічого б не було можливим без існуючих технологій з відкритим кодом, на плечах яких ми стоїмо. Без різних наукових статей з безпеки та надійності, які ми читали і реалізували. Без безлічі математиків, які важко працюють над своїми дошками, самотніми та невизнаними світом, які надали нам криптографію та комп'ютери для її виконання.

Повне відкриття коду Ente - це наш власний внесок у опенсорс рух. І найбільша подяка, яку ми могли б висловити.

Чому зараз?

Ну, якщо ми так сильно переймалися відкриттям, чому б не зробити це вчора? Причина більш буденна, ніж ви можете очікувати - ми перенавантаженні!

Ми невелика команда. Умільці. Це не просто те, що ми вважаємо, що малі команди можуть робити великі речі, ми вважаємо, що лише малі команди можуть робити великі речі.

У той же час у нас є велика кількість запитів на функції, які поступають. Чим більше людей використовують наші продукти, особливо фотографії, тим більше відгуків ми отримуємо, які ми повинні включити в наші продукти. Це захоплююче, і це не виправдання - нам просто потрібно стати кращими у пріоритетізації - але це також означало, що відкриття коду нашого бекенду просто продовжувало відсуватися в нашому списку пріоритетів, оскільки це було більше в категорії бажаного, ніж в категорії обов'язково.

Добре, добре. Але що змінилося тепер?

Щоб пояснити, дозвольте мені повернутися трошки назад. У минулому січні ми вирішили виділити деякий час для відкриття коду нашого бекенду.

Там було не так багато робити: зробити аудіт коду, переконатися, що там немає вбудованих сікретів, перемістити деякі речі до файлів конфігурації, покращити інструкції у README - ви розумієте тип мінімальних покращень, про які я говорю. Це зайняло всього кілька днів, але під час цього процесу виникла думка, що, хоч із нетерпінням ми чекали його випуску, ми можливо, повинні трошки стриматися і отримати зовнішню аудиту перед цим. Якщо клієнти отримували аудити, бекенд також повинен пройти їх перед тим, як приєднатися до них на публічній сцені.

Так що ми отримали один аудит. Але аудити асинхронні і займають час. Ми звернулися до Fallible, але те, що вони були хороші, означало, що вони також були в попиті, і найшвидший термін, який вони нам надали, був через місяць. Сам аудит зайняв ще один місяць.

Ми пройшли аудит, і виправили проблеми які виникли в процесі аудиту, виниклі в аудиті, але на цей час ментально ми вже перейшли до інших завдань.

Fallible також рекомендував нам зжати історію git перед відкриттям, на випадок, якщо в попередніх версіях коду буде якийсь випадковий токен, що, хоч і таке просте виконання, але додало ще один ментальний бар'єр/ "крок", який нам потрібно було пройти, замість того, щоб просто перейти на GitHub і натискати кнопку зміни видимості.

Так що речі просто залишалися такими, як вони є.

Нова функція, над якою ми працювали, - це підтримка Passkeys (вона добре розвивається, очікуйте оголошення з цього приводу найближчим часом!). Оскільки passkeys - це альтернативний спосіб двохфакторної аутентифікації.

Деякі з вас, які мають більше досвіду в традиційних архітектурах клієнт-сервер, можуть бути здивовані, але ми мало коли повинні вносити зміни в код нашого бекенду. Для продуктів з end-to-end шифруванням ситуація виявляється втіленою в зворотному порядку від традиційних налаштувань - робота та магія вся на клієнті, а бекенд має певні обмеження.

Але для passkeys були потрібні нові API, і один з нас працював над кодом на стороні бекенду. Повільно інші теж були залучені, обговорюючи зміни, і рецензуючи їх. Усе це якось повернуло назад в наше колективне мислення про відкриття цього коду.

І на цей раз ми зробили це. Тепер час прийшов, і відкриття Ente вже завершено.

Підтримати автора можна зареєструвавшись на сайті Whitebit за реферальним посиланням https://whitebit.com/referral/6f7c7706-ec7d-4a60-8021-adf88b3a9559

Поділись своїми ідеями в новій публікації.
Ми чекаємо саме на твій довгочит!
Crypto blogger
Crypto blogger@crypto_blogger

750Прочитань
5Автори
7Читачі
Підтримати
На Друкарні з 24 лютого

Більше від автора

Вам також сподобається

  • Java. Трішки про JVM та graceful shutdown

    У сучасних Java-додатках важливо забезпечити не лише високу продуктивність, але й коректне завершення роботи. Тому розглянемо основні потоки JVM, процес graceful shutdown, використання класу Runtime та механізму shutdown hooks для ефективного завершення роботи програм.

    Теми цього довгочиту:

    Java
  • 5 принципів управління, яким можна навчитися у Тома ДеМарко

    Однією з перших книг, яку я прочитала, коли вперше почала вести команду, була книга Тома ДеМарко «Peopleware: Productive Projects and Teams». За свою кар'єру я почитала багато книг по менеджменту, але саме ця вразила мене найбільше.

    Теми цього довгочиту:

    Управління Проектами
  • Користь університетів для ІТ спеціалістів

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

    Теми цього довгочиту:

    It

Коментарі (0)

Підтримайте автора першим.
Напишіть коментар!

Вам також сподобається

  • Java. Трішки про JVM та graceful shutdown

    У сучасних Java-додатках важливо забезпечити не лише високу продуктивність, але й коректне завершення роботи. Тому розглянемо основні потоки JVM, процес graceful shutdown, використання класу Runtime та механізму shutdown hooks для ефективного завершення роботи програм.

    Теми цього довгочиту:

    Java
  • 5 принципів управління, яким можна навчитися у Тома ДеМарко

    Однією з перших книг, яку я прочитала, коли вперше почала вести команду, була книга Тома ДеМарко «Peopleware: Productive Projects and Teams». За свою кар'єру я почитала багато книг по менеджменту, але саме ця вразила мене найбільше.

    Теми цього довгочиту:

    Управління Проектами
  • Користь університетів для ІТ спеціалістів

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

    Теми цього довгочиту:

    It