Modernizing IT infrastructure with Google Cloud
Infrastructure Modernization
기업이 infrastructure를 보유하는 건 어렵다. 집을 소유하는 것과 유사하다.
내가 infra를 소유하면 모든 책임과 유지보수가 내 책임이다.
Colocation - 다른 기업의 data center를 임대. // not public cloud, 할당된 공간에 사용, 유지보수비용 지불, 월세 느낌.
잉여공간이 남을수 있는 비효율성 → 서버 하나에 애플리케이션 하나만 돌리는 게 아니라, 서버 하나에 여러가지 서비스를 돌릴 수 있는 것: VM machine
Virtual Machine - 하나의 서버공간에 여러 OS들을 동시에 운영할 수 있는 시스템
Outsourcing - 임대, 위탁처리, Iaas, 자본지출 → 운영지출
The maintenance work is outsourced to the public cloud
Paas(infra+ platform) - 구글 클라우드(platform)위에 본인 소프트웨어 올려서 사용 // Iaas → Paas로 바뀌는 추세
Understanding compute options in the cloud
- Cloud의 조건(이래야 한다)
- On demand self service
관리자를 거칠 필요 없이 사용가능
- Broad network access
어디서든 잘 접속, 클라이언트, 운영체제, 지역에 국한X, Low latency, high bandwidth
- Resource pooling
data center 분산
- Rapid elasticity
scale up - down의 신속성 → 비용절감
- Measured service
측정할 수 있어야 함
- Infra에서 사용하는(현대화하는) 3가지 컴퓨팅 옵션 // computing - 컴퓨터 성능
- Virtual Machines
하드웨어 위 Hypervisor 위에서 구동, 하드웨어 리소스 할당, 컴퓨터를 여러개로 나누는 것과 유사
- Containerization
가상머신보다 훨씬 진보, 효율적. 운영체제 위에서 Container orchestration으로 구동
운영체제만 가상화, 하드웨어 리소스 각 컨테이너마다 필요한 만큼만 할당
portable ← 이식성 good // VM & container 혼합 사용
Improve agility민첩성, strength security, optimize resource최적화, managing application_관리 단순화
but, infra가 복잡해짐에 따라 많은 컨테이너를 관리 해야할 필요가 있음 → Kubernetes
Kubernetes(쿠버네티스) - 자동화된 container orchestration, OSS, 가상의 서버 서비스관리 단순화.
- Serverless computing
서버O(추상화, 보이지 않음), Infra 신경 쓸 필요 X
Computing power 뒤에서 provisioning → 사용자가 요구에 맞게 시스템 리소스 할당했다가, 필요할 때 그 시스템을 즉시 사용가능하게 미리 준비하는 것
원하는 기능사용에만 비용지불(사용 안할땐 꺼져있다가 사용하면 켜짐) // FaaS(Function as a service)
→ FaaS(Function as a Service)는 서버리스 컴퓨팅의 한 형태로, 개별 함수 또는 마이크로서비스를 실행하는 데 초점을 맞추는 것을 의미합니다. FaaS 서비스는 함수 단위로 실행되며 이벤트 기반으로 확장됩니다. 구글 클라우드 펑션(Google Cloud Functions)과 같은 서비스는 FaaS의 예입니다. 반면, 구글 앱 엔진은 애플리케이션의 전체 스택을 관리하는 PaaS 서비스로서 더 넓은 범위의 애플리케이션을 지원합니다.
Hybrid and multi cloud
Hybrid cloud(private + public cloud)
Multi-cloud(private + public A, public B, public C cloud)
개방형 API, OSS 구글의 클라우드 전략 + 보안성, 환경고려기업(탄소중립)
Google cloud compute solution
- Virtual Machine
- Compute engine
for virtual machine solution, 소프트 패키지 실행, 기존 vm image 사용할 경우
- VMware engine
vmware platform 실행할 수 있는 서비스
기존 VM환경을 GCP로 확장하여 하이브리드 클라우드 솔루션을 제공하는 특별한 서비스
- Bare Metal
hardware - 고성능, 실시간에 빠르게 사용하는 for low latency
- Container
- Google Kubernetes Engine(GKE)
구글 인프라 사용, 컨테이너형 프로그램 배포, 관리, 확장 할 수 있는 환경제공
클러스터 형성
- Serverless computing
- Cloud Run
build applications in your favorite programming language, with your favorite dependencies and tools.
abstracts away all infrastructure management.
- Cloud Functions
serverless execution environment for building and connecting cloud services.
코드 기반 코드 실행 infra(환경), 종량제 기능, 코드기반 = AWS lamda
- App Engine
Google App Engine is a Platform as a Service and cloud computing platform for developing and hosting web applications.
It lets app developers build scalable web and mobile back ends in any programming language on a fully managed serverless platform.
Modernizing Applications with Google Cloud
Cloud change patterns
기업들이 고객들의 니즈충족이나 비즈니스적 신속한 대응을 위해서 애플리케이션을 현대화해야한다.
- 기업이 Application을 현대화할때 채택하는 5가지 패턴
- Move application first and then change them
→ 조직이 보수적으로 레거시를 클라우드화 할 때 // 애플리케이션 선 이동 후 현대화
Lift and shift, Minimal changes, update more easily
- Change applications before they move
애플리케이션 선 재설계 후 이동
more aggressive approach, re-architect applications first, more cloud-ready
- Invent in greenfield
아무것도 없는 greenfield를 바꾸는 것, 새로운 것, 혁신적인 것을 개발할 때
ex)아이가 태어나기 전 미리 방을 꾸미는 것
Build innovative applications, Require agility, diverse development skill set, Require strong support from leadership
- Invent in brownfield
어느정도 기존의 걸 남겨놓고 새로운 걸 개발, 병행 개발 ex) 아이의 공간을 거실에서 할당한 채, 새로운 방을 꾸미는 것
The legacy remains on-premises, The legacy retired after the new built, Increase costs
- Move applications without any changes
Modernize the infrastructure layer, Switching to cloud storage, Creating virtualized environments
Challenges in application development
개발자 - infra << solution 해결에 집중, new app 기술
cloud native application을 개발하면 legacy system에 의해 제약받는 걸 계속 생성하는 번거로움을 피할 수 있다.
legacy software update → 단일 아키텍쳐 program은 update시 코드가 복잡해지고 어려워진다.
So, 코드기반 모듈화 → microservice architecture로 해결가능
CI/CD
Continuous integreation - 파이프라인에서 단계별로 통합, 테스트 안정적으로 지속적 통합 → increase application release velocity and reliability (infra단에서 지원이 중요)
Continuous delivery deployment
Google Kubernetes Engine
Containerization은 개발자로부터 하여금 앱설계단계에서 구획화를 하게 해줌
Container - 응용프로그램 전체에 영향을 미치지 않고, 코드의 일부를 update가능, 복원력 good
Kubernetes is an open source container-orchestraion system for automating computer application deployment, scaling and management.
GKE - app/service 쉽게 배포, 업데이트, 관리가능 open source solution
Kubernetes - open source container-orchestraion system
GKE - Google Cloud managed service for container orchestraion.
App Engine
Serverless computing 기반
Definition: A platform for building scalable web applications and mobile backends.
→ 확장가능한 웹 애플리케이션 및 모바일 백엔드를 구축하기 위한 플랫폼
애플리케이션 인프라를 관리해서 애플리케이션 혁신에 집중가능케함, 개발자가 인프라 상관 안해도 됨.
사용하는 리소스만큼 비용지불, 개발자는 편리함, infra에 대한 provisioning이 없기에 application에 집중가능
The value of APIs
Legacy system challenges
레거시 시스템은 여전히 사용 중인 고대의 컴퓨팅 소프트웨어와/또는 하드웨어로, 레거시 시스템은 미션 크리티컬(핵심 업무를 담당하는)이지만 사용자가 기대하는 속도와 규모로 새로운 서비스나 업그레이드를 제공할 수 있는 능력을 갖추지 못하는 경우가 많습니다. 레거시 시스템은 종종 더 최신 시스템과 연결할 수 없습니다.
legacy system은 디지털 세계에 real time data를 받아들이게 설계가 되어있지 않음.
기존 레거시 시스템은 IT 효율성을 떨어트린다.
How APIs can modernize legacy systems
API - 서로 다른 애플리케이션을 연결하고 시스템간 정보가 흐를 수 있도록 만들어진 소프트웨어
api들은 무결성을 보호하고 보안을 제공하며 통제된 엑세스를 제공함으로서 데이터를 노출시킴
app developers leverage those APIs to integrate with backend services and other service endpoints.
APIs to create new business value
Digital ecosystem enables business to create and monetize new digital experiences.
The more you know about your customers, the better able you are to offer a truly integrated, end-to-end digital experience.
Apigee
레거시 시스템은 오늘날 사용자가 요구하는 변화속도에 대한 기능을 제공하지 않는다.
최신 애플리케이션은 연결된 경험을 제공하고 유저 요구에 맞게 빠르게 업데이트 된다.
기업의 디지털 생태계가 복잡해짐에 따라 수많은 API관리의 필요성 대두
Apigee - fully featured API management platform that enables application developers and API providers to create connected digital experiences for end users.
개발자와 사용자간 연결된 디지털 경험을 만들어 제공하는 플랫폼
Analytics Services, Developer Services, API Services
Your exploration of infrastructure and application modernization with Google Cloud is insightful! If you're looking to take the next step in modernizing legacy software, Cleveroad's Legacy Software Modernization Services could provide the expertise and solutions you need. Check them out at https://www.cleveroad.com/services/legacy-software-modernization-services/ for a seamless transition to the future of tech!