Çok zor oldu ama başardık: Bir ödeme sistemi entegrasyonu

Herkese Selamlar!
Bugün sizlere kan, ter ve göz yaşıyla dolu geçen 3 ayın sonunda çok kritik bir ödeme sistemi entegrasyonu ya da ödeme sistemi kurulumu, optimizasyonu, scalability’si, ölçeklendirilebilirlik, agile proje yönetimi ve hesap verilebilirliğinin en verimli halini nasıl başardığımızı anlatacağım.

Öncelikle bu süreçte bizlere yardımcı olan Elon Musk, Peter Thiel ve Max Levchin’e çok teşekkür ederiz. Bunun yanında vizyonuyla bize ilham veren Genel Müdürümüz Ahmet bey’e ve asistanı Şeyda hanım’a ayrıca çok teşekkür ederiz. Kendilerinin vizyonu olmasaydı, gerçekten bu Cloud mimarisine tam uygun bir sistemi kurmamız mümkün olamazdı.

Projenin Başlangıcı:

Öncelikle şunu belirtmemiz gerekiyor. Aylık trafiğimiz 50 (elli) kişi ve sitemizde dönen transaction miktarı ayda ortalama 4. Fakat en önemli sorunumuz yılın birkaç günü trafiğimizin 58’e, alışverişlerin ise bir anda ayda 7-8 seviyesine çıkmasıydı. Bu gerçekten büyük bir scalability problemi oluşturuyor ve mühendislik kültürüne sahip, alanında uzman ekibimiz için artık bu durumun değişmesi gerekiyordu.

Yola gerçekten alanında uzman bir BULUT çözümünü seçmekle başladık. Yaklaşık 1 aylık uzun bir analiz sonrası Microsoft Azure kullanmaya karar verdik. Tabii burada düz server düşünmeyin, gerçek bir bulut sistemi tasarladık. Redis, Kubernetes ve Docker kullanmaya karar verdik. Bu trafiği kaldıracak bir ödeme sistemi için bu uygulamaların kullanılması gerçekten elzemdi ve CTO’muzun da yardımlarıyla Kubernetes’ı Dockerize ederek, önüne Redis kurarak ciddi bir savunma sistemi kurduk.

Ödeme Sistemi Entegrasyonu Projesine Başlıyoruz:

Bildiğiniz gibi biz bir işi yapacaksak mühendislik kültürümüzle yaparız. Onun için önce Scrum’ları ve Agile’ları belirledik. Milestone’ları, Tech Debt’lere %10 faizle belirledik ki, mühendislik kültürümüzün faizsiz bankacılığa uygun bir yapıya geçmesini amaçladık.

Bir ödeme sistemi entegrasyonunun en önemli noktası ne derseniz, servislerin sürekli gözlemlenmesi. Bu nedenle Kafka kurarak, tüm eventleri sürekli gözlemledik, anomalileri yakalamak içinse Microsoft Azure Anomaly Detecter AI (Yapay zeka) uygulaması geliştirdik. Makina öğrenmesinin bir tık üstü diye anlatayım şimdilik, o başka bir yazının konusu olsun.

CI/CD-rom süreçleri için GitLab’in ‘CDR-W for code’ ürününü kullandık. Release takvimlerini, yazılım geliştirme süreçlerinden anlamayan pazarlama ekipleri için Trello’da, oradan proje yöneticilerimizin kullanımı için Asana’ya, oradan da kimsenin anlamamasın yarattığı mühendislik kültürünün korunması için Jira’ya taşıyıp, Jira’nın API’lerini kullanarak GitLab’e bağlayarak yönettik.

Verilerin Görselleştirilmesi:

Bildiğiniz gibi Kibana’nın veri görselleştirmesi zayıf ve herhangi bir araç sunmuyor. Kibana’yı Kubernetes içinde dockerize ettikten sonra, aylık 8 transaction ve 47 log’u görselleştirmek için Google Analytics kullandık. Fakat yine de ElasticSearch’den gelen veriyi bir köşede durması için toplayıp Graylog ve New Relic ile ekranlarımıza aktardık. Ofiste bu verileri görmek gerçekten tüm ekibin moral motivasyonunu arttırıyor.

Sonuç:

Önümüzde iki büyük sıkıntı vardı. Ya bu işi yukarıda anlattığımız gibi yapacak ve üstüne bu servisi bağlayacaktık: https://developer.paypal.com/docs/api/overview/#

ya da

gidip bu plugin’i alacaktık: https://tr.wordpress.org/plugins/wp-paypal/ ya da Garanti POS entegrasyonu falan filan…

Biz ilk yolu seçtik ve başardık. Tüm bu yapımda emeği geçen arkadaşlarımıza, bu yazıyı yazmamıza sebep pazarlama ekibine -Trello’ya devam hehe :)- ve tüm ekip arkadaşlarıma teşekkür ederim. İyi ki varsınız, yaşasın ölçeklenebilirlik ve mühendislik kültürü.

Share/Paylaş

2 thoughts on “Çok zor oldu ama başardık: Bir ödeme sistemi entegrasyonu

  1. Ekrem Gündoğdu

    “Bildiğiniz gibi Kibana’nın veri görselleştirmesi zayıf ve herhangi bir araç sunmuyor. Kibana’yı Kubernetes içinde dockerize ettikten sonra, aylık 8 transaction ve 47 log’u görselleştirmek için Google Analytics kullandık. Fakat yine de ElasticSearch’den gelen veriyi bir köşede durması için toplayıp Graylog ve New Relic ile ekranlarımıza aktardık.”

    bu konulardan pek anlamamıyorsunuz belli ki, ELK stack için dockerize pek önerilen bir yaklaşım değil, en azından best practice değil, Kibananın görselleştirmesi için bir araç bulunmuyor demek iste düpeüdüz cahillik, x-pack’den de haberiniz yok gibi tabi eğer paranız varsa. Graylog ve New relic ise görselleştirme konusunda oldukça zayıflar ve bir mühendislik yaklaşımı olarak sağ elinizle, sol kulağınızı tutmuşsunuz. Burada bir şeyler biliyormus gibi anlatacağınıza, grafana nedir ne değildir araştırsaydınız kesinlikle daha işe yarar olurdu.

    Reply
    1. Serkan

      8 transaction un döndüğü bir yerde cehalet içinde graylog, kibana ve elasticsearch kullanmışlar. utanmamışlar new relic gibi outdate olmuş bir tool satın almışlar bence burada console log kullanılması daha doğru olurdu. Arkadaşa katılıyorum. six pack den kesinlikle haberleri yok Ekremcim.

      Reply

Leave a Reply

Your email address will not be published.