DevOps กลายเป็นคำที่ได้รับความนิยมมากในหมู่ developer และเจ้าหน้าที่ด้าน IT operation ซึ่งในปัจจุบันวงจรการพัฒนาซอฟต์แวร์นั้นกำลังทวีความสำคัญและมีประโยชน์มากขึ้นเรื่อยๆ จนมีเครื่องมือ DevOps สำหรับการทำ automation ที่ช่วยให้ทีมสามารถสร้างสรรค์ผลงานและเพิ่มผลิตผลได้อย่างรวดเร็วยิ่งขึ้น
ในงาน Spooky Cloud Realm meetup ที่จัดขึ้นเมื่อวันที่ 26 ตุลาคม พ.ศ. 2565 ที่ออฟฟิศของ Seven Peaks เราเชิญ 3 ผู้เชี่ยวชาญด้านโซลูชันคลาวด์มาให้ความรู้ในหลายหัวข้อ ได้แก่ เครื่องมือ DevOps สำหรับการทำ automation ที่ต้องรู้ รวมถึงเคล็ดลับดีๆ ในการพัฒนาระบบคลาวด์
เริ่มด้วยคุณ Giorgio Desideri ผู้มีตำแหน่งเป็น Senior Cloud Lead และ Certified Cloud Architect ในด้าน AWS และ Azure ซึ่งมาแบ่งปันข้อมูลเกี่ยวกับความสามารถอันน่าทึ่งของ DevOps
จากนั้นคุณ สิริณัฎฐ์ ปภัสร์สิรินัที ผู้เป็น Cloud Native Bangkok Community Lead, Admin ของ DevOps Thailand และ Founder ของ The Bangkok HashiCorp User Group ได้มาให้ข้อมูลเชิงลึกเกี่ยวกับ การใช้งาน Hybrid Kubernetes Cluster กับ Azure Arc.
และวิทยากรท่านสุดท้าย คุณ Massimo Dradi ซึ่งเป็น Senior .NET Developer ของเรา ที่มาให้ความรู้เกี่ยวกับการวิเคราะห์ข้อมูลด้วย Application Insights
มาเริ่มศึกษาข้อมูลเกี่ยวกับเครื่องมือ DevOps สำหรับการทำ automation ที่ต้องรู้ แล้วพัฒนากระบวนการพัฒนาซอฟต์แวร์ของคุณให้ดียิ่งขึ้นในบทความนี้กันเถอะ!
คุณ Giorgio Desideri วิทยากรท่านแรกของเราเริ่มด้วยการเล่าว่า “เจ้าสัตว์ประหลาด DevOps” ถือกำเนิดขึ้นได้อย่างไร
หลายคนอาจเคยได้ยินเกี่ยวกับบทบาทของการพัฒนาซอฟต์แวร์และ IT operation กันมาแล้วว่าอย่างแรกมีหน้าที่รับผิดชอบเกี่ยวกับการสร้างซอฟต์แวร์ขึ้นมา ส่วนอย่างหลังมีหน้าที่ในการดูแลรักษา อย่างไรก็ตาม ทั้งสองทีมนั้นต่างทำงานร่วมกันอย่างยากลำบากเมื่อโค้ดได้รับการพัฒนาขึ้นมา โดยที่เซิร์ฟเวอร์หรือบริการด้านคลาวด์พร้อมสำหรับการรับโค้ดที่ผ่านการคอมไพล์แล้ว แต่ไม่มีใครสามารถทำให้งานสำเร็จลุล่วงได้
ดังนั้น บทบาทของ DevOps ซึ่งเป็นสัตว์ประหลาดที่ทำหน้าที่เชื่อมต่อระหว่าง deployment, configuration, และ maintenance จึงได้ถือกำเนิดขึ้นมา ซึ่ง DevOps ช่วยให้ทีมงานทุกฝ่ายสามารถพัฒนาซอฟต์แวร์ได้รวดเร็วและบำรุงรักษา deployment ที่มีอยู่ได้ง่ายขึ้น
เราอาจเปรียบ DevOps ว่าเป็นเหมือนสัตว์ประหลาดอย่าง “แฟรงเกนสไตน์” ก็ได้ เพราะมันเป็นสิ่งที่เกิดจากการผสมผสาน ไม่ได้เป็นของทีม developer หรือทีม operation แต่อย่างใด แต่ก็สามารถทำงานร่วมกับทั้งสองฝ่ายและมอบโซลูชันที่เหมาะสมกับงานด้านนี้ได้เป็นอย่างดี
บทบาทของ DevOps อาจรวมถึงสิ่งต่างๆ ต่อไปนี้
- SecDevOps ซึ่งย่อมาจาก security, developer, และ operation นั่นเอง SecDevOps ช่วยให้ทีมที่ดูแลด้านความปลอดภัย, ทีม developer, และทีม IT operation ทำงานร่วมกันได้ โดยมีเป้าหมายคือการใช้ระบบอัตโนมัติกับกระบวนการทำงานเพื่อตรวจสอบเกี่ยวกับ security requirement ของโปรเจกต์
- QA: หรือการประกันคุณภาพนั้นยังคงเป็นส่วนที่สำคัญอย่างยิ่งต่อวงจรการพัฒนาซอฟต์แวร์ที่ช่วยลดเวลาในการเข้าสู่ตลาดด้วยแนวคิด DevOps ได้ โดยทำหน้าที่เป็นสะพานเชื่อมทุกฝ่ายเอาไว้ ตั้งแต่ลูกค้า ทีมงานของบริษัท ไปจนถึง DevOps
- Agile: DevOps สามารถนำมาผนวกรวมกับแนวคิดการทำงานแบบ Agile ได้ เพื่อเพิ่มประสิทธิภาพและคุณภาพในการพัฒนาและ deploy ซอฟต์แวร์ เนื่องจากการเน้นเรื่องของความยืดหยุ่นและเวิร์กโฟลว์ที่ต่อเนื่องที่มีร่วมกันของสองแนวคิดนี้
Azure DevOps เป็นชุดเครื่องมือและบริการที่นำเสนอโดย Microsoft ซึ่งช่วยให้ทีมงานสามารถทำงานร่วมกันในการวางแผน, พัฒนา, ส่งมอบ, และดูแลรักษาแอปพลิเคชันได้ แพลตฟอร์มคลาวด์ของ Azure ทำให้องค์กรขนาดใหญ่สามารถใช้วงจรการพัฒนาซอฟต์แวร์ได้ดียิ่งขึ้นกว่าเดิม
โดยเราสรุปประโยชน์หลักๆ ของ 5 เครื่องมือ DevOps ในการทำ automation บน Azure ที่ใช้กันมากที่สุดเอาไว้ในหัวข้อต่อไปนี้ ซึ่งอาจเป็นประโยชน์ต่อโปรเจกต์ของคุณ ได้แก่
Azure Boards คือเครื่องมือสำหรับบริหารจัดการโปรเจกต์ที่ช่วยในการวางแผนและบริหารจัดการ task รวมทั้งมีแดชบอร์ดและรายงานความคืบหน้าที่ทุกคนในทีมสามารถนำไปใช้งานได้ Azure Boards รองรับเวิร์กโฟลว์ในการบริหารโปรเจกต์หลายรูปแบบที่เหมาะกับองค์กรคุณ เช่น Agile, Scrum, Basic, และ CMMI
Azure Repos คือชุดเครื่องมือในการทำ version control สำหรับบริหารจัดการโค้ดด้วยการติดตามประวัติของซอฟต์แวร์ในทุกครั้งที่มีการแก้ไขโค้ด
Azure Repos มี version control อยู่สองประเภท ประเภทแรกคือ Git ซึ่งเป็น distributed version control ส่วนประเภทที่สองคือ Team Foundation Version Control (TFVC) ซึ่งเป็น centralized version control นอกจากนั้น Azure Repos ยังสามารถนำมา integrate กับ Azure Boards และ Azure Pipelines เพื่อสร้างวงจรการพัฒนาที่ไร้รอยต่อได้อีกด้วย
Azure Pipelines เป็นเครื่องมือในการทำระบบอัตโนมัติสำหรับขั้นตอนการสร้างและ deploy แอปฯ โดยใช้ continuous integration (CI) และ continuous delivery (CD)
ใน Azure Pipelines นั้น continuous integration จะถูกเรียกว่า ‘build pipeline’ ซึ่งบ่งบอกถึงการทำระบบอัตโนมัติสำหรับสร้างและทดสอบโค้ด ส่วน continuous delivery นั้นจะถูกเรียกว่า ‘release pipeline’ ซึ่งเป็นระบบอัตโนมัติสำหรับการ deploy แอปพลิเคชัน เพื่อให้แน่ใจว่า final product นั้นพร้อมใช้งานสำหรับลูกค้า โดยการกำหนด pipeline นั้นสามารถใช้ YAML pipeline editor หรือ classic editor ก็ได้
ก่อนที่จะ deploy ซอฟต์แวร์ Azure Test Plans จะเข้ามาช่วยในการบริหารจัดการ exploratory, เอกสารคู่มือ, และ user acceptance test โดย developer จะมองเห็นภาพรวมของ test case ทั้งหมดที่จำเป็นต้องตรวจสอบ ซึ่งต้องใช้งานทั้งเอกสารคู่มือและการทดสอบด้วยระบบอัตโนมัติ
การทดสอบแบบแมนวลนั้นสามารถทำได้ด้วยการระบุขั้นตอน, สิ่งที่จะทำ, และผลลัพธ์ที่คาดหวัง เมื่อมีการสร้างฟีเจอร์ใหม่ขึ้นมา ผู้ทดสอบก็จะสามารถทำตามขั้นตอนเหล่านี้ได้
นอกจากนี้ การทดสอบด้วยระบบอัตโนมัติสามารถทำได้ด้วยกระบวนการ CI และ CD ใน Azure Pipelines และรายงานผลการทดสอบก็จะถูกเผยแพร่ใน Test Plans
Azure Artifacts ช่วยให้ developer สามารถสร้าง, โฮสต์, และแชร์แพ็กเกจจาก source ที่เป็น public และ private กับทีมงานได้ด้วยการบริหารจัดการทุกอย่างภายในที่เดียว สามารถเชื่อมต่อกับ Azure Pipelines เพื่อจัดเก็บ artifact ที่สร้างจาก build pipeline ได้ง่าย ซึ่ง artifact เหล่านี้สามารถทำงานร่วมกับแพ็กเกจได้หลากหลายรูปแบบ เช่น NuGet, npm, Python, Maven, และ Universal Package เป็นต้น
ต่อมา คุณ Giorgio ก็ได้แนะนำเครื่องมือ DevOps สำหรับการทำ automation บน AWS platform ให้เราได้รู้จัก ซึ่งเป็นเครื่องมือที่ช่วยให้การพัฒนาซอฟต์แวร์นั้นรวดเร็ว, ปลอดภัย, ปรับขยายได้, และมีคุณภาพดียิ่งขึ้น โดยมีเครื่องมือ 4 ชิ้นดังต่อไปนี้: CodeCommit, CodeBuild, CodePipeline, และ CodeDeploy
CodeCommit คือระบบ source control ที่ทำงานบน Git โดยสามารถปรับขยายได้ง่าย, ปลอดภัย, และบริหารจัดการด้วย AWS Cloud Services ได้อย่างเต็มรูปแบบ
CodeBuild นั้นเป็น build service ที่สามารถบริหารจัดการได้เต็มรูปแบบ โดยทำหน้าคอมไพล์ซอร์สโค้ด, ทำการทดสอบ, และสร้างแพ็กเกจของซอฟต์แวร์ที่พร้อมสำหรับการ deploy
CodePipeline คือบริการ continuous integration และ continuous delivery ที่สร้าง, ทดสอบ, และ deploy โค้ดทุกครั้งที่มีการอัปเดต
CodeDeploy คือเครื่องมือในการสร้างระบบอัตโนมัติเพื่อ deploy โค้ดให้กับ instance และ on-premises server ทำให้คุณสามารถควบคุมทุกอย่างได้จากที่เดียวและลดจำนวน downtime ลงได้
ผู้ให้บริการคลาวด์อีกเจ้าหนึ่งที่มีเครื่องมือ DevOps สำหรับทำ automation ก็คือ Google Cloud Platform ซึ่งมีหลากหลายบริการคลาวด์จาก Google โดยรันอยู่บนโครงสร้างพื้นฐานเดียวกันกับ end-user product ของ Google
ข้อดีหลักๆ ของการใช้บริการของ GCP DevOps คือการเข้าถึงระบบนิเวศขนาดใหญ่ของ Google และการดูแลความปลอดภัยอันโดดเด่นของพวกเขา ซึ่ง 3 เครื่องมือ GCP DevOps ที่นิยมใช้กันมากที่สุดก็คือ Cloud Resource Repository, Cloud Build, และ Cloud Container Registry
Cloud Source Repository คือ Git repository แบบ private ที่ถูกโฮสต์อยู่บน Google Cloud Platform ที่ทำให้เราสามารถพัฒนาและ deploy แอปฯ หรือบริการ พร้อมด้วยฟังก์ชันในการทำงานร่วมกันและ version control จึงมั่นใจได้ว่าการค้นหาโค้ดในทุก repository ของคุณนั้นสามารถทำได้อย่างสะดวกและรวดเร็ว
Cloud Build คือบริการที่ทำหน้าที่ execute build ของคุณบนโครงสร้างพื้นฐานของ Google Cloud ด้วยการ import ซอร์สโค้ดจากหลากหลาย source ไม่ว่าจะเป็น Cloud Storage, Cloud Source Repositories, GitHub, หรือ Bitbucket จากนั้น execute build ตามข้อมูลที่คุณระบุไว้ แล้วสร้าง artifact อย่าง Docker containers หรือ Java archive ขึ้นมา
Container Registry คือบริการสำหรับจัดเก็บ private container image ทำให้ทีมงานของคุณสามารถบริหารจัดการ Docker image, ทำการวิเคราะห์ช่องโหว่, และบริหารจัดการการเข้าถึงข้อมูลได้จากที่เดียว พร้อมทั้งการทำงานร่วมกับ CI/CD ซึ่งคุณสามารถติดตั้ง Docker pipeline ที่ทำงานโดยอัตโนมัติเพื่อดูฟีดแบ็กได้อย่างรวดเร็ว
วิทยากรคนที่สองคือ คุณสิริณัฎฐ์ ปภัสร์สิรินัที ที่อธิบายเกี่ยวกับความสำคัญของ Hybrid Kubernetes Cluster และวิธีการติดตั้ง Azure Arc บนสถาปัตยกรรม Kubernetes พร้อมด้วยเคสตัวอย่าง
อันดับแรก อยากให้คุณเข้าใจก่อนว่า Hybrid Kubernetes Cluster คือ container platform แบบโอเพนซอร์สที่รวมเอาการใช้งาน on-premises และทรัพยากรคลาวด์เข้าไว้ด้วยกัน ทำให้การ deploy แอปพลิเคชันมีความสม่ำเสมอ ไม่ว่าจะอยู่บนแพลตฟอร์มไหนก็ตาม จึงเหมาะสมกับความต้องการของธุรกิจเป็นอย่างดี
ในองค์กรหนึ่ง คุณอาจต้องจัดการกับ Kubernetes Cluster บนผู้ให้บริการคลาวด์ที่แตกต่างกันสำหรับการดูแลหลายโปรเจกต์พร้อมๆ กัน หรือคนในทีมของคุณอาจใช้งานแพลตฟอร์มที่แตกต่างกันก็ได้
การใช้ Azure Arc บน Kubernetes Cluster ทำให้คุณสามารถเชื่อมต่อกับ cluster ที่รันอยู่บนแพลตฟอร์มต่างๆ กับ Azure Arc ได้ รวมถึงผู้ให้บริการ public cloud อื่นๆ อย่าง GCP หรือ AWS และ on-premises data center และควบคุมพวกมันได้จากที่เดียว นอกจากนี้คุณยังสามารถเชื่อมต่อ Kubernetes Cluster หลายอันเข้าไว้ด้วยกันและบริหารจัดการพวกมันด้วยนโยบายเดียวกันได้ด้วย
เมื่อดูสถาปัตยกรรมของ Kubernetes Cluster ที่ใช้งาน Azure Arc ในภาพนี้ จะเห็นได้ว่า Kubernetes Cluster จากบริการคลาวด์ที่แตกต่างกันสามารถเชื่อมต่อกับ Azure Arc ได้ด้วยการติดตั้งตัวกลางที่ทำหน้าที่ส่งต่อข้อมูลไปยัง Azure เมื่อพวกมันเชื่อมต่อกันแล้ว ทรัพยากรทั้งหมดไม่ว่าจะเป็นข้อมูลระบุตัวตน, RBAC, นโยบายการทำงาน, การติดตามผล, และความปลอดภัย นั้นสามารถบริหารจัดการได้จากแผงควบคุมเดียวบนบริการของ Azure
ต่อมาคือตัวอย่างเคสการใช้งานของ Hybrid Kubernetes Cluster โดยคุณสิริณัฎฐ์อธิบายขั้นตอนการติดตั้ง GCP cluster เพื่อเชื่อมต่อกับ Azure monitor ผ่านทาง Azure Arc ไว้ดังนี้
ขั้นตอนแรกคือไปที่เว็บไซต์ของ GCP แล้วเลือก ‘create a standard cluster’ กรอกข้อมูลลงไป ซึ่งได้แก่ชื่อของ cluster, ประเภท, เวอร์ชัน, และภูมิภาคที่ต้องการ เมื่อสร้าง cluster เรียบร้อยแล้ว คุณก็จะได้รับรหัสผ่านสำหรับเชื่อมต่อกับ GCP cluster
ต่อมาก็ไปที่ Azure web portal แล้วเลือก ‘add existing kubernetes clusters’ จากนั้นกรอกรายละเอียดของ cluster สิ่งสำคัญที่ควรสังเกตก็คือ ภูมิภาคของ cluster นั้นต้องเหมือนกันกับ GCP cluster อันดับสุดท้ายคือเลือก ‘run script’ แล้ว Azure จะ generate สคริปต์สำหรับเชื่อมต่อกับ cluster ของ Azure Arc ด้วยการคัดลอกมัน
หลังจากที่ GCP cluster เชื่อมต่อกับ Azure Arc สำเร็จแล้ว ก็จะส่งการอัปเดตสถานะมา คุณสามารถเชื่อมต่อกับ Azure monitor เพื่อให้สามารถติดตามผลการทำงานของ GCP cluster ผ่านทาง Azure Portal ได้ นอกจากนั้น CPU, หน่วยความจำ, Node count, และ Pod count ของ GCP cluster ก็สามารถติดตามผลจากที่เดียวกันได้เช่นกัน
คุณ Massimo Dradi คือวิทยากรท่านที่สามของเรา เขาพูดถึงการทำงานของ Azure Application Insights และวิธีนำมันมาช่วยวิเคราะห์การใช้งาน
Azure Application Insights คือเครื่องมือในการทำ live monitoring, เก็บ log, และวิเคราะห์ประสิทธิภาพของเว็บไซต์หรือแอปพลิเคชัน ซึ่งเป็นส่วนหนึ่งของบริการ Azure Monitor โดย Application Insights จะติดตามประสิทธิภาพของแอปพลิเคชันด้วยการใช้แนวทางอยู่ 2 แบบ คือ ทำความเข้าใจว่าแอปพลิเคชันทำงานเป็นอย่างไร หรือตรวจสอบ execution data ของแอปพลิเคชันเพื่อดูว่าสาเหตุของสิ่งที่เกิดขึ้นคืออะไร
ตัวอย่างสถาปัตยกรรมของ Application Insights แสดงไว้ตามแผนภูมิด้านล่างนี้ โดยคุณจะมีหน้าเว็บสำหรับแอปฯ ของ client ที่ส่ง HTTP request ไปยัง web service ของคุณ ซึ่ง web service ของคุณสามารถเชื่อมโยงกับ service อื่นๆ อย่าง SQL และ external service หรือ background service ผ่านทางการเรียกใช้งาน dependency ได้
สามารถติดตั้ง Application Insights ให้ติดตามการทำงานของหน้าเว็บจากฝั่ง front-end ของ client ได้ หรือสามารถเชื่อมต่อกับฝั่งเซิร์ฟเวอร์ได้ทาง back-end รวมถึง background service ต่างๆ ด้วย
ข้อมูลที่รวบรวมมาใน Application Insights สามารถนำมา export หรือวิเคราะห์ได้ในหลากหลายรูปแบบ เช่น สร้างการแจ้งเตือน, เชื่อมต่อกับ PowerBI, Visual Studio, หรือ Rest API ก็ได้
การเปิดใช้เครื่องมือวิเคราะห์ประสิทธิภาพและการใช้งานของเว็บแอปพลิเคชันนั้น Application Insights จะต้องส่ง telemetry จากเว็บแอปพลิเคชันของคุณไปยังเว็บไซต์ของ Azure วิธีที่ดีที่สุดคือการติดตั้ง Application Insights ทั้งในเซิร์ฟเวอร์ของแอปฯ คุณและในหน้าเว็บของคุณ หลังจากนั้น telemetry จาก client และ server component ของแอปฯ คุณก็จะสามารถถูกส่งกลับไปยัง Azure Portal เพื่อทำการวิเคราะห์ได้
การติดตั้งระบบนั้นจำเป็นต้องสร้าง workspace-based resource ของ Application Insights ขึ้นมาก่อน โดยคุณจะได้รับ instrumentation key หรือ connection string เพื่อนำไปตั้งค่าแอปพลิเคชันของคุณ
ในฝั่ง client คุณอาจจะนำ Application Insights ไปใช้กับแอปฯ ได้อยู่ 2 วิธี โดยวิธีแรกคือการใช้ NPM ซึ่งมันจะทำให้คุณสามารถตั้งค่า instance ของ Application Insights ในแอปฯ ของคุณได้หลังจากที่ติดตั้งเสร็จแล้ว อีกวิธีหนึ่งคือการตั้งค่าแบบ snippet-based ซึ่งคุณต้องนำ script snippet ไปวางตรงตอนต้นของทุกๆ <head> tag ในทุกหน้าที่คุณต้องการจะติดตามผล
ในส่วนของฝั่งเซิร์ฟเวอร์ คุณสามารถกำหนดค่าของเว็บแอป ASP.NET ของคุณให้ส่ง telemetry ไปยัง Application Insights ด้วยการติดตั้งแพ็กเกจ Application Insights SDK NuGet สำหรับ ASP.NET Core ก่อน จากนั้นเพิ่ม AddApplicationInsightsTelemetry() เข้าไปในไฟล์ Startup.cs หรือ Program.cs ของคุณ แล้วตั้งค่า connection string (หรือ Instrumentation key) ในไฟล์ appSettings.json
การวิเคราะห์การใช้งาน นั้นใช้ข้อมูลที่รวบรวมมาจาก Application Insights เพื่อช่วยให้คุณทำความเข้าใจว่าผู้ใช้มีการใช้งาน product อย่างไรบ้าง นอกจากนั้นยังสามารถให้ข้อมูลที่มีประโยชน์เพื่อช่วยในการตัดสินใจเกี่ยวกับวงจรการพัฒนาครั้งต่อไปได้ ส่วนใหญ่แล้วการวิเคราะห์การใช้งานจะเกิดขึ้นกับ front-end ของแอปพลิเคชัน
การวิเคราะห์การใช้งานอาจช่วยคุณตอบคำถามต่อไปนี้ได้
- ฟีเจอร์ไหนที่ได้รับความนิยมสูงสุด
- ผู้ใช้มีการใช้งานอย่างไร
- ผู้ใช้บรรลุเป้าหมายของพวกเขาจากการใช้งานแอปฯ ของคุณหรือไม่
- ผู้ใช้แบบไหนที่ใช้ product นี้มากหรือบ่อยที่สุด
- พวกเขาเจอปัญหาอะไรบ้าง
Users, Sessions, และ Events คือเครื่องมือ 3 ชิ้นที่คุณสามารถนำมาใช้ในการติดตามข้อมูลได้ว่าผู้ใช้มาใช้เว็บแอปของคุณเมื่อไร หน้าไหนที่มีคนสนใจมากที่สุด ผู้ใช้ของคุณอาศัยอยู่ที่ไหน และพวกเขาใช้เบราว์เซอร์หรือระบบปฏิบัติการอะไร
Users Users คือเครื่องมือที่ทำให้คุณรู้ว่ามีกี่คนที่ใช้ฟีเจอร์ต่างๆ ของแอปคุณบ้าง โดยรายงานของ Users จะบอกว่ามี unique visitor กี่คนที่มาดูหน้าเว็บของคุณในช่วงเวลาที่ระบุ ซึ่งในเว็บแอปนั้น การนับจำนวนผู้ใช้เกี่ยวข้องกับ anonymous ID ที่เก็บไว้ในคุกกี้ของเบราว์เซอร์ ทำให้คนคนเดียวที่ใช้หลายเบราว์เซอร์หรืออุปกรณ์จะถูกนับว่ามีผู้ใช้มากกว่าหนึ่งคน
Sessions จะบอกข้อมูลว่ามีกี่ session ที่ผู้ใช้เข้ามาใช้งานในหน้าเว็บและฟีเจอร์ของแอปฯ คุณ session คือช่วงเวลาของกิจกรรมที่ผู้ใช้เข้ามาใช้งาน Sessions จึงต่างจากเครื่องมืออย่าง Users ตรงที่ Sessions จะรายงานจำนวนของ session ที่เข้ามาเยี่ยมชมเว็บไซต์แทน ซึ่งจะเริ่มนับ session หลังจากผู้ใช้ไม่ได้ใช้งานอะไรต่อประมาณครึ่งชั่วโมง หรือนับเมื่อเกิน 24 ชั่วโมงหลังจากที่ใช้งานอย่างต่อเนื่อง
Events คือเครื่องมือที่บรรจุข้อมูลของ custom event, request, และ page view, ซึ่งแสดงให้เห็นว่าบางหน้าและบางฟีเจอร์ของแอปฯ นั้นมีคนใช้บ่อยแค่ไหน page view จะเริ่มนับเมื่อเบราว์เซอร์โหลดหน้าเว็บของคุณ หรือนับเมื่อมีการสร้าง custom event และ request ขึ้นมา
cohort คือกลุ่มของผู้ใช้, session, หรือ event ที่มีบางสิ่งเหมือนกัน โดยใช้เมื่อคุณต้องการวิเคราะห์กลุ่มผู้ใช้หรือกลุ่มของ event บางอย่างที่เกิดขึ้นซ้ำๆ ซึ่ง cohort นั้นถูกกำหนดโดย Application Insights Query Language (AIQL) เราสามารถบันทึก cohort และนำกลัยมาใช้ใหม่ได้เหมือน filter แต่พวกมันสร้างขึ้นมาจาก custom analytics query จึงมีความยืดหยุ่นและซับซ้อนมากกว่า
User Flows คือเครื่องมือที่บอกคุณว่าผู้ใช้เข้าไปใช้งานหน้าและฟีเจอร์ต่างๆ ของเว็บไซต์คุณอย่างไร โดยแสดงผลออกมาเป็นแผนภูมิ ซึ่งช่วยให้คุณตอบคำถามต่อไปนี้ได้
- ผู้ใช้ออกจากหน้าเว็บนั้นอย่างไร
- ผู้ใช้คลิกอะไรในหน้าเว็บนั้นบ้าง
- ส่วนไหนของเว็บไซต์ที่ผู้ใช้ไม่ชอบ
- มีส่วนไหนที่ผู้ใช้สามารถใช้งานได้สำเร็จบ่อยๆ
User Flows เริ่มจากการที่คุณกำหนด page view เริ่มต้น, custom event, หรือข้อยกเว้นขึ้นมา เมื่อมี event สำหรับเริ่มต้นแล้ว User Flows ก็จะแสดง event ที่เกิดขึ้นก่อนหน้าและหลังจากนั้นที่เกิดขึ้นระหว่าง session ของผู้ใช้ เส้นที่มีความหนาไม่เท่ากันจากในรูปแสดงถึงจำนวนครั้งที่ผู้ใช้ไปตามเส้นทางนั้น
Special Session Started node แสดงถึงจุดที่ session ของ node ที่เกิดขึ้นภายหลังเริ่มต้น Session Ended node บอกว่าบริเวณไหนที่ผู้ใช้ออกจากเว็บไซต์ของคุณด้วยการแสดงจำนวนผู้ใช้ที่ไม่มี page view หรือ custom event เลยหลังจาก node ก่อนหน้า
การสร้าง User Flow นั้นเริ่มจากเลือก page view เริ่มต้น, custom event, หรือข้อยกเว้น เพื่อเป็นจุดเริ่มต้นในการสร้างแผนภูมิ จากนั้นเลือกขั้นตอนก่อนหน้าและขั้นตอนต่อไป
ปฏิเสธไม่ได้เลยว่าเครื่องมือ DevOps สำหรับการทำ automation บนหลากหลายแพลตฟอร์มที่ให้บริการคลาวด์นั้นทำให้การสื่อสารและทำงานร่วมกันระหว่างทีมนั้นง่ายดายยิ่งขึ้น
นอกจากนั้น Hybrid Kubernetes Cluster ร่วมกับ Azure Arc ยังทำให้การบริหารจัดการนั้นเป็นแบบรวมศูนย์มากขึ้น ช่วยให้ติดตามผลการทำงานของ cluster ทั้งหมดได้ในที่เดียว เท่านั้นยังไม่พอ Application Insights ยังมีเครื่องมืออีกมากมายในการวิเคราะห์พฤติกรรมของผู้ใช้ที่ธุรกิจสามารถนำมาใช้อ้างอิงในการตัดสินใจได้อีกด้วย
ในอุตสาหกรรม IT ที่เปลี่ยนแปลงอย่างรวดเร็วนี้ องค์กรทั้งหลายต่างก็ปรับปรุงกระบวนการทำงานเพื่อให้เกิดแนวทางการทำงานที่สร้างสรรค์และมีประสิทธิภาพมากยิ่งขึ้น ซึ่งส่งผลให้สามารถนำหน้าคู่แข่งได้อย่างยาวนาน