[almighty] Monorepo

Travis Brown tkbrown at gmail.com
Thu Sep 22 20:15:06 UTC 2016


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
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listman.redhat.com/archives/almighty-public/attachments/20160922/a0eccc89/attachment.htm>


More information about the almighty-public mailing list