จากบทความก่อนหน้านี้ที่เราได้ลองดูภาพรวมแบบกว้างๆ ของ Rancher Desktop กันไปแล้วนั้น ต่อไปเราจะมาลอง Deploy Kubernetes Dashboard เพื่อให้การใช้งานง่ายขึ้นกันดีกว่าครับ

เริ่มแรกเราก็จะใช้ WSL ในการกำหนด version ของ dashboard config กันก่อน เพื่อเป็นการกำหนดตัวแปรสำหรับเรียกใช้งาน git repository

**สำหรับในที่นี้ผมจะใช้งานเป็น Debian Linux ครับ

$> DASHBOARD_GITHUB_URL=https://github.com/kubernetes/dashboard/releases

หล้งจากที่ทำงานกับ Docker Desktop มานานมากแล้ว และก็ประสบปัญหากับการใช้ Resource อันมหาศาลเนื่องมาจาก WSL และ VMMem ไม่คืน Resource เลยสักทีจนต้องใช้คำสั่งพิฆาต….

$> wsl -shutdown

จน… เห่อ… บ่อยไป เอาออกเลยดีกว่า…. จบ ….

จนกระทั่ง Rancher (Enterprise Kubernetes Management | Rancher) พึ่งปล่อยโปรเจค Open Source ตัวใหม่เมื่อไม่กี่เดือนมานี้ (สำหรับบทความเกี่ยวกับ Rancher ภาษาไทยสามารถอ่านได้ที่ Rancher จากโปรเจกต์ OpenSource สู่ซอฟต์แวร์ Kubernetes clusters ระดับแนวหน้า | OLS Community | Technology news, knowledge…

สำหรับในบทความนี ้เราจะมาเริ่มจัดการโปรเจคของเราออกเป็น N-Tier โดยจะแบ่งออกเป็น Part ย่อยๆ โดยในส่วนแรกนั้นเราจะมาทำการแยก Models และ Connection ออกไปไว้อีกโปรเจคหนึ่งกันก่อนครับ

สำหรับเนื้อหาของ N-Tier สามารถศึกษาได้ที่นี่ครับ https://stackify.com/n-tier-architecture/

เริ่มแรก ให้ทำการเพิ่มโปรเจค แบบ class library เข้ามา โดยจะใช้ชื่อโปรเจค Todo.Models

โดยตัว Solution Architechture จะมีลักษณะ ดังนี้

หลังจากบทความที่แล้ว ที่เราได้รู้จักส่วนประกอบต่างๆ ของ Graph Database Browser กันแล้ว บทความนี้เราก็จะมาเริ่มใช้งาน Graph Database กันเลยดีกว่าครับ

สำหรับ Query Command ที่ใช้ใน Graph Database(neo4j) เราจะเรียกว่า Cypher

เริ่มต้นเราจะสร้าง Database ที่ชื่อว่า PlayGround1 กัน โดยใช้คำสั่งข้างล่างแล้วกด Enter

$> Create Database PlayGround1 

สำหรับบทความนี้จะต่อจากที่เคยค้างเอาไว้เกี่ยวกับหน้าจอของ Graph Database Browser กันนะครับ

ก่อนอื่นเลย ผมจากจะเปลี่ยนตัว image จากเดิมที่เราจะใช้ neo4j:4.1 มาเป็น neo4j:enterprise กันนะครับ เหตุผลเพราะตัว enterprise จะสามารถสร้าง Database เพิ่มได้ ทำให้เราสามารถเล่นกับข้อมูลได้หลากหลายขึ้นนั่นเองครับ สำหรับชุดคำสั่งของ docker-compose ก็มี ดังนี้ครับ

หลังจากนั้นก็ให้ใช้คำสั่งนี้ เพื่อให้ container ของ Graph Database ทำงาน โดยเราจะใช้ -d ( — detach) เพื่อให้ docker รัน container แบบไม่แสดง console…

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

สำหรับบทความนี้เราจะมีแนะนำการสร้าง Sonarqube ในเครื่องขึ้นมาเพื่อใช้สำหรับทำ code scan กันครับ โดยเริ่มต้นจากติดตั้งเครื่องมือกันก่อน

Install .NET Tool

$> dotnet tool install --global dotnet-sonarscanner --version 4.8.0

สำหรับบทความนี้จะประกอบไปด้วย 2 ส่วน คือ ทฎษฎีของ Big Data และ Graph โดยจะเริ่มจากส่วนของ Big Data ก่อนนะครับ

Big Data คือ ก้อนข้อมูลก้อนหนึ่ง ที่มีความหลากหลายของประเภทของข้อมูลและมีปริมาณมากมายมหาศาล ซึ่งปริมาณข้อมูลนั้นจะมีการเพิ่มขึ้นอยู่ตลอดเวลา ทำให้การค้นหาข้อมูลรวมไปถึงรูปแบบความสัมพันธ์ของข้อมูลที่มีความซับซ้อนมีความเป็นไปได้ยาก ดังนั้น จึงได้มีการพัฒนาทฤษฎี Graph ขึ้นมา เพื่อใช้สำหรับช่วยเหลือในการค้นหาและวิเคราห์ข้อมูลของ Big Data

สำหรับการวิเคราะห์ข้อมูลของ Graph จะถูกออกแบบมาให้สามารถเข้าถึงข้อมูลที่มีความซับซ้อนและหลากหลายของข้อมูล รวมทั้งยังสามารถทำนายแนวโน้มของข้อมูล จากพฤติกรรมของข้อมูลที่มีอยู่ ทำให้สะดวกและรวดเร็วเหมาะกับการพัฒนาศักยภาพขององค์กร สร้างความได้เปรียบในการแข่งขันของธุรกิจ…

เนื่องจากก่อนหน้านี้เคยเกริ่นเอาไว้ว่าถ้าหาก .NET 5 Release แล้ว เราก็จะมา Migrate กันให้เป็น .NET 5 กัน บทความนี้ก็เลยเป็นบทความเล็กๆ สำหรับ Migrate โปรเจคเพียงเท่านั้นครับ

เนื่องจากโปรเจคที่เราเริ่มเอาไว้แล้วยังไม่ได้มีความซับซ้อนอะไรมากมาย เลยทำให้สามารถ Migrate ขึ้น .NET 5 ได้ง่ายๆ ครับ โดยวิธีการมี ดังนี้

เริ่มแรกเราจะสร้างไฟล์ global.json …

ต่อจากบทความก่อนหน้านี้ ที่ได้เกริ่นเอาไว้ว่าเราจะมาเพิ่ม Swagger เพื่อให้เราสามารถทดสอบ API ได้ง่ายขึ้นกันนะครับ โดยที่มีโจทย์ว่าตัว Swagger ที่เราจะทำการเพิ่มเข้ามา จะต้องรองรับการใช้งานกับ API หลาย Versions ..

หากจะถามว่าทำใม API เราต้องมีหลาย Versions ด้วยละ คำตอบคือ.. API ของเราไม่จำเป็นต้องทำขึ้นมาเพื่อให้ใช้งานได้เฉพาะ Front-End ตัวเดียว หรือในอนาคตโปรเจคเราเองอาจจะจำเป็นต้องทำ Mobile Application ขึ้นมา เราจะทำอย่างไร ยกตัวอย่างเช่น การโหลดข้อมูลทีละมากๆ ในหน้าแสดงรายการของ Task สำหรับ หน้า Front-End เราอาจจะใช้ library ที่ชื่อว่า datatables.js ในการแสดงข้อมูล ซึ่งเราอาจจะทำให้ API ดึงข้อมูลขึ้นมาทั้งหมดได้ในทีเดียว เพราะ datatables.js จะเป็นตัวจัดการการแสดงผลข้อมูลทั้งหมดเอง…

หลายๆ คนอาจจะสงสัยว่า Graph Database คืออะไร สำหรับตัวของ Graph Database นั้น จะจัดอยู่ในประเภท NoSQL เหมือนกับ MongoDB หรือ Cassandra ครับ แต่ลักษณะพิเศษคือ ตัวเขาเองจะเหมาะกับข้อมูลที่มีขนาดใหญ่ และมี Structure ไม่ชัดเจน และสามารถแสดง Relation ของข้อมูลแต่ละตัวภายในที่มีความเกี่ยวข้องกันได้ครับ

วัฒนชัย วงศ์ประเสริฐ

Rogue Planet

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store