[almighty] Monorepo

Max Rydahl Andersen manderse at redhat.com
Mon Sep 26 09:33:39 UTC 2016


Hi Travis!

I agree that today many-repo are problematic at a large scale.

I'm not sure the issue can be "fixed" at Almighty level alone since I 
think
the main issue around this is the limits of git (does not have good 
composition/submodule support)
and the whole infrastructure around the "one project=one repo" idea.

But I'm all ears for suggestions on how we could help improve it - it 
sounds
like you have some thoughts on it. Care to share ?

/max

> I think my point was missed (probably not worded clearly). I am not 
> mixing
> microservices and many-repo but relating them.
>
> I don't think it's feasible with open source tools today to 
> efficiently
> scale many microservices in a many-repo approach. In ALR's Push It 
> Real
> Good presentation, the complexity and startup costs for a new idea 
> were
> listed, and these are prohibitive (or at least inefficient) for you to 
> take
> on for each small project.
>
> I was hoping ALMighty would solve this problem so that many-repo could
> become a better option. And if it does solve the problem, then 
> possibly the
> arguments in favor of mono-repo are not as strong since I assume 
> ALMighty
> will eventually be maintained inside of ALMighty.
>
> Regards,
> Travis Brown
>
> On Thu, Sep 22, 2016 at 12:41 AM, Baiju Muthukadan 
> <bmuthuka at redhat.com>
> wrote:
>
>> Hi Travis,
>>
>> On Thu, Sep 22, 2016 at 10:45 AM, Travis Brown <tkbrown at gmail.com> 
>> wrote:
>> [...snip...]
>>> If the ALMighty project claims to make it easy to go from new
>>> project (and usually new repo) to production microservice but was in
>>> turn developed with a model that does not fit the goal it is
>>> enabling, then we are not eating our own dog food.
>>
>> I think it's not a good idea to mix Monorepo and Microservices.
>> Monorepo is all about how we are going to organize source code in a
>> single repository.  Whereas Microservices is an architectural style.
>>
>> Martin Fowler describe it this way [1]:
>>
>>   The microservice architectural style is an approach to developing a
>>   single application as a suite of small services, each running in 
>> its
>>   own process and communicating with lightweight mechanisms, often an
>>   HTTP resource API.
>>
>>
>>> I think the problems favouring a monorepo are possibly the same
>>> problems this project should help solve.
>>
>> That's a good thought!
>>
>> I would like to quote the entire comment by my friend Sajith in FB
>> post [2]:
>>
>>   Found Conway's Law to be true in almost all the cases -
>>   http://www.melconway.com/research/committees.html - "Organizations
>>   which design systems are constrained to produce designs which are
>>   copies of the communication structures of these organizations"
>>
>>   Would one team be responsible for all the microservices or would 
>> you
>>   have multiple small teams, each one with responsibility for a small
>>   part of the overall system?  Also how would your delivery pipleline
>>   look like? Would each service have it's own build/test/deploy
>>   pipeline?
>>
>>   If you have independent teams owning the services like
>>   https://gotocon.com/.../KevinGoldsmith..., Netlfix,
>>   https://sudo.hailoapp.com/.../journey-into-a.../ etc - organizing
>>   each service as a folder or git submodule brings with it a lot of
>>   other questions (versioning together, tight coupling)
>>
>>   The definition of a service, microservice, macroservice,
>>   mediumservice vary wildly depending on who you talk to these days 
>> :)
>>
>>   Guess it depends a lot on how you slice your services up and how
>>   that reflects your team structure - The complexity could be either
>>   in modules or in the interstitial glue.
>>
>>   If you want to build, test, tag/version and deploy services
>>   independently, how would a monorepo work?
>>
>>   Independently deployable services brings with it further complexity
>>   (discovery, increased surface area for failure etc) - but if your
>>   team structure supports that, you could rely on tooling to make it
>>   less painful
>>
>>
>> [1] http://martinfowler.com/articles/microservices.html
>> [2] https://www.facebook.com/baijum/posts/10154503962859641
>>
>> Regards,
>> Baiju M
>>
>> _______________________________________________
>> almighty-public mailing list
>> almighty-public at redhat.com
>> https://www.redhat.com/mailman/listinfo/almighty-public
>>


> _______________________________________________
> almighty-public mailing list
> almighty-public at redhat.com
> https://www.redhat.com/mailman/listinfo/almighty-public


/max
http://about.me/maxandersen
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listman.redhat.com/archives/almighty-public/attachments/20160926/e1766780/attachment.htm>


More information about the almighty-public mailing list