{"id":6780,"date":"2016-11-08T07:00:13","date_gmt":"2016-11-08T15:00:13","guid":{"rendered":"http:\/\/formtek.com\/blog\/?p=6780"},"modified":"2016-10-06T07:55:09","modified_gmt":"2016-10-06T15:55:09","slug":"microservices-the-ultimate-architecture-or-distributed-pain","status":"publish","type":"post","link":"https:\/\/formtek.com\/blog\/microservices-the-ultimate-architecture-or-distributed-pain\/","title":{"rendered":"Microservices: The Ultimate Architecture or Distributed Pain?"},"content":{"rendered":"<p>30 percent of Java developers are already architecting systems based on microservices and another 20 percent are piloting microservices for ultimate deployment, according to <a href=\"http:\/\/www.zdnet.com\/article\/survey-of-2000-java-and-scala-developers-reveals-shake-up-in-enterprise-application-architecture\/\">a survey by Lightbend<\/a>.<\/p>\n<p>What are <a href=\"https:\/\/dzone.com\/articles\/breaking-the-monolith-the-benefits-of-a-microservi\">some of the advantages of microservices<\/a>?<\/p>\n<ul>\n<li><strong>Scalability<\/strong>\u00a0&#8211; In an application architected with microservices, as load increases, only those heavy-use elements of the entire application need to be scaled up.<\/li>\n<li><strong>Simplicity<\/strong>\u00a0&#8211; Each microservice is autonomous, can be tested independently and doesn&#8217;t require a complex environment for development.<\/li>\n<li><strong>Economy<\/strong>\u00a0&#8211; Because maintenance is easier and faster, fewer developers and support staff are needed.<\/li>\n<li><strong>Scoped &#8211;<\/strong> Upgrades and repairs can be limited in scope. If something breaks only that one microservice needs to be repaired and then redeployed rather than the entire system. This approach also enables more frequent and incremental upgrades.<\/li>\n<\/ul>\n<p>But that&#8217;s not all. \u00a0<a href=\"https:\/\/gcn.com\/articles\/2016\/09\/30\/esb-microservices.aspx\">Other benefits<\/a>\u00a0of a microservice architecture include:<\/p>\n<ul>\n<li><strong>Polyglot programming<\/strong> &#8211; The platform is language agnostic and systems can easily be built up from individual services running on .Net, Java and Spring, or other languages.<\/li>\n<li><strong>Hot swapability<\/strong> &#8211; Replacing, deprecating or adding new microservices is easy to do and can be a life-saver when trying to fix mission critical problems<\/li>\n<\/ul>\n<p>So, it all sounds good. \u00a0But, one big problem is managing and monitoring many independent services. \u00a0The complexity of it all grows very quickly. \u00a0If something goes wrong, where do you know to look to diagnose the problem?<\/p>\n<p><a href=\"http:\/\/www.oreilly.com\/pub\/au\/5489\">Bert Ertman<\/a>, a fellow at Luminis, <a href=\"http:\/\/searchcloudapplications.techtarget.com\/news\/450303884\/A-microservices-architecture-is-for-everyone-including-you\">said that <\/a>&#8220;the first thing to realize about microservices is that it is all about distributed computing. With so many moving parts there will always be something that breaks. Leveraging tools and techniques to do distribution and asynchronous programming models was never easier than today, but can you also wrap your head around those things? Understanding, debugging and solving issues are exponentially harder in a distributed environment than in the traditional world of running everything in a big application server. My key message is to explicitly design for failure from the start and treat as a fact of life that things break. Make sure you are prepared and have your alternatives ready, both in code and on the infrastructural level.&#8221;<\/p>\n<div class=\"lightsocial_container\"><div class=\"lightsocial_element\"><a class=\"lightsocial_a\" href=\"http:\/\/digg.com\/submit?url=https%3A%2F%2Fformtek.com%2Fblog%2Fmicroservices-the-ultimate-architecture-or-distributed-pain%2F&amp;title=\" target=\"_blank\"><img decoding=\"async\" class=\"lightsocial_img\" src=\"https:\/\/formtek.com\/blog\/wp-content\/plugins\/light-social\/digg.png\" alt=\"Digg This\" title=\"Digg This\" \/><\/a><\/div><div class=\"lightsocial_element\"><a class=\"lightsocial_a\" href=\"http:\/\/www.reddit.com\/submit?url=https%3A%2F%2Fformtek.com%2Fblog%2Fmicroservices-the-ultimate-architecture-or-distributed-pain%2F&amp;title=\" target=\"_blank\"><img decoding=\"async\" class=\"lightsocial_img\" src=\"https:\/\/formtek.com\/blog\/wp-content\/plugins\/light-social\/reddit.png\" alt=\"Reddit This\" title=\"Reddit This\" \/><\/a><\/div><div class=\"lightsocial_element\"><a class=\"lightsocial_a\" href=\"http:\/\/www.stumbleupon.com\/submit?url=https%3A%2F%2Fformtek.com%2Fblog%2Fmicroservices-the-ultimate-architecture-or-distributed-pain%2F&amp;title=\" target=\"_blank\"><img decoding=\"async\" class=\"lightsocial_img\" src=\"https:\/\/formtek.com\/blog\/wp-content\/plugins\/light-social\/stumbleupon.png\" alt=\"Stumble Now!\" title=\"Stumble Now!\" \/><\/a><\/div><div class=\"lightsocial_element\"><a class=\"lightsocial_a\" href=\"http:\/\/buzz.yahoo.com\/buzz?targetUrl=https%3A%2F%2Fformtek.com%2Fblog%2Fmicroservices-the-ultimate-architecture-or-distributed-pain%2F&amp;headline=\" target=\"_blank\"><img decoding=\"async\" class=\"lightsocial_img\" src=\"https:\/\/formtek.com\/blog\/wp-content\/plugins\/light-social\/yahoo_buzz.png\" alt=\"Buzz This\" title=\"Buzz This\" \/><\/a><\/div><div class=\"lightsocial_element\"><a class=\"lightsocial_a\" href=\"http:\/\/www.dzone.com\/links\/add.html?title=&amp;url=https%3A%2F%2Fformtek.com%2Fblog%2Fmicroservices-the-ultimate-architecture-or-distributed-pain%2F\" target=\"_blank\"><img decoding=\"async\" class=\"lightsocial_img\" src=\"https:\/\/formtek.com\/blog\/wp-content\/plugins\/light-social\/dzone.png\" alt=\"Vote on DZone\" title=\"Vote on DZone\" \/><\/a><\/div><div class=\"lightsocial_element\"><a class=\"lightsocial_a\" href=\"http:\/\/www.facebook.com\/sharer.php?t=&amp;u=https%3A%2F%2Fformtek.com%2Fblog%2Fmicroservices-the-ultimate-architecture-or-distributed-pain%2F\" target=\"_blank\"><img decoding=\"async\" class=\"lightsocial_img\" src=\"https:\/\/formtek.com\/blog\/wp-content\/plugins\/light-social\/facebook.png\" alt=\"Share on Facebook\" title=\"Share on Facebook\" \/><\/a><\/div><div class=\"lightsocial_element\"><a class=\"lightsocial_a\" href=\"http:\/\/delicious.com\/save?title=&amp;url=https%3A%2F%2Fformtek.com%2Fblog%2Fmicroservices-the-ultimate-architecture-or-distributed-pain%2F\" target=\"_blank\"><img decoding=\"async\" class=\"lightsocial_img\" src=\"https:\/\/formtek.com\/blog\/wp-content\/plugins\/light-social\/delicious.png\" alt=\"Bookmark this on Delicious\" title=\"Bookmark this on Delicious\" \/><\/a><\/div><div class=\"lightsocial_element\"><a class=\"lightsocial_a\" href=\"http:\/\/www.dotnetkicks.com\/kick\/?title=&amp;url=https%3A%2F%2Fformtek.com%2Fblog%2Fmicroservices-the-ultimate-architecture-or-distributed-pain%2F\" target=\"_blank\"><img decoding=\"async\" class=\"lightsocial_img\" src=\"https:\/\/formtek.com\/blog\/wp-content\/plugins\/light-social\/dotnetkicks.png\" alt=\"Kick It on DotNetKicks.com\" title=\"Kick It on DotNetKicks.com\" \/><\/a><\/div><div class=\"lightsocial_element\"><a class=\"lightsocial_a\" href=\"http:\/\/dotnetshoutout.com\/Submit?title=&amp;url=https%3A%2F%2Fformtek.com%2Fblog%2Fmicroservices-the-ultimate-architecture-or-distributed-pain%2F\" target=\"_blank\"><img decoding=\"async\" class=\"lightsocial_img\" src=\"https:\/\/formtek.com\/blog\/wp-content\/plugins\/light-social\/dotnetshoutout.png\" alt=\"Shout it\" title=\"Shout it\" \/><\/a><\/div><div class=\"lightsocial_element\"><a class=\"lightsocial_a\" href=\"http:\/\/www.linkedin.com\/shareArticle?mini=true&amp;url=https%3A%2F%2Fformtek.com%2Fblog%2Fmicroservices-the-ultimate-architecture-or-distributed-pain%2F&amp;title=&amp;summary=&amp;source=\" target=\"_blank\"><img decoding=\"async\" class=\"lightsocial_img\" src=\"https:\/\/formtek.com\/blog\/wp-content\/plugins\/light-social\/linkedin.png\" alt=\"Share on LinkedIn\" title=\"Share on LinkedIn\" \/><\/a><\/div><div class=\"lightsocial_element\"><a class=\"lightsocial_a\" href=\"http:\/\/www.technorati.com\/faves?add=https%3A%2F%2Fformtek.com%2Fblog%2Fmicroservices-the-ultimate-architecture-or-distributed-pain%2F\" target=\"_blank\"><img decoding=\"async\" class=\"lightsocial_img\" src=\"https:\/\/formtek.com\/blog\/wp-content\/plugins\/light-social\/technorati.png\" alt=\"Bookmark this on Technorati\" title=\"Bookmark this on Technorati\" \/><\/a><\/div><div class=\"lightsocial_element\"><a class=\"lightsocial_a\" href=\"http:\/\/twitter.com\/home?status=Reading+https%3A%2F%2Fformtek.com%2Fblog%2Fmicroservices-the-ultimate-architecture-or-distributed-pain%2F\" target=\"_blank\"><img decoding=\"async\" class=\"lightsocial_img\" src=\"https:\/\/formtek.com\/blog\/wp-content\/plugins\/light-social\/twitter.png\" alt=\"Post on Twitter\" title=\"Post on Twitter\" \/><\/a><\/div><div class=\"lightsocial_element\"><a class=\"lightsocial_a\" href=\"http:\/\/www.google.com\/buzz\/post?url=https%3A%2F%2Fformtek.com%2Fblog%2Fmicroservices-the-ultimate-architecture-or-distributed-pain%2F\" target=\"_blank\"><img decoding=\"async\" class=\"lightsocial_img\" src=\"https:\/\/formtek.com\/blog\/wp-content\/plugins\/light-social\/google_buzz.png\" alt=\"Google Buzz (aka. Google Reader)\" title=\"Google Buzz (aka. Google Reader)\" \/><\/a><\/div><\/div>","protected":false},"excerpt":{"rendered":"<p>30 percent of Java developers are already architecting systems based on microservices and another 20 percent are piloting microservices for ultimate deployment, according to a survey by Lightbend. What are some of the advantages of microservices? Scalability\u00a0&#8211; In an application<span class=\"ellipsis\">&hellip;<\/span><\/p>\n<div class=\"read-more\"><a href=\"https:\/\/formtek.com\/blog\/microservices-the-ultimate-architecture-or-distributed-pain\/\">Read more &#8250;<\/a><\/div>\n<p><!-- end of .read-more --><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-6780","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/formtek.com\/blog\/wp-json\/wp\/v2\/posts\/6780","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/formtek.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/formtek.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/formtek.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/formtek.com\/blog\/wp-json\/wp\/v2\/comments?post=6780"}],"version-history":[{"count":0,"href":"https:\/\/formtek.com\/blog\/wp-json\/wp\/v2\/posts\/6780\/revisions"}],"wp:attachment":[{"href":"https:\/\/formtek.com\/blog\/wp-json\/wp\/v2\/media?parent=6780"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/formtek.com\/blog\/wp-json\/wp\/v2\/categories?post=6780"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/formtek.com\/blog\/wp-json\/wp\/v2\/tags?post=6780"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}