{"id":75891,"date":"2020-03-29T01:43:45","date_gmt":"2020-03-28T23:43:45","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/vernite-mne-moj-monolit"},"modified":"2020-03-29T01:43:45","modified_gmt":"2020-03-28T23:43:45","slug":"vernite-mne-moj-monolit","status":"publish","type":"post","link":"https:\/\/prohoster.info\/en\/blog\/administrirovanie\/vernite-mne-moj-monolit","title":{"rendered":"Give me back my monolith","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>It seems the peak hype about microservices is behind us. We no longer read posts titled 'How I migrated my monolith to 150 services' several times a week. Now, I more often hear sensible thoughts: 'I don't hate monoliths; I just care about efficiency.' We've even observed several migrations <noindex><a rel=\"nofollow\" href=\"https:\/\/segment.com\/blog\/goodbye-microservices\/\">from microservices back to monoliths<\/a><\/noindex>. When transitioning from one large application to several smaller services, you'll have to tackle several new problems. Let's list them as briefly as possible.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h1>Setup: from basic chemistry to quantum mechanics<\/h1>\n<p>\nConfiguring a basic database and application with a background process was quite a straightforward process. I publish readme files on Github\u2014and often within an hour, at most a couple of hours, everything is running, and I start a new project. Adding and launching code, at least for the initial environment, is done on the very first day. But if we dare to venture into microservices, the time to initial launch skyrockets. Yes, we now have Docker with orchestration and a cluster of K8 machines, but for a beginner programmer, this is orders of magnitude more complex. For many juniors, this burden really is an unnecessary complication.<\/p>\n<h1>The system is hard to understand<\/h1>\n<p>\nLet's take a moment to pause on our junior developer. With monolithic applications, when an error occurred, it was easy to trace it and immediately start debugging. Now we have a service talking to another service, which queues something on the message bus, which processes another service\u2014and here an error arises. We have to piece together all these parts to eventually find out that Service A is running version 11 while Service E is already awaiting version 12. This is vastly different from my standard consolidated log: I need to use an interactive terminal\/debugger to walk through the process step by step. Debugging and understanding have fundamentally become more challenging.<\/p>\n<h1>If it can't be debugged, perhaps we should test it.<\/h1>\n<p>\nContinuous integration and continuous development are becoming commonplace. Most new applications I see automatically create and run tests with each new release and require tests to pass and be reviewed before they are registered. These are excellent processes that cannot be skipped, representing a significant shift for many companies. However, to truly test the service, I need to bring up a full working version of my application. Remember that new engineer with the K8 cluster of 150 services? Well, now we will teach our CI system how to spin up all these systems to check that everything is truly working. This might be too much effort, so we will just test each part in isolation: I'm confident that our specifications are good enough, the APIs are clean, and service failures are isolated from affecting others.<\/p>\n<h1>Every compromise has a good reason, right?<\/h1>\n<p>\nThere are many reasons to switch to microservices. I've seen it done for greater flexibility, for team scalability, for performance, to ensure better operational resilience. But in reality, we've invested decades in tools and practices for monolithic development that continue to evolve. I work with professionals across various technologies. Typically we talk about scalability because they encounter the limits of a single Postgres database node. Most of the conversation revolves around <noindex><a rel=\"nofollow\" href=\"https:\/\/www.citusdata.com\/blog\/2018\/06\/28\/scaling-from-one-to-one-hundred-thousand-tenants\/\">database scaling<\/a><\/noindex>.<\/p>\n<p>But I'm always curious about their architecture. At what stage of the transition to microservices are they? It's interesting to see more and more engineers expressing satisfaction with their monolithic application. For many, microservices will be beneficial, and the rewards will outweigh the bumps in the migration path. But personally, just give me my monolithic application and a spot on the beach \u2014 and I'm completely happy.<br \/>\n<br \/>Source: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/444130\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041a\u0430\u0436\u0435\u0442\u0441\u044f, \u043f\u0438\u043a \u0445\u0430\u0439\u043f\u0430 \u043f\u043e \u043c\u0438\u043a\u0440\u043e\u0441\u0435\u0440\u0432\u0438\u0441\u0430\u043c \u043e\u0441\u0442\u0430\u043b\u0441\u044f \u043f\u043e\u0437\u0430\u0434\u0438. \u041c\u044b \u0443\u0436\u0435 \u043d\u0435 \u0447\u0438\u0442\u0430\u0435\u043c \u043f\u043e \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0440\u0430\u0437 \u0432 \u043d\u0435\u0434\u0435\u043b\u044e \u043f\u043e\u0441\u0442\u044b \u00ab\u041a\u0430\u043a \u044f \u043f\u0435\u0440\u0435\u043d\u0435\u0441 \u0441\u0432\u043e\u0439 \u043c\u043e\u043d\u043e\u043b\u0438\u0442 \u043d\u0430 150 \u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432\u00bb. \u0422\u0435\u043f\u0435\u0440\u044c \u044f \u0447\u0430\u0449\u0435 \u0441\u043b\u044b\u0448\u0443 \u0440\u0430\u0437\u0443\u043c\u043d\u044b\u0435 \u043c\u044b\u0441\u043b\u0438: \u00ab\u042f \u043d\u0435 \u043d\u0435\u043d\u0430\u0432\u0438\u0436\u0443 \u043c\u043e\u043d\u043e\u043b\u0438\u0442, \u044f \u043f\u0440\u043e\u0441\u0442\u043e \u0437\u0430\u0431\u043e\u0447\u0443\u0441\u044c \u043e\u0431 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u0438\u00bb. \u041c\u044b \u0434\u0430\u0436\u0435 \u043d\u0430\u0431\u043b\u044e\u0434\u0430\u043b\u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u0439 \u043e\u0442 \u043c\u0438\u043a\u0440\u043e\u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432 \u043e\u0431\u0440\u0430\u0442\u043d\u043e \u043a \u043c\u043e\u043d\u043e\u043b\u0438\u0442\u0443. \u041f\u0440\u0438 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0435 \u043e\u0442 \u043e\u0434\u043d\u043e\u0433\u043e \u0431\u043e\u043b\u044c\u0448\u043e\u0433\u043e [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-75891","post","type-post","status-publish","format-standard","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041a\u0430\u0436\u0435\u0442\u0441\u044f, \u043f\u0438\u043a \u0445\u0430\u0439\u043f\u0430 \u043f\u043e \u043c\u0438\u043a\u0440\u043e\u0441\u0435\u0440\u0432\u0438\u0441\u0430\u043c \u043e\u0441\u0442\u0430\u043b\u0441\u044f \u043f\u043e\u0437\u0430\u0434\u0438. \u041c\u044b \u0443\u0436\u0435 \u043d\u0435 \u0447\u0438\u0442\u0430\u0435\u043c \u043f\u043e \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0440\u0430\u0437 \u0432 \u043d\u0435\u0434\u0435\u043b\u044e \u043f\u043e\u0441\u0442\u044b \u00ab\u041a\u0430\u043a \u044f \u043f\u0435\u0440\u0435\u043d\u0435\u0441 \u0441\u0432\u043e\u0439 \u043c\u043e\u043d\u043e\u043b\u0438\u0442 \u043d\u0430 150 \u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432\u00bb.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/en\/blog\/administrirovanie\/vernite-mne-moj-monolit\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0412\u0435\u0440\u043d\u0438\u0442\u0435 \u043c\u043d\u0435 \u043c\u043e\u0439 \u043c\u043e\u043d\u043e\u043b\u0438\u0442 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041a\u0430\u0436\u0435\u0442\u0441\u044f, \u043f\u0438\u043a \u0445\u0430\u0439\u043f\u0430 \u043f\u043e \u043c\u0438\u043a\u0440\u043e\u0441\u0435\u0440\u0432\u0438\u0441\u0430\u043c \u043e\u0441\u0442\u0430\u043b\u0441\u044f \u043f\u043e\u0437\u0430\u0434\u0438. \u041c\u044b \u0443\u0436\u0435 \u043d\u0435 \u0447\u0438\u0442\u0430\u0435\u043c \u043f\u043e \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0440\u0430\u0437 \u0432 \u043d\u0435\u0434\u0435\u043b\u044e \u043f\u043e\u0441\u0442\u044b \u00ab\u041a\u0430\u043a \u044f \u043f\u0435\u0440\u0435\u043d\u0435\u0441 \u0441\u0432\u043e\u0439 \u043c\u043e\u043d\u043e\u043b\u0438\u0442 \u043d\u0430 150 \u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432\u00bb.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/en\/blog\/administrirovanie\/vernite-mne-moj-monolit\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-03-28T23:43:45+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-03-28T23:43:45+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Give me back my monolith | ProHoster","description":"It seems the peak hype for microservices is behind us. We no longer read multiple posts a week titled 'How I migrated my monolith to 150 services.'","canonical_url":"https:\/\/prohoster.info\/en\/blog\/administrirovanie\/vernite-mne-moj-monolit","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"en_US","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0412\u0435\u0440\u043d\u0438\u0442\u0435 \u043c\u043d\u0435 \u043c\u043e\u0439 \u043c\u043e\u043d\u043e\u043b\u0438\u0442 | ProHoster","og:description":"\u041a\u0430\u0436\u0435\u0442\u0441\u044f, \u043f\u0438\u043a \u0445\u0430\u0439\u043f\u0430 \u043f\u043e \u043c\u0438\u043a\u0440\u043e\u0441\u0435\u0440\u0432\u0438\u0441\u0430\u043c \u043e\u0441\u0442\u0430\u043b\u0441\u044f \u043f\u043e\u0437\u0430\u0434\u0438. \u041c\u044b \u0443\u0436\u0435 \u043d\u0435 \u0447\u0438\u0442\u0430\u0435\u043c \u043f\u043e \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0440\u0430\u0437 \u0432 \u043d\u0435\u0434\u0435\u043b\u044e \u043f\u043e\u0441\u0442\u044b \u00ab\u041a\u0430\u043a \u044f \u043f\u0435\u0440\u0435\u043d\u0435\u0441 \u0441\u0432\u043e\u0439 \u043c\u043e\u043d\u043e\u043b\u0438\u0442 \u043d\u0430 150 \u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432\u00bb.","og:url":"https:\/\/prohoster.info\/en\/blog\/administrirovanie\/vernite-mne-moj-monolit","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-03-28T23:43:45+00:00","article:modified_time":"2020-03-28T23:43:45+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"75891","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 17:47:28","updated":"2022-10-02 16:16:33","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts\/75891","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/comments?post=75891"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts\/75891\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/media?parent=75891"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/categories?post=75891"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/tags?post=75891"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}