<?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>CI/CD Archives - Artificial Intelligence</title>
	<atom:link href="https://www.aiuniverse.xyz/tag/cicd/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.aiuniverse.xyz/tag/cicd/</link>
	<description>Exploring the universe of Intelligence</description>
	<lastBuildDate>Fri, 01 Dec 2023 04:37:44 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.1</generator>
	<item>
		<title>Reasons Why Every Developer Should Learn Docker</title>
		<link>https://www.aiuniverse.xyz/reasons-why-every-developer-should-learn-docker/</link>
					<comments>https://www.aiuniverse.xyz/reasons-why-every-developer-should-learn-docker/#respond</comments>
		
		<dc:creator><![CDATA[Maruti Kr.]]></dc:creator>
		<pubDate>Fri, 01 Dec 2023 04:37:42 +0000</pubDate>
				<category><![CDATA[docker]]></category>
		<category><![CDATA[CI/CD]]></category>
		<category><![CDATA[Consistency]]></category>
		<category><![CDATA[Containerization]]></category>
		<category><![CDATA[DevOps]]></category>
		<category><![CDATA[Efficiency]]></category>
		<category><![CDATA[Isolation]]></category>
		<category><![CDATA[Microservices]]></category>
		<category><![CDATA[Portability]]></category>
		<category><![CDATA[Reasons Why Every Developer Should Learn Docker]]></category>
		<category><![CDATA[Resource Optimization]]></category>
		<category><![CDATA[Scalability]]></category>
		<guid isPermaLink="false">https://www.aiuniverse.xyz/?p=18122</guid>

					<description><![CDATA[<p>Docker has become an essential tool for developers in recent years, and there are many reasons why every developer should learn it. Here are just a few of the benefits: Overall, Docker is a powerful and versatile tool that can make the life of a developer much easier. If you are not already using Docker, <a class="read-more-link" href="https://www.aiuniverse.xyz/reasons-why-every-developer-should-learn-docker/">Read More</a></p>
<p>The post <a href="https://www.aiuniverse.xyz/reasons-why-every-developer-should-learn-docker/">Reasons Why Every Developer Should Learn Docker</a> appeared first on <a href="https://www.aiuniverse.xyz">Artificial Intelligence</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image size-full is-resized"><img fetchpriority="high" decoding="async" src="https://www.aiuniverse.xyz/wp-content/uploads/2023/12/image-1.png" alt="" class="wp-image-18123" width="840" height="542" srcset="https://www.aiuniverse.xyz/wp-content/uploads/2023/12/image-1.png 400w, https://www.aiuniverse.xyz/wp-content/uploads/2023/12/image-1-300x194.png 300w" sizes="(max-width: 840px) 100vw, 840px" /></figure>



<p>Docker has become an essential tool for developers in recent years, and there are many reasons why every developer should learn it. Here are just a few of the benefits:</p>



<ol class="wp-block-list">
<li><strong>Isolation and consistency:</strong> Docker containers provide a self-contained environment for applications, ensuring that they run consistently across different development environments and production servers. This isolation also helps to prevent conflicts between applications and makes it easier to debug problems.</li>



<li><strong>Portability: </strong>Docker images are lightweight and portable, making it easy to deploy applications to any environment, including cloud platforms, on-premises servers, and even local machines. This portability can significantly reduce the time and effort required to deploy and manage applications.</li>



<li><strong>Scalability:</strong> Docker containers can be easily scaled up or down, making it easy to handle fluctuating workloads and traffic. This scalability is essential for modern applications that need to be able to handle sudden spikes in demand.</li>



<li><strong>Collaboration: </strong>Docker images can be shared between developers, making it easy to collaborate on projects and ensure that everyone is working with the same code and dependencies. This can help to improve productivity and reduce the risk of errors.</li>



<li><strong>Continuous integration and delivery (CI/CD):</strong> Docker can be used to streamline the CI/CD process, making it easier to automate the building, testing, and deployment of applications. This can help to improve the quality of software and reduce the time it takes to get new features to users.</li>



<li><strong>Faster deployment and version control:</strong> Docker allows for quick and easy deployment of applications. Containerized applications can be launched in seconds, reducing deployment time significantly. Additionally, version control becomes easier as Docker images can be tagged, allowing developers to roll back to previous versions if needed.</li>



<li><strong>Microservices architecture:</strong> Docker is widely used in microservices-based architecture. With Docker, developers can split their applications into smaller, decoupled services, allowing for better scalability, maintainability, and fault tolerance.</li>
</ol>



<p>Overall, Docker is a powerful and versatile tool that can make the life of a developer much easier. If you are not already using Docker, I encourage you to learn it today. You will be glad you did.</p>
<p>The post <a href="https://www.aiuniverse.xyz/reasons-why-every-developer-should-learn-docker/">Reasons Why Every Developer Should Learn Docker</a> appeared first on <a href="https://www.aiuniverse.xyz">Artificial Intelligence</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.aiuniverse.xyz/reasons-why-every-developer-should-learn-docker/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>How to Use Microservices To Evolve DevOps Pipelines</title>
		<link>https://www.aiuniverse.xyz/how-to-use-microservices-to-evolve-devops-pipelines/</link>
					<comments>https://www.aiuniverse.xyz/how-to-use-microservices-to-evolve-devops-pipelines/#respond</comments>
		
		<dc:creator><![CDATA[aiuniverse]]></dc:creator>
		<pubDate>Fri, 03 Jul 2020 07:07:35 +0000</pubDate>
				<category><![CDATA[Microservices]]></category>
		<category><![CDATA[CI/CD]]></category>
		<category><![CDATA[DEPLOYHUB]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[ORTELIUS]]></category>
		<guid isPermaLink="false">http://www.aiuniverse.xyz/?p=9964</guid>

					<description><![CDATA[<p>Source: devops.com Enterprises are quickly becoming an intricate mesh of many applications. As companies create more and more microservices, their deployment environments are becoming increasingly elaborate. Without proper configurations, a microservices road map could quickly become unmaintainable. According to DeployHub CEO Tracy Ragan, if development teams are pushing points to a cluster continuously, application development can suffer <a class="read-more-link" href="https://www.aiuniverse.xyz/how-to-use-microservices-to-evolve-devops-pipelines/">Read More</a></p>
<p>The post <a href="https://www.aiuniverse.xyz/how-to-use-microservices-to-evolve-devops-pipelines/">How to Use Microservices To Evolve DevOps Pipelines</a> appeared first on <a href="https://www.aiuniverse.xyz">Artificial Intelligence</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Source: devops.com</p>



<p>Enterprises are quickly becoming an intricate mesh of many applications. As companies create more and more microservices, their deployment environments are becoming increasingly elaborate. Without proper configurations, a microservices road map could quickly become unmaintainable.</p>



<p>According to DeployHub CEO Tracy Ragan, if development teams are pushing points to a cluster continuously, application development can suffer without high visibility into their dependencies and application interrelationships.</p>



<p>In her recent talk, “Evolving Your Pipeline for Microservices with DeployHub,” presented by the Continuous Delivery Foundation (CDF), Ragan, also Governing Board member of CDF, discussed ways in which teams can obtain improved insight into microservices delivery pipelines.</p>



<h3 class="wp-block-heading">Microservices Tracking Issues</h3>



<p>A 2018 study conducted by O’Reilly found that 86% of respondents reached mild success in adopting microservices in production. Only 15% reported “massive success.” These results demonstrate both the excitement surrounding microservices and the rarity of flawless execution.</p>



<p>“I’m a huge fan of microservices,” said Ragan. “This is an exciting time to be in software development.” Microservices break from the traditional software delivery model, she said, forcing teams to emphasize the runtime. However, with this shift, it becomes easy to lose the logical views between applications.</p>



<p>According to Tracy, dependency tracking and version control are top issues in maintaining microservices arrangements. With continuous updates, it can be challenging to keep track of which version a service is using. “Microservices development falls apart without a coherent management approach,” she said.</p>



<h3 class="wp-block-heading">Losing Visibility Moving From CI to CD</h3>



<p>Part of the loss of visibility stems from the move from CI to CD. Continuous integration (CI) involves routinely updating source code and starting the compile process. This is often done every hour, as opposed to every week or month. With traditional CI, the system created a package and scanned for dependencies at compile. This was the first step in the continuous journey.</p>



<p>However, nowadays, microservices are typically linked&nbsp;<em>at runtime</em>&nbsp;or in the Kubernetes deploy file as part of a continuous delivery (CD) processes. In doing so, we’ve lost a certain amount of visibility that CI granted. Ragan likened it to “hammering a wine glass”—we still have the constituent parts, but they lie shattered in pieces.</p>



<p>Large microservices suites of 50, 100 or even 300 are not uncommon these days. Such large ecosystems require logical tracking of versions and dependencies. Ragan argued that development teams need a workaround layer to replace the critical configuration management lost in CI compile reports. Visibility into interrelationships is necessary to trace how changes in one service will impact other applications.</p>



<h3 class="wp-block-heading">Enter Ortelius</h3>



<p>Ortelius is a package that helps with continuous microservices management. Ortelius, named after Abraham Ortelius, the inventor of the first atlas, helps trace the connections between services to improve an ecosystem’s visibility.</p>



<p>To get an idea of how it behaves, consider an e-commerce store. To reach an evolvable microservices pipeline, each microservice should be independently deployable with its own workflow. For example, an e-commerce store may require a product microservice, payment microservice and an authentication microservice. These reusable components are independently deployable but rely upon one another to function as a whole.</p>



<p>At a macro scale, an enterprise with thousands of inter-application dependencies would visually resemble a constellation of nodes. An extreme example of this may resemble the Netflix Death Star, a mass conglomeration of intersecting points. Ortelius grants transparency into an otherwise tangled mess as an “internal marketplace for microservices,” said Ragan.</p>



<h3 class="wp-block-heading">Paring Ortelius With DeployHub</h3>



<p>Ortelius is the open source core of DeployHub, an open source SaaS for sharing and releasing microservices. Ortelius, paired with DeployHub, enables teams to see the logical application map, exposing the complexity of microservices dependencies.</p>



<p>Developers add DeployHub to any existing microservice development workflow prior to release. Ortelius is then called to increment the service and record dependency information. DepoyHub then uses for Helm or Ansible for the actual code push, and adds the record metadata and adds the tracking and mapping layer. Having such information is still critical for reporting like dif reports or a bill of materials report, noted Ragan.</p>



<p>This sort of solution, Ragan proposed, is also vital for continuous configuration management—when a microservice changes, the team will always be aware of the new application version.</p>



<h3 class="wp-block-heading">The New Microservice Pipeline Model</h3>



<p>As noted above, in the traditional model, DevOps teams map dependencies in the CI stage. When an API developer publishes to the main catalog, they define specific attributes based on the microservices. A versioning engine will then typically map to visualize dependencies.</p>



<p>Ragan outlined steps for a&nbsp;<em>new</em>&nbsp;microservices pipeline:</p>



<ol class="wp-block-list"><li><strong>Build image</strong>: Compile and build the container image.</li><li><strong>Put into registry</strong>: Quay or Docker registry. Specific for container registries.</li><li><strong>Track service-application configurations</strong>: This is where we collect configuration data to map the structural relationships.</li><li><strong>Push to cluster</strong>: DeployHub helps to standardize this process across an organization.</li><li><strong>Collect feedback</strong>: Configuration reporting and impact analysis.</li></ol>



<p>Core to this process is being able to independently deploy microservices and aggregate useful information. Of course, this is an incomplete model—a complete pipeline would utilize other steps including testing and automated security scanning as well.</p>



<h3 class="wp-block-heading">Benefits</h3>



<p>By streamlining the microservices journey in this way, repos will be broken out and teams no longer go through one big long workflow. According to Ragan, the visibility garnered from this method could help organizations in multiple other ways:</p>



<ul class="wp-block-list"><li><strong>Reduce time</strong>: Ragan estimated automated application relationship mapping could replace one to two hours of manual work per week per development team.</li><li><strong>Reusability</strong>: Decomposing applications into their domains aids reusability across an organization.</li><li><strong>Avoid redundancy</strong>: Code sharing can significantly reduce duplicated code, thus avoiding redundancy and increasing flexibility.</li><li><strong>Visibility</strong>: Detailed application to service relational knowledge could empower SREs to make better data-driven decisions.</li><li><strong>Centralize</strong>: Helps standardize container deployment processes regardless of cluster type or collection, aiding both traditional and containerized microservices deployments.</li><li><strong>Versioning</strong>: Improved insight into versioning helps when you need to share services externally.</li></ul>



<p>Lastly, what’s nice is Ortelius is open source on GitHub. Ortelius adopts an open community format to accept feedback. “Democratization is the core reason we have open source,” said Ragan. Ortelius can be used for free, or with added features from DeployHub pricing for enterprise cases.</p>



<h3 class="wp-block-heading">A Confluence of Software Delivery Styles</h3>



<p>Managing continuous software delivery across many microservices leads to unprecedented issues. In solving these issues, the industry appears to be fracturing slightly. For example, the model promoted by Ragan is in contrast with a recent presentation I covered from Codefresh.</p>



<p>Where Ragan suggested improving visibility into independent microservices deployment pipelines, Dan Garfield of CodeFresh suggested adopting a single CI/CD pipeline to operate all microservices from a single control plane. As it goes so often in software tooling, the use case will likely dictate adoption.</p>



<p>Whatever the software delivery process, when decomposing applications—or “taking the hammer to the wine glass,” as Ragan called it—we probably shouldn’t sacrifice visibility into the metadata associated with application versions and service to application interrelationships. If such data is lost or not managed correctly, we could lose a lot of potential value.</p>



<p>For more information on evolving DevOps pipelines, watch the CDF-presented webinar here. DeployHub also published an adjacent article on this subject here. You can also contribute to Ortelius on GitHub.</p>
<p>The post <a href="https://www.aiuniverse.xyz/how-to-use-microservices-to-evolve-devops-pipelines/">How to Use Microservices To Evolve DevOps Pipelines</a> appeared first on <a href="https://www.aiuniverse.xyz">Artificial Intelligence</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.aiuniverse.xyz/how-to-use-microservices-to-evolve-devops-pipelines/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>2nd Watch Allies With GitLab for Managed DevOps Service</title>
		<link>https://www.aiuniverse.xyz/2nd-watch-allies-with-gitlab-for-managed-devops-service/</link>
					<comments>https://www.aiuniverse.xyz/2nd-watch-allies-with-gitlab-for-managed-devops-service/#respond</comments>
		
		<dc:creator><![CDATA[aiuniverse]]></dc:creator>
		<pubDate>Fri, 20 Mar 2020 05:29:02 +0000</pubDate>
				<category><![CDATA[Microservices]]></category>
		<category><![CDATA[AWS]]></category>
		<category><![CDATA[Azure]]></category>
		<category><![CDATA[CI/CD]]></category>
		<category><![CDATA[cloud service]]></category>
		<category><![CDATA[deployment]]></category>
		<category><![CDATA[DevOps]]></category>
		<category><![CDATA[GitLab]]></category>
		<guid isPermaLink="false">http://www.aiuniverse.xyz/?p=7572</guid>

					<description><![CDATA[<p>Source: devops.com 2nd Watch today launched a managed DevOps service based on the continuous integration/continuous deployment (CI/CD) platform from GitLab that it will operate on behalf of customers in addition to coaching them on how to adopt best DevOps practices. Stefana Muller, a senior product manager, said the 2nd Watch Managed DevOps service combines the managed and <a class="read-more-link" href="https://www.aiuniverse.xyz/2nd-watch-allies-with-gitlab-for-managed-devops-service/">Read More</a></p>
<p>The post <a href="https://www.aiuniverse.xyz/2nd-watch-allies-with-gitlab-for-managed-devops-service/">2nd Watch Allies With GitLab for Managed DevOps Service</a> appeared first on <a href="https://www.aiuniverse.xyz">Artificial Intelligence</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Source: devops.com</p>



<p> 2nd Watch today launched a managed DevOps service based on the continuous integration/continuous deployment (CI/CD) platform from GitLab that it will operate on behalf of customers in addition to coaching them on how to adopt best DevOps practices.</p>



<p>Stefana Muller, a senior product manager, said the 2nd Watch Managed DevOps service combines the managed and professional services capabilities of 2nd Watch into a single offering. That approach is required because when it comes to DevOps most organizations need as much help transitioning their culture as they will operating their CI/CD environment, she said.</p>



<p>One of the major challenges organizations face when trying to embrace DevOps is they typically spend a lot of money upfront only to see those efforts flounder when changing the internal culture of the organization becomes too difficult, Muller said. As part of an effort to smooth that transition, 2nd Watch DevOps experts will assess an organization’s readiness to adopt DevOps tools and processes and then train internal teams on DevOps fundamentals such as managing infrastructure as code and Git principles. The assessment is based on a Culture, Automation, Lean Practices, Measurement and Sharing (CALMS) methodology.</p>



<p>The 2nd Watch service is built around an on-premises edition of the GitLab CI/CD platform that it will host and upgrade on behalf of a customer on either an Amazon Web Services (AWS) or Microsoft public cloud platform. The DevOps service will focus on enabling organizations to build both monolithic and microservices-based applications faster because no organization today has fully transitioned to microservices. The company already provides a managed Kubernetes service for building and deploying applications based on a microservices architecture.</p>



<p>2nd Watch chose to partner with GitLab because of the completeness of that CI/CD platform, which among other things includes integrated security modules that can be employed to advance DevSecOps practices as well, Muller said, noting that longer-term, 2nd Watch is planning to layer a more robust set of managed DevSecOps services on top of the GitLab platform.</p>



<p>Managed DevOps offerings are starting to proliferate as the number of services providers that have attained certifications from multiple IT vendors has increased. It’s not clear to what degree organizations will prefer to rely on these services just yet. However, it’s is apparent many organizations are trying to shift as much of their limited resources to building application code versus managing IT infrastructure. It’s also possible that as the COVID-19 coronavirus pandemic becomes more widespread many organizations will need to rely on external service providers to manage their DevOps environments.</p>



<p>Regardless of the motivation, organizations that are at the beginning of their DevOps journey clearly will need more help than those that are further along the DevOps maturity curve. The decision most organizations will need to make is to what degree will they rely on a managed DevOps service to accelerate their transition versus opting to rely permanently on an external IT service provider to manage one of their most critical IT environments.</p>
<p>The post <a href="https://www.aiuniverse.xyz/2nd-watch-allies-with-gitlab-for-managed-devops-service/">2nd Watch Allies With GitLab for Managed DevOps Service</a> appeared first on <a href="https://www.aiuniverse.xyz">Artificial Intelligence</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.aiuniverse.xyz/2nd-watch-allies-with-gitlab-for-managed-devops-service/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>How a SaaS provider made microservices deployment safely chaotic</title>
		<link>https://www.aiuniverse.xyz/how-a-saas-provider-made-microservices-deployment-safely-chaotic/</link>
					<comments>https://www.aiuniverse.xyz/how-a-saas-provider-made-microservices-deployment-safely-chaotic/#comments</comments>
		
		<dc:creator><![CDATA[aiuniverse]]></dc:creator>
		<pubDate>Sat, 12 May 2018 05:29:19 +0000</pubDate>
				<category><![CDATA[Microservices]]></category>
		<category><![CDATA[AWS]]></category>
		<category><![CDATA[CI/CD]]></category>
		<category><![CDATA[microservices deployment]]></category>
		<category><![CDATA[SaaS]]></category>
		<guid isPermaLink="false">http://www.aiuniverse.xyz/?p=2355</guid>

					<description><![CDATA[<p>Source &#8211; techtarget.com Chaos engineering helps enterprises expect the unexpected and reasonably predict how microservices will perform in production. One education SaaS provider embraced the chaos for its microservices deployment, but it didn&#8217;t jump in blindly. San Francisco-based Remind, which makes a communication tool for educators, school administrators, parents and students, faced a predictability problem with <a class="read-more-link" href="https://www.aiuniverse.xyz/how-a-saas-provider-made-microservices-deployment-safely-chaotic/">Read More</a></p>
<p>The post <a href="https://www.aiuniverse.xyz/how-a-saas-provider-made-microservices-deployment-safely-chaotic/">How a SaaS provider made microservices deployment safely chaotic</a> appeared first on <a href="https://www.aiuniverse.xyz">Artificial Intelligence</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Source &#8211; techtarget.com</p>
<p>Chaos engineering helps enterprises expect the unexpected and reasonably predict how microservices will perform in production. One education SaaS provider embraced the chaos for its microservices deployment, but it didn&#8217;t jump in blindly.</p>
<p>San Francisco-based Remind, which makes a communication tool for educators, school administrators, parents and students, faced a predictability problem with its SaaS offering built on microservices. While traffic is steady during most of the year, back-to-school season is extraordinarily busy, said Peter Hamilton, software engineer at Remind.</p>
<p>&#8220;We [were] the No. 1 app in the Apple App Store for two weeks,&#8221; he said.</p>
<p>Unforeseen microservices dependencies caused performance degradations and volatile traffic patterns in production. Remind determined that a microservices architecture on cloud resources was not enough alone to scale and maintain availability.</p>
<section class="section main-article-chapter" data-menu-title="The trade-off with microservices">
<h3 class="section-title">The trade-off with microservices</h3>
<p>Agility and cloud-native deployments rely on microservices, along with DevOps culture and CI/CDprocesses.</p>
<p>&#8220;Using a microservices architecture is about decoupling the application teams to better achieve the benefit of iteration [from CI/CD] using the agility that cloud provides,&#8221; said Rhett Dillingham, senior analyst at Moor Insights &amp; Strategy. The fewer developer dependencies, the faster projects move. But speed is only half of the picture, as Remind discovered; microservices add deployment complexities.</p>
<section class="section main-article-chapter" data-menu-title="The trade-off with microservices">&#8220;Once you&#8217;re at scale with multiple apps using an array of microservices as dependencies, you&#8217;re into a many-to-many relationship,&#8221; Dillingham said. The payoff is development flexibility and easier scaling than monolithic apps. The downside is significant debugging and tracing complexity, as well as complicated incident response and root cause analysis.</p>
</section>
<section class="section main-article-chapter" data-menu-title="Expect the unexpected">
<h3 class="section-title">Expect the unexpected</h3>
<p>Remind overhauled its microservices deployment approach with chaos engineering across the predeployment staging step, planning and development. Developers use Gremlin, a chaos engineering SaaS tool, for QA and to adjust microservices code before it&#8217;s launched on AWS. Developers from email, SMS, iOS and Android platforms run Gremlin in staging against hypothetical scenarios.</p>
<p>Remind&#8217;s product teams average one major release per month. Hamilton noted that requests take tens of microservices to complete. Remind uses unit and functional tests, user acceptance testing and partial release with tracking, but chaos engineering was the missing piece to simulate attacks and expose the chokepoints in the app design.</p>
<section class="section main-article-chapter" data-menu-title="Expect the unexpected">Remind&#8217;s main focus with chaos engineering is to interfere with network requests, Hamilton said. The path for requests through multiple microservices is hard to determine and plan for without heuristic testing, and Remind&#8217;s microservices deployments ran into cascading issues because any increased latency downstream causes problems, Hamilton said. Database slowdowns overload web servers, requests queue up and the product sends out error messages everywhere.</p>
<p>&#8220;We&#8217;re still learning how chaos affects how you do development,&#8221; he said. Gremlin recommends development teams run the smallest experiment that yields usable information. &#8220;People assume the only way to do chaos engineering is to break things randomly, but it&#8217;s much more effective to do targeted experiments where you test a hypothesis,&#8221; said Kolton Andrus, CEO of Gremlin.</p>
<p>Remind&#8217;s goal is to ensure its product degrades gracefully, which takes a combination of development skills and culture. Designers now think about error states, not just green operations, a mindset that emphasizes a clean user experience even as problems occur, Hamilton said.</p>
<p>Remind explored several options for chaos engineering, including Toxiproxy and Netflix&#8217;s Chaos Monkey. It selected Gremlin because it did not want to build out a chaos engineering setup in-house, and it wanted a tool that fit with its 12-factor app dev model.</p>
</section>
<section class="section main-article-chapter" data-menu-title="Chaos vs. conventional testing">
<h3 class="section-title">Chaos vs. conventional testing</h3>
<p>Chaos is about finding the unexpected, Andrus said, up a level from functional testing, which ensures the expected occurs.</p>
<p>Unit testing of interconnections breaks down once an application is composed of microservices, because so many individual pieces talk to each other, Andrus said. Chaos engineering tests internal and external dependencies.</p>
<p>Chaos engineering is the deployment and operations complement to load tests, which help tune the deployment environment with the best configurations to prevent memory issues, latency and CPU overconsumption, said Henrik Rexed, performance testing advocate at Neotys, a software test and monitoring tool vendor. In particular, load tests help teams tailor the deployment of microservices on a cloud platform to take advantage of elastic, pay-as-you-go infrastructure and cloud&#8217;s performance and cost-saving services.</p>
<p>Remind is particularly aware of the cost dangers from degraded performance and uses chaos engineering to model its resource consumption on AWS in failure modes. &#8220;You don&#8217;t want bad code to impact infrastructure demand,&#8221; Rexed said. And microservices are particularly vulnerable to outrageous cloud bills, because each developer&#8217;s or project team&#8217;s code is just one difficult-to-size piece of a massive puzzle.</p>
<p>Of course, if you really want to test end-user experience on a microservices deployment, you can do it in production. &#8220;As the more advanced development teams running microservices take more operational ownership of the availability of their apps, it is expected that they are proactively surfacing bottlenecks and failure modes,&#8221; Dillingham said. But is it worth risking end users&#8217; experience to test resiliency and high availability?</p>
<p>Some say yes. &#8220;No matter how much testing you do, it&#8217;s going to blow up on you in production,&#8221; said Christian Beedgen, CTO of Sumo Logic, which provides log management and analytics tools. &#8220;If nothing is quite like production, why don&#8217;t we test [there]?&#8221;</p>
<section class="section main-article-chapter" data-menu-title="Chaos vs. conventional testing">Testing can leave teams to look all over for the wrong problem or look for the right problem but simply miss it, Beedgen said. QA and unit tests are necessary but don&#8217;t ensure flawless deployment. The goal is to put code in production with blue/green or canary deployment to limit the blast radius, monitor for deviations from known behavior and roll back as needed.</p>
<p>Remind is not ready to bring chaos into its live microservices deployment. &#8220;We&#8217;re conservative about the things we expose production to, but that&#8217;s the goal,&#8221; Hamilton said. Chaos in production should have limits: &#8220;You don&#8217;t want a developer to come along and trigger a CPU attack,&#8221; he said. A nightmare scenario for the SaaS provider is to huddle up all the senior engineers to troubleshoot a problem that is actually just an unplanned Gremlin attack.</p>
</section>
<section class="section main-article-chapter" data-menu-title="Monitor microservices deployments">
<h3 class="section-title">Monitor microservices deployments</h3>
<p>While Remind prefers to blow up deployments in staging rather than production, it uses the same monitoring tools to analyze attack results. Remind is rolling out Datadog&#8217;s application performance management (APM) across all services. This upgrade to Datadog&#8217;s Pro and Enterprise APM packages includes distributed tracing, which Hamilton said is crucial to determine what&#8217;s broken in a microservices deployment.</p>
<p>Generally, application teams depend much more on tooling to understand complex architectures, Beedgen said. Microservices deployment typically is more ephemeral than monolithic apps, hosted on containers with ever-evolving runtimes, so log and other metrics collection must be aware of the deployment environment. Instead of three defined app tiers, there is a farm of containers and conceptual abstractions, with no notion of where operational data comes from &#8212; the OS, container, cloud provider, runtime or elsewhere &#8212; until the administrator implements a way to annotate it.</p>
<p>Microservices monitoring is also about known relationships, Beedgen said. For example, an alert on one service could indicate that the culprit causing performance degradation is actually upstream or downstream of that service. The &#8220;loosely coupled&#8221; tagline for microservices is usually aspirational, and the mess of dependencies is apparent to anyone once enough troubleshooting is performed, Beedgen said.</p>
<p>Chaos engineering is one way to hone in on these surprising relationships in independent microservices, rather than shy away from them. &#8220;That was one of the original goals of testing: to surprise people,&#8221; said Hans Buwalda, CTO of software test outsourcing provider LogiGear. In an Agile environment, he said, it&#8217;s harder to surprise people and generate all-important unexpected conditions for the application to handle.</p>
</section>
</section>
</section>
</section>
<p>The post <a href="https://www.aiuniverse.xyz/how-a-saas-provider-made-microservices-deployment-safely-chaotic/">How a SaaS provider made microservices deployment safely chaotic</a> appeared first on <a href="https://www.aiuniverse.xyz">Artificial Intelligence</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.aiuniverse.xyz/how-a-saas-provider-made-microservices-deployment-safely-chaotic/feed/</wfw:commentRss>
			<slash:comments>3</slash:comments>
		
		
			</item>
	</channel>
</rss>
