{"id":14008,"date":"2021-02-10T14:18:00","date_gmt":"2021-02-10T13:18:00","guid":{"rendered":"https:\/\/rafen.app\/uncategorized\/microservice-applications\/"},"modified":"2023-02-15T23:18:06","modified_gmt":"2023-02-15T22:18:06","slug":"microservice-applications","status":"publish","type":"post","link":"https:\/\/raf.edu.rs\/en\/subjects\/microservice-applications\/","title":{"rendered":"Microservice Applications"},"content":{"rendered":"<h5>Objectives and outcomes<\/h5>\n<p>Creating synchronous and asynchronous microservices. Creating DevOps streams for microservices and<br \/>\ntheir scalable implementation. Exposing microservice clusters as APIs. Acceptance of basic concepts of<br \/>\nmicroservice web applications. Practical application of the acquired knowledge to the development of a<br \/>\nrobust microservice application using the Spring Boot and Spring Cloud framework, Netflix OSS. Packing<br \/>\nthe application into Docker containers and defining the deployment pipeline. Theoretical review of<br \/>\nmicroservice orchestration (Docker Swarm, Kubernetes).<\/p>\n<h5>Lectures<\/h5>\n<p>Architecture and features of microservice applications. Steps in migrating from monolithic to microservice<br \/>\narchitecture. Cases of microservice use. Development of applications based on the &#8220;12-factor&#8221;<br \/>\nmethodology &#8211; best practices for the development of sustainable, scalable and portable applications.<br \/>\nComparison of microservice architectures, SOA and monolithic application architectures. Protocols,<br \/>\nparadigms and patterns on which microservice architecture is based: communication via HTTP protocol,<br \/>\nREST API, declarative HTTP clients, Message Broker, Service Discovery, API Gateway, Circuit Breaker.<br \/>\nDifferent implementations of microservices &#8211; domain-oriented architectures (Data-driven), event-driven<br \/>\nprogramming. Distributed database management. Log aggregation and<br \/>\nunderstanding them. Security of microservice-based applications. Use of microservices in IoT<br \/>\napplications. Design of IoT middleware using microservices.<\/p>\n<h5>Practical classes<\/h5>\n<p>DevOps development culture and practice of continuous integration and continuous deployment (CI \/<br \/>\nCD). Introduction to tools for version control (Git, Jenkins). Introduction to<br \/>\ndifferent testing strategies (Unit testing, Integration testing, Canary Testing, A \/ B testing). Isolation of<br \/>\napplications in Docker containers (writing Dockerfile, Docker image register), orchestration of containers,<br \/>\nscaling of microservice applications. Working with databases in microservice architecture including<br \/>\nrelational and non-relational databases. Using the Hibernate ORM tool for data persistence.<br \/>\nCommunication among microservices, and the use of messaging systems. Development of specific<br \/>\nmicroservices for certain applications in IoT.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Objectives and outcomes Creating synchronous and asynchronous microservices. Creating DevOps streams for microservices and their scalable implementation. Exposing microservice clusters as APIs. Acceptance of basic concepts of microservice web applications. Practical application of the acquired &#8230; <a title=\"Microservice Applications\" class=\"read-more\" href=\"https:\/\/raf.edu.rs\/en\/subjects\/microservice-applications\/\" aria-label=\"More on Microservice Applications\">Read more<\/a><\/p>\n <a href=\"https:\/\/raf.edu.rs\/en\/subjects\/microservice-applications\/\" class=\"more-link\" title=\"Read more\">Read more<\/a>","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[199],"tags":[],"class_list":["post-14008","post","type-post","status-publish","format-standard","hentry","category-subjects"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.7 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Microservice Applications - School of Computing<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/raf.edu.rs\/en\/subjects\/microservice-applications\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Microservice Applications - School of Computing\" \/>\n<meta property=\"og:description\" content=\"Objectives and outcomes Creating synchronous and asynchronous microservices. Creating DevOps streams for microservices and their scalable implementation. Exposing microservice clusters as APIs. Acceptance of basic concepts of microservice web applications. Practical application of the acquired ... Read more\" \/>\n<meta property=\"og:url\" content=\"https:\/\/raf.edu.rs\/en\/subjects\/microservice-applications\/\" \/>\n<meta property=\"og:site_name\" content=\"School of Computing\" \/>\n<meta property=\"article:published_time\" content=\"2021-02-10T13:18:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-02-15T22:18:06+00:00\" \/>\n<meta name=\"author\" content=\"RAF Admin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"RAF Admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/raf.edu.rs\\\/en\\\/subjects\\\/microservice-applications\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/raf.edu.rs\\\/en\\\/subjects\\\/microservice-applications\\\/\"},\"author\":{\"name\":\"RAF Admin\",\"@id\":\"https:\\\/\\\/raf.edu.rs\\\/en\\\/#\\\/schema\\\/person\\\/4e2166c781f2802c67414a1578c66a43\"},\"headline\":\"Microservice Applications\",\"datePublished\":\"2021-02-10T13:18:00+00:00\",\"dateModified\":\"2023-02-15T22:18:06+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/raf.edu.rs\\\/en\\\/subjects\\\/microservice-applications\\\/\"},\"wordCount\":276,\"publisher\":{\"@id\":\"https:\\\/\\\/raf.edu.rs\\\/en\\\/#organization\"},\"articleSection\":[\"Subjects\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/raf.edu.rs\\\/en\\\/subjects\\\/microservice-applications\\\/\",\"url\":\"https:\\\/\\\/raf.edu.rs\\\/en\\\/subjects\\\/microservice-applications\\\/\",\"name\":\"Microservice Applications - School of Computing\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/raf.edu.rs\\\/en\\\/#website\"},\"datePublished\":\"2021-02-10T13:18:00+00:00\",\"dateModified\":\"2023-02-15T22:18:06+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/raf.edu.rs\\\/en\\\/subjects\\\/microservice-applications\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/raf.edu.rs\\\/en\\\/subjects\\\/microservice-applications\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/raf.edu.rs\\\/en\\\/subjects\\\/microservice-applications\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Homepage\",\"item\":\"https:\\\/\\\/raf.edu.rs\\\/en\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Subjects\",\"item\":\"https:\\\/\\\/raf.edu.rs\\\/en\\\/subjects\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Microservice Applications\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/raf.edu.rs\\\/en\\\/#website\",\"url\":\"https:\\\/\\\/raf.edu.rs\\\/en\\\/\",\"name\":\"School of Computing\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/raf.edu.rs\\\/en\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/raf.edu.rs\\\/en\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/raf.edu.rs\\\/en\\\/#organization\",\"name\":\"School of Computing\",\"url\":\"https:\\\/\\\/raf.edu.rs\\\/en\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/raf.edu.rs\\\/en\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/raf.edu.rs\\\/en\\\/wp-content\\\/uploads\\\/2023\\\/02\\\/cropped-raf-engleski.png\",\"contentUrl\":\"https:\\\/\\\/raf.edu.rs\\\/en\\\/wp-content\\\/uploads\\\/2023\\\/02\\\/cropped-raf-engleski.png\",\"width\":400,\"height\":66,\"caption\":\"School of Computing\"},\"image\":{\"@id\":\"https:\\\/\\\/raf.edu.rs\\\/en\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/raf.edu.rs\\\/en\\\/#\\\/schema\\\/person\\\/4e2166c781f2802c67414a1578c66a43\",\"name\":\"RAF Admin\",\"sameAs\":[\"https:\\\/\\\/raf.app\"],\"url\":\"https:\\\/\\\/raf.edu.rs\\\/en\\\/author\\\/rafadmin\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Microservice Applications - School of Computing","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/raf.edu.rs\/en\/subjects\/microservice-applications\/","og_locale":"en_US","og_type":"article","og_title":"Microservice Applications - School of Computing","og_description":"Objectives and outcomes Creating synchronous and asynchronous microservices. Creating DevOps streams for microservices and their scalable implementation. Exposing microservice clusters as APIs. Acceptance of basic concepts of microservice web applications. Practical application of the acquired ... Read more","og_url":"https:\/\/raf.edu.rs\/en\/subjects\/microservice-applications\/","og_site_name":"School of Computing","article_published_time":"2021-02-10T13:18:00+00:00","article_modified_time":"2023-02-15T22:18:06+00:00","author":"RAF Admin","twitter_card":"summary_large_image","twitter_misc":{"Written by":"RAF Admin","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/raf.edu.rs\/en\/subjects\/microservice-applications\/#article","isPartOf":{"@id":"https:\/\/raf.edu.rs\/en\/subjects\/microservice-applications\/"},"author":{"name":"RAF Admin","@id":"https:\/\/raf.edu.rs\/en\/#\/schema\/person\/4e2166c781f2802c67414a1578c66a43"},"headline":"Microservice Applications","datePublished":"2021-02-10T13:18:00+00:00","dateModified":"2023-02-15T22:18:06+00:00","mainEntityOfPage":{"@id":"https:\/\/raf.edu.rs\/en\/subjects\/microservice-applications\/"},"wordCount":276,"publisher":{"@id":"https:\/\/raf.edu.rs\/en\/#organization"},"articleSection":["Subjects"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/raf.edu.rs\/en\/subjects\/microservice-applications\/","url":"https:\/\/raf.edu.rs\/en\/subjects\/microservice-applications\/","name":"Microservice Applications - School of Computing","isPartOf":{"@id":"https:\/\/raf.edu.rs\/en\/#website"},"datePublished":"2021-02-10T13:18:00+00:00","dateModified":"2023-02-15T22:18:06+00:00","breadcrumb":{"@id":"https:\/\/raf.edu.rs\/en\/subjects\/microservice-applications\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/raf.edu.rs\/en\/subjects\/microservice-applications\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/raf.edu.rs\/en\/subjects\/microservice-applications\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Homepage","item":"https:\/\/raf.edu.rs\/en\/"},{"@type":"ListItem","position":2,"name":"Subjects","item":"https:\/\/raf.edu.rs\/en\/subjects\/"},{"@type":"ListItem","position":3,"name":"Microservice Applications"}]},{"@type":"WebSite","@id":"https:\/\/raf.edu.rs\/en\/#website","url":"https:\/\/raf.edu.rs\/en\/","name":"School of Computing","description":"","publisher":{"@id":"https:\/\/raf.edu.rs\/en\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/raf.edu.rs\/en\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/raf.edu.rs\/en\/#organization","name":"School of Computing","url":"https:\/\/raf.edu.rs\/en\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/raf.edu.rs\/en\/#\/schema\/logo\/image\/","url":"https:\/\/raf.edu.rs\/en\/wp-content\/uploads\/2023\/02\/cropped-raf-engleski.png","contentUrl":"https:\/\/raf.edu.rs\/en\/wp-content\/uploads\/2023\/02\/cropped-raf-engleski.png","width":400,"height":66,"caption":"School of Computing"},"image":{"@id":"https:\/\/raf.edu.rs\/en\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/raf.edu.rs\/en\/#\/schema\/person\/4e2166c781f2802c67414a1578c66a43","name":"RAF Admin","sameAs":["https:\/\/raf.app"],"url":"https:\/\/raf.edu.rs\/en\/author\/rafadmin\/"}]}},"_links":{"self":[{"href":"https:\/\/raf.edu.rs\/en\/wp-json\/wp\/v2\/posts\/14008","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/raf.edu.rs\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/raf.edu.rs\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/raf.edu.rs\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/raf.edu.rs\/en\/wp-json\/wp\/v2\/comments?post=14008"}],"version-history":[{"count":3,"href":"https:\/\/raf.edu.rs\/en\/wp-json\/wp\/v2\/posts\/14008\/revisions"}],"predecessor-version":[{"id":15370,"href":"https:\/\/raf.edu.rs\/en\/wp-json\/wp\/v2\/posts\/14008\/revisions\/15370"}],"wp:attachment":[{"href":"https:\/\/raf.edu.rs\/en\/wp-json\/wp\/v2\/media?parent=14008"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/raf.edu.rs\/en\/wp-json\/wp\/v2\/categories?post=14008"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/raf.edu.rs\/en\/wp-json\/wp\/v2\/tags?post=14008"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}