[Microsoft X GitHub Roadshow 2023] Ship it! ⛴️ AKS에 스프링 앱 배포하기
Ship it! ⛴️ AKS에
스프링 앱 배포하기
한국마이크로소프트 최영락 매니저
May 2023
[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
[Microsoft X GitHub Roadshow 2023] Ship it! ⛴️ AKS에 스프링 앱 배포하기
목차
1. 클라우드 네이티브 & Microsoft Azure
2. 스프링 앱, AKS (Azure Kubernetes Service)에 Ship it! ⛴️
3. 데모
4. 맺음말
[Microsoft X GitHub Roadshow 2023] Ship it! ⛴️ AKS에 스프링 앱 배포하기
1. 클라우드
네이티브 &
Microsoft Azure
[Microsoft X GitHub Roadshow 2023] Ship it! ⛴️ AKS에 스프링 앱 배포하기
클라우드 네이티브를 향한 고민
클라우드(!=구름)
네이티브(!=타고난)
컨테이너(!=선적)
Cloud
Cloud Native
Kubernetes
Innovation
Modernization
DevOps
Digital Transformation
Containers
Serverless
Event-driven
Azure 클라우드 적용을 해 나가는 4가지 단계
1.Lift& Shift 2. Refactoring
3. Rearchitecting 4.Rebuild/New
클라우드 네이티브
Package application code and dependencies in containers, deploy as
microservices and manage them using DevOps processes and tools
Microservices
Containers
DevOps
APIs Functions
클라우드 네이티브에 대해
“클라우드“에서의 경험 → 확장 가능한 응용 프로그램
• 클라우드에서의 경험
• 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.
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 논문 참고
2016년 7월,
Kubernetes Founder 중
1명인 Brendan Burns,
마이크로소프트로
(이후 정말 많은 변화가…)
기존 WebApp에 대한 컨테이너
지원, IoT, 머신 러닝 서비스
컨테이너 지원 + 쉬운 쿠버네티스
연동 등 컨테이너 환경에 최적인
“Azure” 클라우드로 거듭남
Container
Linux
Windows
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
[Microsoft X GitHub Roadshow 2023] Ship it! ⛴️ AKS에 스프링 앱 배포하기
2. 스프링 앱, AKS
(Azure Kubernetes
Service)에 Ship it!
⛴️
[Microsoft X GitHub Roadshow 2023] Ship it! ⛴️ AKS에 스프링 앱 배포하기
이전 발표에서 보셨던 기본 아키텍처
[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
Azure에서 지원하는 쿠버네티스 (Kubernetes)
엔터프라이즈 급을 염두하고 설계
커뮤니티
CNCF
platinum
member
CNCF
technicaloversight
committee
CNCF
governing
board
Kubernetes
steering
committee
LinuxFoundation
board
member
Microsoft is part of this vibrant communityand leads in theassociated committees
to help shape thefuture ofKubernetesand 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
[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
[Microsoft X GitHub Roadshow 2023] Ship it! ⛴️ AKS에 스프링 앱 배포하기
3. 데모
[Microsoft X GitHub Roadshow 2023] Ship it! ⛴️ AKS에 스프링 앱 배포하기
데모
• Terraform 인프라 코드 구현하기
• Terraform으로 ACR & AKS 배포하기
• Sprint Boot API: 컨테이너화
& ACR 업로드
• 컨테이너 배포 & APIM과 최종 확인
[Microsoft X GitHub Roadshow 2023] Ship it! ⛴️ AKS에 스프링 앱 배포하기
4. 맺음말
[Microsoft X GitHub Roadshow 2023] Ship it! ⛴️ AKS에 스프링 앱 배포하기
클라우드 네이티브, Microsoft + GitHub와 함께!
컨테이너화만 하면
클라우드 네이티브 & 확장성은 AKS에 맡긴다!
Terraform + Azure API Management 장점은 덤.
여러분께서 사용하시는 기술로, GitHub 최신 기술과
함께 자유롭게 & 맘껏 Azure에서 활용해보세요!
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개월 체험 서비스)
[Microsoft X GitHub Roadshow 2023] Ship it! ⛴️ AKS에 스프링 앱 배포하기
Thank you!

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

  • 1.
    [Microsoft X GitHubRoadshow 2023] Ship it! ⛴️ AKS에 스프링 앱 배포하기 Ship it! ⛴️ AKS에 스프링 앱 배포하기 한국마이크로소프트 최영락 매니저 May 2023
  • 2.
    [Microsoft X GitHubRoadshow 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 GitHubRoadshow 2023] Ship it! ⛴️ AKS에 스프링 앱 배포하기 목차 1. 클라우드 네이티브 & Microsoft Azure 2. 스프링 앱, AKS (Azure Kubernetes Service)에 Ship it! ⛴️ 3. 데모 4. 맺음말
  • 4.
    [Microsoft X GitHubRoadshow 2023] Ship it! ⛴️ AKS에 스프링 앱 배포하기 1. 클라우드 네이티브 & Microsoft Azure
  • 5.
    [Microsoft X GitHubRoadshow 2023] Ship it! ⛴️ AKS에 스프링 앱 배포하기 클라우드 네이티브를 향한 고민 클라우드(!=구름) 네이티브(!=타고난) 컨테이너(!=선적) Cloud Cloud Native Kubernetes Innovation Modernization DevOps Digital Transformation Containers Serverless Event-driven
  • 6.
    Azure 클라우드 적용을해 나가는 4가지 단계 1.Lift& Shift 2. Refactoring 3. Rearchitecting 4.Rebuild/New
  • 8.
    클라우드 네이티브 Package applicationcode and dependencies in containers, deploy as microservices and manage them using DevOps processes and tools Microservices Containers DevOps APIs Functions
  • 9.
    클라우드 네이티브에 대해 “클라우드“에서의경험 → 확장 가능한 응용 프로그램 • 클라우드에서의 경험 • 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.
  • 10.
    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 논문 참고
  • 11.
    2016년 7월, Kubernetes Founder중 1명인 Brendan Burns, 마이크로소프트로 (이후 정말 많은 변화가…) 기존 WebApp에 대한 컨테이너 지원, IoT, 머신 러닝 서비스 컨테이너 지원 + 쉬운 쿠버네티스 연동 등 컨테이너 환경에 최적인 “Azure” 클라우드로 거듭남 Container Linux Windows
  • 12.
    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
  • 13.
    [Microsoft X GitHubRoadshow 2023] Ship it! ⛴️ AKS에 스프링 앱 배포하기 2. 스프링 앱, AKS (Azure Kubernetes Service)에 Ship it! ⛴️
  • 14.
    [Microsoft X GitHubRoadshow 2023] Ship it! ⛴️ AKS에 스프링 앱 배포하기 이전 발표에서 보셨던 기본 아키텍처
  • 15.
    [Microsoft X GitHubRoadshow 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
  • 16.
    Azure에서 지원하는 쿠버네티스(Kubernetes) 엔터프라이즈 급을 염두하고 설계 커뮤니티 CNCF platinum member CNCF technicaloversight committee CNCF governing board Kubernetes steering committee LinuxFoundation board member Microsoft is part of this vibrant communityand leads in theassociated committees to help shape thefuture ofKubernetesand 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
  • 17.
    [Microsoft X GitHubRoadshow 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
  • 18.
    [Microsoft X GitHubRoadshow 2023] Ship it! ⛴️ AKS에 스프링 앱 배포하기 3. 데모
  • 19.
    [Microsoft X GitHubRoadshow 2023] Ship it! ⛴️ AKS에 스프링 앱 배포하기 데모 • Terraform 인프라 코드 구현하기 • Terraform으로 ACR & AKS 배포하기 • Sprint Boot API: 컨테이너화 & ACR 업로드 • 컨테이너 배포 & APIM과 최종 확인
  • 20.
    [Microsoft X GitHubRoadshow 2023] Ship it! ⛴️ AKS에 스프링 앱 배포하기 4. 맺음말
  • 21.
    [Microsoft X GitHubRoadshow 2023] Ship it! ⛴️ AKS에 스프링 앱 배포하기 클라우드 네이티브, Microsoft + GitHub와 함께! 컨테이너화만 하면 클라우드 네이티브 & 확장성은 AKS에 맡긴다! Terraform + Azure API Management 장점은 덤. 여러분께서 사용하시는 기술로, GitHub 최신 기술과 함께 자유롭게 & 맘껏 Azure에서 활용해보세요!
  • 22.
    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개월 체험 서비스)
  • 23.
    [Microsoft X GitHubRoadshow 2023] Ship it! ⛴️ AKS에 스프링 앱 배포하기 Thank you!