เลือกอุปกรณ์เพื่อพัฒนาบริษัท

เลือกอุปกรณ์เพื่อพัฒนาบริษัท การบริหารคนหรือว่าจะเป็นบริษัท มีความคล้ายคลึงกันและแตกต่างกัน นั่นก็คือจะต้องมีการพัฒนาตัวเองอยู่เสมอให้เท่าทันต่อเทคโนโลยีต่างๆที่มีการเปลี่ยนแปลงการทำงาน เพื่อนำมาพัฒนาองค์กรหรือนำองค์ความรู้เหล่านี้มาพัฒนาบุคลากรภายในองค์กร

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

ภายในบริษัทจึงจำเป็นอย่างยิ่งที่จะต้องศึกษาให้เข้าใจว่าในอุปกรณ์ที่จะมาใช้พัฒนาไม่ว่าจะเป็นระบบ AI ปัญญาประดิษฐ์ หรือเซิร์ฟเวอร์ฐานข้อมูลต่างๆ นำมาใช้ในบริษัทแล้วจะเกิดผลยังไงข้อดีข้อเสียแตกต่างกันอย่างไรราคาเท่าไหร่ จึงเป็นเรื่องที่ละเอียดอ่อนอย่างยิ่งว่าการสร้างบริษัทที่มีคุณภาพให้เท่าทันต่อเทคโนโลยีในปัจจุบันเป็นเรื่องที่ค่อนข้างยาว

แต่อย่างไรก็ตามในระบบต่างๆสามารถวิเคราะห์และแยกส่วนของตัวเองได้ง่ายตามความเหมาะสมและเลือกอุปกรณ์ต่างๆมาใช้ในองค์กรตัวเอง สามารถเลือกได้ 3 หัวข้อใหญ่นะก็คือ 

เมนเฟรมหรือคอมพิวเตอร์ขนาดใหญ่ ใช้สำหรับการเก็บข้อมูลหรือการวิเคราะห์ข้อมูลขนาดใหญ่หากบริษัทคุณมีบริษัทที่มีมูลค่าค่อนข้างสูงและมีข้อมูลจำนวนมากในการคิดวิเคราะห์และวิจัยอยู่เสมอ เมนเฟรมถือว่าตอบโจทย์อย่างยิ่งในการที่จะนำข้อมูลปริมาณมากเหล่านั้นมาวิเคราะห์หาข้อสรุป หรือแม้แต่จะเป็นในส่วนของระบบคลาวด์คอมพิวติ้งที่รับฝากข้อมูลต่างๆ ซึ่งเป็นส่วนย่อยๆที่จะทำให้บริษัทสามารถเก็บข้อมูลเพื่อนำมาวิเคราะห์หรือวิจัยในอนาคต 

อันดับต่อมาหาบริษัทคุณมีขนาดกลางไม่ว่าจะเป็นองค์กรที่พึ่งก่อตั้งมาไม่นานแต่ว่าสามารถผลิตสินค้าได้เป็นจำนวนมาก มีพนักงานเรา 300 ถึง 500 คนและทำหน้าที่แตกต่างกัน ในส่วนนี้แนะนำให้ใช้มินิคอมพิวเตอร์ในส่วนนี้จะเป็นสมรรถนะรองลงมาจาก mainframe แต่จะมี Server ในการเก็บข้อมูลพอสมควร ที่จะนำข้อมูลเหล่านั้นมาวิเคราะห์ได้ในอนาคตส่วนใหญ่จะใช้ในบริษัทหรือองค์กรที่มีขนาดกลางไม่ว่าจะเป็นบริษัทต่างๆที่มีเพียงสาขาเดียวแต่มีคนค่อนข้างเยอะ หรือจะเป็นองค์กรอิสระ รวมทั้งภาครัฐอย่างโรงพยาบาล ก็มีให้เห็นอยู่ที่เลือกใช้และเลือกนำมา

ส่วนถ้าคุณเป็นบริษัทขนาดเล็กมีผู้คนราวตั้งแต่ 2 คนขึ้นไป จนไปถึง 50 คน ก็สามารถใช้ไมโครคอมพิวเตอร์ได้เพราะปัจจุบันมีการพัฒนาระบบ Cloud ที่ฝากข้อมูลในระบบออนไลน์ เพียงคุณมีแค่คอมพิวเตอร์แล้วก็อินเตอร์เน็ตก็สามารถฟังข้อมูลเหล่านี้ไปได้แล้ว จึงไม่จำเป็นต้องตั้ง Server ของตัวเองให้เสียค่าใช้จ่าย 

เรานี่เองคือการพัฒนาและใช้เทคโนโลยีเหล่านี้เพื่อพัฒนาองค์กรของตัวเองให้มีประสิทธิภาพมากยิ่งขึ้น จึงจำเป็นต้องมีการศึกษาและดูวิธีการใช้สิ่งต่างๆเพื่อให้การพัฒนาองค์กรของตัวเองเป็นไปในทิศทางที่เหมาะสม

NoSQL database –Apache Cassandra

Apache Cassandra เป็นฐานข้อมูลแบบ open source ที่เปิดให้ดาวน์โหลดฟรีใช้กับฐานข้อมูลที่เป็นแบบ NoSQL หรือข้อมูลที่มีคอลัมน์แบบไม่เฉพาะเจาะจง Cassandra ตอนแรกถูกพัฒนากับเว็บ facebook โดยดูในส่วนของ เมนู inbox เป็นหลัก ซึ่งจริงๆ แล้วมันถูกเปิดให้ใช้งานอย่างเป็นทางการตั้งแต่ปี 2008

Cassandra ถูกนำมาใช้กับงาน big data เพื่อรับ workload ของข้อมูลแบบกระจัดกระจาย, การอ่าน, การเขียน ระหว่างโหนดหลายๆโหนด โดยที่ไม่เกิดข้อผิดพลาดเลย

Cassandra เป็นระบบแบบ peer-to-peer ซึ่งใช้การทำงานโดยเรียกคลัสเตอร์ในแต่ละโหนด ซึ่งโหนดนั้นต้องสามารถรองรับการอ่านหรือเขียนได้ เช่นเดียวกับ ฐานข้อมูลของ Amazon’s Dynamo DB ที่ทุกโหนดในคลัสเตอร์จะติดต่อสื่อสารระหว่างกัน โดยใช้โปรโตตอลการสื่อสารแบบ peer-to-peer

หลักการทำงานที่แท้จริงของมันคือ Cassandra จะใช้เครื่องมือที่เรียกว่า Log Structured Merge (LSM) และประกอบด้วยองค์ประกอบหลักหลายอย่างด้วยกันดังนี้

Commit log 

แต่และโหนดใน cluster จะมี commit log ที่แบบเรียงต่อกันเพื่อไรท์ข้อมูลลงใน disk และให้เกิดความสมบูรณ์ของ data ในส่วนของการไรท์อินเด็กซ์และข้อมูลลงไปในหน่วยความจำภายใน เราเรียกว่า memtable.

Memtable

เป็นเหมือนแคชที่สามารถไรท์ข้อมูลลงไป โดยใช่ i/o เชื่อมต่อโดยตรงกับแคช มันมีข้อดีคือ ลด latency ให้ต่ำลง และเกิด high throughput  โครงสร้างของ memTable จะเก็บไว้ใน memory ของ java (Java heap memory) 

อย่างไรก็ตาม Cassandra 2.1 เพิ่มออพชันการเก็บ memtable ให้อยู่นอก java heap memory เพื่อลดการเก็บข้อมูลที่เป็นข้อมูลขยะได้ด้วย

SSTables

เมื่อ commit log เต็ม มันจะเกิดการเปลี่ยนที่เก็บ memTable ให้ไปเก็บในรูปแบบของ SSTables data file และกระบวนการของ memTable จะถูกเคลียร์ออกไปก่อน และ commit log จะถูกลบออกและนำกลับมาใช้ใหม่ได้ 

Cassandra จะแบ่งพาร์ทิชั่นโดยอัตโนมัติเพื่อไรท์ข้อมูลและ replicates มันผ่าน cluster

Compaction 

Apache Cassandra เกิดการรวม SStables โดยใช้กระบวนการที่เรียกว่า compaction ที่ความถี่ของการรวม compactions จะถูกเก็บไว้ในไฟล์ yaml หรือผ่านคำสั่งของ Cassandra เองที่เรียกว่า Cassandra Query Language (CQL) ในกระบวนการรวมกัน Cassandra จะรวมคีย์, คอลัมน์merges keys, combines columns, evicts tombstones data จริงๆจะถูกมาร์กว่าเป็นของเก่า, และมีการรวม SSTables และสร้าง index ใหม่ 

YugaByte DB มีความคล้ายคลึงกับ LSM storage engine ที่ออกแบบใน Cassandra แต่ว่ามันมีข้อดีตรงที่มีประสิทธิภาพและความทนทาน

ภาษาโปรแกรมอะไรที่สามารถเขียนในฐานข้อมูล Cassandra ได้ 

เมื่อเรากล่าวถึง casssandra ที่มันถูกเขียนด้วย java ภาษาที่ใช้เขียนมันก็คือ Long garbage collection (GC) หรือที่มันนำมาใช้ในสภาพแวดล้อมของ production ซึ่งข้อดีของ garbage collector นี้เพื่อลด latency และเพิ่ม throughput ได้ด้วย

CQL หรือชื่อเต็มคือ Cassandra Query Language (CQL) ใช้เพื่อเขียน insert, update, delete, select ข้อมูลจาก Cassandra นั่นเอง