Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Ship it! ⛴️ AKS에 스프링 앱 배포하기 at Microsoft x GitH...

Ship it! ⛴️ AKS에 스프링 앱 배포하기 at Microsoft x GitHub Roadshow 2023

아래 행사에서 키노트 이후 두 번째 세션에서 발표했던 내용입니다.

Java Spring Boot 앱을 Terraform을 사용하여 Azure Kubernetes Service (AKS)에 배포하는 방법을 GitHub Codespaces 및 Copilot과 함께 데모를 진행하였습니다.

실습 내용은 아래 링크에서 확인 가능합니다:
https://github.com/Azure-Samples/gh-codespaces-copilot-in-a-day-ko/blob/main/README.md#%ED%80%B5%EC%8A%A4%ED%83%80%ED%8A%B8-2--%EC%95%A0%EC%A0%80-terraform-%EC%9D%B4%EC%9A%A9

[행사 정보]
행사명: Microsoft X GitHub Roadshow 2023
시간: 2023년 5월 15일 월요일 오후 1:00~5:30 (GMT+09:00)
장소: Seoul, Seoul, Korea

[Agenda]
01:00 PM - 01:20 PM: AI를 활용한 개발 생산성 향상
01:20 PM - 02:10 PM: Azure OpenAI로 나만의 봇 🤖 만들기! (feat. Spring Apps)
02:10 PM - 03:00 PM: Ship it! ⛴️ AKS에 스프링 앱 배포하기
03:00 PM - 03:20 PM: 쉬는 시간
03:20 PM - 04:10 PM: 파워플랫폼💪 Low-code/No-code로 CI/CD 접근하기
04:10 PM - 05:20 PM: 나를 찾아라 집사! 🔍 잃어버린 반려동물 신고하는 웹 앱 개발하기
05:20 PM - 05:30 PM: 마무리

Ian Y. Choi

May 18, 2023
Tweet

More Decks by Ian Y. Choi

Other Decks in Programming

Transcript

  1. [Microsoft X GitHub Roadshow 2023] Ship it! ⛴️ AKS에 스프링

    앱 배포하기 Ship it! ⛴️ AKS에 스프링 앱 배포하기 한국마이크로소프트 최영락 매니저 May 2023
  2. [Microsoft X GitHub Roadshow 2023] Ship it! ⛴️ AKS에 스프링

    앱 배포하기 Ian Choi (최영락) • 2022. 7. ~ (Current): Azure SMC Channel Sales Manager at Microsoft Korea • 2018. 11. ~ 2022. 6: Developer Product Marketing Manager (a.k.a. Field Developer Relations) at Microsoft APAC • Loves “Developer Communities” ✓ Microsoft ex-MVP: Cloud & Datacenter Management (July 2016 – Oct 2018) ✓ OpenStack (Internationalization Project Team / SIG Lead, TC / PTL Election Official, Korea Community Leader in 2017-2019) ✓ K8s – Docs L10n: Korean reviewer, Meta Developer Circle – Seoul Lead, … @ianychoi
  3. [Microsoft X GitHub Roadshow 2023] Ship it! ⛴️ AKS에 스프링

    앱 배포하기 목차 1. 클라우드 네이티브 & Microsoft Azure 2. 스프링 앱, AKS (Azure Kubernetes Service)에 Ship it! ⛴️ 3. 데모 4. 맺음말
  4. [Microsoft X GitHub Roadshow 2023] Ship it! ⛴️ AKS에 스프링

    앱 배포하기 1. 클라우드 네이티브 & Microsoft Azure
  5. [Microsoft X GitHub Roadshow 2023] Ship it! ⛴️ AKS에 스프링

    앱 배포하기 클라우드 네이티브를 향한 고민 클라우드(!=구름) 네이티브(!=타고난) 컨테이너(!=선적) Cloud Cloud Native Kubernetes Innovation Modernization DevOps Digital Transformation Containers Serverless Event-driven
  6. 클라우드 네이티브 Package application code and dependencies in containers, deploy

    as microservices and manage them using DevOps processes and tools Microservices Containers DevOps APIs Functions
  7. 클라우드 네이티브에 대해 “클라우드“에서의 경험 → 확장 가능한 응용 프로그램

    • 클라우드에서의 경험 • Scaling up/down, auto-scaling, … • 확장 가능한 응용 프로그램 • 마이크로서비스 클라우드 네이티브 기술은 조직이 퍼블릭, 프라이 빗, 그리고 하이브리드 클라우드와 같은 현대적이 고 동적인 환경에서 확장 가능한 애플리케이션을 개발하고 실행할 수 있게 해준다. 컨테이너, 서비 스 메쉬, 마이크로서비스, 불변(Immutable) 인프 라, 그리고 선언형(Declarative) API가 이러한 접 근 방식의 예시들이다. • 주요 기술 • Containers & Kubernetes를 통한 경량화 (VM 보다) • Serverless를 통한 확장성 이점 • API를 잘 활용하여 서비스 간 독립적으로 개발 • DevOps를 통한 개발 – 운영 단계 가속화 • 마이크로서비스 아키텍처로의 발전 Cloud native technologies empower organizations to build and run scalable applications in modern, dynamic environments such as public, private, and hybrid clouds. Containers, service meshes, microservices, immutable infrastructure, and declarative APIs exemplify this approach.
  8. Kubernetes(k8s)란? Kubernetes: “컨테이너화된 응용 프로그램에 대한 자동화된 배포, 확장, 그리고

    관리를 위한 오픈 소스 소프트웨어” 그리스어로 κυβερνήτης 입니다 – 배에 있는 키잡이 (Helmsman)를 의미합니다. Docker 컨테이너가 항구/해안을 테마로 했던 것과 비슷하게, Kubernetes는 컨테이너가 실어지는 배 운항을 담당하는 항해사를 테마로 합니다.. History (짧은 역사) Google에서 Borg를 오픈 소스화 + 지속적인 기여 중 Kubernetes v1.0: 2015년 7월 21일 릴리즈 (Founder: Joe Beda, Brendan Burns Craig McLuckie) GitHub를 메인 저장 공간으로 사용 중. 기여자: >1,700; 매 3-6개월마다 릴리즈 중 Kubernetes 관련 자세한 배경 & 아이디어: Large-scale cluster management at Google with Borg 논문 참고
  9. 2016년 7월, Kubernetes Founder 중 1명인 Brendan Burns, 마이크로소프트로 (이후

    정말 많은 변화가…) 기존 WebApp에 대한 컨테이너 지원, IoT, 머신 러닝 서비스 컨테이너 지원 + 쉬운 쿠버네티스 연동 등 컨테이너 환경에 최적인 “Azure” 클라우드로 거듭남 Container Linux Windows
  10. Azure와 앱 혁신 & 클라우드 네이티브로 향하는 여정 제어 (Control)

    생산성 VMs Azure Virtual Machines Containers Azure Kubernetes Service | Azure Red Hat OpenShift PaaS/Serverless App Service | Functions | Spring Apps | Container Apps Low code Power Apps | AI Builder Azure Services Managed databases Azure SQL Database | PostgreSQL | MySQL | Cosmos DB DevOps GitHub | Azure DevOps | VS Code Azure | Azure Arc | Azure Stack
  11. [Microsoft X GitHub Roadshow 2023] Ship it! ⛴️ AKS에 스프링

    앱 배포하기 2. 스프링 앱, AKS (Azure Kubernetes Service)에 Ship it! ⛴️
  12. [Microsoft X GitHub Roadshow 2023] Ship it! ⛴️ AKS에 스프링

    앱 배포하기 이전 발표에서 보셨던 기본 아키텍처
  13. [Microsoft X GitHub Roadshow 2023] Ship it! ⛴️ AKS에 스프링

    앱 배포하기 이번 시간에 선보이고자 하는 기본 아키텍처 React App on Azure Static Web Apps Azure API Management Spring Boot API on Azure Kubernetes Service Azure OpenAI Service (Using Terraform instead of Bicep) Azure Container Registry for containerized Spring Boot API
  14. Azure에서 지원하는 쿠버네티스 (Kubernetes) 엔터프라이즈 급을 염두하고 설계 커뮤니티 CNCF

    platinum member CNCF technical oversight committee CNCF governing board Kubernetes steering committee Linux Foundation board member Microsoft is part of this vibrant community and leads in the associated committees to help shape the future of Kubernetes and its ecosystem 개발 도구 Azure Container Registry Azure Monitor GitHub Visual Studio Code 플랫폼 Azure Kubernetes Service Azure Red Hat OpenShift Azure Container Instances Azure Arc Management across environments Active Directory Azure Policy Security Center Key Vault Azure Advisor Bridge to Kubernetes
  15. [Microsoft X GitHub Roadshow 2023] Ship it! ⛴️ AKS에 스프링

    앱 배포하기 Azure 인프라를 다루는 코드 with Terraform • Hashicorp Configuration Language (or HCL)로 인프라를 다루는 코드를 작성 • 상태 (State)를 기반으로 하며, Azure를 포함한 여러 클라우드를 지원 resource “azurerm_resource_group” “testrg” { name = “storagergtest” location = “australiaeast” } resource "azurerm_storage_account" "storageaccount" { //storage account name must be globally unique! name = “storageacc123" resource_group_name = "${azurerm_resource_group.testrg.name}" location = “australiaeast" account_tier = “standard" account_replication_type = “LRS" tags = { environment = “production” }} Init Plan Apply Destroy Workflow Declaring Azure Resources
  16. [Microsoft X GitHub Roadshow 2023] Ship it! ⛴️ AKS에 스프링

    앱 배포하기 데모 • Terraform 인프라 코드 구현하기 • Terraform으로 ACR & AKS 배포하기 • Sprint Boot API: 컨테이너화 & ACR 업로드 • 컨테이너 배포 & APIM과 최종 확인
  17. [Microsoft X GitHub Roadshow 2023] Ship it! ⛴️ AKS에 스프링

    앱 배포하기 클라우드 네이티브, Microsoft + GitHub와 함께! 컨테이너화만 하면 클라우드 네이티브 & 확장성은 AKS에 맡긴다! Terraform + Azure API Management 장점은 덤. 여러분께서 사용하시는 기술로, GitHub 최신 기술과 함께 자유롭게 & 맘껏 Azure에서 활용해보세요!
  18. Resource: Kubernetes & AKS 관련 정보 Feedback on the roadmap?

    Tell us at https://aka.ms/aks/feedback Kubernetes 101 Docs aka.ms/ko-kr/LearnAKS (한글 문서) Best practices aka.ms/ko-kr/aks/bestpractices (한글 문서) Hear from experts aka.ms/k8s/lightboard (Brendan Burns, Kubernetes Founder) Case studies aka.ms/aks/casestudy Microservices architecture aka.ms/ko-kr/aks/microservices (한글 문서) Try for free aka.ms/ko-kr/aks/trial (12개월 체험 서비스)