티스토리 뷰
[Google Cloud Platform 기초] Cloud에서의 개발과 Infrastructure as code
JJ호잇 2020. 1. 27. 21:381. Cloud Source Repositories
많은 GCP 고객들이 소스 코드 tree를 저장하고 관리하기 위해 Git를 사용합니다. 이 의미는, 개인 Git instance나 hosted Git provider를 사용한다는 뜻입니다. 하지만, 개인적으로 instance를 유지하지 않으면서 GCP 프로젝트에 코드를 개인적으로 유지하고, IAM permission을 사용해 보호하는 방법도 있습니다. 이것이 Cloud Source Repositories입니다.
Cloud Source Repositories는 어떠한 application이나 서비스를 개발을 지원하는 Git version control를 제공합니다. Cloud Source Repositories를 이용해 많은 private Git repositories를 가질 수 있습니다. 또한, source viewer를 포함하여 GCP console에서 repository file을 볼 수 있습니다.
2. Cloud Functions
많은 application은 event-driven part를 포함하고 있습니다. 예를 들어, 고객이 application에 이미지를 업로드할 수 있습니다. 이 이미지를 표준 이미지 포맷으로 변경하거나, 다양한 사이즈로 섬네일 하거나, repository에 각각 저장하며 가공해야 합니다. 이런 기능을 항상 application에 통합해야 하지만, compute resource를 제공하는 것을 걱정하게 됩니다.
Cloud Functions에서는 필요한 이미지 조작을 single purpose function을 작성해 새로운 이미지가 업로드될 때마다 자동적으로 준비할 수 있도록 합니다. 서버나 runtime binary를 생각할 필요가 없습니다. GCP가 제공하는 Node.js 환경에 JavaScript 코드를 작성하고, 실행할 때, 환경설정만 하면 됩니다. 서버를 지불할 필요도 없으며, 기능이 10ms 간격으로 실행될 때만 비용이 발생합니다.
Cloud Functions은 Cloud Storage, Cloud Pub/Sub, HTTP call에서 이벤트를 발생시킬 수 있습니다. 이벤트를 선택하고, 각 이벤트 타입마다 Cloud Functions에 원하는 것을 호출합니다. 이 선언을 트리거라고 합니다. 그리고 JavaScript functions을 트리거에 더합니다. 그러면 이벤트가 발생할 때마다 함수가 반응합니다. 특히, 고, 사용자는 확장에 대한 걱정없이 application을 향상할 수 있습니다.
3. Deployment Manager
GCP에 환경을 세팅하는 것은 많은 step이 필요합니다. Compute network와 storage resource를 설치하고 환경 설정을 추적합니다. 원하면 명령어로 할 수 있고, 환경을 원하는 대로 변경할 수 있습니다. 하지만 템플릿을 이용하면 좀 더 간단해집니다. 명령적이기보다 선언적입니다. GCP는 Infrastructure Management Service인 Deployment Manage를 제공하여 GCP 리소스의 생성과 관리를 자동화합니다.
Deployment Manager를 사용하기 위해선, YAML markup language나 Pyhton으로 어떤 환경이 필요한지 작성하여 템플릿 파일을 생성합니다. 그 다음, 템플릿을 Deployment Manager에 전달하여 환경을 생성하는데에 필요한 행동을 취합니다. 환경을 변경하고 싶다면, 템플릿을 수정하여 Deployment Manager에 환경을 update하도록 변경사항을 맞추면 됩니다. Cloud Source repository에서 Deployment Manager 템플릿을 저장하고 version control 할 수 있습니다.
'Cloud > GCP (Google Cloud Platform)' 카테고리의 다른 글
[Google Cloud Platform 기초] Google Cloud Big Data Platform (0) | 2020.01.29 |
---|---|
[Google Cloud Platform 기초] Monitoring: Proactive instrumentation (0) | 2020.01.28 |
[Google Cloud Platform 기초] Google Cloud Endpoints와 Apigee Edge (0) | 2020.01.27 |
[Google Cloud Platform 기초] Hybrid와 Multi-Cloud Computing (Anthos) 소개 (0) | 2020.01.22 |
[Google Cloud Platform 기초] Kubernetes와 GKE 소개 (0) | 2020.01.21 |