Monolith or Microservice?
Learn more about microservices at the next Streaming Media West.
Read the complete transcript of this clip:
Tanu Aggarwal: I'm going to say when to monolith and when not to microservice to wake everyone out of their lunch post-launch stupor. It seems like a no brainer that if you're starting something new or starting something small, with the perfect microservices architecture, let's break it up and start the right way. However, there's a case to be made for monoliths here. If you're building a new product, if you're bringing something new to the market, if you're doing a proof of concept, for example, you actually will probably need to pivot many times. Your product will go through several iterations. Do you really want to get into the mess of microservices?
As Nermeen pointed out, they're complex. There are lots of decisions that you have to make up front when you're using microservices. Perhaps at that time in the lifecycle of your product, starting with a monolith is the right thing. You probably have a couple of developers on your team and you're starting the product. Then what do you do? Do you start with microservices or a monolith? Maybe you don't do both. You go the middle path. You divide it in such a way that you can have parallel development.
This is a little different from what Nathan mentioned about parallelization. This is really about being able to develop in parallel and a couple of these services can work together. The reason I'm advocating deferring the use of microservices to as late as possible in your your game is because you don't want to make that investment up front. You want to focus on your core competencies. Get your product out, put some live traffic through it, evaluate it, monitor it, and you'll be surprised at the pieces that you thought needed to get scaled are actually not the ones that end up needing to be scaled. So again, something to watch out for.
Olga Kornienko: I would not agree 100%. Granted, I'm biased in this kind of opinion, but I also think that you need to figure out what it is your core competency is. I fully agree with that. Figure out which part of it you absolutely need to control, need to be in charge of, and which can be diverted to a microservice. And then decide if it's worth your time to develop, build, and figure all that part out, or if it's just easier to contact the microservice provider. You don't have as much startup costs. You don't have as much of an infrastructure that you have to invest in, in order to spin up a service that can be purchased or required as a microservice, and decide on the few components that you need that absolutely will be changing, will be pivoting, and the two things that you need that can be bought off the shelf from a provider out there and do a combination. I think that would be the best way to approach this.
Related Articles
StackPath's Nathan Moore and EZDRM's Olga Kornienko explain the process and benefits of monolith-to-microservice transition, such as identifying points of failure, in this clip from Streaming Media West 2019.
01 May 2020
Cisco's Nermeen Ismail, id3as' Dom Robinson, and Twitch's Tanu Aggarwal resolve the age-old microservice/container conundrum in the streaming world in this clip from Streaming Media West 2019.
29 Apr 2020
Twitch Director of Enginerring Tanu Aggarwal explains the basics of microservices and the advantages of designing and deploying self-contained, single-purpose services in this clip from Streaming Media West 2019.
24 Apr 2020
Companies and Suppliers Mentioned