<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>microservices design Archives - Artificial Intelligence</title>
	<atom:link href="https://www.aiuniverse.xyz/tag/microservices-design/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.aiuniverse.xyz/tag/microservices-design/</link>
	<description>Exploring the universe of Intelligence</description>
	<lastBuildDate>Tue, 14 Jan 2020 06:36:58 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>
	<item>
		<title>Follow these 10 fundamental microservices design principles</title>
		<link>https://www.aiuniverse.xyz/follow-these-10-fundamental-microservices-design-principles/</link>
					<comments>https://www.aiuniverse.xyz/follow-these-10-fundamental-microservices-design-principles/#respond</comments>
		
		<dc:creator><![CDATA[aiuniverse]]></dc:creator>
		<pubDate>Tue, 14 Jan 2020 06:36:56 +0000</pubDate>
				<category><![CDATA[Microservices]]></category>
		<category><![CDATA[applications]]></category>
		<category><![CDATA[fundamental]]></category>
		<category><![CDATA[microservices design]]></category>
		<guid isPermaLink="false">http://www.aiuniverse.xyz/?p=6137</guid>

					<description><![CDATA[<p>Source: searchapparchitecture.techtarget.com Leading organizations understand the benefits they can gain by migrating existing apps to a microservices architecture and adopting the approach for new builds. However, there <a class="read-more-link" href="https://www.aiuniverse.xyz/follow-these-10-fundamental-microservices-design-principles/">Read More</a></p>
<p>The post <a href="https://www.aiuniverse.xyz/follow-these-10-fundamental-microservices-design-principles/">Follow these 10 fundamental microservices design principles</a> appeared first on <a href="https://www.aiuniverse.xyz">Artificial Intelligence</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Source: searchapparchitecture.techtarget.com</p>



<p>Leading organizations understand the benefits they can gain by migrating existing apps to a microservices architecture and adopting the approach for new builds. However, there are inherent challenges application designers, architects and developers face around scalability, performance and deployment. </p>



<p>Use these 10 key microservices design principles as guidelines to build applications that meet expectations and avoid short- and long-term lifecycle issues. They range from conceptual, such as how to define the scope of a service and maintain data autonomy, to practical, such as what patterns to use to maximize network traffic performance.</p>



<h3 class="wp-block-heading">1. Ensure high cohesion and low coupling</h3>



<p>Cohesion and coupling are two terms often used interchangeably when describing a microservices architecture. The former relates to the degree of intradependence that exists between the modules of an application, and the latter is used for the degree of interdependencies.</p>



<p>You should design microservices so that cohesion is high and coupling is low. This plan creates microservices that are adaptable to changes, scalable and can be extended over time.</p>



<p>The higher the cohesion, the better, because the modules work together. If cohesion is low, the application would send too many communications back and forth between the services, causing degraded performance and scalability.</p>



<p>Two components are loosely coupled when they are not interdependent, i.e., if they can function without the other and if any change in one component wouldn&#8217;t break the functionality of the other. Loosely coupled components in an application should be easy to test because the component is isolatable.</p>



<h3 class="wp-block-heading">2. Define the scope properly</h3>



<p>You should define the functionality of a microservice, describing what it is intended to do. The scope of a microservice corresponds to the requirement of an independent business module. It&#8217;s important to set a proper scope for each microservice in order to rationalize its size and define its boundaries.</p>



<h3 class="wp-block-heading">3. Adhere to the Single Responsibility Principle</h3>



<p>The Single Responsibility Principle states that a class should never have more than one reason for change. This principle is essential to designing a microservices-based application, because there should not be multiple responsibilities in a single microservice.</p>



<h3 class="wp-block-heading">4. Design for failure</h3>



<p>One of the objectives of microservice architecture is to create fault-tolerant and resilient software systems. Failure or performance issues in one service should not affect other services. A memory leak, database connectivity problems or other issues in one microservice should not bring the entire application down.</p>



<p>Since the services in a microservices-based application are autonomous and independent, they can take advantage of the circuit breaker pattern, which is a means to cut off communication with one or more services that are down or experiencing errors.</p>



<h3 class="wp-block-heading">5. Build around business capabilities</h3>



<p>Each microservice should be designed to solve a business problem. The developer can use the appropriate technology stack for each business problem in each microservice. Unlike a monolithic application, you are not constrained to use a single best-fit homogenous technology stack for the whole architecture. This microservices design principle means developers should choose what&#8217;s best and readily available for use in every component of the application.</p>



<h3 class="wp-block-heading">6. Decentralize data</h3>



<p>Unlike in monolithic applications, microservices each maintain their own copy of the data. In other words, each microservice has its own database. You should not set up multiple services to access or share the same database, since it defeats the purpose of autonomous microservice operation.</p>



<p>Data pertaining to a specific microservice is private to that service. Use APIs to let other services access a microservice&#8217;s owned data. This design principle enforces centralized access control and enables the developers to implement audit logging and caching seamlessly. Aim for one or two database tables per service.</p>



<h3 class="wp-block-heading">7. Gear up process automation</h3>



<p>A microservices design can deploy in several units, which the application team must manage. Automate the deployment process for microservices-based components via smart iterative release tooling, such as a CI/CD pipeline, potentially coupled with a DevOps culture.</p>



<h3 class="wp-block-heading">8. Enable interservice communication</h3>



<p>When you migrate an existing monolithic application to microservices, you must break apart many interrelated components; these services need a way to communicate. Microservices applications also enable diverse programming languages and approaches, as explained in the fifth microservices design principle, so an application might have services built with different technologies communicating with each other. APIs make it all work.</p>



<p>When you set up microservices APIs, abstract the implementation details of how a service works and only expose API methods to enable external access to the service. In this setup, a microservice can scale independently.</p>



<h3 class="wp-block-heading">9. Monitor constantly</h3>



<p>Microservices in production are distributed and interrelated. It is daunting to manually discover and identify errors. Instead, use an automated monitoring system that can track performance constantly. As part of the microservices design and deployment process, select a tool or set of tools that captures and analyzes data on services&#8217; performance, and generates useful metrics.</p>



<h3 class="wp-block-heading">10. Manage traffic</h3>



<p>Traffic to microservices in an application differs from one to the next. One service might have huge traffic while another is low-demand on the network. In each kind of traffic scenario, performance is an important factor. Take advantage of autoscaling and circuit breaker patterns to maximize performance.</p>
<p>The post <a href="https://www.aiuniverse.xyz/follow-these-10-fundamental-microservices-design-principles/">Follow these 10 fundamental microservices design principles</a> appeared first on <a href="https://www.aiuniverse.xyz">Artificial Intelligence</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.aiuniverse.xyz/follow-these-10-fundamental-microservices-design-principles/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Why security in microservices continues to fall short</title>
		<link>https://www.aiuniverse.xyz/why-security-in-microservices-continues-to-fall-short/</link>
					<comments>https://www.aiuniverse.xyz/why-security-in-microservices-continues-to-fall-short/#comments</comments>
		
		<dc:creator><![CDATA[aiuniverse]]></dc:creator>
		<pubDate>Wed, 01 Nov 2017 06:33:08 +0000</pubDate>
				<category><![CDATA[Microservices]]></category>
		<category><![CDATA[microservices design]]></category>
		<category><![CDATA[security testing]]></category>
		<category><![CDATA[software development]]></category>
		<guid isPermaLink="false">http://www.aiuniverse.xyz/?p=1602</guid>

					<description><![CDATA[<p>Source &#8211; techtarget.com Akshay Aggarwal: From going from a … monolithic design paradigm to a more distributed microservices design paradigm, the transition that we are seeing is driven <a class="read-more-link" href="https://www.aiuniverse.xyz/why-security-in-microservices-continues-to-fall-short/">Read More</a></p>
<p>The post <a href="https://www.aiuniverse.xyz/why-security-in-microservices-continues-to-fall-short/">Why security in microservices continues to fall short</a> appeared first on <a href="https://www.aiuniverse.xyz">Artificial Intelligence</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Source &#8211;<strong> techtarget.com</strong></p>
<p>Akshay Aggarwal: From going from a … monolithic design paradigm to a more distributed microservices design paradigm, the transition that we are seeing is driven by business efficiencies, economies of scale, as well as trying to make things simpler by reusing functionality across different applications. What that does to security is it simplifies certain aspects, but it makes other aspectsextremely challenging.</p>
<p>In the monolith world, we understood the software development process well and were able to introduce adequate controls in it over a period of time. But in the microservices world, because of the distributed nature, a few fundamental things have changed.</p>
<p><b>Can you talk about some of those changes?</b></p>
<p>Aggarwal: First, application endpoints have just proliferated, so you need to secure each of those independently. And there are two other aspects that are very interesting from the monolith world to the microservices world. One is the question of identity. In the monolith world, it&#8217;s easier to manage identity and access controls. You could trust information that was going through, or a token could persist and that made it simpler for some of the functionality. In the microservices world, it&#8217;s very, very difficult to understand and establish identity. We actually see many, many firms doing this wrong.</p>
<p>And the second big thing that&#8217;s changed from the monolith to the microservices world has been just the speed of deployment and rolling out functionality. You&#8217;re building smaller microservices; therefore, people are responsible for … a smaller portion of functionality. We&#8217;re seeing rapid churns and deployments of new code, and that is upending the traditional approach to security for a lot of firms.</p>
<p><b>What are the major areas where organizations are making mistakes implementing security in microservices?</b></p>
<p>Aggarwal: The microservices world has made things very complex for security individuals in organizations. But it&#8217;s also made it very difficult for QA testing and DevOps [teams] because it has taken some of the complexity and pushed it down to a DevOps space that didn&#8217;t exist before. So to me, when people talked about security from an API or a microservices perspective, very often, what they&#8217;re focusing on is the security of the container or the configuration management tool. So the guys are talking about something about Chef&#8217;s container configuration management tool or Tenable&#8217;s patch management tool for those containers as well.</p>
<p>All of that is great. But what they&#8217;re not focusing on is the fact that the way the software is being developed itself is completely different. So, let me give you a few examples of how software development and QA processes haven&#8217;t caught up to deal with the microservices world. If you have two individual components that exist, do they share the same namespace? And if they share different namespaces, do the involved identities still have common authentication credentials? That would be essentially like using the same password on two completely separate, unrelated websites.</p>
<p>And the second thing: If you&#8217;re deploying software on a weekly basis, how are you going back and verifying that your security tests are still accurate and your security posture hasn&#8217;t changed? Clearly, there is a significant need for automation of security testing for microservices and the API world, and that&#8217;s not happening. So, if you summarize this in basically one line, what I say is that the secure development lifecycle itself needs to evolve to engage with the microservices architecture, which it has not. Therefore, we see practices that are not optimal in the security of microservices.</p>
<p><b>Why do organizations lack the needed tooling and automation? Is it a budget issue, a lack of needed skills or something else?</b></p>
<p>Aggarwal: Certainly, it includes budgetary considerations, so they don&#8217;t want to spend the money. Second is that I don&#8217;t think CSOs or CIOs currently understand or appreciate the nature of how security has changed. That&#8217;s specifically because microservices security can be broken down into multiple tiers. So, one tier could be configuration management, another can be infrastructure security and a third tier could be runtime security. And a fourth, but very important, portion of microservices security is security testing during development &#8212; DevOps-focused security testing. That&#8217;s where you would get the maximum bang for buck, but there aren&#8217;t elegant solutions out there currently to do that. There is a growing awareness, but the awareness isn&#8217;t at the level at which it justifies spending.</p>
<p>On the flip side of this problem, we clearly know that there aren&#8217;t enough testers out there in the world that will be able to [keep up] with the speed of deployment and test APIs and microservices to a level that is satisfactory with the risk.</p>
<p><b>Do you think the lack of testers is a core issue as far as organizations not being able to secure things as well as they should?</b></p>
<p>Aggarwal: Oh, absolutely. Security skill sets in the QA and testing spaces are very limited from a human perspective. We just don&#8217;t have enough capable, qualified security QA testers available, period. So, they can&#8217;t scale; they&#8217;re not going to be able to meet the demands of the industry. From our perspective, we see that a very highly skilled security tester can perhaps test, in a very liberal perspective, a few hundred to up to a 1,000 test cases in a week. Automation can essentially do that in under an hour in some aspects. So, while I don&#8217;t think that [automation] displaces the need for security testing from testers, what it does need to do is be supplanted with automated testing.</p>
<p>I&#8217;ll give you a very specific observation. We work with some really large technology companies. Very often, they&#8217;re dedicating the vast amount of that security testing manpower to around 10% to 15% of that portfolio. The rest of the 85% of that portfolio of applications and software is essentially going untested in many scenarios. A large part of that is because they just cannot find enough qualified people to do that, and it&#8217;s very expensive to do that with people.</p>
<p>The post <a href="https://www.aiuniverse.xyz/why-security-in-microservices-continues-to-fall-short/">Why security in microservices continues to fall short</a> appeared first on <a href="https://www.aiuniverse.xyz">Artificial Intelligence</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.aiuniverse.xyz/why-security-in-microservices-continues-to-fall-short/feed/</wfw:commentRss>
			<slash:comments>3</slash:comments>
		
		
			</item>
	</channel>
</rss>
