아래 행사에서 키노트 이후 두 번째 세션에서 발표했던 내용입니다.
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: 마무리
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
6. Azure 클라우드 적용을 해 나가는 4가지 단계
1.Lift& Shift 2. Refactoring
3. Rearchitecting 4.Rebuild/New
7.
8. 클라우드 네이티브
Package application code 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
14. [Microsoft X GitHub Roadshow 2023] Ship it! ⛴️ AKS에 스프링 앱 배포하기
이전 발표에서 보셨던 기본 아키텍처
15. [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
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 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
21. [Microsoft X GitHub Roadshow 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개월 체험 서비스)