Microservices • Martin Fowler • GOTO 2014

  Рет қаралды 498,592

GOTO Conferences

GOTO Conferences

Күн бұрын

Пікірлер
@GOTO-
@GOTO- Ай бұрын
Looking for books & other references mentioned in this video? Check out the video description for all the links! Want early access to videos & exclusive perks? Join our channel membership today: kzbin.info/door/s_tLP3AiwYKwdUHpltJPuAjoin Question for you: What’s your biggest takeaway from this video? Let us know in the comments! ⬇
@-andymel
@-andymel 7 жыл бұрын
01:00 What is a monolithic application (Everything together in one process) 01:16 For Microservices take each capability and put it in separate processes 03:30 Article about *9 Characteristics of Microservices* Common Characteristics 03:43 *Componentization via services* 04:23 Components should be independently replaceable and independently upgradeable 04:55 2 forms of components - libraries (needs same plattform) - services (more independent) 06:28 *Organized around business capabilities* 07:57 *Smart endpoints and dump pipes* 09:19 *Decentralized Data Management* 10:17 Never talk to another services data store directly - only over the services API 11:01 Choice of data persistence, language and tools should totally be at the individual service 11:23 *Infrastructure Automation* is crucial 12:10 *Explicit design for failure* Usual Questions 13:22 *Are microservices the same as 'Service Oriented Architecture'?* 14:37 'Microservices' = subset of 'SOA' 15:46 *How big is a Microservice?* 17:49 *Microservices vs Monoliths* - Advantages Monoliths: Simplicity up to some size, Consistency, Inter-module interface refactoring - Advantages Microservice: Partial Deployment, Availability, Preserve Modularity, Multiple Platforms 24:03 *Basic things to make sure if you do microservices* Rapid Provisioning, Basic Monitoring, Rapid Application Deployment, Devops Culture
@thapakazi_
@thapakazi_ 5 жыл бұрын
Thanks, I was taking the similar note, but you have timestamp too :) just adding these links: - martinfowler.com/bliki/TalkNotes.html - martinfowler.com/articles/microservices.html
@goverdhank
@goverdhank 5 жыл бұрын
Very crisp and helpful
@therealjayz8036
@therealjayz8036 5 жыл бұрын
You the real MVP
@valtih1978
@valtih1978 8 жыл бұрын
Very articulate, clear-cut, easy to follow diction. That is a great speaker.
@hayderimran7
@hayderimran7 6 жыл бұрын
lmao hes boring af....
@soberhippie
@soberhippie 6 жыл бұрын
That's cause he's British. Or at least his accent is.
@scoett
@scoett 4 жыл бұрын
Fantastic, concise overview of microservices. My favorite part: @23:30: Use any programming language(s) for microservices except JavaScript, you have to do something to fight back against that monster. 4 years later, rewrites refactoring book with all examples in JavaScript. :)
@GeorgeTsiros
@GeorgeTsiros 3 жыл бұрын
1) difficult to avoid js, what with it being the only client-side web-browser scripting language 2) a refactoring book makes sense to target js, since most people will need the help _for_ refactoring (shitty) js code.
@andreadiotallevi5780
@andreadiotallevi5780 2 жыл бұрын
I wonder what Martin thinks in 2022 regarding using TypeScript instead as it got quite mature.
@CrustyPea
@CrustyPea 7 жыл бұрын
Things I learned from this talk: - Helpful to think of microservices vs monolith as distributed vs centralised - Microservices allow greater deployment flexibility and release granularity - Microservices might not be a good choice if boundaries in a system are poorly defined/understood
@kahnfatman
@kahnfatman 2 жыл бұрын
Startups should NEVER go micro service for the third given reason: Product is not defined, service is not well-bounded.
@TechnologyRules
@TechnologyRules 6 жыл бұрын
That Netflix guy talk about microservices doesn't ever get close to the quality of this talk. Thank you, Martin!
@jeremykaplan188
@jeremykaplan188 6 жыл бұрын
I've worked in organizations where the shift from monolith to microservices was well thought out, planned and executed. I've also worked in organizations where the attempt to make that shift resulted in the most awful mess that created nothing but tech debt and resulted in massive technological silos that no one understood. It reminds me of the early days of the design pattern movement where developers were picking up the latest cookbook, learning a couple patterns and then shoe-horning every software challenge into them regardless of fit. I think that as with any other software development fad, microservices are great for specific cases. In most cases it's just not needed and creates complexity rather than enabling solutions.
@recoveringheart
@recoveringheart 8 жыл бұрын
Summary of this video: American pizzas are very large, americans love shopping, fight back the javascript monster
@paoloproni1975
@paoloproni1975 Жыл бұрын
Thank you for clarifying those concepts
@RoryBramwell
@RoryBramwell 9 жыл бұрын
Great high-level talk on microservices! Concise and highly informative.
@davemcgivney3563
@davemcgivney3563 7 жыл бұрын
Another great Martian Fowler talk
@mohankumarc.kannangnatt9648
@mohankumarc.kannangnatt9648 8 жыл бұрын
Finally, I found one meaningful presentation about micro services. I still have so many questions..
@ericoudammerveld424
@ericoudammerveld424 8 жыл бұрын
Actually a quite good and ,now and then, quite humorous story. I now understand why no-one was laughing though: "This presentation was recorded at GOTO Berlin 2014"
@goranmatic
@goranmatic 9 жыл бұрын
As always, some very valuable, astute and insightful commentary from Martin Fowler - thanks!
@westfield90
@westfield90 6 жыл бұрын
This and the noSql speech have made me a big fan of Martin
@anug14
@anug14 9 жыл бұрын
23:30 why not javascript? In the context of services, is the speaker alluding to node.js?
@Suamere
@Suamere 9 жыл бұрын
+anug14 Never again refer to Martin Fowler as "the speaker." Refer to him as God, Master Fowler, or His-Grace. To answer your question: He was alluding to the fact that Javascript is growing like mold and taking over many responsibilities. It's a good thing, but also scary. We all know it will never take over CPU-intensive development, that's why node uses C++ for the backend, and we can use C++ for those CPU intensive things, and plug it into the javascript.
@energale
@energale 9 жыл бұрын
+anug14 node.js seems like the perfect match for microservices. I mean it comes with built in networking and an event loop.
@anug14
@anug14 9 жыл бұрын
energale i agree...from what i have known about node.js, it should lend quite well to this type of architecture...i wonder how node.js community responding to this buzz or concept or reinvention ..whatever... spring cloud foundry project seems to be promising and would greatly help java developers to adopt to micro services
@bartolomeonew
@bartolomeonew 8 жыл бұрын
+Suamere This CPU-intensive processing applies to Node.js architecture, not to the JavaScript itself. Anyway, in case you need to do this kind of task, probably a better idea is not to 'plug it into javascript', but have a separate (micro ;) ) service which does this task and is implemented in completely different language/app server...
@Suamere
@Suamere 8 жыл бұрын
bartolomeonew​ well said.
@eyhjehjeh
@eyhjehjeh 2 жыл бұрын
I had a bad bias against microservices. This presentation made it clear why I was right... And why I was wrong :)
@reneetsielepi160
@reneetsielepi160 9 жыл бұрын
Good solid overview of microservices by Martin Fowler
@deloford
@deloford 5 жыл бұрын
What a legend Martin Fowler is
@sadigovelvin
@sadigovelvin 6 жыл бұрын
Martin Fowler is one the great one in software development area. Thank you.
@mikhailfranco
@mikhailfranco 9 жыл бұрын
Mircroservices is just Erlang implemented with other languages and runtimes. Any Erlang programmer can eat two of your American pizzas.
@energale
@energale 9 жыл бұрын
+Mikhail Franco my thougth watching this video: "if only there was microservices on a language level.." now i'm going to look into erlang :)
@ThrashAbaddon
@ThrashAbaddon 7 жыл бұрын
there is also elixir, phenomenal language that works on beam vm and can use all erlang code
@BruskAwat
@BruskAwat 5 жыл бұрын
And now Elixir. I was exactly thinking the same. It's Microservices on the language level.
@kevinjang8209
@kevinjang8209 3 жыл бұрын
Wow nice! He did a great job at explaining micro services
@kevinaud6461
@kevinaud6461 8 жыл бұрын
Smart Ends and Dump Pipes is a good band name
@factorfitness3713
@factorfitness3713 7 жыл бұрын
"For the first time on stage together, ladies and gentlemen, Smart Endpoints and Dumb Piiiiiiiiiiiiiipppppesssss!!!"
@stringlarson1247
@stringlarson1247 7 жыл бұрын
It's a Pr0n film.
@deanwalliss8739
@deanwalliss8739 7 жыл бұрын
Sounds like a Beck album.
@Suamere
@Suamere 9 жыл бұрын
Development in isolation. The key of modularity, and I think a better phrase when discussing the pros and cons of modularity. Development in isolation is impossible in a monolith, but a monolith has the benefit of discovering boundaries and simpler troubleshooting prior to those boundaries being found. Development in isolation is the only option in Microservices, but troubleshooting becomes difficult if your boundaries aren't clear. The key is that a microservice shouldn't be developed with unclear boundaries. And when you start with a monolith and extract services with clear boundaries, you can then develop and troubleshoot in isolation. SOME Developers (lol if he reads this) like to run every micro service and the root application(s) simultaneously and locally to troubleshoot. That either means the boundaries aren't clear (which they should be), or it means your mindset is stuck in the monolith and you don't know how to deal with development in isolation. Long-story-short: Start with monoliths, don't prematurely microptimize (lol?), but try to get to clear boundaries asap, and move to micro-services if you can support the requirements the Master Fowler speaks of toward the end of his talk.
@deloford
@deloford 5 жыл бұрын
Good point, agree later refactoring is better. You can refactor towards Microservices when you understand the boundaries, but its far harder to go the other way.
@KevinJingQiu
@KevinJingQiu 9 жыл бұрын
Very good intro to micro service architecture given by The Martin Fowler.
@JaysonSunshine
@JaysonSunshine 7 жыл бұрын
Thank you for providing your thoughts on microservices, Martin.
@glennblock1
@glennblock1 10 жыл бұрын
Easy to understand, that's a plus!
@786gnafis
@786gnafis 4 жыл бұрын
Martin Fowler is a Prophet in SOA world!
@stenmartens7179
@stenmartens7179 5 жыл бұрын
For what it's worth, I've come across another key difference between SOA and microservices. as stated by Mark Richards in the book Software Architecture Patterns published by O'Reilly, the difference is that a microservices do not use any form of service orchestration (which i would rather call composition). when talking about SOA, there are structures where multiple services might work together to deliver one (partial) result.
@coder8515
@coder8515 3 жыл бұрын
Very clear and well explained.
@laynepeng4327
@laynepeng4327 9 жыл бұрын
Very good and neutral view on Microservice!
@gobibava
@gobibava 7 жыл бұрын
Explaining in great way.Easy to undertand
@hnasr
@hnasr 7 жыл бұрын
Hope he changed his mind about javascript two years later. That monster is becoming stronger and stronger thanks to Node.
@artgentumk
@artgentumk 4 жыл бұрын
Not really changed his mind, but sort of gave up. Still hates it, but code examples in new edition of his Refactoring book are in javascript.
@mirageman2
@mirageman2 4 жыл бұрын
@@artgentumk how ironic is that, the language overpowered him at last
@fritzschnitzmueller3768
@fritzschnitzmueller3768 4 жыл бұрын
sure, because if you want to write code for the web, you have to use javascript. Ofc you can use transpilers to generate javascript from other languages like C++
@ashishkalra4769
@ashishkalra4769 8 жыл бұрын
Thanks for such a wonderful explanation. Component:Independently Replaceable and Independently up gradable. Infact this monolithic approach's problem was with Microsoft .Net framework also. That's why they gave MVC as a nuget package instead of integrated with .Net otherwise they would have to wait until the next version
@wantaoyu6722
@wantaoyu6722 8 жыл бұрын
Impressive presentation. And I just like your humor.
@ConanFC
@ConanFC 10 жыл бұрын
Excellent talk!
@kahnfatman
@kahnfatman 2 жыл бұрын
Ideology versus the real world: That's gonna my future book. Things that look so nice on paper could appear thousands fold more so when an articulate speaker delivers a keynote on it. Things turn into hell during implementation because the real world deals with aspects not mentioned during the talk. LISTEN TO ALL but THINK FOR YOURSELVES and trust a few.
@2000kasparov
@2000kasparov 8 жыл бұрын
You are a great presentator Martin
@JeremyAndersonBoise
@JeremyAndersonBoise 8 жыл бұрын
Egregious Spaghetti Box, pure gold.
@professorneila7821
@professorneila7821 4 жыл бұрын
I laughed out loud at work, heh.
@confused6526
@confused6526 7 жыл бұрын
Great Presentation. Thanks J.N
@ravipasumarthy8732
@ravipasumarthy8732 8 жыл бұрын
I like it - " You got to fight back that monster"
@trile2713
@trile2713 8 жыл бұрын
Quite impressive presentation. Clear thought expressed thru attractive powerful voice. This pres paired with the one of Eric Evans here should round up a good overview of microservices.
@shantiswarupsatapathy7903
@shantiswarupsatapathy7903 7 жыл бұрын
Hello , I need to know if there is any industry standard to follow on how to split a monolithic application. Kind of guiding principle. This is from the perspective of a functional person who will be logically splitting the application to smaller one.
@deloford
@deloford 5 жыл бұрын
There is no 1 principle. I would say focus on logic and responsibility boundaries, too many services = too much 'talk', too few services = no benefits. Marin also highlighted several areas to focus on, services should revolve around a product rather than a technology (e.g Orders).. well written monoliths are often built with microservices so look for service classes e.g CustomerService, OrderService, these are good starting places. Also check for resource access, you don't want lots of services accessing the same resource. Be very careful splitting database access across several services, this is a classic versioning and compatibility trap.
@valentintudormocanu8483
@valentintudormocanu8483 7 жыл бұрын
Decentralized data - sometime it is an illusion if the micro-services data are strongly coupled in the problem space. The best solution is the one that model the problem not something else.
@manishkrai
@manishkrai 4 жыл бұрын
Good explanation
@SuperSparkLight
@SuperSparkLight 8 жыл бұрын
Great as always.
@sapnokiranii
@sapnokiranii 6 жыл бұрын
Great presentation!
@aranichat
@aranichat 7 жыл бұрын
Very interesting and thought provoking
@vivekach1
@vivekach1 8 жыл бұрын
Thank you.. Great presentation..
@maxpaynestory
@maxpaynestory 8 жыл бұрын
when to have a new Microservice is easy. Every new feature is a new Microservice.
@ajeetganga7310
@ajeetganga7310 8 жыл бұрын
You Sir, are the reason why consultants get paid more.
@pengthomas6490
@pengthomas6490 7 жыл бұрын
Very good speech!!
@chihabahmed5207
@chihabahmed5207 8 жыл бұрын
Hi there i want to build a microservices backend for android app. what is the best backend technologies for this i was thinking of using Node.js but i also though about using Python. ANY THOUGHTS THANKS
@ericoudammerveld424
@ericoudammerveld424 8 жыл бұрын
It was the only moment I actually heard 3 people laugh!!! LOL
@rishi82india
@rishi82india 8 жыл бұрын
Very Well Explained Martin,
@hamidrezamoradof1771
@hamidrezamoradof1771 5 жыл бұрын
Thanks for sharing knowledge
@raju18a
@raju18a 9 жыл бұрын
awesome talk..
@DarthChrisDK
@DarthChrisDK 8 жыл бұрын
Great presentation. Very understandable. He also sounds like John Oliver, which is a good thing.
@JeanNascimentosuissa
@JeanNascimentosuissa 10 жыл бұрын
Wonderful!
@AnnielMenezesCruz
@AnnielMenezesCruz 10 жыл бұрын
Se liga nessa série de posts da galera do SoundCloud sobre quebrar um sistemas monolítico em micro-serviços developers.soundcloud.com/blog/building-products-at-soundcloud-part-1-dealing-with-the-monolith
@professorneila7821
@professorneila7821 4 жыл бұрын
Hi there, I'd like to get clarification, is it 2 American pizzas to feed 2 American people?
@ngdinhthi
@ngdinhthi 5 жыл бұрын
Nice, thanks!
@oswaldumeh
@oswaldumeh 7 жыл бұрын
I think the characteristics of Micro Services and Domain Driven Design seem to overlap in my opinion.
@ivanbulanov5754
@ivanbulanov5754 7 жыл бұрын
What can I cook on this snake oil?
@andreykarayvansky9549
@andreykarayvansky9549 5 жыл бұрын
Partial deployment can be also a disadvantage
@kumaranand1924
@kumaranand1924 8 жыл бұрын
Good overview
@grk5308
@grk5308 8 жыл бұрын
loved it..
@HarshaXSoaD
@HarshaXSoaD 8 жыл бұрын
All good except that comment about javascript. There's no such a rule. It comes in handy in some situations and sometimes it isn't. always has two sides.
@factorfitness3713
@factorfitness3713 7 жыл бұрын
I'm not sure where he was leading with that. A shot at NodeJS? Why? I'm not sure what the issue with that is.
@farhan23ism
@farhan23ism 7 жыл бұрын
A typical old style .NET and JAVA developer.
@blasttrash
@blasttrash 6 жыл бұрын
I think this is an old talk when ES5 was out perhaps? A lot of people in js community back then felt that js was a badly thought out language with inconsistent features etc. I am more of a Java person, but that comment would probably not hold true today. JS is heading in a great direction indeed with ES6 and some of its new features. I am still a beginner though. :)
@7th_CAV_Trooper
@7th_CAV_Trooper 5 жыл бұрын
exact moment I clicked like: "don't use javascript" - damn straight!
@Daniel-dj7vc
@Daniel-dj7vc 3 жыл бұрын
Funny thing, he write a book where he uses javascript for example code. :p
@7th_CAV_Trooper
@7th_CAV_Trooper 3 жыл бұрын
@@Daniel-dj7vc We've all done things we're ashamed of. lol
@dawsdep
@dawsdep 8 жыл бұрын
Another reason to love Elixir and the Erlang VM
@ramdasnair5655
@ramdasnair5655 2 жыл бұрын
"What is the most important things to Americans?....shopping!" - Martin Fowler
@valentintudormocanu8483
@valentintudormocanu8483 7 жыл бұрын
Modularity discipline - if i will multiplied 500 business rules in 20 microservices, each multiplied 10-20 times - this a fatal illness for your system. DRY options - use a library - encapsulate in services - cost of a rocket for bicycle
@naren_legha
@naren_legha 6 жыл бұрын
Multiple instances off each service in an illness? How? Use a library. So I'm stuck to a language/stack when though there are better solutions available in some other stack.
@shuaibird.official
@shuaibird.official 6 жыл бұрын
OMG, I'm surprised about the bad comment of JavaScript.😂
@slawomirczekaj6667
@slawomirczekaj6667 5 жыл бұрын
amen to the java statement!
@procsharp
@procsharp 9 жыл бұрын
Doesn't R.C Martin clean architecture give you the ability to leave the decision of monolithic vs WS to the time you will have enough knowledge to decide? Boundaries and size is not a WS problem, its a components/libraries challenge. .By the time you create components and test it, you have enough data to decide.
@berkarslan
@berkarslan 8 жыл бұрын
Boundaries have to be explicit in SOA..
@moistbrownypoints
@moistbrownypoints 7 жыл бұрын
23:46 Javascript in 2017 did not notice the fighting back..
@rahulraviprasad
@rahulraviprasad 9 жыл бұрын
Great talk about Microservices, but doesn't say anything about how to actually implement in code. :(
@energale
@energale 9 жыл бұрын
+Rahul R that's because it is not at the code level, but an architectural pattern.
@DanVasquez0xFF
@DanVasquez0xFF 8 жыл бұрын
Apache Thrift is a great tool that glues microservices together in a SOA.
@palakurthipradeep6256
@palakurthipradeep6256 6 жыл бұрын
Completed
@kennethcarvalho3684
@kennethcarvalho3684 6 жыл бұрын
Sounds like someone jumped out of a Harry Potter movie and started studying Microservices
@deloford
@deloford 5 жыл бұрын
Sounds like you jumped into coding and didn't bother to check who Martin Fowler is.
@teslavoltagames3208
@teslavoltagames3208 5 жыл бұрын
Microservices: doing what Linux has been doing for decades in a more convoluted way.
@Damien-y9c
@Damien-y9c 5 жыл бұрын
Completely different scale. Elaborate.
@RBC2_
@RBC2_ 9 жыл бұрын
It is a good concept, but there is nothing new here. Most of the top software designers have been using these ideas for years.
@kadirgulec591
@kadirgulec591 4 жыл бұрын
shopping must go on :)
@TheGrimDazzle704
@TheGrimDazzle704 8 жыл бұрын
Lot funnier and interesting when you put into into 1.5x speed!
@mikailmohamed3478
@mikailmohamed3478 2 жыл бұрын
Man like Martin F
@valentintudormocanu8483
@valentintudormocanu8483 7 жыл бұрын
The independent "upgradability" of technology - yet it is enabled, but heterogeneous technologies will increase your system complexity, and also the cost of change from heterogeneous suppliers. We really want that ?
@naren_legha
@naren_legha 6 жыл бұрын
Ability to cater to change, without having to notify clients about downtime, at cost of some complexity is not a bad deal at all. BTW what kind of complexity are you referring to here ?
@aliasalias510
@aliasalias510 4 жыл бұрын
Martin Fowler is Jesus for software developers.
@lepidoptera9337
@lepidoptera9337 3 жыл бұрын
Jesus is dead, though.
@valentintudormocanu8483
@valentintudormocanu8483 7 жыл бұрын
Messages - are flexible but ... The cost of a asynchronous solution for a synchronous problem will raise to the sky for only benefit of a solution provider. So. I will do not trust to any solution provider that will propose me a solution with a model that does not fit with the model of the problem. More - asynchronous software is a hell for testing - hard to test. I need good reasons to go there ...
@Alberto_Cavalcante
@Alberto_Cavalcante 3 жыл бұрын
remains actual
@JD-xd3xp
@JD-xd3xp 7 жыл бұрын
put microservices in DOCKER and that helps much better.
@rajarakeshsingh
@rajarakeshsingh 8 жыл бұрын
How big is a microservice... he did not answer.. mocked others??
@farhan23ism
@farhan23ism 7 жыл бұрын
He seems a typical JAVA and .NET lover, who loves Object oriented styles. Java Script is the future , better that you learn to work in that and get rid of writing restful apis in .Net and .JAVA because that does not make sense to me.
@PMFOXTECHNOLOGIES2
@PMFOXTECHNOLOGIES2 3 жыл бұрын
Una charla muy interesante, me.ayudo a complementar lo que sabía kzbin.info/www/bejne/hGqYiGl_lKmiiNU Saludos y seguiré viendo el bueno contenido.
@soberhippie
@soberhippie 6 жыл бұрын
American-sized pizzas? But then again, those are American sized people. You can't feed "a hell of a lot" of americans with two american pizzas.
@awksedgreep
@awksedgreep Жыл бұрын
This didn’t age well
@estrellapedroza737
@estrellapedroza737 4 жыл бұрын
Cool, but dude get to the point lol.
@dmitrynutels9340
@dmitrynutels9340 4 жыл бұрын
It's funny how the only time there was an applause during this, otherwise excellent, talk is when the mandatory JavaScript bashing manifested... It's 6 years later, and JavaScript microservices are one of the more common ones being done, thanks to Node.js... Who's laughing and applauding now, bunch of dudes in 2014?
@anonhater1913
@anonhater1913 8 жыл бұрын
Boring fluff.
@firmsoil
@firmsoil 9 жыл бұрын
Any "ROOTING" stuff.. lol.. english language speech is such a phonetic disability!
@slavikkurnosenkov6740
@slavikkurnosenkov6740 8 жыл бұрын
bla-bla-lba.
Introduction to NoSQL • Martin Fowler • GOTO 2012
54:52
GOTO Conferences
Рет қаралды 993 М.
Mom Hack for Cooking Solo with a Little One! 🍳👶
00:15
5-Minute Crafts HOUSE
Рет қаралды 23 МЛН
Martin Fowler  -  Microservices
24:56
Thoughtworks
Рет қаралды 213 М.
Not Just Code Monkeys • Martin Fowler • GOTO 2014
21:29
GOTO Conferences
Рет қаралды 68 М.
Principles Of Microservices by Sam Newman
56:13
Devoxx
Рет қаралды 321 М.
The State of the Art in Microservices by Adrian Cockcroft
1:16:26
Rackspace Developers
Рет қаралды 67 М.
Functional Programming in 40 Minutes • Russ Olsen • GOTO 2018
41:35
GOTO Conferences
Рет қаралды 821 М.
Microservices at Spotify • Kevin Goldsmith • GOTO 2015
49:08
GOTO Conferences
Рет қаралды 96 М.
Mastering Chaos - A Netflix Guide to Microservices
53:14
InfoQ
Рет қаралды 2,3 МЛН