You Dont Need Microservices
Вставка
- Опубліковано 31 тра 2024
- In recent years, there has been a lot of buzz around microservices as the go-to architecture for developing modern applications. However, in this video, we explore the idea that you don't actually need microservices to build a successful application.
While microservices can provide benefits such as scalability and flexibility, the truth is that they also come with their own set of challenges. Maintaining a microservices architecture can be complex, with multiple moving parts that require careful orchestration. Moreover, it may not always be necessary to break down your application into microservices as it can be overkill for smaller applications.
In fact, many successful applications have been built using a monolithic architecture. A well-designed monolith can still be scalable and modular, without the added complexity of microservices.
That being said, it's important to keep in mind that every application is different, and what works for one may not work for another. As you design your architecture, it's essential to consider the unique needs of your application and choose an approach that will work best for your specific requirements.
So, in conclusion, while microservices can be a great option for some applications, they are not always necessary. A monolithic architecture can still provide the modularity and scalability you need for a successful application. As you consider your options, make sure to carefully evaluate the pros and cons of each approach to determine what is best for your specific project.
#microservices #systemdesign #softwarearchitecture
Don't Forget to
===========================================
💯 Subscribe to Amigoscode - bit.ly/2HpF5V8
💯 Courses Available for free here - amigoscode.com/courses
💯 Join Private Facebook Group and Discord - amigoscode.com/p/join-community
🙊 Here are the goods for all my videos video 🙊
► Recommended Books
===========================================
- Clean Code - amzn.to/2UGDPlX
- HTTP: The Definitive Guide - amzn.to/2JDVi8s
- Clean Architecture - amzn.to/2xOBNXW
► Computer and Monitor
===========================================
- New Apple MacBook Pro - amzn.to/3464Mmn
- Dell 27 INCH Ultrasharp U2719D Monitor - amzn.to/2xM3nW1
- Double Arm Stand Desk Mount - amzn.to/3aYKKfs
- USB C Hub Multiport Adapter - amzn.to/2Jz7NlL
► Camera Gear
=============================================
- Sony ILCE7M3B Full Frame Mirrorless Camera - amzn.to/346QIJn
- Sigma 16 mm F1.4 DC DN - amzn.to/2wbic3Q
- Sigma 33B965 30 mm F1.4 DC DC - amzn.to/39G37Fd
► IDE & Tools I use for coding 💻 🎒
===========================================
- ITerm
- VsCode
- GoLand
- IntelliJ Ultimate
- Sublime
P.S
===========================================
💯 Don't forget to subscribe | bit.ly/2HpF5V8
💯 Join Private Facebook Group and Discord - amigoscode.com/p/join-community
💯 Follow me on Instagram | bit.ly/2TSkA9w
❤️ Thanks for watching - Наука та технологія
We were trying to build our application with microservices from scratch for the first time just because it's modern and cool, but then we decided to switch to a monolithic because of complexities we had faced. And now I understand what you are talking about in this video.
Yeah we had it the same
+1 same case.
I definitely agree that when building an application from scratch, you should start out using a monolithic architecture. As you run into issues, you might find the need to split a service from monolith into its own service or you might not. It really depends on the complexity.
This is the video that I needed the most. Thank you so much for this important message. As developers, we should do things for a good and understandable reason, and not just because the industry is pressurizing us to do so.
In my first job as Nodejs backend developer I come across micro services. I had no idea what they were. I loose my job because of that. Since that day I hate micro services. But now I'm learning them again.
You couldn't take time to learn it?
Thank you for another great video, Nelson! I have been recommending your courses and will keep doing so.
I think microservice architecure is a goof pattern for perfomance. but it costs a lot in case of servers. and if youre trying to make a small application like crud. then there is no need of microservices. thats why it is necessary to understand and implement a monolothic architecture
I have to say that my first experience was at a job using microservices, was pretty hard for me to understand everything, maybe if I had started with monolithic it would have been easier for me later to understand why we need to use this, thank you Nelson 🙌
As you said on this video. I would suggest everyone who is starting the programming. Start with monolithic architecture. Is ease to learn and also ease to maintain.
Thanks for this video.
Very advice for beginnings when building a small application. Huge applications might what to think of microservers
Surely you have saved me! I have been trying to learn microservices, but basically cuz many job descriptions have been listing it as a skill to have.
Don't worry, in 2 years micro services will be cool again. I've been working as a developer for nearly a decade and it's crazy to watch trends come and go like this.
Please make a video about test containers for DAO testing.
I typically start out breaking components down into Java libraries. By doing this I can create a mono or service based solution. I avoid adding dependencies such as spring, etc... The library API's use standard java beans so they can easily be marshalled into JSON, XML, etc... This approach has served me well for 20+ years.
Like quite everything in tech stuff, it depends. The real problem is to understand what you have to do in the near future and the ability to adapt to new feature (in terms of functionalities or in terms of satisfying growing traffic and active users). Microservices have their pros and cons, monoltihs too, usually starting from a monolith is simpler to manage and to start to extrapolate service into a smaller unit. But in the end, real problems emerges when the source code starts to be too convoluted to adapt easily to new feature, and that's an error that you can face in both architecture.
Just see the architecture of Stack Exchange (which Stack Overflow is part of) that was in action in 2015 since the beginning: a big solid monolithic architecture, with new feature moved to separated services.
exactly, thats what kinda makes me feel slightly anxious, if you're building an application the move from monolothic to microservice may be kinda arduous, not that that's a complete bad thing, but it makes things significantly harder, whereas starting with micro j makes scalability much easier. Then again, if the application never really hits off, and all your scalability wasnt useful then it kinda goes to waste.
This video has shifted my perspective, may start with monoliths but I do love how microservices function, complexicity and all.
I totally agree it. Starting a product with monolithic architecture is the best way to undestand your business issues as much as where and when you should use a microservice architecture.
I totally agree. I think there are certain situations where you just go for a micro service architecture, if your requirements dictate it and call for scalability.
Hola amigo, do you have a video that covers the deployment of maven projects and includes instructions on how to use the lifecycle phases such as Package, Install, Deploy and possibly the jlink method?
Would you create a video what to build first? frontend or backend? Thanks
Nice. I'd say you'd only start a project with microservices if the complexity, number of users and teams that will develop and give maintance are known and well defined from the beginning. Otherwise, a monolith probably will be enough to at least take off 😊😊
very helpful video, answering the questions we have in our minds, thank you so much bro
Waaleikum salaam warahmatullahi...... Interesting 👍
first time i use monolithic but the complexities i had faced pushed me to change my project to microservice architecture from scratch now i can move forward and control my code better
Currently I'm using monolithic but still learning the concepts of microservices.
But there's one thing I didn't see any video on it using spring boot 3, which is multiple implementation of UserDetaisService and authentication provider and I think it's awesome to have a video on that
ua-cam.com/play/PLEocw3gLFc8X_a8hGWGaBnSkPFJmbb8QP.html
Hi man. Thank GOD i got your channel. i have a question. i don't like web design(html, css) but i want to shift in spring boot from Native android development. i want to work only back-end development. will it be good for me.
Thank you so much for making such cool videos! Could you make a video about multithreading, please?)
Hi, what tool are you using to design your microservices architecture, the UI was so clean, please if some one knows what is it tell me
I have a question I hope you can answer. I’m a software engineer currently making my way through Spring, but the terminology is really confusing. Like Spring Framework, Spring Core, Spring MVC, Springboot .. are these all different tools or are they used together? Do I use either MVC or boot? Or are do they work together? What’s the difference between using just spring or springboot?
I really hope you can answer this question with how clear you can explain this stuff.
Waalaikumsalamm. Any book you indicate? (focus on object pattern or in general)
hoping to purchase your fullstack course soon
This is a very helpful video. Thank you very much!!
Brilliantly explained! Brilliant shared!
good point but if you have an application that communicat with alot of external API i think it's better to use miscroservices .
PS : Can you make a video on how to write proper Unit test using mockito 5
I think DDD courses have a lot to answer for. What gets me is when microservices literally only do one single thing (ie: save a customer to a db, but no other customer operations)
We use a hybrid of monolithic and microservices, and although I wish I could break the monolith up, it has its use cases
whats DDD stand for, design driven development?
Thanks Amigo good feedback
Absolutely agreed. Start with a monolith (whether majestic or not), and transition to microservices as needed -- which may be never! There may be a few cases where you're sure you really will need a microservice, but even then, start with a monolith, with the details constructed in such a way as to make it easy to extract that microservice if truly needed. Then again, ideally one should *always* construct things so that they're easy to change, but I mean especially so in this case. 🙂
On the other claw, I suspect that a lot of projects that start as microservices, or move to them without good technical reason, are really suffering from a case of Resume-Driven Development. ;-)
Thanks for add subtitles. I am learn english and subtitles helpful
glad to be coming from monolithic background. Indeed, it clear the clouds now that i have started working on microservices. but monolithic just feels like a family.
Thanks. We use monolithic
I like the new way of describing things via pictures :D
Like everything, it depends on your environment and your needs:
For example, if at your company when you enter they already uses microservices, they have templates or projects generators with standard practices or configurations for within the company, they have a cool devops team that's in charge of pipelines and the CI policies, then MS could be great.
You have everything served at you, and you focus on small pieces of code on very specifics projects, and if you switch from one project to another within the same technology or stack, you'll see something similar and the complexity lowers.
It's also great when there's a need for a very specific new microservice because some new domain or market need arrives and it doesn't fit on anything you currently have, and want to maintain the independence of services, then you only uses the company template, do your thing, and boom, you're releasing in no time without worrying on breaking anything.
The downside as you correctly marked on the video, is that you appreciate microservices when there's a need for them because the growing complexity of the system.
I absolutely agree with you regarding the hype about microservices.
I worked a lot with microservice architectures in the past and I felt the pain of them quite often but be careful with your statement about the movment of amazon prime from microservice to monilithic architecture because that's just NOT true.
Yes, they migrated 2 or three services to one application. The reason for that was they had a video processing service which uploaded a video to an s3 bucket. Another service downloaded the video from this bucket , did some work und saved it again. This process caused high cost because of the expensive read and write operations. With the migration of these two services, they saved on read / write process and so cost.
But that's all! This new services is stil embedded in an amazon microservice unsiverse and they will keep doing so.
So be careful and read the articles completely before making such a ( false ) heavyweight statement.
Yes, monolithic do it's job in most of the cases but big tech giants like amazon, netflix , google etc. must work with such an architecture or kind of a hybrid system.
sir if i know java but i want to learn more things so what i have to choose spring or springboot ? or if is there any course link available free/paid in your website for learning spring/springBoot then please reply me ....
thanks in advance
As a beginner it is hard to find the difference between microservices and monolithic architecture as we are working on simple projects. But when we started working on advanced projects which include multiple programming languages, I think the only solution is microservices. For example an api which basically takes an image of a tree as input and recognises it. Here the problem comes, implementing machine learning in java is not impossible but python is an ideal choice. Then we can add the service from python to our app.And if we want to add premium or subscription features that should be handled by spring boot. In these scenarios microservices are really helpful. Please conduct a series of microservices tutorials. Sir, I have already tagged you before in LinkedIn about how to secure an api gateway in microservices. And i am also curious about how the communication between multiple language services is done. If you will create videos on microservices it will be great for us who want to learn advanced coding from UA-cam.
And i am also curious about how the communication between multiple language services is done
There is two way that you can communicate between different service in different programming language.
1. Restful api
2. GRPC
In order to reduce the complexity at the beginning, you should use restful api at first because of it's easy to implement. Once you get annoyed with it, then spend time to investigate grpc and change some non-related service to grpc.
What a great video you have uploaded.
Hi Nelson. I have a question. I went to your site and I saw that you have courses for Java and Python programming languages. Is there a chance that in the future you'll create some courses for C#? I would like to buy that one from you because I like your teaching approach for Java. :)
O'Reilly C# 10 Pocket Reference Read this book it uses tutorial approach to explain concepts
@@yaseressa4060 Nice! Thank you Yaser!
I totally agree to migrate some monolithic services to microservices or add queue message according to demand like scalability, availability and others reasons. You know, software engineers should solve problems with simple solutions.
I have a question what framework are you using for monolithic app I mean is spring boot is good for monolithic?
His java courses all teach spring boot, spring data and spring security so I would imagine so
Good hints! As developers, we need to take care of trends and what is in tech fashion. It seems that the bigger benefit of microservices is big tech cloud gains. :-;
Todo bien con el vídeo, pero la noticia fue que un servicio paso a ser monolito, solo uno, no la arquitectura completa de Amazon prime.
What’s the first rule of microservices?
If there are more than 50 files in the project, is it worth rewriting it to a microservice architecture? Or can I use a monolithic one? Do I need to know microservices for a junior-middle Java developer position?
The number of files in a project is not what should influence this decision at all. And yes as a middle level java dev you should 100% understand microservices.
To determine whether a microservice should be used, the things that matter most is whether or not different functionalities may need to scale independently, and how many teams will be working on the project.
@@lukedependahl4923 oh, thanks. So, i know what i will be learn)
Thanks. I read this in the books. But! This is just a beginning...
Microservices are meant to solve a particular problem. Not to be applied to the entire system!
What about hybrid . A mixture of both
Good point.
Keep in mind that the code for communicating between those microservices at amazon was doing extra useless work that didn't have a cost when they were together
Do you find Haram things in Web development Nelson ?
I am using modular monolithic architecture
Monolithic or Microservice ? Itt depends on which project do I "win". 😊
Who the fuck say that, MicroMonothiserve Dhu ?
Hi Nelson! I had mailed you a few days back regarding enrollment into the course on Microservices. I have been talking up your free and paid courses and learning. But the microservices course is too expensive for me to buy. So I was hoping if you could provide me some discount.
Just a nitpick here. The AWS article really does not describe going from a microservice setup to a monolithic architecture. They didnt change the logical architecture of the app (still a single bounded context) but they changed the physical architecture. A logical boundary need not be a physical boundary is the important takeaway here
Assalamu alykum brother
I want to take spring boot course but how to contact you
Please reply when you see my comment 🙏
You’ll see what is microservices when you need to run 34 different projects/rabbit/db/redis in order to test locally your feature.
Sir please make a video on LOCALSTACK
I blame the Netflix, once i watched the video is was hooked. But building, managing microservices is just to complex, so many options, so many moving components, complicated relationhips, condiguration hell nightmare, scaling a microservice is also not easy. I will mention Kubetnetes witch is a standart in this this world is a complex beast, even in the cloud. So i decid to stick with monolight and use cloud services.
I agree 👍
I found a good balance between frontend (Nextjs), backend(django) and IDP (Keycloak)
Build optimizations should not dictate network architecture. Modularize your code and use binary artifacts. The only valid use for microservices is when you have a run time performance bottleneck that can be solved by splitting out parts of your application.
I am using monolithic architecture
We use Monolith to small our app and Microservices to our big app
Its important to note that Amazon Prime didnt switch to a monolith. A single analytics team switched to a monolith
I don't now but my country it's very popular and most useful : )
Great advice. I fell into that hole. Haha!
I think you got the 90% aws reduction of cost wrong. The got that in a concrete service, not the whole aws infrastructure
As of now it's monolithic all projects
Developers choose Microservices for their resumes.
With my current project there is only 1 microservice deployed, because this microservice has been deployed from previous projects. Really, starting projects shouldn't implement microservices.
Welll company interviews demand we know almost everything.
Microservices is complex however i like complex issue
A smart engineer never wants complexity.... simplicity is always the best.
Amigos, are microservices making multithrrading obselete
Absolutely nothing wrong with a well-structured monolith! Most shops don't get big enough to have dozens or hundreds of teams, each owning the entire lifecycle from end-to-end. And there's a buttload of infrastructure and overhead you need to have up and running in order to keep your velocity up. Even worse than going to going to micro services too early, is doing a bad job, and then getting the worst of both worlds. Moreover, most shops don't have a decent platform team implementing CI/CD automation, self-provisioning, observability tools AND supporting it all on an ongoing basis. When you've gone all-in on micro services, spinning up new micro services needs to be as low-friction as possible. If the process feels like walking through treacle, you're not ready to do micro services.
I was building a voting app and i'm using monolithic for it
microservices are cool
everybody will skip to internet 3 blockchain, so mesh aritechture will be even popular...
My Advice as a JR is to see the problem before you make the solution because you'll jsut be followi9ng blind "Good practices"
I like the content you create on UA-cam, but too much editing and video transition and effects and background sounds. Just keep it simple as you used to before.
why did you remove my course from the website which I paid for. and now since you increased the price of that course you are offering me only $15 refund. This is not acceptable.
I would really appreciate you not putting out such overly exaggerated titles as 'We Dont Need Microservices'.
Legacy monolith 😢
You, just a year ago: “ONLY MICROSERVICES!!!”.
Also, the Amazon Prime example wasn’t really about microservices but rather poor utilization of their “serverless” products with truly terrible architecture and shockingly wasteful amount of redundant computations. Just take a look at the graph they attached. True geniuses.
Why people are so religious about everything… microservices, serverless, blockchain and now gpt…
وعليكم السلام
Alaikum As-Salaam
First, you are wrong, in a distributed system, monolith/s gets unmaintainable in a matter of years runtime (3) or millions revenue (10), second thank god people like you exist case other gets a good chunk of work on repairing what can be repaired. AWS only resolved the transport layer, let me tell you something, it still microservices with logical connection having memory is shared, they only changed the hosting model.
mA❤
Remove this much editing
It always amazes me when people use 770$ worth of text editors and debuggers and don’t even know how to manually package and run a java app (or anything other). 😂