Программирование в общественном транспорте: как я едва запустил новый сайт с помощью Pylon, Tin и TeamCode

Программирование в общественном транспорте: как я едва запустил новый сайт с помощью Pylon, Tin и TeamCode

22 марта 2022 г.

На самом деле я не был фанатом облачной разработки, пока не получил от нее хороший опыт благодаря [TeamCode] (https://www.teamcode.com/). Недавно я работал над проектом по разработке сайта в Китае для The Gospel Coalition, и история начинается с ужасного начала:


Всего за два дня до завершения проекта меня вызвали в Пекин для срочной работы на удаленной станции. Путешествуя между местами, я мог бы провести больше десяти часов, но на моем новом MacBook ничего не установлено. Я был поражен. Как я должен выполнить всю эту работу? Все это время в поезде потрачено впустую? Я мог бы закончить разработку и отладку за эти десять часов.


Чтобы было понятно, чем я занимаюсь, это комбинезон моего проекта:


История проекта


Проект, над которым я работаю в The Gospel Coalition, — это независимый проект по разработке сайта, переданный на аутсорсинг китайской команде. Вся рабочая команда довольно глобализирована, и проект разработки сайта осуществляется посредством сотрудничества по всему миру.


Структура проекта


По сравнению со сложным фоном проекта структура проекта довольно проста. Он состоит из трех независимых сервисов:


  • WordPress: включен для редакторов в качестве закулисья для управления контентом, что позволяет им публиковать свои статьи и получать доступ к другому контенту.

  • Базы данных: база данных MySQL. Оба сервиса будут обращаться к одной и той же базе данных, и WordPress будет писать в нее, пока официальный сайт читает

  • Независимый официальный сайт: Отображение контента. Мы не используем шаблоны WordPress, так как есть много настроек. Сайт разработан независимо на Java (Spring Boot + Thymeleaf)

Первоначальный план разработки и стратегия


Поскольку мы общаемся по электронной почте, процедура подачи заявки на тестовый сервер займет слишком много времени. Поэтому я начал разработку проекта после подачи заявки на доступ к тестовым данным. Теперь, когда моя часть выполнена и сейчас идет процесс совместной отладки и приемочной проверки, мне нужно:


  • Подать заявку на тестовый сервер

  • Настройка среды тестового сервера

  • Установите Jenkins и настройте информацию о его развертывании.

  • Развертывание локального проекта и электронная почта PM для приемочной проверки

  • Внесите изменения в соответствии с отзывами и... зациклите предыдущий процесс.

Первая попытка разработки в облаке


Все бы успеть, если бы не дальнобойная задача. Сидя в KFC за 40 минут до отправления поезда, я был озадачен рядом проблем: я не мог прямо сейчас кодить, потому что мне нужно будет загрузить много программ для нового MacBook, настроить среду разработки и т. д., и самое главное - насколько быстро мы можем ожидать скорость интернета? У меня даже нет столько времени ждать!


Я подумал о нативной облачной и дистанционной совместной разработке. Как я уже сказал, я действительно не хотел менять свой старый стиль работы, несмотря на то, что разработка в облаке была будущей тенденцией, и простое понимание этого было для меня всем. Я впервые услышал о продукте TeamCode несколько недель назад. Поскольку на тот момент лучшей идеи не было, я решил попробовать по пути в Пекин. Насколько это может быть плохо?


Я собираюсь объяснить, что я сделал с этим и как это в конечном итоге помогает мне выполнять все мои хлопотные задачи точно в срок:


Я включил свой MacBook, подключенный к точке доступа. И вот идет старый процесс, я погуглил TeamCode, создал учетную запись и зашел в нее. Что меня удивило, так это процесс развертывания: после авторизации моего репозитория Git в Pylon среда разработки Java была создана в течение 5 секунд!


Я выбрал конфигурацию по умолчанию с двумя виртуальными процессорами и 4 ГБ ОЗУ, более или менее виртуальную машину с Linux. Затем я вытащил коды.




Возможно, Pylon обнаружил, что я работаю над своим проектом на Java, поэтому Git и Maven были установлены по умолчанию. Он поддерживает как VSCode, так и встроенную Cloud-IDE. Поскольку разработка всех основных сервисов и стилей завершена, осталось лишь несколько настроек и отладки. Я пропустил загрузку другой IDE и работал непосредственно над ее Cloud-IDE.




Я снова начал беспокоиться, когда узнал, что мне нужно будет структурировать mvn install, прежде чем все запускать. Согласно моему предыдущему опыту, загрузка всех этих зависимостей может занять более 20 минут, и моя точка доступа может не выдержать этого. Тогда я понял... Эй, разве это не была удаленная машина? Она должна основываться на мощности сервера и алгоритмах, я не должен об этом беспокоиться. После того, как началась загрузка зависимостей, я упаковал свой MacBook и начал садиться в поезд. Хотя он был настроен, как и ожидалось, когда я сел на свое место, все равно приятно видеть, что все было готово к работе.


Теперь, когда моя отладка была сделана после 2-х часов кропотливой работы на сверхскоростном пассажирском экспрессе, меня озадачила другая проблема: Как я должен отправить проект в личку на проверку, не обращаясь за сервером и не говоря уже о развертывании Jenkins?


Пытаясь найти оптимальное решение, я очень признателен за то, что ответы на часто задаваемые вопросы TeamCode, несомненно, оказались полезными! Я попробовал Tin — еще одно облачное решение, предоставленное TeamCode — для запуска приложения, и моя задача по покупке тестового сервера и задаче развертывания была решена в мгновение ока.


Tin — это, по сути, продукт, который упаковывает приложение, поэтому он действительно помогает, поскольку менеджера по проектам интересуют только результаты, а не коды. Я снова загрузил свои коды в репозиторий Git и создал Tin для PM.





После быстрой проверки Tin я отправил ссылку с приглашением присоединиться к моему рабочему пространству. Теперь к проекту можно получить доступ, щелкнув конечную точку на Tin. Его даже можно обновить для быстрого развертывания, если есть какие-либо изменения. После письма в личку у меня еще есть время до приезда в Пекин.


Некоторая интерлюдия


В первую ночь все идет гладко: PM может осмотреть проект через Tin. Он предложил несколько проблем, и все они решаются с помощью Cloud-IDE + Pylon. После нескольких электронных писем туда и обратно проверка в основном завершена.


После еще одного долгого рабочего дня мы столкнулись с еще одной ошибкой, когда я ехал в метро, ​​возвращаясь в Шанхай. Один из JS-методов на странице конфликтует с общим методом, и страницу невозможно открыть! До официального релиза всего час, а в метро у меня нет возможности кодить. Я глубоко виноват, если весь проект приходится откладывать и всем приходится работать сверхурочно только из-за меня.


В этой безвыходной ситуации я попытался спросить, могут ли помочь программисты переднего плана. Я отправил ему ссылку-приглашение и «заставил» его присоединиться к моему рабочему пространству, чтобы помочь изменить коды. В конце концов он согласился помочь после того, как признал, что нет необходимости в развертывании среды, структурировании и всех этих хлопотных задачах — и в большом угощении от меня. Мы общались по телефону, инструктируя его, как пользоваться Pylon и Cloud-IDE.




Благодаря быстрой реакции все сделали за 10 минут. Приложение обновилось на Tin, ПМ его осмотрел, и... Уф, сайт плавно запустился вовремя.


Примечания


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


Исходя из моего опыта, я предполагаю, что облачная разработка с TeamCode поможет в следующих ситуациях:


  1. Гибкая ситуация развития. Cloud-IDE + Pylon будет полезен, если вы переключаетесь между компьютерами и рабочими средами. Поскольку все ресурсы находятся в облаке и нет необходимости развертывания в среде, разработка в облаке может быть достаточно гибкой.

  1. Упакуйте и разверните быстро. Tin будет полезен для таких ситуаций, как проверки, демонстрационные презентации, технические коммуникации, быстрый POC и т. д. Он позволяет нам удобно демонстрировать наш проект другим.

  1. Командное сотрудничество. Например, ваши товарищи по команде могут отлаживать проект напрямую, не беспокоясь о времени и географической разнице. Каждый может использовать сервис в соответствии со своим темпом на TeamCode, так как большинство сервисов автоматизированы.

Спасибо, что прочитали мою статью и надеюсь, что мой опыт будет вам полезен.



Оригинал
PREVIOUS ARTICLE
NEXT ARTICLE