{"id":15595,"date":"2018-08-30T15:32:08","date_gmt":"2018-08-30T13:32:08","guid":{"rendered":"https:\/\/akite.net\/architetture-cloud-e-microservizi\/"},"modified":"2023-07-07T11:19:24","modified_gmt":"2023-07-07T09:19:24","slug":"cloud-architectures-and-microservices","status":"publish","type":"post","link":"https:\/\/akite.net\/en\/cloud-architectures-and-microservices\/","title":{"rendered":"Cloud Architectures and MicroServices."},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"15595\" class=\"elementor elementor-15595\">\n\t\t\t\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-49036492 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"49036492\" data-element_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=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-780f1387\" data-id=\"780f1387\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t\t\t<div class=\"elementor-element elementor-element-762b2fbc elementor-widget elementor-widget-text-editor\" data-id=\"762b2fbc\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<style>\/*! elementor - v3.16.0 - 20-09-2023 *\/\n.elementor-widget-text-editor.elementor-drop-cap-view-stacked .elementor-drop-cap{background-color:#69727d;color:#fff}.elementor-widget-text-editor.elementor-drop-cap-view-framed .elementor-drop-cap{color:#69727d;border:3px solid;background-color:transparent}.elementor-widget-text-editor:not(.elementor-drop-cap-view-default) .elementor-drop-cap{margin-top:8px}.elementor-widget-text-editor:not(.elementor-drop-cap-view-default) .elementor-drop-cap-letter{width:1em;height:1em}.elementor-widget-text-editor .elementor-drop-cap{float:left;text-align:center;line-height:1;font-size:50px}.elementor-widget-text-editor .elementor-drop-cap-letter{display:inline-block}<\/style>\t\t\t\t\n<p style=\"text-align: justify;\">Architecture, whether applied to software or buildings, is the link between aspirations and technology, both in continuous evolution. Internet and Cloud Computing have triggered a radical change in our civilization, both in terms of personal relationships and in the way of doing business, so it is inevitable to move to new IT architectures.<\/p>\n<p style=\"text-align: justify;\">One of the main differences between traditional monolithic software applications and those designed specifically for the Cloud is the decomposition <strong>into loosely coupled services<\/strong>. A service is an autonomous and cohesive set of functionalities exposed through API (Application Programming Interfaces) that cooperates through asynchronous messages (such as email) with other services and with users, even from different companies, according to the principle of maximum hardware and software sharing called &#8220;multi-tenancy&#8221;. This new architecture ensures maximum scalability and efficiency because at all times each individual service can use the number of machines necessary to ensure the correct service level (SLA) without any resource and energy waste. Moreover, the elastic coupling through message queues allows each service to work at maximum capacity without obstacles from outside and at the same time compensating peaks and valleys in the number of requests generated by users.<\/p>\n<p style=\"text-align: justify;\">Another modern Cloud Architecture trend is <strong>distributed computing<\/strong>, applicable at various levels. Slogans as &#8220;Intelligent Cloud + Intelligent Edge&#8221; and &#8220;Edge Computing&#8221; represent the implementation at the highest level. For example, in the case of a retail system such as <strong>aKite,<\/strong> the Point of Sale is an App that can work without interruptions either connected or disconnected from the Internet. The power of any Tablet or PC is sufficient to manage the normal sales activities locally and collaborate through messages with more complex services resident in the cloud, such as warehouse management or sales forecasts. These architectures, although more complex than a centralized system based on a single db, in addition to better responsiveness to users and quality of service, has also the advantage of greater efficiency and scalability as local processing relieves the Cloud that with same resources can handle many more users. These are some of the reasons for the App success in the mobile world. The latest trend is moving at the edge also complex Artificial Intelligence functions for voice and face recognition. Now let&#8217;s move on to illustrate the advantages of distributed computing at the lowest level, among the services inside the Cloud.<\/p>\n<p>&nbsp;<\/p>\n<h2 style=\"text-align: justify;\">Services Orchestration<\/h2>\n<p style=\"text-align: justify;\">Initially the Cloud Services were managed by special Virtual Machines updated, activated \/ deactivated by &ldquo;orchestration&rdquo; software. In recent years, the search for greater efficiency has led to<strong> Containers and Microservices<\/strong>. The word Containers really wants to recall the physical ones that have brought so many advantages to the transport of goods. Standard dimensions facilitates automated management and the absence of traction and wheels decreases costs and increases the density of goods in long-distance transport. Similarly, software containers exhibit standard interfaces and have a lighter infrastructure than Virtual Machines while Microservices are even more efficient, further reducing the weight of the infrastructure.<\/p>\n<p style=\"text-align: justify;\">The most popular orchestration software for Containers is <strong>Kubernetes<\/strong> developed by Google and now available on all Cloud platforms. The similar Microsoft <strong>Azure Service Fabric<\/strong> is deisgned to orchestrate both Containers and Microservices without a single Master, replaced by an <strong>intelligence distributed in the different nodes<\/strong> each hosting typically dozens of Containers or hundreds of Microservices. Each node continuously synchronizes with the others and detects any faults or overload in order to increase both the resilience (the ability to withstand failures or anomalous situations) and the scalability (the possibility of using from 1 to thousands of machines in parallel, depending on the workload).<\/p>\n<p style=\"text-align: justify;\">Azure Service Fabric can be used with both Linux and Windows, in any Cloud and even locally.<\/p>\n<p>&nbsp;<\/p>\n<p align=\"center\"><img loading=\"lazy\" decoding=\"async\" width=\"768\" height=\"432\" alt=\"\" src=\"\/Media\/Default\/Images\/news\/fabric3.jpg\" \/><\/p>\n<p>&nbsp;<\/p>\n<h2 style=\"text-align: justify;\">Other advantages of Cloud native architectures<\/h2>\n<p style=\"text-align: justify;\">The specialization and autonomy of the software services has great advantages also from the point of view of development, production and maintenance (in short DevOps) as they can be managed by small groups of people operating in relative autonomy. This allows an evolution in small steps, simple and continuous because each service can be updated and released independently from the others. Adding APIs that expose new features should never negatively affect previous APIs so that other groups can decide for themselves whether and when to use new ones. Adding a completely new service is just as smooth.<\/p>\n<p style=\"text-align: justify;\">On the contrary, in order to evolve traditional monolithic systems, a great deal of coordination between product managers, programmers and operators is required. The release of new versions where a small mistake can lead to whole application blocking is also known as &#8220;big-bang&#8221;.<\/p>\n<p style=\"text-align: justify;\">ith Cloud-native architectures, the move towards more agile, affordable and reliable software development and management could not be more decisive. As usual, the obstacle is the culture change.<\/p>\n<p>&nbsp;<\/p>\n<h2 style=\"text-align: justify;\">The aKite experience<\/h2>\n<p style=\"text-align: justify;\"><strong>aKite<\/strong> is Cloud-native since its first release in 2009 and therefore based on a federation of cooperating services in the Cloud and with the Apps in stores. Each service initially required at least one virtual machine, naturally shared according to the principle of multi -tenancy. Recently they have been transformed into MicroServices orchestrated by the Azure Service Fabric. The advantage of greater efficiency and density is perceived, for example, at night when the activity is reduced and less active machines are needed, while the scalability is greater and more easily automated because the technology is the same that Microsoft has been using for years to manage software services (SaaS) even with millions of users.<\/p>\n<p>&nbsp;<\/p>\n<h2 style=\"text-align: justify;\">Next steps<\/h2>\n<p style=\"text-align: justify;\">Some functions used occasionally will become <strong>serverless<\/strong>. To perform them, any prior activation is not needed, hence the name a bit forced because servers, even if managed by the platform and shared with others, are still necessary. Cost is per seconds needed for each run. In addition to reducing costs due to the lack of dedicated servers that would remain partially unused, &ldquo;serverless computing&rdquo; also ensures maximum scalability because there is practically no limit to the number of functions activated in parallel at the same time.<\/p>\n<p style=\"text-align: justify;\">The investment for <strong>aKite<\/strong> redesign on the new Cloud paradigms confirm the old saying &#8220;Well begun is half done&#8221;.<\/p>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-d1011c7 elementor-widget elementor-widget-image\" data-id=\"d1011c7\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<style>\/*! elementor - v3.16.0 - 20-09-2023 *\/\n.elementor-widget-image{text-align:center}.elementor-widget-image a{display:inline-block}.elementor-widget-image a img[src$=\".svg\"]{width:48px}.elementor-widget-image img{vertical-align:middle;display:inline-block}<\/style>\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"768\" height=\"502\" src=\"https:\/\/akite.net\/wp-content\/uploads\/2018\/08\/fabric2-768x502.jpeg\" class=\"attachment-medium_large size-medium_large wp-image-14018\" alt=\"\" srcset=\"https:\/\/akite.net\/wp-content\/uploads\/2018\/08\/fabric2-768x502.jpeg 768w, https:\/\/akite.net\/wp-content\/uploads\/2018\/08\/fabric2-300x196.jpeg 300w, https:\/\/akite.net\/wp-content\/uploads\/2018\/08\/fabric2.jpeg 771w\" sizes=\"auto, (max-width: 768px) 100vw, 768px\" \/>\t\t\t\t\t\t\t\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-75241f2 elementor-widget elementor-widget-text-editor\" data-id=\"75241f2\" data-element_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<h2>Altri vantaggi delle architetture native Cloud<\/h2>\n<p>La specializzazione ed autonomia dei servizi software presentano forti vantaggi anche dal punto di vista dello sviluppo, messa in produzione e manutenzione (in sintesi DevOps) in quanto possono essere gestite da piccoli gruppi di persone operanti in relativa autonomia. Questo consente un\u2019evoluzione a piccoli passi, semplice e continua perch\u00e9 ogni servizio pu\u00f2 venire aggiornato e rilasciato indipendentemente dagli altri. L\u2019aggiunta di API che espongono nuove funzionalit\u00e0 non dovr\u00e0 mai influire negativamente sulle precedenti API in modo che gli altri gruppi possano decidere autonomamente se e quando utilizzare quelle nuove. L\u2019aggiunta di un servizio completamente nuovo \u00e8 altrettanto agevole.<\/p>\n<p>Al contrario, per far evolvere i tradizionali sistemi monolitici \u00e8 richiesto un grande lavoro di coordinamento tra responsabili di prodotto, programmatori e operativi, tanto da parlare di \u201cbig-bang\u201d per il rilascio di nuove versioni dove un piccolo errore pu\u00f2 portare al blocco dell\u2019intera applicazione.<\/p>\n<p>Con le architetture native Cloud il passaggio verso uno sviluppo e una gestione del software pi\u00f9 agili, economici ed affidabili non potrebbe essere pi\u00f9 deciso. Al solito lo scoglio \u00e8 il cambio di cultura.<\/p>\n<p>\u00a0<\/p>\n<h2>L\u2019esperienza di aKite<\/h2>\n<p><strong>aKite<\/strong>\u00a0\u00e8 \u201cnativo Cloud\u201d fin dal suo primo rilascio nel 2009 e quindi basato su una federazione di servizi cooperanti fra loro nel Cloud e con le App nei negozi, ognuno dei quali richiedeva inizialmente almeno una macchina virtuale, naturalmente condivisa tra tutti gli utenti secondo il principio della multi-tenancy. Recentemente questi Servizi sono stati trasformati piuttosto facilmente in MicroServizi orchestrati dall\u2019Azure Service Fabric. Il vantaggio della maggiore efficienza e densit\u00e0 si vede, ad esempio, di notte quando l\u2019attivit\u00e0 \u00e8 ridotta e sono necessarie meno macchine attive, mentre la scalabilit\u00e0 \u00e8 maggiore e pi\u00f9 facilmente automatizzabile perch\u00e9 la tecnologia \u00e8 la stessa che Microsoft utilizza da anni per gestire servizi software (SaaS) anche con milioni di utenti.<\/p>\n<p>\u00a0<\/p>\n<h2>Prossimi passi<\/h2>\n<p>Alcune funzioni utilizzate sporadicamente saranno rese\u00a0<strong>\u201cserverless\u201d<\/strong>. Per eseguirle non occorre alcuna attivazione preventiva, da cui la denominazione \u201csenza server\u201d per la verit\u00e0 un po\u2019 forzata perch\u00e9 alcuni server, anche se gestiti dalla piattaforma e condivisi, sono comunque necessari. Si paga solo in base ai secondi necessari per ogni esecuzione. Oltre alla riduzione dei costi per la mancanza di server dedicati che rimarrebbero parzialmente inutilizzati, il serverless computing assicura anche la massima scalabilit\u00e0 in quanto non esiste praticamente limite al numero di funzioni attivabili contemporaneamente.<\/p>\n<p>I notevoli investimenti nella riprogettazione di\u00a0<strong>aKite<\/strong>\u00a0sui nuovi paradigmi del Cloud, avvenuta quasi dieci anni fa, confermano il vecchio detto \u201cChi ben inizia \u00e8 gi\u00e0 a met\u00e0 dell\u2019opera\u201d.<\/p>\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\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Architecture, whether applied to software or buildings, is the link between aspirations and technology, both in continuous evolution. Internet and Cloud Computing have triggered a radical change in our civilization, both in terms of personal relationships and in the way of doing business, so it is inevitable to move to new IT architectures. One of [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[81],"tags":[],"class_list":["post-15595","post","type-post","status-publish","format-standard","hentry","category-tecnici-en","no-post-thumbnail"],"aioseo_notices":[],"acf":[],"_links":{"self":[{"href":"https:\/\/akite.net\/en\/wp-json\/wp\/v2\/posts\/15595","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/akite.net\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/akite.net\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/akite.net\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/akite.net\/en\/wp-json\/wp\/v2\/comments?post=15595"}],"version-history":[{"count":4,"href":"https:\/\/akite.net\/en\/wp-json\/wp\/v2\/posts\/15595\/revisions"}],"predecessor-version":[{"id":15599,"href":"https:\/\/akite.net\/en\/wp-json\/wp\/v2\/posts\/15595\/revisions\/15599"}],"wp:attachment":[{"href":"https:\/\/akite.net\/en\/wp-json\/wp\/v2\/media?parent=15595"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/akite.net\/en\/wp-json\/wp\/v2\/categories?post=15595"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/akite.net\/en\/wp-json\/wp\/v2\/tags?post=15595"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}