cloudfoundry: совместное использование пространства несколькими разработчиками
В облачной среде на платформе sap cloud я смотрел на подход / лучшие практики, когда несколько разработчиков работают над одним приложением.
Должен ли каждый разработчик иметь отдельное пространство и должен толкать приложение каждый раз, когда он хочет проверить? или же
Должно ли быть одно пространство для "девопмента" с несколькими приложениями и какой-то вид совместного использования услуг между различными приложениями, которые будет продвигать каждый разработчик?, В этом подходе я вижу проблемы, если я изменяю службу (например, db), которая может повлиять на другие приложения, которые совместно используют ее.
Я просмотрел документацию, но не получил никаких подсказок о нескольких разработчиках, работающих в космосе, поэтому любые советы / опыт очень ценятся
2 ответа
Я не думаю, что кто-то может сказать вам, что имеет смысл для вашей организации. Вам нужно подумать о том, как вы хотите организовать своих пользователей, приложения и пространства. Управление квотами играет в этом роль, как и доступ к приложениям и услугам.
Что нужно учитывать:
Кому нужен доступ к приложениям, которые вы помещаете в космос? Вы можете контролировать это с помощью космических ролей (Space Dev, Manager & Auditor).
Как вы хотите управлять пространствами? Это даст вам некоторое представление о том, как вы хотите структурировать свои организации. Права организации позволяют оператору делегировать управление кому-либо еще (руководителю организации, аудиторским ролям).
Как вам нужно ограничивать ресурсы, которые потребляют ваши пользователи? т.е. квоты. Вы можете применять квоты к организациям и пробелам. Подумайте, как вы хотите ограничить то, что могут делать группы.
Рассмотрим границы org / space. Нужно ли вам делиться такими вещами, как услуги, между организациями и пространствами? Есть некоторые возможности сделать это через фонд, но будьте осторожны, потому что отдельные сервисные брокеры также должны поддерживать это. На момент написания некоторые делают, а некоторые нет. Те, кому это не нужно, должны быть предоставлены в распоряжение менее удобной службы, предоставляемой пользователем.
https://docs.cloudfoundry.org/devguide/services/sharing-instances.html
Подумайте, нужно ли вам выставлять счета или возвращать деньги. Делать это для каждой организации / пространства имеет смысл, поэтому вам нужно будет согласовать это с тем, как вы делаете выставление счетов / возврат платежей.
Я бы не предложил принять одну из этих стратегий, не продумав сначала, но вот пара примеров того, что я видел, как люди делают.
В командах, где разработчики управляют на протяжении всего цикла, я видел, как организации используются для группирования групп разработчиков, а пространства используются для группировки проектов или приложений. Таким образом, команда A имеет доступ к организации A, которая имеет пробелы X, Y и Z для приложений X, Y и Z. Приложения X, Y и Z развертывают dev, test, qa и prod в одном и том же пространстве.
В компаниях с более традиционными структурами, где команды разработчиков передают код рабочей группе, я обычно вижу организации и пробелы, чтобы облегчить это разделение. У разработчиков есть свои собственные организации и места для разработки и тестирования. У Ops есть свои организации и помещения для производства. Два не смешиваются.
Есть также варианты этого, поэтому еще раз продумайте, что имеет смысл для вас и вашей компании.
Надеюсь, это поможет!
Пространства Cloud Foundry имеют функциональную цель - обеспечить управление квотами и контроль группой людей. Таким образом, вы должны структурировать пространства в зависимости от необходимости изолировать / контролировать приложения.
Наиболее распространенный вариант использования пробелов: - dev / qua / prod - Department_a / deparment_b;..
Что касается разработки общих сервисов, пожалуйста, убедитесь, что вы понимаете сервисы CF: они предоставляют механизм, отличный от обычных приложений, например, экземпляр сервиса (например, БД), могут совместно использоваться различными приложениями в разных пространствах:
https://docs.cloudfoundry.org/devguide/services/sharing-instances.html