뱅크샐러드 DevOps팀은 뱅크샐러드의 서비스가 안정적으로 동작하기 위한 모든 인프라를 만들고, 운영하는 팀입니다. 핀테크 비즈니스에 맞는 서비스 보안성을 지키면서 개발자의 개발 생산성과 운영 효율성을 높일 수 있는 환경을 구성하기 위해 많은 노력을 기울이고 있는데요.
급속도로 성장하는 서비스가 언제 어디서든 잘 동작할 수 있도록 튼튼한 인프라를 만드는 데에 주력하고 있는 DevOps팀의 일상, 함께 살펴볼까요?
DevOps팀의 일상을 소개해 드리기에 앞서, “고객들은 무엇을 궁금해할까?”라는 질문을 던져보았어요. 우리가 알리고자 하는 에피소드도 좋지만, 뱅크샐러드에 합류하고 싶은 개발자나 디자이너가, 뱅크샐러드 서비스를 애용하는 유저가 궁금해하는 것들은 무엇일까를 고민하면서 말이죠.
그렇게 누구나 뱅크샐러드 팀에 궁금한 질문을 남길 수 있도록 Survey를 마련했습니다. 응답해주신 모든 분들께 감사의 말씀을 전하며, 수집된 질문들 중 가장 궁금해하는 질문 TOP 5에 대한 DevOps팀의 답변을 소개해드릴게요!
A. 인프라 지식은 많을수록 좋지만, 어렵고 익숙하지 않은 인프라 지식을 한 번에 습득하는 것이 쉽지 않은 일이죠. 그렇기 때문에 개발 업무를 진행하며 마주하는 문제들이 있다면, 그 문제를 해결하는 과정에서 자연스럽게 인프라 지식을 넓혀가는 것도 좋은 방법 중 하나라고 생각해요.
빌드나 배포에 문제가 생겼다면 현재 CI/CD 구조가 어떻게 되어있는지 살펴보기도 하고, 배포 후 모니터링을 하다 어려움이 있다면 모니터링 시스템의 구조에 대해서도 알아보기도 하면서요. 서버에 장애가 발생하는 경우에는 현재 인프라의 구조나 트래픽 플로우에 조금 더 관심을 가질 수도 있겠죠? 어느 정도 지식을 숙지해야겠다고 스스로 제한을 두는 것보다는, 이처럼 문제 해결을 목적으로 조금씩 지식을 넓혀가는 방법을 추천해 드리고 싶습니다.
뱅크샐러드는 업무를 수행하며 마주하는 다양한 문제를 주도적으로 해결하고, 그 과정에서 다양한 지식과 관점을 함께 배울 수 있는 분들을 언제나 환영하고 있고요!
A. 빠르게 성장하는 서비스의 인프라를 효율적으로 구축하고 운영하기 위해 대부분의 서비스를 클라우드에서 운영하고 있습니다. 상용 소프트웨어 중에는 AWS 클라우드의 사용 비중이 가장 크고, 금융업 특성상 인증된 보안 소프트웨어를 사용해야 해서 일부 보안 솔루션도 상용 소프트웨어를 활용하고 있어요.
그 외에는 대부분 오픈소스로 구성을 했는데요. 현재 모니터링은 자체 구축한 Prometheus + Grafana, TICK(Telegraf, InfluxDB, Chronograf, Kapacitor), 그리고 AWS 의 매니지드 서비스로 Opensearch와 Kibana를 사용하고 있습니다. 최근에는 서비스 트레이싱을 위해 Jaeger와 서비스메쉬로 Linkerd를 도입하기도 했어요!
오픈소스 중에는 쿠버네티스를 가장 비중있게 활용하고 있는데요. 구체적으로 “Kubernetes The Hard Way”라는 방식으로 직접 Vault, Etcd 그리고 Kubernetes 를 구축하여 사용하고 있습니다. 이렇게 직접 쿠버네티스를 구축하고 운영하면, 모든 옵션을 관리할 수 있고 업그레이드 등 다양한 문제 상황에서 클러스터를 직접 컨트롤 할 수 있다는 장점이 있어요.
A. DevOps팀은 뱅크샐러드에서 사용하고 있는 대부분의 인프라를 관리하고 운영하는 팀이죠. 적은 인원으로도 모든 관리가 가능한 이유는 바로 IaC(Infrastructure as Code)라는 운영 방식을 지향하고 있기 때문인데요.
**IaC는 ‘코드로 인프라를 관리하는 방식’**을 의미합니다. 마치 소프트웨어를 개발하는 것처럼 코드를 통해서 인프라를 만들고 관리할 수 있는 것이죠! 이 방식의 장점은 코드를 통해 인프라를 관리하기 때문에 일일이 서버나 네트워크를 구성하는 것보다 더 빠르고 구조적으로 운영할 수 있다는 점이에요. 만약 어떤 문제나 실수가 발생하더라도 어떠한 변경 사항 때문에 발생하였는지 추적하기가 쉽고, 경우에 따라서는 롤백도 가능합니다. 또 코드 리뷰를 할 수 있는 구조이기 때문에 스스로 주도하여 진행하는 변경 사항이라도, 동료의 도움을 받아 실수를 줄일 수 있다는 점이 무엇보다 큰 장점이기도 하죠!
그리고 새로운 기술을 PoC 하고 도입하는 일도 꾸준히 진행하고 있어요. DevOps팀은 인프라 구성 외에도 개발자의 생산성, 운영의 효율성, Cloud의 비용문제 등 풀어야할 문제들이 많은데요. 그 중 어떤 문제는 새로운 기술을 탐색하고 도입함으로써 해결될 수 있기 때문에 신기술에 대한 PoC를 하는 일이 중요하다고 생각합니다. 마지막으로 반복적으로 진행해야하는 운영 업무들은 최대한 자동화하며 팀원들이 더 생산적인 일에 몰두할 수 있도록 노력하고 있습니다 😊
모든 서비스는 언제나 장애가 발생할 수 있는 가능성을 갖고 있죠. 그래서 저희는 “서비스에 장애가 발생하더라도, 어떻게 하면 부정적인 고객 임팩트를 줄일 수 있을까?”에 집중하며 안정성 확보를 위해 노력하고 있는데요.
먼저 AWS의 3개 가용영역을 사용하고, 서비스 역시 최소한 3중화하여 가용성을 높였습니다. 쿠버네티스의 기본적이지만 강력한 기능인 “셀프힐링”과 “오토스케일링”을 잘 활용하기도 하죠. 이렇게 서비스의 고가용성과 서비스 신뢰도를 높이고, 단일 서비스나 요청이 실패해도 고객에게 영향을 덜 끼치는 방향으로 인프라를 운영하고 어플리에션 레이어에 관여하려고 노력하고 있습니다.
또 인프라를 변경할 때는 최초 설계단계부터 Tech Spec을 작성하고 있어요. 이를 통해 가용성과 확장성에 대한 검토뿐 아니라 전자금융업에서 요구하는 규정이나 보안 수준에 맞는지 사내 보안팀, 컴플라이언스팀과도 적극적으로 커뮤니케이션을 진행하고 있어요.
A. 트래픽이 급증해도 버틸 수 있는 튼튼한 인프라가 있지만 장애는 언제나 발생할 수 있죠. 뱅크샐러드에는 장애가 발생하면 즉시 해당 서비스팀과 DevOps팀 그리고 관련자들에게 알림을 보내는 시스템이 있어요. 알림을 받은 팀원들은 장애 대응을 최우선순위로 하여 작업을 진행하죠. 최근에는 온콜제도를 시행하려고 ‘Opsgenie’ 를 도입하기도 했는데요. 장애 발생 시 온콜 담당자가 1차 대응을 하기 때문에 다른 팀원들은 장애 알람으로 조금 자유로워지기도 했답니다.
또 장애가 발생한 후에는 필수적으로 포스트모텀을 진행하여 재발 방지책을 마련하고 있어요! 포스트모텀에서는 장애를 일으킨 당사자를 블레임하기보다는 프로세스, 작업방식, 코드 리뷰방식 등 여러 방면으로 장애가 왜 발생했는지 근본 원인을 찾는 것에 집중하고 있는데요. 이렇게 근본적인 원인을 파악한 후에는 동일한 장애가 재발하지 않도록 개선책을 마련합니다.
뱅크샐러드 DevOps팀은 “어떻게 하면 더 좋은 인프라를 만들 수 있을까”를 고민하며, 현 상황에 안주하지 않고 더 큰 고객 임팩트 창출을 위해 주도적으로 문제를 발견하고 해결해갑니다. 이 과정을 통해 모든 팀원은 개개인의 성장과 회사의 성장을 경험하고 있는데요.
든든한 팀원들과 함께 조직의 성과와 개인의 성장을 경험하고 싶은 분들은 아래 버튼을 클릭하여 채용 사이트도 방문해주세요! 채용 중인 다양한 포지션과 뱅크샐러드가 일하는 방식도 확인할 수 있습니다! 좋은 인연으로 만나 뵙길 바라며 오늘은 여기서 이만 인사드립니다. 감사합니다.
보다 빠르게 뱅크샐러드에 도달하는 방법 🚀
지원하기