{"id":7491,"date":"2017-07-06T07:00:58","date_gmt":"2017-07-06T15:00:58","guid":{"rendered":"http:\/\/formtek.com\/blog\/?p=7491"},"modified":"2017-05-20T16:19:07","modified_gmt":"2017-05-21T00:19:07","slug":"microservices-greater-agility-and-flexibility-at-the-cost-of-greater-complexity","status":"publish","type":"post","link":"https:\/\/formtek.com\/blog\/microservices-greater-agility-and-flexibility-at-the-cost-of-greater-complexity\/","title":{"rendered":"Microservices: Greater Agility and Flexibility at the Cost of Greater Complexity"},"content":{"rendered":"<p><a href=\"http:\/\/formtek.com\/blog\/business-process-buzzwords-now-soa-20\/\">SOA &#8211; Services Oriented Architecture<\/a> &#8212; has been around for some time. \u00a0And recently, it is coming back strong, but with a new name: Microservices and Containers. \u00a0The idea is that rather than create monolithic applications, create applications by bundling and packaging collections of small self-contained services.<\/p>\n<p>Big advantages of using an architecture designed with microservices include easier development and testing, and easier upgrades that may affect only a subset of all services that make up a complete application. \u00a0Or, at least, that&#8217;s the basic idea. <a href=\"https:\/\/www.slideshare.net\/gjuljo\/microservices-architectures-become-a-unicorn-like-netflix-twitter-and-hailo\">Companies like<\/a> Amazon, Netflix and Twitter all attribute some of their success to\u00a0being able to easily scale with a platform built with a microservices architecture.<\/p>\n<p>Things may not always work out as well in practice though. \u00a0For example, recently <a href=\"http:\/\/sdtimes.com\/the-truth-about-microservices\/\">SDTimes reported John Frizelle<\/a> discuss problems that frequently come up when development groups first try implementing microservices.<\/p>\n<p><strong>Development Issues.<\/strong> If not designed well, microservices can have interdepencies that\u00a0can actually cause \u00a0more maintenance and development issues. Changing one may trigger a cascade of changes that need to be made across other services. \u00a0Microservices need to be versioned and identifying which sets of versions are compatible.<\/p>\n<p><strong>Test Issues.<\/strong> Because microservices are tiny, testing should be well contained and straightforward. \u00a0But what often happens\u00a0is that testing expands well beyond the scope of just the microservice that is being tested &#8212; it points out that not just the &#8216;unit test&#8217; of the microservice is important, but also the interoperability of all the services within an application.<\/p>\n<p><strong>Complexity.<\/strong> Maybe the biggest challenge of working with microservices is their complexity. \u00a0The use of microservices introduces a lot of moving parts. \u00a0It&#8217;s necessary to monitor the health of all the individual services of an application.<\/p>\n<p><a href=\"https:\/\/developer.ibm.com\/wasdev\/blog\/2016\/10\/19\/meet-the-liberty-developers-kate-stanley\/\">Kate Stanley<\/a>, software engineer at IBM UK, <a href=\"http:\/\/www.zdnet.com\/article\/microservices-the-latest-twist-in-distributed-computing-but-with-a-twist\/\">said that<\/a> &#8220;the thing we haven&#8217;t seen before is we&#8217;re seeing more and more people iterate faster and deliver faster. It&#8217;s no longer a case of bring something new out every year. You need to bring out every week or every hour even. Maybe the complexity the system added wasn&#8217;t worth the reward that it got for me to move faster. Now the rewards are greater. So it&#8217;s worth taking on the complexity.&#8221;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/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-greater-agility-and-flexibility-at-the-cost-of-greater-complexity%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-greater-agility-and-flexibility-at-the-cost-of-greater-complexity%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-greater-agility-and-flexibility-at-the-cost-of-greater-complexity%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-greater-agility-and-flexibility-at-the-cost-of-greater-complexity%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-greater-agility-and-flexibility-at-the-cost-of-greater-complexity%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-greater-agility-and-flexibility-at-the-cost-of-greater-complexity%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-greater-agility-and-flexibility-at-the-cost-of-greater-complexity%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-greater-agility-and-flexibility-at-the-cost-of-greater-complexity%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-greater-agility-and-flexibility-at-the-cost-of-greater-complexity%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-greater-agility-and-flexibility-at-the-cost-of-greater-complexity%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-greater-agility-and-flexibility-at-the-cost-of-greater-complexity%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-greater-agility-and-flexibility-at-the-cost-of-greater-complexity%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-greater-agility-and-flexibility-at-the-cost-of-greater-complexity%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>SOA &#8211; Services Oriented Architecture &#8212; has been around for some time. \u00a0And recently, it is coming back strong, but with a new name: Microservices and Containers. \u00a0The idea is that rather than create monolithic applications, create applications by bundling<span class=\"ellipsis\">&hellip;<\/span><\/p>\n<div class=\"read-more\"><a href=\"https:\/\/formtek.com\/blog\/microservices-greater-agility-and-flexibility-at-the-cost-of-greater-complexity\/\">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":[87],"tags":[],"class_list":["post-7491","post","type-post","status-publish","format-standard","hentry","category-microservices"],"_links":{"self":[{"href":"https:\/\/formtek.com\/blog\/wp-json\/wp\/v2\/posts\/7491","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=7491"}],"version-history":[{"count":2,"href":"https:\/\/formtek.com\/blog\/wp-json\/wp\/v2\/posts\/7491\/revisions"}],"predecessor-version":[{"id":7493,"href":"https:\/\/formtek.com\/blog\/wp-json\/wp\/v2\/posts\/7491\/revisions\/7493"}],"wp:attachment":[{"href":"https:\/\/formtek.com\/blog\/wp-json\/wp\/v2\/media?parent=7491"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/formtek.com\/blog\/wp-json\/wp\/v2\/categories?post=7491"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/formtek.com\/blog\/wp-json\/wp\/v2\/tags?post=7491"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}