AWS Developer Theory

Mart — Tanathip Viriya
2 min readJun 9, 2020

--

บทความนี้จะสรุปรวมเจ้าเครื่องมือ 4 ตัวที่เป็นตัวช่วยของ Developer ก็คือจะได้ง่ายต่อการอ่านและเห็นภาพรวมในทีเดียว ไม่ต้องอ่านแยกกัน

โดยหลักการณ์แล้วมันก็คือเครื่องมือที่เราใช้ทุกวันเพียงแต่ไปอยู่บน Cloud เช่น

  • CodeCommit
    code repository เพื่อทํา version control
  • CodeDeploy
    คือ Automate deployment services ของ AWS
    การ deploy code โดยแบ่งเป็น In-Place (หยุด application บน instance ถ้าเกิด rollback ต้อง redeploy version เก่าเอง) และ Blue/Green (deploy บน เครื่องใหม่ก่อนแล้วค่อย switch ไปตัวใหม่)
    ทีนี้เวลา deploy การที่จะจัดการ deployment เราจะมีสิ่งที่เรียกว่า AppSpec file เพื่อใช้ config และเป็น parameter ที่ใช้ในการ deploy นั้นเอง
  • CodePipeline
    คือ Fully Managed CI/CD service ของ AWS นั้นเอง ซึ่งมันช่วยให้เราจะทําการ Build/Test/ Deployment แบบอัตโนมัติได้นั้นเอง เหมือน Conductor คุมวง Orchestra นั้นเอง
Overall Developer Theory tools
  • CodeBuild
    คือ managed CI ที่ช่วยในการ compiles source code, run tests และ ก็ทํา packages เพื่อให้พร้อมใช้ในการ deploy
    ซึ่งการที่จะควบคุมการจะ build เราต้องใช้ Buildspec file ที่อยู่ในรูปแบบของ YAML เพื่อ build ออกมาให้ได้แบบที่เราต้องการ (prefix file ด้วย buildspec_xxx.yml)

CodeDeploy — AppSpec File

เจ้า AppSpec จะประกอบด้วย

  • version (version ของ file)
  • OS (ระบุ OS ที่ใช้)
  • files (location ของไฟล์ที่จะใช้ในการ deploy เช่นจะ copy file ไหนมาใช้งาน source-destination)
  • hooks
    มันคือการทํา Life Cycle hook ในช่วงจังหวะของการ deploy โดยแบ่งออกเป็น BeforeInstall, AfterInstall, ApplicationStart, ValidateService เป็นต้น
    โดยปกติแล้วเราจะเอา AppSpec ไว้ใน root folder เหมือนไฟล์ของ EBS เช่นกัน
Sample of AppSepc File

CodeDeploy — Life Cycle hook diagram

ซึ่งจริงๆแล้ว Life Cycle hook มันขึ้นกับ platform ที่เรา deploy ลงไปด้วย ไม่สามารถเหมารวมได้ เช่น ECS ก็จะมี Life Cycle Hook แบบนึง และ Lambda ก็จะอีกแบบนึง

ทั้งนี้เป็นเพราะ Platform มี Life Cycle ที่ไม่เหมือนกัน เช่น ECS เป็น Container หรือ Lambda เป็น serverless นั้นเอง (ไม่ต้อง Install อะไร)

https://docs.aws.amazon.com/codedeploy/latest/userguide/reference-appspec-file-structure-hooks.html#appspec-hooks-server

ตัวอย่างของ ECS Life Cycle Hook ข้างล่างนี้

https://docs.aws.amazon.com/codedeploy/latest/userguide/reference-appspec-file-structure-hooks.html
https://docs.aws.amazon.com/codedeploy/latest/userguide/reference-appspec-file-structure-hooks.html

ตัวอย่างของ Lambda Life Cycle Hook ข้างล่างนี้

https://docs.aws.amazon.com/codedeploy/latest/userguide/reference-appspec-file-structure-hooks.html#appspec-hooks-server
https://docs.aws.amazon.com/codedeploy/latest/userguide/reference-appspec-file-structure-hooks.html#appspec-hooks-server

Sign up to discover human stories that deepen your understanding of the world.

Free

Distraction-free reading. No ads.

Organize your knowledge with lists and highlights.

Tell your story. Find your audience.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

--

--

No responses yet

Write a response