{"id":227967,"date":"2021-03-11T10:00:50","date_gmt":"2021-03-11T18:00:50","guid":{"rendered":"https:\/\/devblogs.microsoft.com\/java\/?p=227967"},"modified":"2021-03-11T10:00:50","modified_gmt":"2021-03-11T18:00:50","slug":"deploy-spring-boot-applications-by-leveraging-enterprise-best-practices","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/java\/deploy-spring-boot-applications-by-leveraging-enterprise-best-practices\/","title":{"rendered":"Deploy Spring Boot applications by leveraging enterprise best practices \u2013 Azure Spring Cloud Reference Architecture"},"content":{"rendered":"<p>Today, we\u2019re excited to announce the availability of the Azure Spring Cloud Reference Architecture. You can get started by deploying the <a href=\"https:\/\/docs.microsoft.com\/en-us\/azure\/spring-cloud\/spring-cloud-reference-architecture\">Azure Spring Cloud Reference Architecture<\/a> to accelerate and secure Spring Boot applications in the cloud at scale using validated best practices.<\/p>\n<p>Over the past year, we worked with many enterprise customers to learn about their scenarios including thoughts on scaling properly, security, deployment, and cost requirements. Many of these customers have thousands of Spring Boot applications running in on-premises data centers. As they migrate these applications to the cloud, they need battle-tested architectures that instill confidence to meet the requirements set forth by their IT departments and\/or regulatory bodies. In many customer environments, they also need to show direct mappings from architectures to industry-defined security controls and benchmarks. We thank these customers for the opportunity to work with them, and for helping us to build an Azure Spring Cloud Reference Architecture. Using this reference architecture, you can deploy and customize to meet your specific requirements and showcase pre-defined mappings to security controls and benchmarks.<\/p>\n<blockquote><p><em>\u201cThe availability of Azure Spring Cloud Reference architecture reduced our internal cycles of researching architecture options and Spring Cloud feature sets, which allowed us to rapidly determine how we would want to implement and scale globally.\u201d &#8212; Devon Yost, Enterprise Architect, <\/em><em><a href=\"https:\/\/www.digitalrealty.com\/\">Digital Realty Trust<\/a><\/em><\/p><\/blockquote>\n<blockquote><p><em>\u201cCongratulations to you and your team for creating and providing the Azure Spring Cloud Reference Architecture free to all customers. The reference architecture is a great way for users to compare their design to how the experts at Microsoft design deployments. It is incredible for the reference architecture to include deployments using multiple technologies. We were able to compare the reference Terraform implementation and quickly understand the architecture. We have even started testing Azure DNS as highlighted in the architecture to manage our DNS using Infrastructure as Code principles.\u201d \u2013 Armando Guzman, Principal Software Engineer, Unified Commerce, <\/em><a href=\"https:\/\/nam06.safelinks.protection.outlook.com\/?url=https%3A%2F%2Fwww.raleys.com%2Fabout%2Fraleys-corporate-fact-sheet%2F&amp;data=04%7C01%7Casirveda%40microsoft.com%7C91cabf6a818e40496f1408d8e42cd04a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637510228416104879%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&amp;sdata=aMN8GM2romGts2MM40z3XfXf0QrdoFf6ilEbc0jXCtM%3D&amp;reserved=0\"><em>Raley\u2019s<\/em><\/a><\/p><\/blockquote>\n<h2>Ease of deploying Java applications<\/h2>\n<p>Azure Spring Cloud is jointly built, operated, and supported by Microsoft and VMware. It is a fully managed service for Spring Boot applications that lets you focus on building the applications that run your business without the hassle of managing infrastructure. The service incorporates Azure compute, network, and storage services in a well-architected design, reducing the number of infrastructure decisions. The Azure Spring Cloud Reference Architecture provides a deployable design that is mapped to industry security benchmarks providing a head start for compliance approval. The implementation and configuration of each service referenced in the architecture were evaluated against security controls to ensure a secure design.<\/p>\n<h2>Security and Managed Virtual Network<\/h2>\n<p>Security is a key tenet of Azure Spring Cloud, and you can secure Spring Boot applications by deploying to Azure Spring Cloud in Managed Virtual Networks (VNETs). With VNETs, you can secure the perimeters around your Spring Boot applications and other dependencies by:<\/p>\n<ul>\n<li>Isolating Azure Spring Cloud from the Internet and placing your applications and Azure Spring Cloud in your private networks.<\/li>\n<li>Selectively exposing Spring Boot applications as Internet-facing applications.<\/li>\n<li>Enabling applications to interact with on-premises systems such as databases, messaging systems, and directories.<\/li>\n<li>Controlling inbound and outbound network communications for Azure Spring Cloud.<\/li>\n<li>Composing with Azure network resources such as Application Gateway, Azure Firewall, Azure Front Door, and Express Route, and popular network products such as Palo Alto Firewall, F5 Big-IP, Cloudflare, and Infoblox.<\/li>\n<\/ul>\n<h2>Reliable deployment patterns<\/h2>\n<p>When you deploy a collection of Azure Resources, including Azure Spring Cloud, in your private network and interconnect these resources with on-premises systems, you can be faced with multiple questions such as:<\/p>\n<ul>\n<li>How do you manage costs to maximize the value delivered?<\/li>\n<li>How do you build operational processes to keep the system up and running in production?<\/li>\n<li>How do you account for performance efficiency where your system can adapt to changes in load?<\/li>\n<li>How can your system recover from failures and continue to function?<\/li>\n<li>How do you protect applications and data from threats and risks?<\/li>\n<\/ul>\n<p>To address these questions, you can start with a trial-and-error approach but that takes time. The time it takes to get it right and achieve these outcomes is time not spent on your organizational objectives. A repeatable, tested deployment pattern can help you to address issues from the start.<\/p>\n<p>The Azure Spring Cloud Reference Architecture addresses the following solution design components:<\/p>\n<ul>\n<li><strong>Hub and spoke alignment.<\/strong> Aligns with the Azure landing zone, which enables application migrations and greenfield development at enterprise-scale in Azure. A landing zone is an environment for hosting your workloads, pre-provisioned through infrastructure as code.<\/li>\n<li><strong>Well-Architected Framework. <\/strong>Incorporates the guiding pillars of the Azure Well-Architected Framework to improve the quality of a workload. The framework consists of five pillars of architecture excellence: Cost Optimization, Operational Excellence, Performance Efficiency, Reliability, and Security.<\/li>\n<li><strong>Perimeter security.<\/strong> Secures the perimeter for full egress management, managing secrets and certificates using Azure Key Vault. Wires up with networking resources of your choice, incorporating your IT-team-supplied route tables filled with user-defined network routes. And it is ready for interacting with private links exposed by Azure resources or endpoints exposed by your on-premises systems.<\/li>\n<li><strong>Authorized access to deployed environments.<\/strong> Includes securing and authorizing access into a deployed environment through a jump host machine with necessary development tools via Azure Bastion.<\/li>\n<li><strong>Monitoring.<\/strong> Enables observability by wiring up for Application Performance Monitoring (APM) and publishing logs and metrics for all the resources through Azure Monitor. This provides the option to aggregate logs and metrics in an aggregator of your choice, such as Azure Log Analytics, Elastic Stack, or Splunk.<\/li>\n<li><strong>Smoke tests. <\/strong>Supplies deployment scripts to deploy a line of business system and to smoke test the deployed environment.<\/li>\n<\/ul>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2021\/03\/architecture-public.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-227969\" src=\"https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2021\/03\/architecture-public.png\" alt=\"Image architecture public\" width=\"1125\" height=\"499\" srcset=\"https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2021\/03\/architecture-public.png 1125w, https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2021\/03\/architecture-public-300x133.png 300w, https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2021\/03\/architecture-public-1024x454.png 1024w, https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2021\/03\/architecture-public-768x341.png 768w\" sizes=\"(max-width: 1125px) 100vw, 1125px\" \/><\/a><\/p>\n<p><span style=\"font-size: 10pt;\"><em>Figure 1 &#8211; the diagram represents a well-architected hub and spoke design for applications selectively exposed as public applications<\/em><\/span><\/p>\n<h2>Start here<\/h2>\n<p>This <a href=\"https:\/\/docs.microsoft.com\/en-us\/azure\/spring-cloud\/spring-cloud-reference-architecture\">Azure Spring Cloud Reference Architecture<\/a> is a foundation using a typical enterprise hub and spoke design for the use of Azure Spring Cloud. In the design, Azure Spring Cloud is deployed in a single spoke that is dependent on shared services hosted in the hub.<\/p>\n<p>For an implementation of this architecture, see the <a href=\"https:\/\/github.com\/Azure\/azure-spring-cloud-reference-architecture\/tree\/main\/terraform\">Azure Spring Cloud Reference Architecture repository on GitHub<\/a>. Deployment options for this architecture include ready-to-go <a href=\"https:\/\/github.com\/Azure\/azure-spring-cloud-reference-architecture\/tree\/main\/ARM\">Azure Resource Manager<\/a> (ARM), <a href=\"https:\/\/github.com\/Azure\/azure-spring-cloud-reference-architecture\/tree\/main\/terraform\">Terraform<\/a>, and <a href=\"https:\/\/github.com\/Azure\/azure-spring-cloud-reference-architecture\/tree\/main\/CLI\">Azure CLI<\/a> scripts. The artifacts in this repository provide groundwork that you can customize for your environment and automated provisioning pipelines.<\/p>\n<h2>Meet the team<\/h2>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2021\/03\/mosaic-reference-architecture.jpg\"><img decoding=\"async\" class=\"alignnone size-full wp-image-227970\" src=\"https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2021\/03\/mosaic-reference-architecture.jpg\" alt=\"Image mosaic reference architecture\" width=\"1067\" height=\"800\" srcset=\"https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2021\/03\/mosaic-reference-architecture.jpg 1067w, https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2021\/03\/mosaic-reference-architecture-300x225.jpg 300w, https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2021\/03\/mosaic-reference-architecture-1024x768.jpg 1024w, https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2021\/03\/mosaic-reference-architecture-768x576.jpg 768w\" sizes=\"(max-width: 1067px) 100vw, 1067px\" \/><\/a><\/p>\n<p>This Azure Spring Cloud Reference Architecture is created and maintained by Cloud Solution Architects, Java experts, and content authors at Microsoft, here in alphabetical order and row-wise from left to right:<\/p>\n<ul>\n<li>Armen Kaleshian \u2013 Cloud Solution Architect<\/li>\n<li>Arshad Azeem \u2013 Cloud Solution Architect<\/li>\n<li>Asir Selvasingh \u2013 Architect, Java on Azure<\/li>\n<li>Bowen Wan \u2013 Software Engineering Manager, Java on Azure<\/li>\n<li>Brendan Mitchell \u2013 Content Developer<\/li>\n<li>David Apolinar \u2013 Cloud Solution Architect<\/li>\n<li>Dylan Reed \u2013 Customer Engineer<\/li>\n<li>Karl Erickson \u2013 Content Developer<\/li>\n<li>Matt Felton \u2013 Cloud Solution Architect<\/li>\n<li>Ryan Hudson \u2013 Cloud Solution Architect<\/li>\n<li>Troy Ault \u2013 Cloud Solution Architect<\/li>\n<\/ul>\n<h2>Learn more about Azure Spring Cloud and start building today!<\/h2>\n<p>Azure Spring Cloud abstracts away the complexity of infrastructure management and Spring Cloud middleware management, so you can focus on building your business logic and let Azure take care of dynamic scaling, patches, security, compliance, and high availability. With a few steps, you can provision Azure Spring Cloud, create applications, deploy, and scale Spring Boot applications and start monitoring in minutes. We\u2019ll continue to bring more developer-friendly and enterprise-ready features to Azure Spring Cloud.<\/p>\n<p>We\u2019d love to hear how you are building impactful solutions using Azure Spring Cloud. Get started with the <a href=\"https:\/\/docs.microsoft.com\/en-us\/azure\/spring-cloud\/spring-cloud-reference-architecture\">Azure Spring Cloud Reference Architecture<\/a> and these resources!<\/p>\n<p><strong>Resources<\/strong><\/p>\n<ul>\n<li>Learn using an <a href=\"https:\/\/docs.microsoft.com\/en-us\/learn\/modules\/azure-spring-cloud-workshop\/\">MS Learn module<\/a> or <a href=\"https:\/\/github.com\/microsoft\/azure-spring-cloud-training\">self-paced workshop<\/a> on GitHub<\/li>\n<li>Learn <a href=\"https:\/\/docs.microsoft.com\/en-us\/azure\/spring-cloud\/\">more<\/a> about implementing solutions on Azure Spring Cloud<\/li>\n<li><a href=\"https:\/\/github.com\/Azure-Samples\/spring-petclinic-microservices\">Deploy<\/a> a distributed version of Spring Petclinic built with Spring Cloud<\/li>\n<li>Migrate your <a href=\"https:\/\/docs.microsoft.com\/en-us\/azure\/developer\/java\/migration\/migrate-spring-boot-to-azure-spring-cloud\">Spring Boot<\/a>, <a href=\"https:\/\/docs.microsoft.com\/en-us\/azure\/developer\/java\/migration\/migrate-spring-cloud-to-azure-spring-cloud\">Spring Cloud<\/a>, and <a href=\"https:\/\/aka.ms\/migrate-tomcat-to-azure-spring-cloud-service\">Tomcat<\/a> applications to Azure Spring Cloud<\/li>\n<li>Wire Spring applications to <a href=\"https:\/\/docs.microsoft.com\/en-us\/azure\/developer\/java\/spring-framework\/\">interact with Azure services<\/a><\/li>\n<li>For feedback and questions, please <a style=\"background-color: #f7f7f9; font-size: 1rem;\" href=\"mailto:AzureSpringCloud-Talk@service.microsoft.com\">e-mail<\/a><span style=\"font-size: 1rem;\"> us.<\/span><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Today, we\u2019re excited to announce the availability of the Azure Spring Cloud Reference Architecture. You can get started by deploying the Azure Spring Cloud Reference Architecture to accelerate and secure Spring Boot applications in the cloud at scale using validated best practices. Over the past year, we worked with many enterprise customers to learn about [&hellip;]<\/p>\n","protected":false},"author":12323,"featured_media":227969,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[14,1,17],"tags":[767,763,13,764,768,766,774,771,775,759,770,769,772,248,773,761,538,762,765,776],"class_list":["post-227967","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-cloud","category-java","category-web","tag-application-gateway","tag-arm-template","tag-azure","tag-azure-cli","tag-azure-firewall","tag-azure-front-door","tag-azure-key-vault","tag-azure-pipelines","tag-azure-security-center","tag-azure-spring-cloud","tag-database","tag-express-route","tag-github-actions","tag-java","tag-jenkins","tag-spring-boot","tag-spring-cloud","tag-terraform","tag-virtual-network","tag-zero-trust"],"acf":[],"blog_post_summary":"<p>Today, we\u2019re excited to announce the availability of the Azure Spring Cloud Reference Architecture. You can get started by deploying the Azure Spring Cloud Reference Architecture to accelerate and secure Spring Boot applications in the cloud at scale using validated best practices. Over the past year, we worked with many enterprise customers to learn about [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/java\/wp-json\/wp\/v2\/posts\/227967","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/java\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/java\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/java\/wp-json\/wp\/v2\/users\/12323"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/java\/wp-json\/wp\/v2\/comments?post=227967"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/java\/wp-json\/wp\/v2\/posts\/227967\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/java\/wp-json\/wp\/v2\/media\/227969"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/java\/wp-json\/wp\/v2\/media?parent=227967"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/java\/wp-json\/wp\/v2\/categories?post=227967"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/java\/wp-json\/wp\/v2\/tags?post=227967"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}