3 ms·
I don't think it has to do with team size alone, although it is much easier to work with in large teams, first time I used microservices I was in a team of 6 de
by _shadi 8y ago
I don't think it has to do with team size alone, although it is much easier to work with in large teams, first time I used microservices I was in a team of 6 developers, main pain point for us was deployments, it would take sometimes 2 days to do a full deployment of the 10+ old years that was not always well-maintained monolith we were working on, we decided that any part of the functionality that makes sense to be independent from the rest and can be updated/deployed alone to extract it into a microservice instead of refactoring it when we touched it, at the beginning the process was even slower and we had to learn a lot, but with time and after we built a good knowledge base on the different aws services and had a better set of Jenkins job it became much smoother.
- drbojingle 8y agoI agree that it's not team size alone. Team size is just the variable I'm most interested in. Thanks for sharing your perspective! You reference AWS services and Jenkins jobs making things smoother. Is there anything, in particular, you would say should be considered a pre-requisite before adopting microservices, based on what you've learned?
- _shadi 8y agomost of us had experience with traditional development only, so we had to adopt devops mentality to be really effective, the company had ~4 system engineers who were working on the monolith full-time, so we had to take care of the microservices we built ourselves. by AWS services I meant things like cloudformation, packer, ansible, consul, the nitty-gritty of ELB, EC2, S3, docker, hardest part for me was IAM and vpc/subnets, dealing with multiple caches instead of a big one, also distributed sessions(in the end we got rid of sessions and used identifiers and a key-value store). Jenkins jobs to deploy and test every single service on its own, and for deploying everything to a test environment and run integration tests. UAT for testing all services on test environment. There is much more than that but these are the things I remember from the top of my head.
- drbojingle 8y agoSounds pretty complex! What are you making if you don't mind me asking?
- _shadi 8y agoI'm no longer at that company, I would rather not share more personal information, but the product was a sort of a marketplace implementation.
- drbojingle 8y agoThat's cool, I'm not interested in personal info. I am curious how many developers were working on your back-end at any given time and how many services you had at any given time.