Role at TD Tech — Platform Engineering (DevOps) Tech Stack เยอะขนาดไหน ไปดูกันฮะ!

TD Tech
TD Tech
Published in
3 min readDec 14, 2023

Roles at TD Tech วันนี้เราจะชวนมาพูดคุยกับพี่บอม ธนภพ จีนะพงษ์ Head of Platform Engineering (DevOps) โดยพี่บอมจะมาเล่าถึงหน้าที่ในการช่วย Support ทีม Dev ตั้งแต่ต้นน้ำยันปลายน้ำที่เอาของขึ้น Production รวมไปถึง Tech Stacks และ Tools ของ DevOps ว่าภายใน TD Tech นั้นมี Stack ที่เยอะขนาดไหน! และสุดท้ายวิธีการทำงานและการพัฒนาคนในทีม DevOps เป็นอย่างไร ติดตามได้เลยครัช!

พี่บอม: ชื่อบอมครับ ทำ Platform Engineering (DevOps) เมื่อก่อนก็เริ่มจากการเป็น Dev นี่แระครับ แล้วก็เมื่อ 4 ปีที่แล้วก็มาร่วมงานกับ TD Tech ครับ

DevOps Overview

การทำงานของทีม DevOps เราเริ่มขึ้นตั้งแต่ก่อนที่จะเริ่ม Sprint คือยังอยู่ในช่วงของ Technical design เพราะเรามองว่างานแต่ละชิ้นมันมีความแตกต่างกันในหลายๆด้าน ทั้งเรื่อง Technology, Process หรือ Tools เราเลยคิดว่า Pipeline ที่เราต้องสร้างขึ้นมันควรต้องต่างกันไปตามงานแต่ละชิ้น เพื่อให้การพัฒนา Platform ของเรามีประสิทธิภาพมากที่สุด ทั้งด้านของความเร็ว (Velocity), คุณภาพ (Quality) และความปลอดภัย (Security) มากที่สุด และประเด็นสำคัญอีกเรื่องก็คือเราอยากให้ทีมเห็นภาพเดียวกันตั้งแต่แรก ว่าภาพในการ Design เป็นแบบนี้นะ เค้าสามารถจะเอา Design นี้ไปทำงานของเค้าต่อได้ในทิศทางเดียวกัน

ถัดจากนั้นในระหว่าง Sprint เราก็จะทำงานร่วมกันกับทีม Engineer เพื่อ Support ดูแลให้เค้าสามารถพัฒนางานได้อย่างราบรื่น เช่น การเพิ่มหรือแก้ไข CI/CD Pipeline ต่างๆ หรือการเพิ่มการใช้งาน Component บน Cloud เป็นต้น

หลังจากที่จบ Sprint ทำ Show & tell เสร็จเรียบร้อย เราก็จะทำงานร่วมกันกับทีมที่มีส่วนเกี่ยวข้องกับการ Release Feature ต่างๆขึ้นไปบน Production ซึ่งหลักๆเราจะแบ่งออกเป็น 4 ส่วนด้วยกัน ได้แก่

  1. TD POS เป็น Android application หลักสำหรับ Partner (ร้านโชห่วย) เพื่อใช้ในการขายของที่หน้าร้านของเค้า
  2. TD Hand ตัวนี้ก็เป็น Android เหมือนกันซึ่งทำงานอยู่บน Handheld สำหรับช่วย Partner ในการทำรับสินค้าเวลาที่สินค้ามาส่งที่หน้าร้าน
  3. TD Eye ตัวนี้ก็เป็น Android เหมือนกันซึ่งทำงานอยู่บน Handheld สำหรับทีม QI เพื่อใช้ในการนับสินค้าเวลาตรวจสินค้า
  4. TD NEST (Back Office) เป็น Core platform ของเราที่จะทำหน้าที่หลักในการประมวลผลและจัดเก็บข้อมูลของ Platform เรา

Main Tasks — DevOps

พี่บอม: จริงๆเรามีหน้าที่หลักๆอยู่ประมาณ 4 ข้อหลักๆได้แก่

  1. Build & Maintenance สร้างและดูแล Platform ให้พร้อมใช้งานอยู่เสมอ ทั้งในส่วนของ Development และ Production environment เพื่อที่จะเพิ่มประสิทธิภาพในการดูแล Platform ของเรา เราได้เลือกใช้พวก Infrastructure-as-code (IAC) เช่นพวก Terrorm,Terragrunt,Pulumi หรือพวก Shell script ต่างๆ
  2. CI & CD Pipeline ต่างๆ เรามีหน้าที่ในการช่วยออกแบบและเลือก Technology ในการที่จะมาใช้งาน ในส่วนของ CI เรามีการใช้ Github action, Jenkins, Cloud build เป็นต้น ส่วน CD เนื่องจากเราใช้ Kubernetes ซึ่งเป็น Orchestration system ในการจัดการพวก Services ต่างๆเป็นหลัก เราจึงเลือกใช้ GitOps concept ในการที่มาจัดการ Deploy อย่างเช่นพวก Flux, Argo CD
  3. Release หลังจากจบ Sprint ในทุกๆ 2 สัปดาห์เราก็จะมีการ Release feature ใหม่ขึ้นไปบน Production ในขั้นตอนนี้เราให้ความสำคัญเป็นพิเศษเพราะการ Release มันส่งผมถึง Partner โดยตรงในการขายสินค้า
  4. Support ทาง DevOps มีหน้าที่ในการช่วยดูแลการพัฒนา Features ต่างๆราบรื่นมากที่สุด

Learning in DevOps

พี่บอม: ใน TD เรา Implement Platform ของเราอยู่บน Google Cloud ทั้งหมดเลย ซึ่งทำให้ Tech Stack มันเยอะมากกกก ทางทีม DevOps เราก็ต้องพัฒนาตัวเองให้ทัน Technology ตามโลกและเพื่อ Support ทีมภายในเพื่อให้เค้าทำงานได้ราบรื่น เราก็จะมีวิธีการพัฒนาคน เช่นการทำ Knowledge Sharing การทำ Online Course ต่างๆเพื่อนำความรู้กลับมาพัฒนาทีม ทำให้ทีมก้าวหน้าต่อไปครับ ขอบคุณครับ

--

--