<?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>Java &#8211; Microsoft Open Source Blog</title>
	<atom:link href="https://cloudblogs.microsoft.com/opensource/tag/java/feed/" rel="self" type="application/rss+xml" />
	<link>https://cloudblogs.microsoft.com/opensource</link>
	<description>Open dialogue about openness at Microsoft – open source, standards, interoperability</description>
	<lastBuildDate>Tue, 03 Aug 2021 15:32:14 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	
	<item>
		<title>Microsoft expands support with The Eclipse Foundation</title>
		<link>https://cloudblogs.microsoft.com/opensource/2021/08/03/microsoft-expands-support-with-the-eclipse-foundation/</link>
		
		<dc:creator><![CDATA[Stephen Walli]]></dc:creator>
		<pubDate>Tue, 03 Aug 2021 15:00:42 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Java]]></category>
		<guid isPermaLink="false">https://cloudblogs.microsoft.com/opensource/2021/08/03/microsoft-expands-support-with-the-eclipse-foundation/</guid>

					<description><![CDATA[<p>At Microsoft, our goal is to empower all developers to be successful building any application, using any language, on any platform. To do so, we are committed to building open, flexible technology, and to working together with the open source community to grow together as an industry. Microsoft has worked with the Eclipse community for<span><a class="read-more" aria-label="Read more about Microsoft expands support with The Eclipse Foundation" href="https://cloudblogs.microsoft.com/opensource/2021/08/03/microsoft-expands-support-with-the-eclipse-foundation/" data-bi-cn="Read more about Microsoft expands support with The Eclipse Foundation">Read more</a></span></p>
<p>The post <a rel="nofollow" href="https://cloudblogs.microsoft.com/opensource/2021/08/03/microsoft-expands-support-with-the-eclipse-foundation/">Microsoft expands support with The Eclipse Foundation</a> appeared first on <a rel="nofollow" href="https://cloudblogs.microsoft.com/opensource">Microsoft Open Source Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>At Microsoft, our goal is to empower all developers to be successful building any application, using any language, on any platform. To do so, we are committed to building open, flexible technology, and to working together with the open source community to grow together as an industry.</p><p>Microsoft has worked with the Eclipse community for many years and <a href="https://devblogs.microsoft.com/visualstudio/microsoft-joins-the-eclipse-foundation/" target="_blank" rel="noopener">we joined the Eclipse Foundation</a> in 2016. Today I'm excited to share Microsoft is continuing to advance our support of the Eclipse Foundation AISBL by expanding our participation to a Strategic Member. I will also be joining the Foundation's board of directors and I look forward to working alongside our industry partners.</p><p>The Eclipse Foundation has a long history of providing a strong, collaborative culture supporting open-source-licensed projects, and many of those projects are important to Microsoft, our partners, and our customers. It is important for Microsoft to support the organization that supports those projects, and to work within the organization towards those collective goals.</p><h2>Collaboration in community</h2><p>The Eclipse Foundation has deep expertise in vendor-neutral governance, infrastructure, marketing, community building, and developer advocacy work. The team showed initiative and forethought, and pivoted to become a European-based international non-profit organization to align with its membership. The Eclipse Foundation is a natural place for Microsoft to collaborate on new initiatives beginning with European partners.</p><p>The Eclipse Foundation remains a vital cornerstone of the Java ecosystem. Microsoft is committed to Java developers and the health of the Java ecosystem, actively participating in Eclipse Adoptium (formerly AdoptOpenJDK) and other projects. Expanding our involvement with the Foundation as a Strategic Member will help advance modern Java initiatives in the spirit of open source.</p><p>The Eclipse Foundation also has close ties with core parts of the Java community with the Eclipse IDE, Jakarta EE (the successor to Java EE), and MicroProfile projects hosted there. For Microsoft and its partners, the Eclipse Foundation was the logical choice for AdoptOpenJDK to continue that mission. As a vendor-neutral, multi-vendor initiative, Eclipse Adoptium continues to be a leading provider of fully compatible, high-quality distributions of Java runtimes based on OpenJDK source code.</p><p>The Eclipse Foundation is expanding its role through working groups and many of these working groups are important to Microsoft and its partners. Recent work around the Eclipse Dataspace Connector and Eclipse Tractus-X are examples of new work beginning at the Eclipse Foundation in working groups in which Microsoft has an interest in participating.</p><h2>Looking ahead</h2><p>Open source non-profits serve an important role in the community, providing the structure to enable projects to reach their next opportunity of growth. Companies support such non-profits because it supports their engagement in the non-profit's projects, supports relationships with collaborating partners, and supports the developer communities at large. Having a rich ecosystem of healthy non-profits supporting different groups of Open-Source-Initiative-licensed projects and their project ecosystems is a must. At Microsoft, we are committed to continuing to support and participate across the non-profit ecosystem, as well as engage in projects themselves.</p><p>The post <a rel="nofollow" href="https://cloudblogs.microsoft.com/opensource/2021/08/03/microsoft-expands-support-with-the-eclipse-foundation/">Microsoft expands support with The Eclipse Foundation</a> appeared first on <a rel="nofollow" href="https://cloudblogs.microsoft.com/opensource">Microsoft Open Source Blog</a>.</p>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Announcing preview of Microsoft build of OpenJDK for Java 11</title>
		<link>https://cloudblogs.microsoft.com/opensource/2021/04/06/announcing-preview-of-microsoft-build-of-openjdk-for-java-11/</link>
		
		<dc:creator><![CDATA[Bruno Borges]]></dc:creator>
		<pubDate>Tue, 06 Apr 2021 15:00:03 +0000</pubDate>
				<category><![CDATA[Application Development]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Java]]></category>
		<guid isPermaLink="false">https://cloudblogs.microsoft.com/opensource/2021/04/06/announcing-preview-of-microsoft-build-of-openjdk-for-java-11/</guid>

					<description><![CDATA[<p>Today we announcing the first preview of the Microsoft Build of OpenJDK, a new long-term support (LTS) distribution of OpenJDK that is open source and available for free for anyone to deploy anywhere.</p>
<p>The post <a rel="nofollow" href="https://cloudblogs.microsoft.com/opensource/2021/04/06/announcing-preview-of-microsoft-build-of-openjdk-for-java-11/">Announcing preview of Microsoft build of OpenJDK for Java 11</a> appeared first on <a rel="nofollow" href="https://cloudblogs.microsoft.com/opensource">Microsoft Open Source Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Today we are announcing the first preview of the Microsoft build of OpenJDK, a new long-term support (LTS) distribution of OpenJDK that is open source and available for free for anyone to deploy anywhere. It includes binaries for Java 11, based on <a href="https://github.com/openjdk/jdk11u/tree/jdk-11.0.10+9" target="_blank" rel="noopener">OpenJDK 11.0.10+9</a>, on x64 server and desktop environments on Linux, Windows, and macOS. We are also publishing a new early access release for Java 16 for Windows on Azure Resource Manager (ARM) and macOS/M1 based on the latest <a href="https://github.com/openjdk/jdk16u/tree/jdk-16+36" target="_blank" rel="noopener">OpenJDK 16+36</a> release.</p><p>Learn more about the preview release and Java at Microsoft in the <a href="http://aka.ms/openjdk-preview-april2021" target="_blank" rel="noopener">full announcement blog</a>.</p><p>Visit <a href="https://www.microsoft.com/openjdk" target="_blank" rel="noopener">Microsoft build of OpenJDK page</a> to download packages and installers.</p><p><img loading="lazy" alt="Animated GIF of Duke, the Java mascot, holding a cloud. A rainbow arcs into the cloud and turns into a version of the Microsoft logo." width="1200" height="675"></p><p>The post <a rel="nofollow" href="https://cloudblogs.microsoft.com/opensource/2021/04/06/announcing-preview-of-microsoft-build-of-openjdk-for-java-11/">Announcing preview of Microsoft build of OpenJDK for Java 11</a> appeared first on <a rel="nofollow" href="https://cloudblogs.microsoft.com/opensource">Microsoft Open Source Blog</a>.</p>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Participate in the Java EE cloud migration patterns survey</title>
		<link>https://cloudblogs.microsoft.com/opensource/2020/10/08/java-ee-cloud-migration-patterns-survey/</link>
		
		<dc:creator><![CDATA[Reza Rahman]]></dc:creator>
		<pubDate>Thu, 08 Oct 2020 17:10:12 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[JBoss]]></category>
		<category><![CDATA[OpenShift]]></category>
		<guid isPermaLink="false">https://cloudblogs.microsoft.com/opensource/2020/10/08/java-ee-cloud-migration-patterns-survey/</guid>

					<description><![CDATA[<p>The Java on Microsoft Azure team has been strengthening its commitment and outreach to Java EE users. This effort includes additional technical guidance, tools, scripts, workshops, and more to better support migrations to Virtual Machines, Kubernetes, OpenShift, and managed service (PaaS) offerings. We are working with key industry partners like Oracle, IBM, Red Hat, and<span><a class="read-more" aria-label="Read more about Participate in the Java EE cloud migration patterns survey" href="https://cloudblogs.microsoft.com/opensource/2020/10/08/java-ee-cloud-migration-patterns-survey/" data-bi-cn="Read more about Participate in the Java EE cloud migration patterns survey">Read more</a></span></p>
<p>The post <a rel="nofollow" href="https://cloudblogs.microsoft.com/opensource/2020/10/08/java-ee-cloud-migration-patterns-survey/">Participate in the Java EE cloud migration patterns survey</a> appeared first on <a rel="nofollow" href="https://cloudblogs.microsoft.com/opensource">Microsoft Open Source Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>The Java on Microsoft Azure team has been strengthening its commitment and outreach to Java EE users. This effort includes additional technical guidance, tools, scripts, workshops, and more to better support migrations to Virtual Machines, Kubernetes, OpenShift, and managed service (PaaS) offerings.</p><p>We are working with key industry partners like Oracle, IBM, Red Hat, and Payara to better support runtimes, including WebLogic, WebSphere Traditional, Open/WebSphere Liberty, JBoss EAP, WildFly, and Payara on Microsoft Azure.</p><p>Some currently available and recent examples of this work include:</p><ul><li>Enabling most use cases for WebLogic on Microsoft Azure Virtual Machines through a set of solutions jointly developed and supported with Oracle.</li><li>Guidance for integrating WebSphere/Open Liberty with Azure Active Directory via OpenID Connect developed in collaboration with IBM.</li><li>Public preview for JBoss EAP on App Service, jointly supported by Microsoft and Red Hat.</li><li>Preview for supporting JMS on Azure Service Bus.</li><li>Guidance for migrating to WildFly on AKS.</li></ul><p>Work items upcoming shortly as part of our Java EE on Microsoft Azure customer outreach include:</p><ul><li>Enabling WebLogic on AKS in partnership with Oracle.</li><li>Guidance for running WebSphere/Open Liberty applications on Azure Red Hat OpenShift, developed in collaboration with IBM.</li><li>Enabling JBoss EAP on Virtual Machines, in collaboration with Red Hat.</li></ul><p>We hope to fully enable Java EE customers as first-class citizens on Microsoft Azure through these efforts steadily.</p><img loading="lazy" alt="Java EE on Azure diagram" width="1024" height="462" src="https://cloudblogs.microsoft.com/uploads/prod/sites/37/2020/10/javaee_on_azure-1024x462.webp"><p>There is no substitute to working closely, one-on-one with actual users. Solutions developed in a vacuum are rarely on-point. The ideal is to get real-world, experience-based feedback on the solutions we provide as we develop and release them iteratively.</p><p>We're looking for Java EE users and customers who will work closely with the Microsoft team responsible for developing these solutions. If desired, Microsoft is hoping to help some customers with a free migration proof-of-concept. If this sounds interesting, please fill out <a href="https://aka.ms/migration-survey" target="_blank" rel="noopener noreferrer">this 5-minute survey</a>.</p><img loading="lazy" alt="Survey screenshot" width="1024" height="336" src="https://cloudblogs.microsoft.com/uploads/prod/sites/37/2020/10/survey_screenshot.png"><p>The survey attempts to better understand the common use cases we need to support in order to help customers realize all the benefits of the cloud. If you would like the team to connect with you directly, please include your contact information at the end. Even if you are not necessarily interested in migrating to Microsoft Azure right now, your feedback on what you would like to see is still very valuable.</p><p>Also, if you know someone who would like to participate, please forward the <a href="https://aka.ms/migration-survey">survey link</a>. Looking forward to hearing from you!</p><blockquote><p>Take the <a href="https://aka.ms/migration-survey" target="_blank" rel="noopener noreferrer">5-minute survey</a>.</p></blockquote><p>Questions about the survey? Please let us know in the comments below.</p><p>The post <a rel="nofollow" href="https://cloudblogs.microsoft.com/opensource/2020/10/08/java-ee-cloud-migration-patterns-survey/">Participate in the Java EE cloud migration patterns survey</a> appeared first on <a rel="nofollow" href="https://cloudblogs.microsoft.com/opensource">Microsoft Open Source Blog</a>.</p>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>J4K: an all-star Java and Kubernetes speaker line-up in one conference </title>
		<link>https://cloudblogs.microsoft.com/opensource/2020/09/28/j4k-microsoft-java-kubernetes-2020/</link>
		
		<dc:creator><![CDATA[Theresa Nguyen]]></dc:creator>
		<pubDate>Mon, 28 Sep 2020 18:49:55 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Kubernetes]]></category>
		<guid isPermaLink="false">https://cloudblogs.microsoft.com/opensource/2020/09/28/j4k-microsoft-java-kubernetes-2020/</guid>

					<description><![CDATA[<p>J4K is a developer-oriented conference focused on open source and hybrid cloud application development of Java and Kubernetes. This is a community event, delivered by stellar Java community leaders, and is dedicated to enriching developers and architects with cloud-focused solutions. Registration is free.  Java has a rich history in enterprise applications and has evolved over the past two<span><a class="read-more" aria-label="Read more about J4K: an all-star Java and Kubernetes speaker line-up in one conference " href="https://cloudblogs.microsoft.com/opensource/2020/09/28/j4k-microsoft-java-kubernetes-2020/" data-bi-cn="Read more about J4K: an all-star Java and Kubernetes speaker line-up in one conference ">Read more</a></span></p>
<p>The post <a rel="nofollow" href="https://cloudblogs.microsoft.com/opensource/2020/09/28/j4k-microsoft-java-kubernetes-2020/">J4K: an all-star Java and Kubernetes speaker line-up in one conference </a> appeared first on <a rel="nofollow" href="https://cloudblogs.microsoft.com/opensource">Microsoft Open Source Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><a href="https://www.j4k.io/"><span>J4K</span></a><span> is a developer-oriented conference focused on open source and hybrid cloud application development of Java and Kubernetes. </span><span>T</span><span>his is a community event, delivered by stellar Java community leaders, and is dedicated to enriching developers and architects with cloud-focused solutions. </span><a href="https://aka.ms/join-j4k"><span>Registration</span><span> is free</span></a><span>.</span><span></span></p><p><a href="https://aka.ms/join-j4k"><img loading="lazy" alt="Image for registering for J4k conference" width="500" height="262" src="https://cloudblogs.microsoft.com/uploads/prod/sites/37/2020/09/J4Kregistration.jpeg"></a></p><p><span>Java has a rich history in enterprise applications and </span><span>has </span><span>evolved over the past two decades to encompass a rich ecosystem with open source projects, open standards, innovation by individuals,</span><span></span><span>and start-ups and companies of all sizes. With the maturity of cloud computing, advancements such as automated operations for hybrid and multi-cloud </span><span>are</span><span> needed more now than ever before. Kubernetes is top of mind </span><span>to </span><span>many </span><span>for</span><span> migrating traditional on-premises deployment to the cloud. There&rsquo;s a tradeoff, however, around new platforms, methodology, best practices, budgetary considerations, and modernization options to name a few. Great, so what&rsquo;s next? </span><span></span></p><p><span>The J4</span><span>K</span><span> conference was conceived to help folks </span><span>navigate </span><span>their way through a mix of options. J4K is running four tracks to help developers enrich their experiences and skillsets. </span><span> The </span><span>2020 session tracks are: </span><span></span></p><ul><li><span>Application on cloud, containers, and K8s (real-life examples)</span><span></span></li></ul><ul><li><span>Frameworks and architectures </span><span>o</span><span>n cloud, containers, and K8s</span><span></span></li></ul><ul><li><span>Developer tools for cloud, containers, and K8s</span><span></span></li></ul><ul><li><span>Practices and other technologies</span><span></span></li></ul><p><span>There will be 50 exciting sessions, including a keynote by Red Hat VP of Engineering, Mark Little, and Microsoft CVP of Azure Engineering, Brendan Burns. To welcome the community and make you feel at home, we have Heather VanCura, Chairperson and Director of the Java Community Process (JCP), and Josh Long, Spring Developer Advocate at VMWare. Because it&rsquo;s 2020 and in-person conferences are of the past in this strange new world, you shouldn&rsquo;t miss a beat in personal growth and community fun. Join J4K with Microsoft to help us celebrate and move Java on Kubernetes forward for all. </span><span></span></p><h2><span>Check out Microsoft&rsquo;s keynote and sessions:</span><span></span></h2><h3>Building portable cloud-native applications with Java, Kubernetes, and dapr.io</h3><p><em>Keynote by Brendan Burns | Wednesday, Oct 14, 2020 | 9:00 AM &ndash; 9:45 AM</em></p><h3>Which as-a-Service is right for your Java apps?</h3><p><em>Session by Christina Compy and Theresa Nguyen | Wednesday, Oct 14, 2020 | 3:00 PM &ndash; 3:45 PM</em></p><h3>Memory Efficient Java</h3><p><em>Session by Kirk Pepperdine | Tuesday, Oct 13, 2020 | 4:00 PM &ndash; 4:45 PM</em></p><h3>The Diabolical Developer&rsquo;s Guide to Picking Your Java</h3><p><em>Session by Martijn Verburg | Wednesday, Oct 14, 2020 | 1:00 PM &ndash; 1:45 PM</em></p><h3>Run Spring Microservices at Enterprise Scale &ndash; Azure Spring Cloud</h3><p><em>Session by Asir Vedamuthu Selvasingh | Tuesday, Oct 13, 2020 | 4:00 PM &ndash; 4:45 PM </em></p><p><span>We&rsquo;ll also have a community leaderboard</span><span>,</span><span> photo,</span><span> poll questions, and</span><span></span><span>contest</span><span>s</span><span> during the event with prize</span><span>s,</span><span> in addition to other exciting opportunities to win. Join us today by <a href="https://aka.ms/join-j4k">registering for J4K</a></span><span>and feed your brain with Java and Kubernetes goodness. See you next month!</span><span></span></p><h2>Helpful links:<span></span></h2><ul><li><strong><a href="https://azure.github.io/AppService/2020/09/22/jboss-public-preview.html">JBoss EAP on App Service Linux (in preview)</a></strong></li><li><strong><a href="https://aka.ms/join-j4k">Register for J4K</a></strong></li><li><strong><a href="https://www.youtube.com/watch?v=MauKhdEjSp0&amp;feature=youtu.be">J4K 2020 Edition virtual conference video</a></strong></li></ul><p><span></span></p><p>The post <a rel="nofollow" href="https://cloudblogs.microsoft.com/opensource/2020/09/28/j4k-microsoft-java-kubernetes-2020/">J4K: an all-star Java and Kubernetes speaker line-up in one conference&nbsp;</a> appeared first on <a rel="nofollow" href="https://cloudblogs.microsoft.com/opensource">Microsoft Open Source Blog</a>.</p>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Unboxing new Microsoft Azure solutions at SpringOne Platform 2019</title>
		<link>https://cloudblogs.microsoft.com/opensource/2019/10/03/new-microsoft-azure-solutions-springone-platform-2019/</link>
		
		<dc:creator><![CDATA[Julien Dubois]]></dc:creator>
		<pubDate>Thu, 03 Oct 2019 15:40:57 +0000</pubDate>
				<category><![CDATA[Application Development]]></category>
		<category><![CDATA[Cloud]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Pivotal]]></category>
		<category><![CDATA[Spring]]></category>
		<guid isPermaLink="false">https://cloudblogs.microsoft.com/opensource/2019/10/03/new-microsoft-azure-solutions-springone-platform-2019/</guid>

					<description><![CDATA[<p>Spring and Java are first-class citizens on Microsoft Azure and our engineering teams have been working really hard for the past few years to make the developer experience for building and running Spring applications on Azure delightful and productive. To present to you this team's great work, Microsoft is again coming to SpringOne Platform this<span><a class="read-more" aria-label="Read more about Unboxing new Microsoft Azure solutions at SpringOne Platform 2019" href="https://cloudblogs.microsoft.com/opensource/2019/10/03/new-microsoft-azure-solutions-springone-platform-2019/" data-bi-cn="Read more about Unboxing new Microsoft Azure solutions at SpringOne Platform 2019">Read more</a></span></p>
<p>The post <a rel="nofollow" href="https://cloudblogs.microsoft.com/opensource/2019/10/03/new-microsoft-azure-solutions-springone-platform-2019/">Unboxing new Microsoft Azure solutions at SpringOne Platform 2019</a> appeared first on <a rel="nofollow" href="https://cloudblogs.microsoft.com/opensource">Microsoft Open Source Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Spring and Java are first-class citizens on Microsoft Azure and our engineering teams have been working really hard for the past few years to make the developer experience for building and running Spring applications on Azure delightful and productive. To present to you this team's great work, Microsoft is again coming to SpringOne Platform this year with major announcements to share with the Spring community.</p><h2>Announcements during the keynote</h2><p>We're excited to share new groundbreaking Azure features that will help you run your Spring applications the only way they should: in a very cloud-native way! These announcements will be highlighted during SpringOne's keynote on Tuesday morning at 9am CT, with Microsoft and Pivotal together on stage giving you all the details and providing you with a live demo.</p><h2>Breakout sessions</h2><p>After the keynote, there will be two joint Microsoft/Pivotal deep-dive conference sessions on how to run Spring Boot on Azure with these new features.</p><p><a href="https://twitter.com/juliendubois">Julien Dubois</a> (Microsoft) and <a href="https://twitter.com/starbuxman">Josh Long</a> (Pivotal) will do a live-coding session labeled "<a href="https://springoneplatform.io/2019/sessions/running-spring-boot-applications-efficiently-on-azure">Running Spring Boot Applications Efficiently on Azure</a>" where they will start from <a href="https://start.spring.io/">start.spring.io</a> and take you on a journey to production (the best place on earth, according to Josh!) using Azure. As they use a microservice architecture, they will detail how you can benefit from Azure's unique features to deploy, scale, and monitor your Spring Boot components, and how the new reactive programming model championed by Spring helps to have better scalability and performance.</p><blockquote><p><a href="https://springoneplatform.io/2019/sessions/running-spring-boot-applications-efficiently-on-azure">Running Spring Boot Applications Efficiently on Azure</a><br><em>Wednesday 3:20pm3:50pm in Ballroom D</em></p></blockquote><p><a href="https://twitter.com/asirselvasingh">Asir Selvasingh</a> (Microsoft), <a href="https://twitter.com/rseroter">Richard Seroter</a> (Pivotal) and Vaibhav Agrawal (Best Buy) will get together to detail <a href="https://springoneplatform.io/2019/sessions/spring-data-to-spring-cloud-to-spring-security-how-azure-supercharges-spring-boot">the right way to use Microsoft Azure with your Spring apps</a>. In this session, you will get the latest news on the <a href="https://docs.microsoft.com/en-us/java/azure/spring-framework/?WT.mc_id=s1p-blog-judubois">Azure Spring Boot starters</a> and learn more about connectivity between your app and the many services provided by Microsoft.</p><blockquote><p><a href="https://springoneplatform.io/2019/sessions/spring-data-to-spring-cloud-to-spring-security-how-azure-supercharges-spring-boot">Spring Data to Spring Cloud to Spring Security: How Azure Supercharges Spring Boot</a><br><em>Wednesday 11:30am12:40pm in Ballroom G</em></p></blockquote><h2>.NET expands at SpringOne</h2><p>The presence of .NET speakers and content shouldn't surprise you either. This year, there are exactly 10 sessions from speakers from different companies like VMWare, Confluent, Magenic Technologies, Fiserv, and of course Pivotal and Microsoft, showcasing their use of .NET Framework, Steeltoe and other cloud-native technologies for the .NET developers attending the conference.</p><p>We have two in particular for your consideration, but make sure you visit the <a href="https://springoneplatform.io/2019/sessions">session catalog</a> and filter by the ".net" tag to find all the other eight great presentations.</p><blockquote><p><a href="https://springoneplatform.io/2019/sessions/net-application-modernization-with-pas-and-azure-devops">.NET Application Modernization with PAS and Azure DevOps</a><br><em>Thursday 12:30pm1:30pm in Room 8CD</em></p><p><a href="https://springoneplatform.io/2019/sessions/putting-pivotal-platform-to-the-hybrid-cloud-test-azure">Putting Pivotal Platform to the Hybrid Cloud Test: Azure</a><br><em>Wednesday 4:20pm5:30pm in Room 8AB</em></p></blockquote><p>During the whole conference, the Azure engineering team together with product managers and developer advocates, will be present at the Microsoft booth to demonstrate all you need to know about Spring on Azure: don't hesitate to come and ask questions.</p><p>We wish you a great show, and hope to see you there.</p><p>The post <a rel="nofollow" href="https://cloudblogs.microsoft.com/opensource/2019/10/03/new-microsoft-azure-solutions-springone-platform-2019/">Unboxing new Microsoft Azure solutions at SpringOne Platform 2019</a> appeared first on <a rel="nofollow" href="https://cloudblogs.microsoft.com/opensource">Microsoft Open Source Blog</a>.</p>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Tutorial: Automate infrastructure and deployment on Azure using Jenkins and Ansible</title>
		<link>https://cloudblogs.microsoft.com/opensource/2018/09/24/tutorial-devops-on-azure-using-jenkins-and-ansible/</link>
					<comments>https://cloudblogs.microsoft.com/opensource/2018/09/24/tutorial-devops-on-azure-using-jenkins-and-ansible/#comments</comments>
		
		<dc:creator><![CDATA[Kylie Liang]]></dc:creator>
		<pubDate>Tue, 25 Sep 2018 02:30:39 +0000</pubDate>
				<category><![CDATA[Application Development]]></category>
		<category><![CDATA[Cloud]]></category>
		<category><![CDATA[DevOps]]></category>
		<category><![CDATA[PaaS]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[Ansible]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Jenkins]]></category>
		<category><![CDATA[Microsoft Azure]]></category>
		<category><![CDATA[Red Hat]]></category>
		<guid isPermaLink="false">https://cloudblogs.microsoft.com/opensource/2018/09/24/tutorial-devops-on-azure-using-jenkins-and-ansible/</guid>

					<description><![CDATA[<p>Both Ansible and Jenkins are powerful open source automation tools. Using Ansible, you can provision virtual machines, containers, network and complete cloud infrastructures on Azure. In addition, Ansible allows you to automate the deployment and configuration of resources in your environment. Jenkins provides hundreds of plugins to support building, deploying and automating any project, including<span><a class="read-more" aria-label="Read more about Tutorial: Automate infrastructure and deployment on Azure using Jenkins and Ansible" href="https://cloudblogs.microsoft.com/opensource/2018/09/24/tutorial-devops-on-azure-using-jenkins-and-ansible/" data-bi-cn="Read more about Tutorial: Automate infrastructure and deployment on Azure using Jenkins and Ansible">Read more</a></span></p>
<p>The post <a rel="nofollow" href="https://cloudblogs.microsoft.com/opensource/2018/09/24/tutorial-devops-on-azure-using-jenkins-and-ansible/">Tutorial: Automate infrastructure and deployment on Azure using Jenkins and Ansible</a> appeared first on <a rel="nofollow" href="https://cloudblogs.microsoft.com/opensource">Microsoft Open Source Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Both <a href="http://www.ansible.com/">Ansible</a> and <a href="https://jenkins.io/">Jenkins</a> are powerful open source automation tools. Using Ansible, you can provision virtual machines, containers, network and complete cloud infrastructures on Azure. In addition, Ansible allows you to automate the deployment and configuration of resources in your environment. Jenkins provides hundreds of plugins to support building, deploying and automating any project, including a plugin for Ansible.</p><p>With the power of Ansible and Jenkins, and their deep integration with Azure, you can have a seamless CI/CD experience on Azure. Below is an example for a web app scenario. Jenkins is used to build and deploy, and Ansible is called to handle provisioning.</p><p><a href="https://open.microsoft.com/wp-content/uploads/2018/09/Ansible_blog_pic-1.svg"><img loading="lazy" width="842934" height="284028" src="https://open.microsoft.com/wp-content/uploads/2018/09/Ansible_blog_pic-1.svg"></a></p><p>In the following sections, we will walk though how to use Jenkins to call Ansible to provision a web app and then continuously build and deploy a Java Spring Boot application to Azure Web Apps.</p><h2>Build your Jenkins and Ansible environment</h2><h3>Set up the Jenkins host</h3><p>It is easy to create a Jenkins server on an Azure Linux virtual machine from a <a href="https://azuremarketplace.microsoft.com/en-us/marketplace/apps/azure-oss.jenkins?tab=overview">solution template</a>. You can learn more about this template from <a href="https://docs.microsoft.com/azure/jenkins/install-jenkins-solution-template">install-jenkins-solution-template</a><u>. </u></p><h3>Install Ansible on the Jenkins host</h3><p>When your Jenkins host is created, let us SSH to your Jenkins server and set up Ansible on it.</p><p>## Install pre-requisite packages</p><pre>$ sudo apt-get update$ sudo apt-get install -y libssl-dev libffi-dev python-dev python-pip</pre><p>## Install Ansible and Azure SDKs via pip</p><pre>$ sudo pip install ansible[azure]==2.7.0rc2</pre><p>or<br>## Install Azure preview modules</p><pre>$ sudo ansible-galaxy install Azure.azure_preview_modules$ sudo pip install -r ~/.ansible/roles/Azure.azure_preview_modules/files/requirements-azure.txt</pre><p><span><i>Note: Ansible modules for Azure Web Apps are only available in Ansible 2.7. You could install Ansible 2.7 RC version here or install Azure role named azure_preview_modules which include latest modules. </i><i>Ansible 2.7 will be released on Oct 4<sup>th</sup>. After that, you need not specify the version here because the default version will be 2.7. </i></span></p><h3>Install Maven for a sample Java application</h3><p>In this demo, we will directly use this Jenkins server to build our Java application. Here we also install Maven on it.</p><p>## Install maven</p><pre>sudo apt-get install -y maven</pre><h2>Install Jenkins plugin for Ansible</h2><p>The following three plugins will be used for this web app scenario.</p><ul><li><a href="https://plugins.jenkins.io/azure-app-service">azure-app-service</a>: A Jenkins plugin to deploy a web app.</li><li><a href="https://plugins.jenkins.io/ansible">ansible</a>: This plugin allows to execute Ansible tasks as a job build step.</li><li><a href="https://plugins.jenkins.io/envinject">envinject</a>: This plugin makes it possible to have an isolated environment for your jobs.</li></ul><p>Connect to your Jenkins server by following <a href="https://docs.microsoft.com/en-us/azure/jenkins/install-jenkins-solution-template#connect-to-jenkins">connect-to-jenkins</a>. After you unblock Jenkins, suggest you choose <b>&ldquo;</b><strong>Install suggested plugins.&rdquo;</strong> The Jenkins plugin for App Service will be installed here.</p><p><a href="https://cloudblogs.microsoft.com/uploads/prod/sites/37/2018/09/jenkins-plugin-1-300x147.png"><img loading="lazy" width="300" height="147" src="https://cloudblogs.microsoft.com/uploads/prod/sites/37/2018/09/jenkins-plugin-1-300x147.png"></a></p><p>To install the other two plugins, click <b>&ldquo;</b><strong>Manage Jenkins<b>&ldquo;</b></strong> on the left bar and select <b>&ldquo;</b><strong>Manage Plugins.&rdquo;</strong> Select <b>&ldquo;</b><strong>Available&rdquo;</strong> tab, search and install <strong>Ansible</strong> plugin and <strong>Environment Injector</strong> plugin.</p><p><a href="https://cloudblogs.microsoft.com/uploads/prod/sites/37/2018/09/jenkins-plugin-3.png"><img loading="lazy" width="1819" height="633" src="https://cloudblogs.microsoft.com/uploads/prod/sites/37/2018/09/jenkins-plugin-3.png"></a></p><h2>Prepare Application, Ansible playbook, and Jenkinsfile</h2><h3>Spring Boot application for Azure Web Apps</h3><p>Here we forked a Spring Boot project from <a href="https://github.com/spring-guides/gs-spring-boot">https://github.com/spring-guides/gs-spring-boot</a> to <a href="https://github.com/VSChina/gs-spring-boot">https://github.com/VSChina/gs-spring-boot</a> for the following tutorial. On the branch named&rdquo;<strong>war-based-deployment,&rdquo;</strong> we updated the application.java and pom.xml to package this project as an executable war file, which can be directly deployed to Azure Web Apps with a Tomcat container by default.</p><h3>Ansible playbook to provision Azure Web Apps</h3><p>The below <a href="https://github.com/VSChina/gs-spring-boot/blob/war-based-deployment/complete/deploy/ansible/webapp.yml">Ansible playbook</a> creates a resource group and a web app on App Service Linux with Java 8 with Tomcat container runtime.</p><div><pre>- name: Create Azure VM hosts: localhost connection: local vars: resource_group: "{{ lookup('env', 'RES_GROUP') }}" webapp_name: "{{ lookup('env', 'WEB_APP_NAME') }}" location: eastus tasks: - name: Create a resource group azure_rm_resourcegroup: name: "{{ resource_group }}" location: "{{ location }}" - name: Create a linux web app with java framework azure_rm_webapp: resource_group: "{{ resource_group }}" name: "{{ webapp_name }}" plan: resource_group: "{{ resource_group }}" name: myappplan is_linux: true sku: S1 number_of_workers: 1 frameworks: - name: "java" version: "8" settings: java_container: tomcat java_container_version: 8.5</pre></div><h3>Jenkinsfile</h3><p>Below <a href="https://github.com/VSChina/gs-spring-boot/blob/war-based-deployment/complete/deploy/jenkins/jenkinsfile-ansible-webapp">Jenkinsfile </a>defines 4 tasks as followings.</p><ol><li>Check out source code</li><li>Build</li><li>Call Ansible to provision web app</li><li>Deploy application to created web app</li></ol><pre>node { stage('Init') { checkout scm } stage('Build') { sh ''' cd complete mvn clean package mv target/*.war ROOT.war ''' } stage('Deploy') { withCredentials([azureServicePrincipal(credentialsId: env.AZURE_CRED_ID, subscriptionIdVariable: 'AZURE_SUBSCRIPTION_ID', clientIdVariable: 'AZURE_CLIENT_ID', clientSecretVariable: 'AZURE_SECRET', tenantIdVariable: 'AZURE_TENANT')]) { ansiblePlaybook installation: 'ansible', playbook: 'complete/deploy/ansible/webapp.yml' } azureWebAppPublish azureCredentialsId: env.AZURE_CRED_ID, resourceGroup: env.RES_GROUP, appName: env.WEB_APP_NAME, filePath: "ROOT.war" }}</pre><h2>Define your Jenkins pipeline</h2><h3>Add Azure Service Principal in credentials</h3><p>Authentication is required using Ansible modules to provision Azure resources. If you don't have Service Principal, <a href="https://docs.microsoft.com/cli/azure/create-an-azure-service-principal-azure-cli?view=azure-cli-latest#create-the-service-principal">create an Azure service principal</a>. Take note of the values for the <strong>subscription ID</strong>, <strong>Client ID</strong>, <strong>Secret</strong>, and <strong>Tenant ID</strong>.</p><p>On Jenkins dashboard, click <strong>Credentials</strong> on the left bar and then <strong>System</strong> item. Then you will see <strong>Global Credentials</strong> on the page. Select it and click <strong>Add Credentials</strong>. As for kind, select <strong>Microsoft Azure Service Principal</strong> here and fill in <strong>subscription ID</strong>, <strong>Client ID</strong>, <strong>Secret</strong>, and <strong>Tenant ID</strong>.<a href="https://cloudblogs.microsoft.com/uploads/prod/sites/37/2018/09/jenkins-credential.png"><img loading="lazy" width="2173" height="1188" src="https://cloudblogs.microsoft.com/uploads/prod/sites/37/2018/09/jenkins-credential.png"></a></p><p><span>After you click ok, you will see a new item is added. Copy the name (here it is </span><a href="http://localhost:8080/credentials/store/system/domain/_/credential/542d982a-7614-4a3d-ae6b-ce321bfef5b0">542d982a-7614-4a3d-ae6b-ce321bfef5b0</a><span>) which is your </span><strong>&lt;azure-credentials-id&gt;</strong><span>.</span><a href="https://cloudblogs.microsoft.com/uploads/prod/sites/37/2018/09/jenkins-credential-2.png"><img loading="lazy" width="2138" height="58" src="https://cloudblogs.microsoft.com/uploads/prod/sites/37/2018/09/jenkins-credential-2.png"></a></p><h3></h3><h3>Create a Jenkins job</h3><p>Select <strong>New Item</strong> from the Jenkins console, then fill in your project and select <strong>Pipeline project</strong>, then select <strong>OK</strong>.<a href="https://cloudblogs.microsoft.com/uploads/prod/sites/37/2018/09/jenkins-job-1.png"><img loading="lazy" width="2166" height="732" src="https://cloudblogs.microsoft.com/uploads/prod/sites/37/2018/09/jenkins-job-1.png"></a></p><p>In General section, select <strong>Prepare an environment for the run</strong>. In the <strong>Properties Content</strong>, fill in following content.</p><pre>AZURE_CRED_ID=azure-credentials-idWEB_APP_NAME=web-app-nameRES_GROUP=web-app-resource-groupJENKINS_ADMIN=Jenkins-server-username</pre><p><a href="https://cloudblogs.microsoft.com/uploads/prod/sites/37/2018/09/jenkins-job-2.png"><img loading="lazy" width="1707" height="679" src="https://cloudblogs.microsoft.com/uploads/prod/sites/37/2018/09/jenkins-job-2.png"></a></p><p>In Pipeline section, select <strong>Git</strong> for Source Control Management, fill in <span>`</span><a href="https://github.com/VSChina/gs-spring-boot.git">https://github.com/VSChina/gs-spring-boot.git</a><b>`</b> in <strong>Repository URL</strong> and change <strong>Branch Specifier</strong> to &ldquo;<strong>*/war-based-deployment</strong>&ldquo;. As for <strong>Script Path</strong>, fill in &ldquo;<strong>complete/deploy/jenkins/jenkinsfile-ansible-webapp.&rdquo;</strong><a href="https://cloudblogs.microsoft.com/uploads/prod/sites/37/2018/09/jenkins-job-3.png"><img loading="lazy" width="2574" height="1377" src="https://cloudblogs.microsoft.com/uploads/prod/sites/37/2018/09/jenkins-job-3.png"></a></p><h3>Launch the Jenkins Job</h3><p>Now it is time to click <strong>Build Now</strong>. After the <span>deployment is complete</span>, you can find your web app on the portal and you will see it at <a href="https://%3cweb-app-name%3e.azurewebsites.net/">https://<strong>&lt;web-app-name&gt;</strong>.azurewebsites.net</a>.</p><p><a href="https://cloudblogs.microsoft.com/uploads/prod/sites/37/2018/09/output-portal.png"><img loading="lazy" width="2128" height="699" src="https://cloudblogs.microsoft.com/uploads/prod/sites/37/2018/09/output-portal.png"></a></p><p><a href="https://cloudblogs.microsoft.com/uploads/prod/sites/37/2018/09/output-springboot.png"><img loading="lazy" width="1539" height="253" src="https://cloudblogs.microsoft.com/uploads/prod/sites/37/2018/09/output-springboot.png"></a></p><h2>Conclusion</h2><p>In this tutorial we demonstrated a simple flow that automates web app provisioning and application deployment to Azure Web Apps. If you want to try more with the combination of Jenkins and Ansible, check out <a href="https://docs.microsoft.com/azure/ansible/">Ansible on Azure </a>and <a href="https://docs.microsoft.com/azure/jenkins/">Jenkins on Azure</a>.</p><p>Questions? Let us know in the comments.</p><p>The post <a rel="nofollow" href="https://cloudblogs.microsoft.com/opensource/2018/09/24/tutorial-devops-on-azure-using-jenkins-and-ansible/">Tutorial: Automate infrastructure and deployment on Azure using Jenkins and Ansible</a> appeared first on <a rel="nofollow" href="https://cloudblogs.microsoft.com/opensource">Microsoft Open Source Blog</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://cloudblogs.microsoft.com/opensource/2018/09/24/tutorial-devops-on-azure-using-jenkins-and-ansible/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>13 things to look for at SpringOne Platform</title>
		<link>https://cloudblogs.microsoft.com/opensource/2018/09/20/13-things-to-look-for-at-springone-platform/</link>
		
		<dc:creator><![CDATA[Bruno Borges]]></dc:creator>
		<pubDate>Thu, 20 Sep 2018 15:40:04 +0000</pubDate>
				<category><![CDATA[Application Development]]></category>
		<category><![CDATA[Cloud]]></category>
		<category><![CDATA[English]]></category>
		<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Kubernetes]]></category>
		<category><![CDATA[Microsoft Azure]]></category>
		<guid isPermaLink="false">https://cloudblogs.microsoft.com/opensource/2018/09/20/13-things-to-look-for-at-springone-platform/</guid>

					<description><![CDATA[<p>It is going to be a crazy week for sure! On September 24th, Microsoft will be present at SpringOne Platform in Washington D.C. to share the latest and greatest news about Java and Spring cloud-native development with Microsoft tools and Azure services. And while that's happening, Microsoft Ignite, will be at full blast with its<span><a class="read-more" aria-label="Read more about 13 things to look for at SpringOne Platform" href="https://cloudblogs.microsoft.com/opensource/2018/09/20/13-things-to-look-for-at-springone-platform/" data-bi-cn="Read more about 13 things to look for at SpringOne Platform">Read more</a></span></p>
<p>The post <a rel="nofollow" href="https://cloudblogs.microsoft.com/opensource/2018/09/20/13-things-to-look-for-at-springone-platform/">13 things to look for at SpringOne Platform</a> appeared first on <a rel="nofollow" href="https://cloudblogs.microsoft.com/opensource">Microsoft Open Source Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>It is going to be a crazy week for sure! On September 24<sup>th</sup>, Microsoft will be present at <a href="https://springoneplatform.io/">SpringOne Platform</a> in Washington D.C. to share the latest and greatest news about Java and Spring cloud-native development with Microsoft tools and Azure services. And while that's happening, <a href="https://www.microsoft.com/en-us/ignite">Microsoft Ignite</a>, will be at full blast with its own set of announcements and updates so stay tuned for those too.</p><p>One of our favorite things to do at awesome developer conferences is to announce the latest developments for developers. At SpringOne, we will unveil new tools and services, including several new releases and Java support for Azure cloud services. Come by our booth and check out these demos:</p><ol><li>Java on Azure and Azure Stack</li><li>Spring Boot apps &amp; Spring Cloud Azure modules</li><li>Cloud Foundry on Azure with OSBA</li><li>Java monitoring with Application Insight</li></ol><h3>Azure App Service on Linux for web applications</h3><p>This service is the easiest and fastest way to get started with your web applications on Azure. On top of enhancements to the service, we will be releasing the following updates:</p><ol start="5"><li>Enhanced Apache Maven Plugin</li><li>Enhancements to Azure Toolkits for Eclipse and IntelliJ IDEs</li></ol><h3>Azure Service Fabric Mesh</h3><p>Service Fabric Mesh is the serverless microservices platform in Azure. It is a fully managed Service Fabric environment that abstracts away all infrastructure including VMs, storage, orchestration and networking. Service Fabric Mesh allows developers to innovate on their business logic and build mission-critical microservice applications that can run side-by-side with lift-and-shift workloads.</p><p>For Java applications, product updates and releases:</p><ol start="7"><li>JCache API support on Reliable Collections: Service Fabric Reliable Collections can be used as a library anywhere, and when you run it on a Service Fabric cluster, your cache becomes highly available through transparent replication (while providing you co-location of compute and data for low-latency workloads).</li><li>Apache Maven plugin: Easily create, build and deploy Java applications on Service Fabric Mesh</li></ol><h3>Azure Dev Spaces for Azure Kubernetes Service (AKS) Public Preview</h3><p>Azure Dev Spaces provides a rapid, iterative Kubernetes development experience for Java development teams. With minimal dev machine setup, you can interactively run and debug Java containers directly in AKS. You can also collaborate with your team in a shared Kubernetes cluster, or integrate with your CI/CD pipeline, for end-to-end testing with other components without replicating or mocking up dependencies. To get started, check out the <a href="https://docs.microsoft.com/en-us/azure/dev-spaces/quickstart-java">Quickstart for Java</a>.</p><h3>Presentations at SpringOne Platform</h3><p>Other Microsoft engineers and I will be present at the conference to deliver these updates and other topics of interest to attendees. Sessions to check out and add to your schedule:</p><ol start="9"><li><a href="https://springoneplatform.io/2018/sessions/building-responsive-systems-with-serverless-event-driven-java">Building Responsive Systems with Serverless, Event-driven Java</a></li><li><a href="https://springoneplatform.io/2018/sessions/running-serverless-applications-using-spring-and-microsoft-azure">Running Serverless Applications Using Spring and Microsoft Azure</a></li><li><a href="https://springoneplatform.io/2018/sessions/going-cloud-native-with-spring-cloud-azure">Going Cloud-Native with Spring Cloud Azure</a></li><li><a href="https://springoneplatform.io/2018/sessions/hacking-spring-boot-applications-using-visual-studio-code">Hacking Spring Boot Applications Using Visual Studio Code</a></li><li><a href="https://springoneplatform.io/2018/sessions/beyond-windows-hacking-cloud-apps-on-linux-and-net-for-the-busy-java-developer">Beyond Windows Hacking Cloud Apps on Linux and .NET for the Busy Java Developer</a></li></ol><p>Stop by and chat with us in the exhibition hall at booth #8 and come discuss any of these 13 things and check out our demos on Pivotal Cloud Foundry on Azure, Azure Application Insights, Spring tooling support, Open Service Broker API, Azure Stack, and much more! Of course, grab some swag when you stop by too.</p><p>Finally, don't miss out my presentation on Wednesday's main stage keynote, at 10am. I hope you will enjoy it.</p><p>See you soon!</p><p>The post <a rel="nofollow" href="https://cloudblogs.microsoft.com/opensource/2018/09/20/13-things-to-look-for-at-springone-platform/">13 things to look for at SpringOne Platform</a> appeared first on <a rel="nofollow" href="https://cloudblogs.microsoft.com/opensource">Microsoft Open Source Blog</a>.</p>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Join Pivotal and Microsoft for the European JUG Tour</title>
		<link>https://cloudblogs.microsoft.com/opensource/2018/09/19/pivotal-microsoft-european-java-user-group-jug-tour/</link>
		
		<dc:creator><![CDATA[Bruno Borges]]></dc:creator>
		<pubDate>Wed, 19 Sep 2018 14:57:54 +0000</pubDate>
				<category><![CDATA[Application Development]]></category>
		<category><![CDATA[Cloud]]></category>
		<category><![CDATA[English]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Microsoft Azure]]></category>
		<guid isPermaLink="false">https://cloudblogs.microsoft.com/opensource/2018/09/19/pivotal-microsoft-european-java-user-group-jug-tour/</guid>

					<description><![CDATA[<p>In October, as a continuation of our upcoming Microsoft Ignite and Pivotal SpringOne Platform events, I'll be hitting the road with four outstanding Pivotal developer advocates/engineers, bringing the latest and greatest about Spring and Azure to Java User Groups (JUG) throughout Europe. From October 8th to 19th, we will be joining Java User Groups to demonstrate how<span><a class="read-more" aria-label="Read more about Join Pivotal and Microsoft for the European JUG Tour" href="https://cloudblogs.microsoft.com/opensource/2018/09/19/pivotal-microsoft-european-java-user-group-jug-tour/" data-bi-cn="Read more about Join Pivotal and Microsoft for the European JUG Tour">Read more</a></span></p>
<p>The post <a rel="nofollow" href="https://cloudblogs.microsoft.com/opensource/2018/09/19/pivotal-microsoft-european-java-user-group-jug-tour/">Join Pivotal and Microsoft for the European JUG Tour</a> appeared first on <a rel="nofollow" href="https://cloudblogs.microsoft.com/opensource">Microsoft Open Source Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>In October, as a continuation of our upcoming <a href="https://ignite.microsoft.com/">Microsoft Ignite</a> and Pivotal <a href="https://springoneplatform.io/">SpringOne Platform</a> events, I'll be hitting the road with four outstanding Pivotal developer advocates/engineers, bringing the latest and greatest about Spring and Azure to Java User Groups (JUG) throughout Europe.</p><p>From October 8<sup>th</sup> to 19<sup>th</sup>, we will be joining Java User Groups to demonstrate how Java and Spring developers can bring Reactive Spring Boot applications to the cloud. We have nine stops, starting in the great city of Dublin, Ireland strategically chosen as the first stop, because we are all humans who deserve good beer to kick off such event. And, if our plane, train, and demo gods help us out, we will travel all the way to Bern, Switzerland, with seven stops in between.</p><p><em>Follow these folks on Twitter to keep up to date!</em></p><p>We will be presenting the two sessions, &ldquo;Going Reactive with Spring Boot&rdquo; and &ldquo;Taking Spring Apps for a spin on the Microsoft Azure Cloud,&rdquo; in addition to recapping the major news from both Microsoft's and Pivotal's recent conferences.</p><p>In these talks, we will cover topics like <a href="https://spring.io/projects/spring-boot">Spring Boot</a>, <a href="https://projectreactor.io/">Project Reactor</a>, development of Java applications with <a href="https://code.visualstudio.com/docs/languages/java">Visual Studio Code</a>, deployment to <a href="https://azure.microsoft.com/en-us/develop/java/">Microsoft Azure</a>, and much more.</p><p>Check out the schedule below and where to register to attend these events!</p><h4><strong>European JUG Schedule</strong></h4><table><tbody><tr><td width="217"><strong>Dublin JUG<br><a href="http://www.dubjug.org/">Website</a></strong> // <strong><a href="https://twitter.com/dubjug">@dubjug</a></strong></td><td width="170">Oct 8<sup>th</sup> Monday</td><td width="236"><a href="https://ti.to/dublin-java-user-group/pivotal-microsoft-jug-tour-europe-2018/">Sign up</a> for Dublin, Ireland</td></tr><tr><td width="217"><strong>London Java Community<br><a href="http://londonjavacommunity.co.uk/">Website</a></strong> // <strong><a href="https://twitter.com/ljcjug">@ljcjug</a></strong></td><td width="170">Oct 9th Tuesday</td><td width="236"><a href="https://www.meetup.com/Londonjavacommunity/events/254002891/">Sign up</a> for London, UK</td></tr><tr><td width="217"><strong>JHipster Meetup Paris<br><a href="http://jhipster.tech/">Website</a></strong> // <strong><a href="https://twitter.com/java_hipster">@java_hipster</a></strong></td><td width="170">Oct 11<sup>th</sup> Thursday</td><td width="236"><a href="https://www.meetup.com/fr-FR/JHipster-User-Group/events/254371421/">Sign up</a> for Paris, France</td></tr><tr><td width="217"><strong>Brussels JUG<br><a href="https://brujug.be/">Website</a></strong> // <strong><a href="https://twitter.com/brujug">@brujug</a></strong></td><td width="170">Oct 12<sup>th</sup> Friday</td><td width="236"><a href="https://www.meetup.com/BruJUG/events/253929779/">Sign up</a> for Brussels, Belgium</td></tr><tr><td width="217"><strong>Utrecht JUG Meetup<br><a href="https://www.meetup.com/Utrecht-Java-User-Group/">Website</a></strong> // <a href="https://twitter.com/utrechtjug"><strong>@nljug</strong></a></td><td width="170">Oct 15<sup>th</sup> Monday</td><td width="236"><a href="https://www.meetup.com/Utrecht-Java-User-Group/events/254782831/">Sign up</a> for Utrecht, Netherlands</td></tr><tr><td width="217"><strong>Dortmund JUG<br></strong><strong><a href="https://www.meetup.com/JUG-Dortmund/">Website</a></strong> // <strong><a href="https://twitter.com/Jug_DO">@Jug_DO</a></strong></td><td width="170">Oct 16<sup>th</sup> Tuesday</td><td width="236"><a href="https://www.meetup.com/de-DE/JUG-Dortmund/events/253678280/">Sign up</a> for Dortmund, Germany</td></tr><tr><td width="217"><strong>Frankfurt JUG<br><a href="https://sites.google.com/site/jugffm/">Website</a></strong> // <strong><a href="https://twitter.com/jugffm">@jugffm</a></strong></td><td width="170">Oct 17<sup>th</sup> Wednesday</td><td width="236"><a href="http://bit.ly/pivotal_microsoft_JUG_2018">Sign up</a> for Frankfurt, Germany</td></tr><tr><td width="217"><strong>Saarbrcken JUG<br><a href="https://www.meetup.com/Java-User-Group-Saarland-jugsaar/">Website</a></strong> // <strong><a href="https://twitter.com/jugsaar">@jugsaar</a></strong></td><td width="170">Oct 18<sup>th</sup> Thursday</td><td width="236"><a href="https://www.meetup.com/de-DE/Java-User-Group-Saarland-jugsaar/events/253640911/">Sign up</a> for Saarbrcken, Germany</td></tr><tr><td width="217"><strong>Switzerland JUG<br></strong><strong><a href="https://twitter.com/jugch">@jugch</a></strong></td><td width="170">Oct 19<sup>th</sup> Friday</td><td width="236"><a href="https://www.jug.ch/html/events/2018/microsoft-and-pivotal-jug-tour-2018.html">Sign up</a> for Bern, Switzerland</td></tr></tbody></table><p>Finally, we'd like to thank all the JUG and community leaders who have helped us plan this tour. A big shout out to Barry Alistair (DubJug), Dominique Carlo (LJC), Julien Dubois (JHipster), Olivier Hubaut (BruJUG), Bert Jan Schrijver (Utrecht JUG), Tom Hombergs (Dortmund JUG), Alexander Culum (Frankfurt JUG), Thomas Darimont (JUGSaar), and finally Oliver Nautsch and Thomas Wenger (Switzerland JUG). Also a big thank you to <a href="https://www.rabobank.com/">Rabobank</a> for sponsoring the event in Utrecht, Netherlands, and <a href="https://en.ippon.tech/">Ippontech</a> for sponsoring the JHipster meetup in Paris.</p><p>See you in October, Europe!</p><p>The post <a rel="nofollow" href="https://cloudblogs.microsoft.com/opensource/2018/09/19/pivotal-microsoft-european-java-user-group-jug-tour/">Join Pivotal and Microsoft for the European JUG Tour</a> appeared first on <a rel="nofollow" href="https://cloudblogs.microsoft.com/opensource">Microsoft Open Source Blog</a>.</p>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Celebrating OSCON’s 20th anniversary</title>
		<link>https://cloudblogs.microsoft.com/opensource/2018/07/16/microsoft-celebrating-oscons-20th-anniversary/</link>
		
		<dc:creator><![CDATA[Ken Thompson]]></dc:creator>
		<pubDate>Mon, 16 Jul 2018 16:30:18 +0000</pubDate>
				<category><![CDATA[Application Development]]></category>
		<category><![CDATA[Cloud]]></category>
		<category><![CDATA[Containers]]></category>
		<category><![CDATA[Deep Learning]]></category>
		<category><![CDATA[DevOps]]></category>
		<category><![CDATA[English]]></category>
		<category><![CDATA[IT Trends]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[Cloud Foundry]]></category>
		<category><![CDATA[GitHub]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Jenkins]]></category>
		<category><![CDATA[Kubernetes]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Microsoft Azure]]></category>
		<category><![CDATA[Typescript]]></category>
		<category><![CDATA[Visual Studio Code]]></category>
		<guid isPermaLink="false">https://cloudblogs.microsoft.com/opensource/2018/07/16/microsoft-celebrating-oscons-20th-anniversary/</guid>

					<description><![CDATA[<p>We're in Portland this week for OSCON's return to the City of Roses (or Beervana, depending on who you ask) to celebrate the ground-breaking event's 20th birthday. Some of Microsoft's 3,000 open source contributors from across the company will be there showcasing some of their favorite open source technologies and community projects throughout many breakout<span><a class="read-more" aria-label="Read more about Celebrating OSCON's 20th anniversary" href="https://cloudblogs.microsoft.com/opensource/2018/07/16/microsoft-celebrating-oscons-20th-anniversary/" data-bi-cn="Read more about Celebrating OSCON's 20th anniversary">Read more</a></span></p>
<p>The post <a rel="nofollow" href="https://cloudblogs.microsoft.com/opensource/2018/07/16/microsoft-celebrating-oscons-20th-anniversary/">Celebrating OSCON’s 20th anniversary</a> appeared first on <a rel="nofollow" href="https://cloudblogs.microsoft.com/opensource">Microsoft Open Source Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[<img loading="lazy" width="280" height="311" href="https://conferences.oreilly.com/oscon/oscon-or" src="https://cloudblogs.microsoft.com/uploads/prod/sites/37/2018/07/oscon_20th_anniversary_no_tarsier.png"><p>Our favorite photographer <a href="http://jceventphoto.com/">Julian Cash</a>, who has become an OSCON tradition, will be capturing the <a href="https://vimeo.com/235163202">many personalities of OSCON</a> in the booth, so be sure to stop by and get a pic. You can also score a comicbook-style t-shirt, inspired by Julian&rsquo;s OSCON photography, by completing one of our hands-on labs, including new labs featuring Blockchain on Azure or how to get started with <a href="https://www.openshift.org/">OpenShift Origin</a>.<br>Of course, the booth will be busy with engineers and dev advocates demonstrating new technologies and their favorite open source tools. Below are some of the demos you can check out:</p><ul><li><strong>Developer Tools on Containers with <a href="https://twitter.com/listonb">@listonb</a><a href="https://twitter.com/BerndVerst">@BerndVerst</a></strong>: Learn how to get started using containers with open source tools like Helm and Draft.</li><li><strong>Infrastructure as Code with <a href="https://twitter.com/mekenthompson">@mekenthompson</a><a href="https://twitter.com/zdeptawa">@zdeptawa</a></strong>: Automate provisioning and configuration of environments using Infrastructure as Code, using tools like Terraform or Ansible.</li><li><strong>Java and Azure Functions with <a href="https://twitter.com/ruthieyakubu">@ruthieyakubu</a><a href="https://twitter.com/sbohlen">@sbohlen</a><a href="https://twitter.com/andybeach">@andybeach</a></strong>: Tutorial on data anomaly detection using serverless computing and AI.</li><li><strong>Linux on Windows with <a href="https://twitter.com/tara_msft">@tara_msft</a><a href="https://twitter.com/@avneet723">@avneet723</a><a href="https://twitter.com/@auchenberg">@auchenberg</a></strong>: See how developers can use their Linux development toolchain on Windows, with technologies like the Windows Subsystem for Linux (WSL).</li><li><strong>DevOps CI/CD with</strong><strong><a href="https://twitter.com/mekenthompson">@mekenthompson</a></strong><strong><a href="https://twitter.com/@ethomson">@ethomson</a><a href="https://twitter.com/@dstaheli">@dstaheli</a></strong>: Learn how to take advantage of continuous integration to improve software development quality and speed. See how Visual Studio Team Services integrates into existing toolchains, like Jenkins and GitHub.</li><li><strong>SQL Server on Linux with <a href="https://twitter.com/spboyer">@spboyer</a></strong>: Walk through SQL Server's support for Linux and Docker containers.</li></ul><p>In addition to catching up in the Expo, below is a rundown of the Microsoft breakout sessions throughout the week, covering topics from Kubernetes 101 and how to design distributed systems to the historic profiles of open source heros and a live keynote coding challenge.<br>Follow us <a href="http://twitter.com/openatmicrosoft">@OpenAtMicrosoft</a> to get the latest updates.</p><h4><strong>MONDAY, JULY 16<sup>TH</sup></strong></h4><p><a href="https://conferences.oreilly.com/oscon/oscon-or/public/schedule/detail/69647"><strong>.NET Core 2.0: From acquisition to containers</strong></a><strong> (9am Noon) <a href="https://twitter.com/spboyer">@spboyer</a></strong><br>Hands-on overview of <a href="https://dotnet.github.io/">.NET Core</a> 2.0 with Shayne Boyer. Whether you prefer a command line, a simple editor, or a full IDE, you'll learn how to get the bits, create console applications, and do cross-platform targeting. You'll also explore ASP.NET Core web development and .NET Core application tools and deployment.</p><h4><strong>TUESDAY, JULY 17<sup>TH</sup></strong></h4><p><a href="https://conferences.oreilly.com/oscon/oscon-or/public/schedule/detail/71445"><strong>Model validation: When things blow up</strong></a><strong> (2:00pm2:30pm) <a href="https://twitter.com/DynamicWebPaige">@DynamicWebPaige</a></strong><br>Machine learning offers a powerful toolkit for building complex predictive systems. These models can provide immense business value and are often deployed in high-consequence environments, but it can be extremely dangerous to think of those quick wins as coming for free. Paige Bailey explains what happens when your data changes over time and fresh models must be produced continuously and details the consequences of having your model's predictions go awry.<br><a href="https://conferences.oreilly.com/oscon/oscon-or/public/schedule/detail/66287"><strong>Kubernetes 101</strong></a><strong> (9:00am12:30pm) <a href="https://twitter.com/bridgetkromhout">@</a><a href="https://twitter.com/bridgetkromhout">bridgetkromhout</a></strong><br>It is a truth universally acknowledged that a techie in possession of any production code whatsoever must be in want of a container orchestration platform. What's up for debate, according to noted thought leader Jane Austen, is how many pizzas the team is going to eat. In this hands-on Kubernetes workshop, Bridget Kromhout walks you through launching clusters and details all the moving parts you need to know about how to use Kubernetes in production. If you're into dev or ops or some portmanteau thereof, this is relevant to your interests.</p><h4><strong>WEDNESDAY, JULY 18<sup>TH</sup></strong></h4><p><a href="https://conferences.oreilly.com/oscon/oscon-or/public/schedule/detail/70443"><strong>Live coding: OSCON edition</strong></a><strong> (Keynote, 9:05am 9:15am) <a href="https://twitter.com/noopkat">@</a><a href="https://twitter.com/noopkat">noopkat</a></strong><br>Live coding sounds really scary, but it's a fear worth conquering. To show how fun it can really be, Suz Hinton rolls the dice and live-codes an entertaining hardware solution in front of your eyes. To make things interesting, she'll start with some randomly assigned inputs and outputs. The challenge is to have a working set of code inside 10 minutes that completes the assigned mission. Join in to find out if Suz has what it takes.<br><a href="https://conferences.oreilly.com/oscon/oscon-or/public/schedule/detail/67450"><strong>Heroic and inspiring tales of open source</strong></a><strong> (11:00am11:40am) <a href="https://twitter.com/stephenrwalli">@</a><a href="https://twitter.com/stephenrwalli">stephenrwalli</a><a href="https://twitter.com/DivaDanese">@</a><a href="https://twitter.com/DivaDanese">DivaDanese</a></strong><br>Twenty years in, open source represents one of the longest human experiments in global collaboration and change, and there are important lessons to be learned from this history. Danese Cooper and Stephen Walli explain why studying the history of open source will help the next generation of FOSS practitioners move forward with more confidenceand keep them from repeating past mistakes. This talk is meant as a gift to those who will inherit the open source movement, so they won't compromise open source out of existence.<br><a href="https://conferences.oreilly.com/oscon/oscon-or/public/schedule/detail/67476"><strong>DevOps with Kubernetes and Helm</strong></a><strong> (11:50am12:30pm) <a href="https://twitter.com/jldeen">@</a><a href="https://twitter.com/jldeen">jldeen</a></strong><br>Helm is a tool that streamlines installing and managing Kubernetes applications; it's like Homebrew for Kubernetes, but it's also so much more. Jessica Deen shows you how to use standard DevOps practices such as IaC, CI/CD, and automated release in conjunction with Kubernetes (AKS) and Helm. You'll learn how key DevOps practices tie right into container orchestration with Kubernetes and Helm and explore a live demo showcasing how to get started with Kubernetes by deploying a Go app through a full CI/CD pipeline using a preconfigured Helm chart.<br><a href="https://conferences.oreilly.com/oscon/oscon-or/public/schedule/detail/67646"><strong>Designing distributed systems: Patterns and practices for reliable software systems</strong></a><strong> (11:00am11:40am) <a href="https://twitter.com/brendandburns">@brendandburns</a></strong><br>Nearly every application now built is a distributed system, and these systems are expected to be reliable, dynamically updatable, and scalable to any load. However, though thousands of distributed systems are activated every day, designing and building them is more black art than science. The good news is that the study of such systems reveals a collection of repeated patterns and practices that can be applied to quickly construct reliable systems. Brendan Burns describes these patterns and explains how they can be used with the Kubernetes container orchestrator.<br><a href="https://conferences.oreilly.com/oscon/oscon-or/public/schedule/detail/67770"><strong>Building event-driven pipelines with Brigade</strong></a><strong> (5:05pm5:45pm) <a href="https://twitter.com/LachlanEvenson">@LachlanEvenson</a></strong><br>Building complex or even simple event-driven pipelines on Kubernetes has always been somewhat of an elusive taskuntil now. Enter Brigade, a lightweight open source event-driven tool that accepts a JavaScript expression of a pipeline that gets seamlessly converted into the associated Kubernetes runtime objects. Lachlan Evenson demonstrates how to build event-driven pipelines on Kubernetes, showing just how simple it is to solve sometimes-complex tasks with Brigade.<br><a href="https://conferences.oreilly.com/oscon/oscon-or/public/schedule/detail/67693"><strong>TypeScript: Rethinking type systems with JavaScript</strong></a><strong> (5:05pm5:45pm) <a href="https://twitter.com/drosenwasser">@drosenwasser</a></strong><br>Conventional wisdom says building a type system goes hand in hand with building a language. What happens when you go against convention? Well, for a language with millions of users like JavaScript, it turns out that your type system has to be pretty expressive. A language that builds on top of an existing language doesn't have the conveniences of allowing specific patterns but instead has to take the approach of understanding existing patterns. Daniel Rosenwasser explains how TypeScript has grown to meet JavaScript code and why it's one of the fastest growing languages today.</p><h4><strong>THURSDAY, JULY 19<sup>TH</sup></strong></h4><p><a href="https://conferences.oreilly.com/oscon/oscon-or/public/schedule/detail/66600"><strong>Distributed systems for stream processing: Apache Kafka and Spark Streaming</strong></a><strong> (11am 11:40am) <a href="https://twitter.com/lenadroid">@lenadroid</a></strong><br>Everything is a data source, and today's online activities, financial operations, and IoT devices and sensors generate data at an ever-increasing rate. So how do we ingest, process, and manage that data? We need an architecture to ingest these incoming influxes of data that is flexible, scalable, fast, and resilient. Alena Hall walks you through setting up and building a distributed streaming architecture on Azure using open source frameworks like Apache Kafka and Spark Streaming.<br><a href="https://conferences.oreilly.com/oscon/oscon-or/public/schedule/detail/68955"><strong>Deploying Linux to the cloud</strong></a><strong> (2:35pm3:15pm) <a href="https://twitter.com/bureado">@bureado</a></strong><br>Whether enabling large scale-out clusters, working at the heart of complex container-based architectures, or powering massive data solutions, Linux's flexibility, composability, and robustness have made it the bread-and-butter of the cloud. But the cloud is also changing how we make Linux happen, such as new ways of packaging and distributing software, building and maintaining clusters, leveraging economies of scale for storage and networking, and, maybe most importantly, observing, controlling, and managing this sprawling Linux infrastructure. Join Jose Miguel Parrella to explore these changes with regard to networking, high availability and clustering, security and management, and application operations and governance.<br><br></p><p>The post <a rel="nofollow" href="https://cloudblogs.microsoft.com/opensource/2018/07/16/microsoft-celebrating-oscons-20th-anniversary/">Celebrating OSCON&rsquo;s 20th anniversary</a> appeared first on <a rel="nofollow" href="https://cloudblogs.microsoft.com/opensource">Microsoft Open Source Blog</a>.</p>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Tutorial: Immutable infrastructure for Azure, using VSTS, Terraform, Packer and Ansible</title>
		<link>https://cloudblogs.microsoft.com/opensource/2018/05/23/immutable-infrastructure-azure-vsts-terraform-packer-ansible/</link>
					<comments>https://cloudblogs.microsoft.com/opensource/2018/05/23/immutable-infrastructure-azure-vsts-terraform-packer-ansible/#comments</comments>
		
		<dc:creator><![CDATA[Elena Neroslavskaya]]></dc:creator>
		<pubDate>Wed, 23 May 2018 18:37:06 +0000</pubDate>
				<category><![CDATA[Application Development]]></category>
		<category><![CDATA[Cloud]]></category>
		<category><![CDATA[Containers]]></category>
		<category><![CDATA[DevOps]]></category>
		<category><![CDATA[English]]></category>
		<category><![CDATA[Ansible]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Microsoft Azure]]></category>
		<category><![CDATA[Packer]]></category>
		<category><![CDATA[Spring]]></category>
		<category><![CDATA[Terraform]]></category>
		<category><![CDATA[Visual Studio]]></category>
		<guid isPermaLink="false">https://cloudblogs.microsoft.com/opensource/2018/05/23/immutable-infrastructure-azure-vsts-terraform-packer-ansible/</guid>

					<description><![CDATA[<p>This is part 2 of a 2-part series on CI/CD for &#8220;infrastructure as code&#8221; on Azure. In part 1, we covered a basic pipeline building application and provisioning infrastructure codified as Terraform templates and Ansible playbooks. While it demonstrated how infrastructure is treated as a code  stored, versioned, and audited  there is still<span><a class="read-more" aria-label="Read more about Tutorial: Immutable infrastructure for Azure, using VSTS, Terraform, Packer and Ansible" href="https://cloudblogs.microsoft.com/opensource/2018/05/23/immutable-infrastructure-azure-vsts-terraform-packer-ansible/" data-bi-cn="Read more about Tutorial: Immutable infrastructure for Azure, using VSTS, Terraform, Packer and Ansible">Read more</a></span></p>
<p>The post <a rel="nofollow" href="https://cloudblogs.microsoft.com/opensource/2018/05/23/immutable-infrastructure-azure-vsts-terraform-packer-ansible/">Tutorial: Immutable infrastructure for Azure, using VSTS, Terraform, Packer and Ansible</a> appeared first on <a rel="nofollow" href="https://cloudblogs.microsoft.com/opensource">Microsoft Open Source Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>This is part 2 of a 2-part series on CI/CD for &ldquo;<a href="https://docs.microsoft.com/en-us/azure/devops/what-is-infrastructure-as-code">infrastructure as code</a>&rdquo; on Azure. <a href="https://open.microsoft.com/2018/05/22/cicd-azure-terraform-ansible-vsts-java-springboot-app/">In part 1</a>, we covered a basic pipeline building application and provisioning infrastructure codified as Terraform templates and Ansible playbooks. While it demonstrated how infrastructure is treated as a code stored, versioned, and audited there is still room for configuration drifts and the time required to update the configuration on the server could make auto-scaling challenging. Configuration updates using Ansible also require SSH ports to be open. These and some other considerations are addressed in this tutorial.<br>Below we&rsquo;ll demonstrate how to build immutable infrastructure for Azure using <a href="https://www.visualstudio.com/team-services/">Visual Studio Team Services</a> (VSTS) as continuous integration and delivery (CI/CD) and popular HashiCorp and Red Hat tools. Some of the challenges today when building infrastructure are predictability and automated recovery. We need to promote the exact same artifact that was tested into production to ensure consistent behavior. And it is essential to be able to recover the system to the last known to work state. Solving these and other problems such as configuration drift and snowflake servers are the main benefits of building immutable infrastructure.<br>So, what is immutable infrastructure? It's a process where instead of having to worry about updating many moving parts at all layers of the application, the whole machine image is promoted, unchanged, from environment to environment. The downside is that building an image takes a lot more time than just running the update script, but that might be solved by layering the images.<br>In this post the following tools are used to demonstrate the power of using CI/CD for immutable infrastructure builds:<br></p><img loading="lazy" width="840" height="239" src="https://cloudblogs.microsoft.com/uploads/prod/sites/37/2018/05/Post-3_image-1-1024x291.png"><p>This is the flow implemented in this post:<br><img loading="lazy" src="https://cloudblogs.microsoft.com/uploads/prod/sites/37/2018/05/Post-3_image-2-1024x427.png" alt="" width="840" height="350" srcset="https://cloudblogs.microsoft.com/uploads/prod/sites/37/2018/05/Post-3_image-2-300x125.png 300w, https://cloudblogs.microsoft.com/uploads/prod/sites/37/2018/05/Post-3_image-2-768x321.png 768w, https://cloudblogs.microsoft.com/uploads/prod/sites/37/2018/05/Post-3_image-2-1024x427.png 1024w, https://cloudblogs.microsoft.com/uploads/prod/sites/37/2018/05/Post-3_image-2-330x138.png 330w, https://cloudblogs.microsoft.com/uploads/prod/sites/37/2018/05/Post-3_image-2-800x334.png 800w, https://cloudblogs.microsoft.com/uploads/prod/sites/37/2018/05/Post-3_image-2-400x167.png 400w"></p><ul><li>DevOps commit code or configuration change</li><li>VSTS Build builds and packages application</li><li>VSTS Release invokes Packer to build a Linux image and store it in Managed Disks</li><li>Packer invokes the Ansible Playbook provisioner to install JDK, Tomcat and SpringBoot application</li><li>VSTS Release invokes Terraform to provision Infrastructure and uses Packer build image</li></ul><p>Prerequisites:</p><ul><li>Configure custom VSTS agent with required tools as described in &ldquo;<a href="https://open.microsoft.com/2018/05/22/how-to-create-vsts-agent-azure-aci-terraform/">How to create a custom VSTS agent on Azure ACI with Terraform</a>&ldquo;</li><li>Service Principal with access to the Subscription</li><li>Resource Group in which managed disks will be created</li><li>Storage Account/Container to save Terraform state in (update "backend.tfvars" in the Terraform templates below with the storage account names).<br>Terraform must store state about your managed infrastructure and configuration. This state is used by Terraform to map real world resources to your configuration, keep track of metadata, and to improve performance for large infrastructures.</li><li>Ansible task extension installed from <a href="https://marketplace.visualstudio.com/items?itemName=ms-vscs-rm.vss-services-ansible">VSTS marketplace</a></li></ul><h4>Spring Boot Application Build</h4><p>The application used for this example is the Java Spring Boot application from <a href="https://open.microsoft.com/2018/05/22/cicd-azure-terraform-ansible-vsts-java-springboot-app/">part 1 of this tutorial</a>. First, we build and package the Spring Boot application using Gradle. You can import the full build definition from this <a href="https://github.com/lenisha/vsts-terraform-ansible-packer">GitHub repository</a> or create a Java Gradle project from scratch by following the steps provided in this documentation: &ldquo;<a href="https://docs.microsoft.com/en-us/vsts/build-release/apps/java/build-gradle?view=tfs-2017&amp;tabs=vsts">Build your Java app with Gradle</a>.&rdquo; Here is outline of the steps and commands customizations:</p><ol><li>Create a build definition (Build &amp; Release tab &gt; Builds).</li><li>Search and use "Gradle" definition.<br>In the repository tab of build definition make sure the repository selected is the one where you pushed (Git).</li><li>In "Copy Files" &ndash; customize the step to copy all required scripts directories with templates to resulting artifact.<br>ansible/**<br>terraform/**<br>packer/**</li></ol><img loading="lazy" width="840" height="442" src="https://cloudblogs.microsoft.com/uploads/prod/sites/37/2018/05/Post-3_image-3-1024x539.png"><p>4. Add an additional "Copy Files" step, which will copy the Java WAR file to the resulting build artifact.<br></p><img loading="lazy" width="840" height="495" src="https://cloudblogs.microsoft.com/uploads/prod/sites/37/2018/05/Post-3_image-4-1024x603.png"><p>On the Triggers tab, enable continuous integration (CI). This tells the system to queue a build whenever new code is committed. Save and queue the build.</p><h4>Infrastructure Provisioning</h4><p>In this flow, Packer builds an Azure VM image and uses Ansible as the provisioner. Ansible Playbook installs the required software (Apache) and application on the server. The completed image is saved in Azure Managed disks. Terraform is used to build the infrastructure based on the Packer image.<br>Here is the Release pipeline definition, which can be <a href="https://github.com/lenisha/vsts-terraform-ansible-packer">imported from GitHub</a>.<br><img loading="lazy" src="https://cloudblogs.microsoft.com/uploads/prod/sites/37/2018/05/Post-3_image-5-1024x432.png" alt="" width="840" height="354" srcset="https://cloudblogs.microsoft.com/uploads/prod/sites/37/2018/05/Post-3_image-5-300x127.png 300w, https://cloudblogs.microsoft.com/uploads/prod/sites/37/2018/05/Post-3_image-5-768x324.png 768w, https://cloudblogs.microsoft.com/uploads/prod/sites/37/2018/05/Post-3_image-5-1024x432.png 1024w, https://cloudblogs.microsoft.com/uploads/prod/sites/37/2018/05/Post-3_image-5-330x139.png 330w, https://cloudblogs.microsoft.com/uploads/prod/sites/37/2018/05/Post-3_image-5-800x338.png 800w, https://cloudblogs.microsoft.com/uploads/prod/sites/37/2018/05/Post-3_image-5-400x169.png 400w"></p><h4>Deployment Flow</h4><p>1. Start by defining Empty Release Definition, and link the build prepared above as an artifact.<br>2. Use custom VSTS Agent from "ACI-Pool"<br>3. Define Variable Group with environment variables that provide connectivity to subscription ARM_SUBSCRIPTION_ID, ARM_TENANT_ID. Service Principle ARM_CLIENT_ID, ARM_CLIENT_SECRET. And Storage account access key ARM_ACCESS_KEY.<br></p><img loading="lazy" width="840" height="393" src="https://cloudblogs.microsoft.com/uploads/prod/sites/37/2018/05/Post-3_image-6-1024x479.png"><p>And Variable ARM_RESOURCE_GROUP_DISKS that has the name of resource group to store the images.<br></p><img loading="lazy" width="840" height="237" src="https://cloudblogs.microsoft.com/uploads/prod/sites/37/2018/05/Post-3_image-7-1024x289.png"><p>4. Add these steps:<br>a. Packer build- invoke shell script to build image<br></p><img loading="lazy" width="840" height="304" src="https://cloudblogs.microsoft.com/uploads/prod/sites/37/2018/05/Post-3_image-8-1024x371.png"><p>Script executes the Packer template and sets the VSTS output variable "manageddiskname" to the disk created by Packer. This image will be used by Terraform to point VM ScaleSets to.</p><pre>#!/bin/bash## execute packer build and send out to packer-build-output filepacker build -var playbook_drop_path=$6 ./app.json 2&gt;&amp;1 | tee packer-build-output.log## export output variable to VSTSexport manageddiskname=$(cat packer-build-output.log | grep ManagedImageName: | awk '{print $2}')echo "variable $manageddiskname"echo "##vso[task.setvariable variable=manageddiskname]$manageddiskname"</pre><p>Packer template uses Azure builder to create image based on Red Hat and saves it in Managed Disk in the provided resource group (name includes timestamp for ease of identification).</p><pre>{ "variables": { "tenant_id": "{{env `ARM_TENANT_ID`}}", "client_id": "{{env `ARM_CLIENT_ID`}}", "client_secret": "{{env `ARM_CLIENT_SECRET`}}", "managed_resource_group": "{{env `ARM_RESOURCE_GROUP_DISKS`}}", "subscription_id": "{{env `ARM_SUBSCRIPTION_ID`}}", "playbook_drop_path": "", "random_path": "{{timestamp}}" }, "builders": [{ "type": "azure-arm", "client_id": "{{user `client_id`}}", "client_secret": "{{user `client_secret`}}", "subscription_id": "{{user `subscription_id`}}", "tenant_id": "{{user `tenant_id`}}", "os_type": "Linux", "image_publisher": "RedHat", "image_offer": "RHEL", "image_sku": "7.3", "managed_image_resource_group_name": "{{user `managed_resource_group`}}", "managed_image_name": "demoPackerImage-{{isotime \"2006-01-02_03_04_05\"}}", "location": "Canada Central", "vm_size": "Basic_A1" }</pre><p>To install the required components and application we are using Ansible Playbook. To invoke it, define a provisioner in the Packer template. First, we use shell provisioner to install Ansible, then "Ansible-local" to invoke the playbook on the image being created, and then shutdown the VM.</p><pre>"provisioners": [ { "execute_command": "chmod +x {{ .Path }}; {{ .Vars }} sudo -E sh '{{ .Path }}'", "inline": [ "sudo yum install f ansible" ], "inline_shebang": "/bin/sh -x", "type": "shell" }, { "type": "ansible-local", "playbook_file": "{{user `playbook_drop_path`}}/ansible/site.yml", "playbook_dir": "{{user `playbook_drop_path`}}/ansible" }, { "execute_command": "chmod +x {{ .Path }}; {{ .Vars }} sudo -E sh '{{ .Path }}'", "inline": [ "/usr/sbin/waagent -force -deprovision+user &amp;&amp; export HISTSIZE=0 &amp;&amp; sync" ], "inline_shebang": "/bin/sh -x", "type": "shell" } ]}</pre><p>Resulting image will have all the components installed using Ansible playbook. This solution does not require SSH to be enabled on the VM as it uses local provisioner.<br>Note: For Ansible to find all the roles and subdirectories "playbook_dir" should be specified. It will direct Ansible to copy all directory and subfolders to the staging directory, where Ansible provisioner is invoked in.<br>The Ansible Playbook used in the example (same as in <a href="https://open.microsoft.com/2018/05/22/cicd-azure-terraform-ansible-vsts-java-springboot-app/">Part 1</a>) is running on localhost, installs JDK, Tomcat, and the Java Spring Boot application.</p><pre>---- hosts: 127.0.0.1 become: true connection: local vars: http_port: 8080 https_port: 8443 admin_username: admin admin_password: adminsecret roles: - selinux - tomcat</pre><p>Tomcat Role snippet installing the application:</p><pre>- name: wait for tomcat to start wait_for: port={{http_port}}- name: unDeploy sample app file: path=/usr/share/tomcat/webapps/spring-music.war owner=tomcat group=tomcat state=absent- name: wait for tomcat to undeploy the app wait_for: path=/usr/share/tomcat/webapps/spring-music/ state=absent- name: Deploy sample app copy: src=web/build/libs/spring-music.war dest=/usr/share/tomcat/webapps/spring-music.war owner=tomcat group=tomcat notify: restart tomcat- name: Start Tomcat service: name=tomcat state=started enabled=yes</pre><p>As a result, we can see the image build built, the Ansible Playbook run, and the managed disk name as an output of the task.<br></p><img loading="lazy" width="840" height="518" src="https://cloudblogs.microsoft.com/uploads/prod/sites/37/2018/05/Post-3_image-9-1024x632.png"><p>The newly created image could be verified in the resource group ("managed-disks" in our example).<br>Each image has timestamp as a suffix that helps to identify images for rollback and promotion (could use git hash or tag for traceability to source control).<br></p><img loading="lazy" width="840" height="330" src="https://cloudblogs.microsoft.com/uploads/prod/sites/37/2018/05/Post-3_image-10-1024x402.png"><p>Next step is provisioning infrastructure using Terraform:<br>b. Shell Script Terraform Init<br></p><img loading="lazy" width="840" height="375" src="https://cloudblogs.microsoft.com/uploads/prod/sites/37/2018/05/Post-3_image-11-1024x457.png"><p>Terraform must initialize Azure Resource provider and the configured backend for keeping the state (Azure storage in this example) before the use. Here is the snippet doing it from our Terraform template:</p><pre>terraform { required_version = "&gt;= 0.11" backend "azurerm" {}}# Configure the Microsoft Azure Providerprovider "azurerm" {}</pre><p>Terraform initialization can be done by simply running "terraform init" command.<br>To avoid hard coding backend storage in the Terraform template, we are using a partial configuration and providing the required backend configuration in variables file &ndash; "backend.tfvars." Here a is configuration that uses a storage account we created as part of the prerequisites:</p><pre>storage_account_name = "vstsbuildterraform"container_name = "terraform-state"key = "demo-packer.terraform.tfstate"</pre><p>To initialize Terraform shell script will run init command with provided backend configuration:</p><pre>#!/bin/bashterraform init -backend-config=backend.tfvars</pre><p>Upon a successful run it will have following output indication that Terraform has been initialized.<br></p><img loading="lazy" width="840" height="532" src="https://cloudblogs.microsoft.com/uploads/prod/sites/37/2018/05/Post-3_image-12-1024x648.png"><p>c. Shell Script Terraform apply<br>Terraform apply will apply the changes required to reach the desired state of the configuration as defined by "main.tf."<br></p><img loading="lazy" width="840" height="257" src="https://cloudblogs.microsoft.com/uploads/prod/sites/37/2018/05/Post-3_image-13-1024x313.png"><p>Terraform generates an execution plan describing what it will do to reach the desired state, and then executes it to build the described infrastructure. As the configuration changes, Terraform is able to determine what changed and create incremental execution plans that can be applied.<br>In the example below, Terraform detected that some changes are required in the infrastructure.<br></p><img loading="lazy" width="840" height="486" src="https://cloudblogs.microsoft.com/uploads/prod/sites/37/2018/05/Post-3_image-14-1024x592.png"><p>The shell file executes the Terraform build and uses the build by Packer ManagedDisk name to locate the image used in the VM scale set.</p><pre>terraform apply -auto-approve -var "manageddiskname=$6"</pre><p>The full Terraform template can be found in <a href="https://github.com/lenisha/vsts-terraform-ansible-packer/tree/master/terraform/azure">GitHub</a>.<br>It provisions the resource group, virtual network, subnet, public IP, load balancer and NAT rules, and VM scale set.<br>Here is the definition of VM scale set, pointing to the Packer image. Resources that are not created by Terraform are referred to as "data" definition as opposed to "resource."</p><pre># Points to Packer build imagedata "azurerm_image" "image" { name = "${var.manageddiskname}" resource_group_name = "managed-images"}# Create virtual machine sclae setresource "azurerm_virtual_machine_scale_set" "vmss" { name = "vmscaleset" location = "${azurerm_resource_group.demo_resource_group.location}" resource_group_name = "${azurerm_resource_group.demo_resource_group.name}" upgrade_policy_mode = "Automatic" sku { name = "Standard_DS1_v2" tier = "Standard" capacity = 2 } storage_profile_image_reference { id = "${data.azurerm_image.image.id}" } storage_profile_os_disk { name = "" caching = "ReadWrite" create_option = "FromImage" managed_disk_type = "Premium_LRS" } os_profile { computer_name_prefix = "myvm" admin_username = "azureuser" admin_password = "xxxx" } os_profile_linux_config { disable_password_authentication = true ssh_keys { path = "/home/azureuser/.ssh/authorized_keys" key_data = "ssh-rsa xxxx" } } network_profile { name = "terraformnetworkprofile" primary = true ip_configuration { name = "IPConfiguration" subnet_id = "${azurerm_subnet.demo_subnet.id}" load_balancer_backend_address_pool_ids = ["${azurerm_lb_backend_address_pool.bpepool.id}"] } } tags { environment = "Terraform Demo" }}</pre><p>Provisioned infrastructure will look like this:<br></p><img loading="lazy" width="840" height="631" src="https://cloudblogs.microsoft.com/uploads/prod/sites/37/2018/05/Post-3_image-15-1024x769.png"><p>As a result of the build, we have a Spring Boot application up and running on an Azure VM scale set and it could be scaled up and down quickly, according to demand.</p><h4>Conclusion</h4><p>In this example, we demonstrated a simple flow that provides application deployment and infrastructure automation, and builds the immutable image that can be promoted between environments. The build history is stored in the Azure resource group and each image is tagged, and could be rolled back very easily by pointing the VM scale set to a previous version. In the next article we will demonstrate more complex flow, incorporating planning, approving, verifying policies, and testing infrastructure.<br><em>Note: There is a "Packer" task available on VSTS marketplace, Currently it does not support managed disks, enhancement is coming and we will be able to replace the shell script.</em></p><p>The post <a rel="nofollow" href="https://cloudblogs.microsoft.com/opensource/2018/05/23/immutable-infrastructure-azure-vsts-terraform-packer-ansible/">Tutorial: Immutable infrastructure for Azure, using VSTS, Terraform, Packer and Ansible</a> appeared first on <a rel="nofollow" href="https://cloudblogs.microsoft.com/opensource">Microsoft Open Source Blog</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://cloudblogs.microsoft.com/opensource/2018/05/23/immutable-infrastructure-azure-vsts-terraform-packer-ansible/feed/</wfw:commentRss>
			<slash:comments>5</slash:comments>
		
		
			</item>
	</channel>
</rss>
