Идея для начала дня: непрерывная интеграция (CI) и непрерывная доставка (CD)

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

Непрерывная интеграция (CI) и непрерывная доставка (CD) - это процессы, разработанные, чтобы убить монстра с головой гидры, которым является разработка программного обеспечения.

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

Таким образом, основная функция программной инженерии - снижение сложности, и в этом помогают двойные процессы CI и CD.

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

  • Жизнь, как и разработка программного обеспечения, запутана и сложна, и каждое решение чревато опасностью невидимых эффектов второго или даже третьего порядка в будущем.
  • Жизнь - это преодоление дерьма путем поиска оптимальных решений нескончаемых проблем; Аналогичным образом, программные приложения создаются для решения проблем, направленных на повышение уровня жизни в 21 веке.
  • В жизни и разработке программного обеспечения легче управлять небольшими, постепенными изменениями.

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

Что такое CI и CD, и почему это должно вас волновать?

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

Существенными особенностями CI и CD является то, что они обеспечивают конвейер доставки, в котором небольшие изменения кода от нескольких участников непрерывно интегрируются (безопасно, с проверками качества благодаря автоматическому тестированию) в производственную систему в рамках оптимизированного, автоматизированного процесса.

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

Что ж, быстрее не всегда лучше. Думаю, вы слышали термин двигайся быстро и ломай вещи, верно? Что ж, все мы знаем, как это обернулось для Facebook и всех нас.

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

Двойной дуэт непрерывной интеграции и непрерывной доставки - это попытка дать ИТ-отделам лучшее из трех миров.

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

Точно так же вам понадобится компас конвейера CI / CD, который направит вас по следующим направлениям:

Думай масштабно, действуй скромно

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

Однако принципы CI и CD побуждают нас не отказываться от наших мечтаний из-за их размера или недостатка ресурсов. Вместо того, чтобы чувствовать себя обескураживающим, вкладывайте небольшое количество времени и усилий, которые вы можете посвятить прямо сейчас, и не позволяйте идеальному становиться врагом хорошего.

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

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

«Не беспокойтесь о слишком многих вещах одновременно. Для начала возьмите несколько простых вещей, а затем переходите к более сложным. Думайте не только о завтрашнем дне, но и о будущем. Поместите удар во вселенную ». - Стив Джобс

Непрерывное совершенствование превосходит отложенное совершенство

Путем непрерывной интеграции небольших изменений кода в основной репозиторий кода и частого развертывания этих небольших изменений в производственной среде конвейер CI / CD учит нас преимуществам постепенных изменений и улучшений.

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

«Привычки не меняются за день. Но 1% в день заставляет каждую привычку работать ». - Джеймс Алтучер

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

Улучшение - это постепенный процесс. Это то, что постоянно практикуется, как показывает конвейер CI / CD, который создает тонкую, как бритву, маржу, отделяющую победителей от проигравших.

Когда вы испытываете искушение разочароваться из-за медленного прогресса, вспомните старую поговорку:

«Как вы попадете в Карнеги-холл? Практика, практика, практика ».

Быстрая и постоянная обратная связь

Внесение небольших, постепенных изменений, как сторонники CI / CD, позволяет человеку быть гибким.

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

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

Снижение риска и экономия затрат

Поддержка конвейера CI / CD побуждает разработчиков и программистов рисковать. Это потому, что они знают, что результаты их экспериментов не будут катастрофическими, поскольку легко изолировать ошибки и даже откатить всю систему до последней беспроблемной сборки.

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

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

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

Начать сейчас.