{"id":2161,"date":"2019-12-27T03:02:45","date_gmt":"2019-12-27T00:02:45","guid":{"rendered":"http:\/\/kusuaks7\/?p=1766"},"modified":"2024-02-01T17:38:13","modified_gmt":"2024-02-01T17:38:13","slug":"what-are-microservices","status":"publish","type":"post","link":"https:\/\/www.experfy.com\/blog\/software-ux-ui\/what-are-microservices\/","title":{"rendered":"What Are Microservices?"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"2161\" class=\"elementor elementor-2161\" data-elementor-post-type=\"post\">\n\t\t\t\t\t\t<section class=\"has_eae_slider elementor-section elementor-top-section elementor-element elementor-element-3ef46865 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"3ef46865\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"has_eae_slider elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-7fb6db4f\" data-id=\"7fb6db4f\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-1df632dd elementor-widget elementor-widget-text-editor\" data-id=\"1df632dd\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\tThere was a time when programmers would write big programs. And those big programs \u2013 probably written in COBOL \u2013 would get information, display information, update information, and produce a printed file showing what was done to the file and the final result.\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-ee120e7 elementor-widget elementor-widget-text-editor\" data-id=\"ee120e7\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\tAnd quite often, another team in the organization would like a similar program written for them. And the programmer would disappear for a week or so, do his magic (and it was usually a man in those days), and come back with a new application that he had written for this other team. And everyone went home happy.\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-d7af437 elementor-widget elementor-widget-text-editor\" data-id=\"d7af437\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\tThe truth was that most of the functions for the two applications were pretty similar, and so the programmer would look at his old program and copy the bits that he needed for the new program and re-use them. And that idea gets us quite a long way towards describing microservices. The big difference is that, nowadays, the first application would be broken down into discrete components called microservices. And the new program (and every future program that needed to) would re-use the microservice that already existed.\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c56977f elementor-widget elementor-widget-text-editor\" data-id=\"c56977f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\tObviously, each microservice needs to be network connected so that it can be called from elsewhere. It\u2019s modular in structure. And it should work in a continuous delivery software environment. What that means is that a change to a small part of the application requires the rebuilding and redeploying of only one (or a small number of services).\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-eb75ddf elementor-widget elementor-widget-text-editor\" data-id=\"eb75ddf\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\tThe microservice architectural style can be thought of as a way of building applications as suites of services. Each service is independently deployable and scalable, and each service provides a firm module boundary, which means that different services can be written in different programming languages, can use different data storage technologies, and can be managed by different teams. Each service runs in its own process and communicates using lightweight mechanisms, often an HTTP resource API. These services are built around business capabilities and independently deployable using fully-automated deployment machinery.\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b812cf2 elementor-widget elementor-widget-text-editor\" data-id=\"b812cf2\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\tYou can see the benefits from my old COBOL programmer model, but what other benefits are there from using microservices. Firstly, because microservices are designed to act independently, they are naturally consistent with agile (DevOps) principles. Secondly, it\u2019s very easy to change from one microservice to a new, better one, without affecting the whole application. Each service is changed, tested, and then deployed when it\u2019s proven to be working. This makes developing new applications so much faster. And this leads to the third benefit of improved application quality. The fourth benefit comes in terms of scalability.\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4046a02 elementor-widget elementor-widget-text-editor\" data-id=\"4046a02\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\tIf you fancy having a go at creating microservices, what do you need to bear in mind? Firstly, each microservice performs only one job. And it needs to be very good at that job. Secondly, all communication between microservices should be carried out using REST APIs and message brokers. All communication from service to service must be through the service API or must use an explicit communication pattern. Microservices can be continuously integrated and continuously delivered. That results in some microservices being updated more frequently than others. Lastly, to make the application resilient, each microservice can be scaled as much as is needed. Not all microservices need to be scaled by the same amount.\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-d197625 elementor-widget elementor-widget-text-editor\" data-id=\"d197625\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\tWhat can possibly go wrong? One answer is that you make your microservices are too small (these are sometimes called nanoservices) that you use more time etc connecting the parts together than you gain from using the microservices.\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-cf4066b elementor-widget elementor-widget-text-editor\" data-id=\"cf4066b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\tIf this all sounds a bit \u2018cloud-y\u2019, you can run microservices on mainframes. There\u2019s a Redbook called \u201cHow Walmart Became Cloud Services Provider with IBM CICS\u201d. This highlights the role of microservices in z\/OS CICS. In one part it says:\n\u201cMicroservices architecture is becoming the standard approach for developing, deploying, and managing applications and application components. Small teams work independently and use their technology of choice to create services that are accessed by easily consumed application programming interfaces (APIs). CICS provides the multi-language run time for such teams on a robust, secure, highly scalable z Systems platform. The resulting microservices are stand-alone pieces of code, each with a finite function that can be accessed by anyone on the team and independently deployed. The APIs can call other services or be used alone. It is all about the service that is faster, cheaper, and more flexible than traditional IT provided\u201d.\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-cba1b7a elementor-widget elementor-widget-text-editor\" data-id=\"cba1b7a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\nSo, microservices are for the mainframe. They do engage in the API economy, and they are often associated with things like z\/OS Connect EE (which provides a framework that enables z\/OS-based programs and data to participate fully in the new API economy for mobile and cloud applications) and API Connect (an API management solution that enables automated API creation, simple discovery of assets, self-service access for developers, and built-in security and governance).\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-50e05c7 elementor-widget elementor-widget-text-editor\" data-id=\"50e05c7\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\tWhere else will you have come across the idea of microservices? You\u2019ll hear the word Kubernetes. If you\u2019re unfamiliar with it, it\u2019s an open-source container-orchestration system for automating application deployment, scaling, and management. Originally it was designed by Google, and is now maintained by the Cloud Native Computing Foundation. The other name that pops up is Netflix. They developed a microservice framework to support their internal applications, and then open-sourced different parts of that framework. In fact, the tools were later re-implemented as Spring-based tools under the umbrella of the Spring Cloud project. One thing to note is that the Spring Cloud ecosystem uses only Java-based technologies, whereas Kubernetes is a polyglot runtime platform.\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-a28d841 elementor-widget elementor-widget-text-editor\" data-id=\"a28d841\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\nTo summarize, the main benefits for microservices are:\n<ul>\n \t<li>Their small size enables developers to be most productive.<\/li>\n \t<li>It\u2019s easy to comprehend and test each service.<\/li>\n \t<li>You can correctly handle failure of any dependent service.<\/li>\n \t<li>They reduce impact of correlated failures.<\/li>\n<\/ul>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-75b2dd0 elementor-widget elementor-widget-text-editor\" data-id=\"75b2dd0\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\tThere are negatives to using microservices. The issues that are usually highlighted are around network latency, message formats, load balancing and fault tolerance. There can also be issues with increased network traffic that can result in slower than expected performance.\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-47d8bb2 elementor-widget elementor-widget-text-editor\" data-id=\"47d8bb2\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\tI can guarantee that you\u2019ll be hearing a lot more about them on mainframes and elsewhere.\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>There was a time when programmers would write big programs. And those big programs \u2013 probably written in COBOL \u2013 would get information, display information, update information, and produce a printed file showing what was done to the file and the final result. And quite often, another team in the organization would like a similar<\/p>\n","protected":false},"author":696,"featured_media":3173,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"content-type":"","footnotes":""},"categories":[200],"tags":[106],"ppma_author":[3497],"class_list":["post-2161","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-software-ux-ui","tag-software"],"authors":[{"term_id":3497,"user_id":696,"is_guest":0,"slug":"trevor-eddolls","display_name":"Trevor Eddolls","avatar_url":"https:\/\/www.experfy.com\/blog\/wp-content\/uploads\/2020\/04\/medium_c0bcd8d5-35e9-492d-8082-c20fbfbd588a-150x150.jpg","user_url":"https:\/\/itech-ed.com\/%20","last_name":"Eddolls","first_name":"Trevor","job_title":"","description":"Trevor Eddolls is Head at the iTech-Ed Group, which comprises the mainframe and IT consultancy. A popular speaker and blogger, he is also clinical director at iTech-Ed Hypnotherapy, head of IT for the AfSFH Exec., and director of training for SFH+. He is also editorial director for the Arcati Mainframe Yearbook, and published three mainframe-related books and six books on hypnotherapy."}],"_links":{"self":[{"href":"https:\/\/www.experfy.com\/blog\/wp-json\/wp\/v2\/posts\/2161","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.experfy.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.experfy.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.experfy.com\/blog\/wp-json\/wp\/v2\/users\/696"}],"replies":[{"embeddable":true,"href":"https:\/\/www.experfy.com\/blog\/wp-json\/wp\/v2\/comments?post=2161"}],"version-history":[{"count":5,"href":"https:\/\/www.experfy.com\/blog\/wp-json\/wp\/v2\/posts\/2161\/revisions"}],"predecessor-version":[{"id":35820,"href":"https:\/\/www.experfy.com\/blog\/wp-json\/wp\/v2\/posts\/2161\/revisions\/35820"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.experfy.com\/blog\/wp-json\/wp\/v2\/media\/3173"}],"wp:attachment":[{"href":"https:\/\/www.experfy.com\/blog\/wp-json\/wp\/v2\/media?parent=2161"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.experfy.com\/blog\/wp-json\/wp\/v2\/categories?post=2161"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.experfy.com\/blog\/wp-json\/wp\/v2\/tags?post=2161"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.experfy.com\/blog\/wp-json\/wp\/v2\/ppma_author?post=2161"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}