Flask Application에 New Relic 설정하기

Development / Python / Flask / newrelic / devops / apm

기존에는 ELK(AWS Elasticsearch Service)를 APM겸 로그 시스템으로 사용하고 있었는데, 결국 Eleasticsearch Node들도 DevOps 차원에서 관리가 필요한 부분이고, 서비스 트래픽 증가에 따라 Node와 Message Queue, Queue Worker들도 같이 Scale-up(혹은 Scale-out)이 되어야 해서 덩달아 비용이 기하급수적으로 늘어나고 있기에, 그 유명한 New Relic으로 갈아타는 것을 결심했다. (그리고 초당 150건씩…

Python Flask를 이용해 Bitbucket Webhooks <-> Jenkins 중계하기 (부제: 특정 브랜치만 CI로 트리거하기)

Development / Python / Flask / jenkins / bitbucket

문제 우리 회사에서는 소스 저장소로 Bitbucket을 사용하고 있다. (Atlassian 3총사인 Jira와 Confluence를 같이 활용하게 위해.. 결국 이슈 트래킹은 Trello로 넘어갔지만.. 여튼.) 아직은 개발 단계인 우리 프로젝트 상황상, 개발 서버와 실 서버를 분리해 운영하고 있지 않아 메인 개발 브랜치(develop)에 머지된 소스가 자동으로 Jenkins를 통해 단일 서버로 배포되는 CI 시스템이…

Flask Extension 만들기 & Python Package (PyPI) 만들어 배포하기

Development / Python / Flask / Boto / PyPI / SQS

Flask에서 AWS SQS를 사용하기 위해 Boto를 이용하고자 하였는데, 각종 외부 Connection들을 Flask의 Application Context 생명 주기(?)에 맞춰주지 않으면 연결이 끊어지는 현상을 자주 겪었기 때문에(MySQL에서도, Memcached에서도, RabbitMQ에서도..) 이를 위해 Flask 전용 Boto 패키지(Flask Extension)가 있는지 찾아보았지만.. 역시나 없었다. (Django용은 있었다.) 그래서 한 번 만들어보았다! Flask Extension을 만드는…