
เนื่องจากมีเหตุต้องมาใช้งาน Android Test Orchestrator เพื่อช่วยแก้ไขปัญหาและปรับปรุงการทำงานของ Instrumentation test ของ Android app ดังนั้นจึงทำการสรุปความรู้พื้นฐานและการใช้งานไว้นิดหน่อย น่าจะเป็นเครื่องมือที่ใช้กันน้อยมาก ๆ แต่มันก็มีประโยชน์นะ
ไม่ว่าระบบงานใด ๆ ก็ตามจำเป็นต้องมีระบบ monitoring เพื่อดูและวิเคราะห์ว่าประสิทธิภาพของระบบงานเป็นอย่างไร เพื่อดูและวิเคราะห์ว่าระบบงานยังคงทำงานได้ดีอยู่นะ แน่นอนว่า มีวิธีการและเครื่องมือให้ใช้งานมากมาย หนึ่งในตัวเลือกที่มีการพูดถึงคือ TICK stack ดังนั้นมาลองทำความรู้จักและใช้งานกันหน่อย โดยระบบงานที่จะใช้นั้นพัฒนาด้วย Spring Boot 2.0 นั่นเอง มาเริ่มกันดีกว่า
เขียน code โดยไม่ทำการวางแผน ในการจะเขียนอะไรที่มีคุณภาพสักอย่างขึ้นมานั้น มันไม่ใช่เรื่องง่ายเลย เนื่องจากต้องผ่านกระบวนการคิด ค้นคว้า การวิเคราะห์ มากมาย ซึ่ง code ก็เช่นเดียวกัน ไม่มีข้อยกเว้น แต่โชคไม่ดีที่นักพัฒนา มักจะลงมือเขียน code โดยขาดการยั้งคิด ไม่ค้นคว้าหรือวางแผนก่อน จะลงมือเขียนกันไปเรื่อย ๆ มีปัญหาก็ค้นหาไปเรื่อย ๆ หรือไม่ก็ถามไปเรื่อย ๆ ซึ่งมันเหมาะสมกับระบบงานเล็ก ๆ แต่เมื่อระบบมีขนาดใหญ่ขึ้น จะเห็นผลกระทบในทางลบเยอะมาก ๆ
สำหรับระบบงานที่ run ใน JVM (Java Virtual Machine) นั้น ไม่ว่าจะเป็น Java Spring, Apache Spark, Apache Kafka และอื่น ๆ มีนำมาอยู่ในโลกของ container แล้วนั้น พบว่าจะมีปัญหาเรื่องการจัดการและใช้งาน memory และ CPU เป็นอย่างมาก ทั้งกิน memory และใช้ CPU เกินขนาดที่กำหนด ทำให้ประสิทธิภาพการทำงานใน container แย่มาก ๆ
หลายครั้งที่ไปแบ่งปันเรื่องต่าง ๆ เกี่ยวกับการพัฒนาระบบงานด้วยภาษา Java สิ่งหนึ่งที่ต้องประหลาดใจคือ หลาย ๆ คนไม่ได้กำหนดค่าของ JAVA_HOME สามารถทำการ run ด้วยคำสั่ง java ได้ แต่ไม่สามารถ compile ด้วยคำสั่ง javac ได้ นั่นหมายความว่า ในเครื่องมีแต่ JRE (Java Runtime Environment) แต่ไม่มี JDK (Java Development Kit) หรือบางคนก็มี JDK นะแต่ run ไม่ได้ เนื่องจากทำการกำหนดไว้ใน IDE เท่านั้น แต่ไม่ได้กำหนด JAVA_HOME หรือบางคนก็กำหนดนะ แต่กำหนดไว้ใน PATH ตรง ๆ เลย ไม่มีกำหนดใน JAVA_HOME คำถามที่น่าสนใจคือ ถ้ามี Java หรือ JDK หลาย ๆ version [&hellip