DevOps คืออะไร?

ถึงเวลาที่ IT เปลี่ยนแปลง

ก่อนจะเข้าเรื่อง ขอเกริ่นอะไรนิดนึงนะครับ หลายคนอาจจะมีคำถามคล้ายๆผม เมื่อหลายปีก่อน เคยได้ยินคำว่า Cloud, Agile, Sprint, DevOps, DevSecOps, SRE แถมยังมีชื่อตำแหน่งงานใหม่ๆมาเยอะแยะเต็มไปหมด ไม่ว่าจะเป็น Product Owner, Scrum Master, Data Science, UX, UI, Lead Engineer, Full Stack Engineer, Front End Developer etc. ตอนนั้นเคยทำงานร่วมแต่กับ Project Management, SDLC, Waterfall, Project Manager, Project Member ซึ่งตอนแรกที่ทำงานกับทีมงานรูปแบบใหม่ นอกจากทำงานที่รับผิดชอบไปก็พยายามทำความเข้าใจ Outcome ของการทำงาน วิเคราะห์ เทียบเคียงว่ามีความแตกต่างและมีข้อดี-ข้อเสียแตกต่างกันยังไง ระหว่างแบบที่เขาเชื่อกันว่ามันเป็นส่วนหนึ่งของ Digital Transformation พัฒนาคน พัฒนาองค์กร ไปข้างหน้า เน้นว่า “Fail Fast” แบ่งงานเป็นชิ้นๆ ลูกค้าจะได้เห็นของเร็ว วัดผล ไม่ชอบหรือทำมาไม่ใช่ก็เปลี่ยน เปรียบเทียบกับแบบเดิมยึดตามแผน ทำไปตามลำดับแล้วส่งในสิ่งที่ Commit ไว้ ซึ่งหลังจากที่ทำไปสักพักใหญ่ๆ ก็พบว่าแต่ละแบบมีทั้งข้อดีและข้อเสีย แตกต่างกันไป ไม่มีอะไรที่ตายตัว บางงานที่เป็นโครงการขนาดใหญ่ และต้องการ Timeline ชัดเจน อาจจะใช้วิธีการทำงานทั้งสองแบบมาผสมกัน ซึ่งให้ผลดีกว่าการใช้การทำงานรูปแบบเดียวด้วยซ้ำ แต่ผู้บริหารโครงการต้องมีทักษะและเข้าใจการทำงานในการวัดผลและติดตามงานด้วยนะครับ ไม่งั้นก็น่าจะเละพอสมควรครับ

จากที่เกริ่นๆมาข้างต้น เป็น “วิธีการทำงาน” หรือ “Methodology” Methodology แบบใหม่ ที่เพิ่มขึ้นมา แต่ผมไม่ขอลงรายละเอียดในส่วนของ Methodogy ไปมากกว่านี้ เพราะจะไม่ตรงวัตถุประสงค์และหลายๆท่านสามารถหาข้อมูลเพิ่มเติมได้เต็มไปหมดจาก Internet จาก Keyword ประมาณ “Agile Methodology” หรือชื่อตำแหน่งงานต่างๆ ที่ผมร่ายไว้ รับรองว่าออกมาเพียบครับ

Credit ภาพ : https://devops.stackexchange.com/questions/24/what-does-a-devops-transformation-contain

เรื่องของเราจะเริ่มจากนี้ครับ จากภาพด้านบนเราจะเริ่มหลังจากหากเราดูภาพด้านบน จะเป็นภาพรวม กระบวนการพัฒนา Application คือ Plan, Code, Build, Test, Release, Deploy และ Operate ซึ่ง “DevOps” จะเข้ามาช่วยให้การประสานงาน ระหว่างแต่ละ Process ทำได้คล่องตัวขึ้น และ “อัตโนมัติ” มากขึ้น ครับ

จริงๆแล้ว DevOps เป็น ไม่ใช่ Tools แต่เป็น Culture!

หลายคนเคยได้ยิน Jenkin, Kubernetes, Openshift etc. ก็อาจจะเรียกว่า DevOps tools พอติดปากไป คนที่ไม่เคยได้ยินหรือเข้ามาทำงานใหม่ๆหลายคนเลยพาลเข้าใจไปว่า DevOps. มันคือ tools หลายๆ อันที่มันอาจจะต้องใช้ทักษะความเข้าใจเยอะๆ ดูยากๆ เกี่ยวกับ Cloud แต่ความจริงแล้ว มันไม่ใช่ มันคือ Culture หรือวัฒนธรรมการทำงานต่างหากครับ!

หากจะอ้างอิงจาก Wikipedia (https://en.wikipedia.org/wiki/DevOps) ความหมายของ DevOps คือ “การรวมกันของ Development (Dev) + Operation (Ops) เพื่อให้เอางานขึ้น Production ให้เร็วที่สุด รวมถึงส่งมอบงานที่มีคุณภาพให้ได้อย่างต่อเนื่องเป็นระบบ” ซึ่งการจะทำให้ได้ตามเป้าหมายข้างต้นได้ “วัฒนธรรมของทีมงาน” จะต้องจัดการปัญหาหลายๆอย่างให้ได้ ไม่งั้นจะเริ่มต้นไม่ได้เลย เช่น “Dev เขียน Code ตาม Feature”,”Operation ไม่อยากเอาของใหม่ขึ้นเลยตั้งเงื่อนไขอะไรมาเต็มไปหมด”,”ทุกการ Change มันยากไปหมด ต้องส่งไปให้คนที่ไม่รู้เรื่องจริงๆ ช่วยกันกด Approve ไปอีก 10 ขั้น”, “งานทำแบบ Manual ในทุกขั้นตอน”, “ระบบทดสอบมาดีหรือยัง” เป็นต้น

ดูละจะเริ่มยากละ เพราะถ้าตัดกระบวนการข้างบนไป ก็ลูกทุ่งเลย Change กันมั่วไปหมด เป็นความเสี่ยงกับระบบสิ ไม่ว่าเรื่องของคุณภาพของงานที่น่าจะแย่ลง หรือความปลอดภัยของระบบเองก็ตาม คำตอบคือ “ใช่ครับ” หลายอย่างข้างต้นจำเป็นต้องคงอยู่แต่จะต้อง Lean มันลงไป ไม่ทำให้เทอะทะ แต่ปรับแนวคิดและวิธีการทำงาน โดยทำลายกำแพงระหว่าง Developer และ Operation ทุกคน ทุกคนจะต้องร่วมกันทำทุกอย่างให้ Automate และรับ Feedback กลับไปเพื่อปรับปรุงให้ดีขึ้นเรื่อยๆ แล้วมีกระบวนการทดสอบและวัดผลอย่างเป็น Systematic และ Automate ที่สุดที่เป็นไปได้ จากนั้น Release version ที่ปรับปรุงให้ไว รวมถึงสามารถ RollBack ได้อย่างรวดเร็ว ไม่เกิด Downtime กับระบบนาน ซึ่งจากแนวคิดและวิธีการทำงานลักษณะ DevOps นี้ จะเอื้อให้ Agile Methodology, CI(Continues Integration) /CD(Continues Delivery) /CD (Continues Deployment) ทำได้อย่างมีประสิทธิภาพมากขึ้น และจากนั้นจะมาถึง DevOps Tools ต่างๆ เช่น Cloud, Terraform, Ansible, Kubernetes, Openshift, Jenkin etc. จะมามีช่วยให้การทำงานต่างๆเป็นไปอย่างสะดวกขึ้น และส่งผลให้ Product ที่ Deliver ออกมา มีคุณภาพขึ้น กล่าวคือ ทุกการ Change ตรวจสอบได้, ของออกเร็ว, ตรงกับความต้องการของลูกค้า,งานมีคุณภาพมากขึ้นเรื่อยๆ

SAML คืออะไร และทำงานยังไง?

หลายๆคนอาจจะเคยได้ยินคำว่า “SAML“, “แซมแอล“, “เอส เอ เอ็ม แอล” บ่อยๆ แต่อาจจะไม่รู้ว่ามันคืออะไร ทำงานยังไง วันนี้จะขอแนะนำข้อมูลและวิธีการทำงานคร่าวๆ ของ “SAML” หรือ “แซมแอล” ให้ฟังนะครับ

SAML เป็นมาตรฐานที่มีมานานมากตั้งแต่ก่อนมี OAuth และ OpenID โดยเป็นมาตรฐานด้าน Authentication และ Authorization มาตั้งแต่ปี 2001  และถูกพัฒนาขึ้นมาเรื่อยๆ จนในปี 2005 ก็ Publish SAML 2.0 ออกมาซึ่งถูกใช้งานมาจนถึงปัจจุบันนี้ครับ

Keep Reading

WebAuthn มาตรฐาน “Password Less” บน Web Browser

เผอิญอ่านบทความผ่านๆไป พึ่งเห็นว่าวันที่ 4 มีนาคม 2562, ทาง W3C (องค์กรที่พัฒนาเทคโนโลยี WWW) และ FIDO Alliance (Fast IDentity Online, กลุ่มบริษัทพันธมิตรยักษ์ใหญ่ที่ร่วมกันแก้ปัญหาเรื่อง User / Password ในการยืนยันตัวตนแบบ Online) ได้ประกาศให้ “WebAuthn (Web Authentication) เป็นมาตรฐานของเวปอย่างเป็นทางการ” ซึ่งหมายความว่า ในอนาคตอันใกล้เราจะสามารถเข้าถึงเวป โดยไม่ต้องใช้ User / Password แต่จะใช้ Authenticator อื่นๆ เข้ามาช่วยในการ Authenticate ผู้ใช้งานแทน ซึ่งจะช่วยเพิ่มความปลอดภัยให้กับเวปแอพพลิเคชั่นเป็นอย่างมาก มันเป็นยังไง ไปดูกันครับ

Keep Reading

OAuth มีกี่โฟลและทำงานกับ OIDC อย่างไร?

จาก Blog ที่ผ่านมาเรื่อง ลงลึกกับ OAuth กันดีกว่า ผมได้อธิบายการทำงานของ OAuth โดยยกตัวอย่างโฟลต่างๆไปแล้วนั้น Blog นี้จะขอเน้นไปที่ OAuth และ OIDC รวมถึงโฟลต่างๆของ OAuth ว่าตกลงมันมีกี่แบบกันแน่ และแต่ละแบบมันต่างกันอย่างไร

Keep Reading

ลงลึกกับ OAuth กันดีกว่า

จากที่เล่าเรื่อง OAuth กับ OIDC ว่ามีหน้าที่ในการทำอะไรไปแล้ว ใน Blog ก่อนหน้า รู้จัก OAuth 2.0 กันก่อน บทความนี้จะลงในรายละเอียด ที่อาจจะทำให้หนักหัวกับหลายๆคน แต่อาจจะเป็นเรื่องง่ายๆสำหรับอีกหลายๆคนขึ้นอยู่กับมีประสบการณ์กับมันมากแค่ไหน แต่ยังไงจะพยายามอธิบายให้เข้าใจได้แบบง่ายที่สุดเท่าที่จะทำได้นะครับ – -”

ก่อนอื่น อยากให้ลองมองย้อนกลับไปยุคก่อนที่จะมี OAuth / OIDC มาให้ใช้งานกันแบบทุกวันนี้ เรามีการบริหารจัดการ Authentication กันอย่างไร

Keep Reading

รู้จัก OAuth 2.0 กันก่อน

ก่อนจะเข้าเนื้อหาจะขอเล่าน้ำสักบทนึงก่อนนะครับ คิดอยู่ว่าจะทำยังไงให้เข้าใจเรื่องนี้โดยไม่มีศัพท์เทคนิค เพื่อให้ได้ความรู้และคุยกับเพื่อนร่วมงาน, Partner ได้เข้าใจ จะได้วางแผนงานและแบ่งงานกันรู้เรื่อง เพราะประสบการณ์ที่ผ่านมามักจะมาแนวว่า “Authentication ใช้ OAuth ละกัน ปลอดภัยดี ดูมีมาตรฐาน” ว่าแต่จริงๆแล้ว OAuth มันคืออะไรล่ะ Dev รู้จักมันจริงไหม, IT Operation บริหารจัดการมันได้ดีแค่ไหน Authen ไม่ผ่านต้องทำอย่างไร, Attibute อะไรที่ใช้บ้าง, Protocol เองก็เก่ง ทำได้เยอะ mode เหลือเกิน ทำแบบไหนดี เลยอยากจะเล่าที่มาที่ไปของมันก่อน เพื่อให้เห็นกรอบการทำงานของมันเพื่อให้ทุกคนอ่านแล้วเห็นภาพเดียวกัน แล้วในบทความต่อๆไป จะค่อยๆอธิบายรายละเอียดการทำงานของ Protocol ยันการเขียน Application เพื่อทดสอบเชื่อมต่อไปเลย สำหรับเฉพาะกลุ่มหรือคนที่ต้องการลงรายละเอียดจริงๆมาอ่าน และได้ประโยชน์

Keep Reading

ว่ากันด้วยเรื่อง Identity

ว่ากันด้วยเรื่อง Identity

หลายคนน่าจะรู้เรื่อง “Identity” มาบ้างนะครับ “Identity” จริงๆแล้วไม่ได้มีอะไรซับซ้อน ถ้าแบบง่ายๆก็ “อะไรก็ตามที่ใช้ยืนยันกับสิ่งอื่น หรือระบบว่านี่คือเรา” เป็นเรื่องที่มีมาตั้งแต่สมัยโบราณ ก่อนจะมีคอมพิวเตอร์จนมาถึงตอนนี้ที่เป็น “Mobile first” , “BlockChain”, “IoT” และจะพัฒนาต่อไป ตามการใช้งานของผู้ใช้และ Application ที่มีความหลากหลายมากขึ้นไปด้วย แต่หลักๆก็จะวนไปวนมาอยู่ใน 3 ส่วน สุดคลาสสิคไม่ได้เปลี่ยนไปไหนมากมาย คือ

Keep Reading

Domain Name System (DNS) Attacks (Part 2: การโจมตี DNS)

DNSจากบทความ Domain Name System (DNS) คืออะไร และ ทำงานอย่างไร (Part 1: Concept) ได้อธิบายการทำงานและความสำคัญของ DNS จะเห็นได้ว่า DNS เปรียบเสมือนประตูสู่อินเทอร์เน็ตของเครื่องคอมพิวเตอร์และอุปกรณ์สื่อสาร เนื่องจากการเข้าถึงเว็บไซต์หรือบริการบนอินเทอร์เน็ตต่างพึ่งพาการแปลง domain name ให้เป็น IP address ทั้งนั้น ในบทความนี้จะอธิบายถึงนรูปแบบการโจมตี DNS และผลกระทบที่อาจจะก่อให้เกิดกับเว็บแอปพลิเคชัน

Keep Reading

Domain Name System (DNS) คืออะไร และ ทำงานอย่างไร (Part 1: Concept)

domainDomain Name System (DNS) เป็น public service ที่ถูกใช้ในการแปลง domain name ให้เป็น IP address เรียกได้ว่าในปัจจุบัน ผู้ใช้งานอินเทอร์เน็ตทุกคนต่างพึ่งพา DNS ในการแปลง domain name เป็น IP address เพื่อเข้าใช้งาน Internet services เช่น Faceboo Google หรือ Pantip เป็นต้น ดังนั้น DNS ถือว่าเป็นระบบที่มีความสำคัญอย่างมากสำหรับเครือข่ายอินเทอร์เน็ต บทความนี้จะอธิบายถึงการทำงานของ DNS โดยละเอียด Keep Reading

ช่องโหว่ประเภท Unvalidated Redirects and Forwards

pirate9Unvalidated Redirects and Forwards (URF) เป็นช่องโหว่ด้านความปลอดภัยที่เว็บแอปพลิเคชันเปิดโอกาสให้ผู้ไม่หวังดีทำการ redirect หรือ forward ผู้ใช้งานไปยังเว็บไซต์อื่น แม้ว่าการ redirect นั้นจะเป็นเหมือนพฤติกรรมปกติ แต่การที่เว็บไซต์ที่มีความน่าเชื่อถือทำการ redirect ผู้ใช้งานไปดาวโหลดไฟล์ virus หรือ malware อาจสร้างความเสียหายให้กับทั้งตัวผู้ใช้งานเองและเว็บไซต์หาก user account ถูกโจรกรรม บทความนี้จะอธิบายถึงช่องโหว่ประเภท URF และแนวทางในการป้องกัน Keep Reading