วันอาทิตย์ที่ 23 พฤศจิกายน พ.ศ. 2557

WebSphere App Server 8.5 มีอะไรน่าใช้บ้าง

ตามธรรมเนียม กันลืม หลังเล่นหรือ update อะไรมาแล้ว ก็มาเล่าสู่กันฟัง
*** คำเตือน ใครยังไม่รู้จัก Application Server หรือไม่รู้จักพวก JBoss, GlassFish, Web Logic ควรหาข้อมูล เกี่ยวกับการทำงานของ App Server ก่อน อ่านบทความนี้แล้วงง ไม่รู้ด้วยนะ ^_^ ***

ตอนนี้ว่ากันด้วย Application Server ที่ใช้ในงาน Enterprise ของค่าย IBM ครับ ซึ่งหา tutorial online ค่อนข้างยาก แถมใน IBM RED Book ก็ไม่ค่อยมีเนื้อหาเชิงปฏิบัติเท่าไหร่

ถ้าจะเริ่มเล่นต้องสมัคร IBM ID ก่อน (ฟรี)  แล้วจะสามารถเข้าไปดาวน์โหลด trial version มาลองเล่นได้ ซึ่งมีหลายรุ่นหลายขนาด ตามวัตถุประสงค์การใช้งาน ดังนี้:

App Server Edition (รุ่นสำหรับติดตั้ง)

สามารถดาวน์โหลดได้ที่ link นี้ครับ (IBM WebSphere Application Server)
Liberty   - ตัวเล็กสุด เหมาะสำหรับนักพัฒนา ลงและควบคุมผ่าน eclipse ได้ (มีบน Mac ด้วย)
Express  - สำหรับนักพัฒนาและธุรกิจขนาดเล็ก
Base       - สำหรับการลงแบบ Single Server รองรับ Application Service หลายรูปแบบ
Network Deployment (ND)  - เหมาะกับองค์กรขนาดใหญ่ สามารถทำ Cluster ได้ (pack นี้แลจะใหญ่สุดละ)

รายละเอียดเปรียบเทียบแต่ละรุ่นลองดูตาม link นี้ครับ  เปรียบเทียบ Web Sphere Edition


การติดตั้ง ทำได้หลายรูปแบบสรุปๆ ดังนี้

1. ติดตั้งผ่านผ่าน Installation Manager (IM) โดยดาวน์โหลดตรงจาก Internet
     ข้อดี : ได้ของที่ update เวลามี fix หรือ patch จะมีตัวเลือกให้
     ข้อเสีย: ถ้าเน็ตไม่นิ่ง อาจทำให้เสียเวลา และต้องลงซ่อมหลายรอบ
2. ติดตั้งผ่าน Local Repository (ดาวน์โหลดตัวติดตั้งมาเก็บไว้ก่อนแล้วค่อยติดตั้งทีเดียว)
     ข้อดี:  เร็ว ไม่ต้องเสียเวลารอ ดาวน์โหลดจาก Internet (ไม่ต้องลุ้นมาก)
     ข้อเสีย: ต้องการพื้นที่ในการเก็บไฟล์ (ถ้าจะลงให้ครบทุกอย่างก็ประมาณ 12GB เป็นอย่างน้อย)
  ** ปกติตัว IM ที่ดาวน์โหลดมาจะมีปัญหา Error หลัง login IBM ID หรือกด cancel เนื่องจากไม่สามารถต่อ online repository ปลายทางได้ ให้ไปแก้ไขไฟล์ install.xml โดย comment tag <feature> ทั้งหมดทิ้งก่อน (ใช้ <!--   --> ในการ comment) แล้วค่อย add repository ใหม่ของเราเองที่ File-> Preference-> Repository ตามรูป**

การเริ่มสร้าง Server (ใน Web Sphere จะเรียก Profile)
การสร้าง Profile จำเป็นต้องรู้โครงสร้างเบื้องต้นที่ WebSphere เรียกก่อน ประกอบด้วย
Cell   - ถือเป็น Logical view ใหญ่สุดเอาไว้ครอบ Node สำหรับจัด Cluster
Node - จะมองว่าเป็น 1 Hardware Server ก็ได้ แต่ไม่จำเป็นเสมอไป (บางรูปแบบก็มองเป็น Logical ได้เหมือนกัน) โดยใน 1 Node สามารถมีได้หลาย Server และ ในเครื่อง 1 เครื่อง อาจมีได้หลาย Node (แต่ถ้าให้ง่ายจะเป็น 1 เครื่องต่อ 1 Node)
Server - จัดเป็นหน่วยเล็กสุด โดยถ้ามองง่ายๆ 1 Server ก็จะมีบริการได้หลายบริการ หรือลงได้หลาย App นั่นเอง


โดยรูปแบบของ Profile หลักๆ สามารถสรุปได้ดังนี้
Application Server - ถือเป็นตัวพื้นฐาน (Single Server) โดยการติดตั้งแบบนี้จะเหมาะกับการใช้งานในลักษณะแยกหน่วยงาน และแยกกันบริหารจัดการ เช่น Server ของแต่ละแผนก หรือ Server ของแต่ละบริการ

Deployment Manager - ใช้ในการจัดการกลุ่มของ Cluster โดยจะเหมาะกับ Application ที่ต้องการความน่าเชื่อถือสูง (High Availability) คือให้บริการได้ตลอด 7x24 โดยจะมีพวก Node Agent คอยช่วยในการ deploy application และมีหน้า console ในการจัดการ stop/start กลุ่มของ server ที่อยู่ใน cluster รวมทั้งการใช้งานร่วมกับ IBM HTTP Server เพื่อทำ load balancing สำหรับจัดการเรื่อง load และช่วยดูแลเรื่อง fail over (กรณีที่มี server ตัวใดตัวหนึ่งตาย ตัวที่เหลือจะมาให้บริการแทน พร้อมทั้งโอนข้อมูลที่อยู่ใน session มาให้ด้วย ทำให้ผู้ใช้ไม่รู้สึกว่า server มีปัญหา สามารถทำงานได้ต่อเนื่อง)

Administrative Agent - ใช้สำหรับจัดการกลุ่มของ Single Server (ที่ไม่ใช่ model ของ cluster) เพื่อให้ง่ายในการเข้าถึงโดย admin สามารถใช้งานและเลือกจัดการ server ที่ลงทะเบียนกับ Administrative Agent ได้ในหน้าเดียว (ไม่ต้องนั่งจำ port ของแต่ละ console) ถ้าจะให้ได้ประโยชน์สูงสุดควรใช้งานคู่กับ Job Manager จะทำให้สามารถทำให้งาน admin server หลายๆตัว กลายเป็นเรื่องง่ายไปเลย


Job Manager - ใช้ประโยชน์ในการตั้งเวลาในการ ทำงานต่างๆ เช่น การรันสคริปต์ การก๊อปปี้ไฟล์ การสั่งติดตั้ง หรือถอนการติดตั้งแอพ โดยใช้ได้ทั้งกับ Deployment Manager และ Administrative Agent

สรุปง่ายๆ : 
ถ้าต้องคุม Single Server หลายตัวใช้ App Server + Admin Agent + Job Manager
ถ้าเป็นงาน Cluster ใช้ Deployment Manager + Job Manger



เครื่องมืออื่นๆ และสิ่งที่น่าใช้ใน Web Sphere Application Server
Liberty Profile - ขนาดเล็ก ติดตั้งง่าย เหมาะกับงาน Dev มากกกกก


Static vs Dynamic Cluster - เราสามารถจัดการให้ server ที่เพิ่มเข้ามาใหม่เข้ามาอยู่ในกลุ่ม cluster ได้แบบ dynamic (อัตโนมัติ) รวมถึงการจัดการพวก dynamic workload ด้วย

Health Management - ช่วยในการ Monitor และตั้งการเก็บ log หรือรัน script สำหรับรายงานปัญหา
IBM Support Assistant (ISA) - ใช้เปิดไฟล์ Log และไฟล์ binary อื่นๆ ทั้งช่วยในการวิเคราะห์ปัญหาที่เกิดขึ้นกับ Server (ดาวน์โหลดโปรแกรม ISA จาก IBM)
Package ที่ควรลงเพิ่ม - IHS (IBM HTTP Server) สำหรับทำ load balancer , WebSphere Plug-in ดูแลเรื่อง workload แลใช้คู่กับ http server ในการทำ balancer , Web Sphere Customize Tools
wsadmin tool - ใช้ในการบริหารจัดการ Server ผ่าน command-line ซึ่งใช้ภาษา Jython (Java + Python) เป็นภาษาหลัก
Apache JMeter - ใช้ช่วยทำสอบและลองยิง Server (คู่มือการใช้งาน JMeter)


*** ใครสนใจเรื่อง IBM WebSphere Administrator ก็ติดต่อสอบถามมาได้ครับ ยินดีให้คำปรึกษา ***
สอบถาม โทร:  ศูนย์แปดหนึ่ง สี่เก้าสี่ สามสองหนึ่งหก
                         vittayasak แอดจีเมล์ดอทคอม


วันอาทิตย์ที่ 28 กันยายน พ.ศ. 2557

Jasper ETL เครื่องมือฟรีสำหรับคอ BI

พอดีช่วงที่ผ่านมา ได้มีโอกาสเล่นตัว Jasper ETL เลยเอามาแนะนำครับ  ^_^

       ใครที่อยู่สาย Data Warehouse หรือพวก BI น่าจะเคยใช้เครื่องมือพวก ETL (Extract Transform Load) แต่ที่เห็นในบ้านเราส่วนใหญ่จะเป็นของ Microsoft หรือค่ายอื่นๆที่ต้องเสียตังค์ซื้อ จึงอาจจะไม่ค่อยเหมาะกับองค์กรที่ต้องการของฟรี และคุณภาพใช้งานได้จริง หลังจากที่ได้ใช้งานตัว Jasper ETL แล้วรู้สึกประทับใจกับความสามารถที่เกินความคาดหวังไว้ตอนแรก ลองมาดูกันว่ามันทำอะไรได้บ้าง

       หลายๆคนอาจจะรู้จัก Jasper Report มาก่อนซึ่งใช้ในการสร้างรายงานแบบ Open Source และมักใช้ iReport เป็นตัวออกแบบ แต่เนื่องจากมันเป็นโครงการแบบ Open Source จึงมีหลายบริษัทนำไปต่อยอดและปรับแต่งเป็นผลิตภัณอื่นๆ อีกมากมาย ติดตามดูทั้งหมดได้ที่



ในชุด Jasper BI Suite ประกอบด้วย

  1. JasperReports Library             เป็นตัว Report Engine
  2. Jaspersoft iReport Designer    เป็นตัวออกแบบรายงาน ตอนนี้ใช้บน NetBean
  3. JasperReport Server                เป็น Report Server สำหรับแสดงรายงาน แดชบอร์ด รวมถึง OLAP
  4. Jaspersoft OLAP                     ตอนนี้ย้ายไปรวมกับ Report Server แล้ว
  5. Jaspersoft ETL                        สำหรับทำ Data Integration
แนวทางการใช้งานตั้งแต่การเข้าถึงฐานข้อมูลที่หลากหลายแหล่งเช่น .csv, xml, xls, ldap รวมถึง database เกือบทุกค่ายและอื่นๆ (ขอบอกว่าเยอะมากๆ ใช้กันไม่หมด) ไปจนถึงตัว BI chart สำหรับผู้บริหารมีแนวทางการใช้งานดังนี้

การ Integrate ข้อมูลด้วย Jasper ETL
       เราสามารถออกแบบ Data Warehouse โดยการสร้าง Star-Schema โดยการสร้าง dimension และ fact table จากแหล่งข้อมูลที่แตกต่างกัน โดยใช้ ETL เป็นตัว ดึงข้อมูลจากแหล่งต่างๆ , แปลงข้อมูลให้อยู่ในรูปที่ต้องการ แล้วโหลดเข้าสู่ตารางเป้าหมาย (ใครไม่แม่นแนะนำให้ไปหาอ่านเรื่องการออกแบบ Star-Schema หรือ Snowflake สำหรับ OLAP ก่อน) หน้าตาประมาณนี้





หลังจากได้ Star-Schema ที่ต้องการแล้วก็เริ่มออกแบบ Cube
       ในการออกแบบ Cube จะต้องใช้เครื่องมือที่หาโหลดยากนิดหนึ่งที่ชื่อว่า "Jasper Analysis Workbench" (ลองหากันดูก่อนนะ ถ้าไม่เจอจริงๆติดต่อผมได้) การสร้างเริ่มจากการเชื่อม Fact table ก่อนกำหนด measure เช่น จำนวน ยอดสั่งซื้อ รายได้ แล้วจึงสร้าง dimension ย่อยตามมิติที่ต้องการ ส่วนใหญ่ก็เป็น เวลา สินค้า ลูกค้า หน้าตาประมาณนี้ครับ การบันทึกไฟล์จะเป็นรูปแบบ xml ของ Mondrain 



หลังจากได้ทุกอย่างครบแล้วสามารถนำไปใช้ใน Jasper Report Server เพื่อให้ผู้บริหารดูได้เลย
      ตัว Jasper Report Server นั้นนอกจากจะแสดงรายงาน และตัว OLAP View แล้วยังสามารถกำหนดระดับสิทธิในการเข้าถึงรายงานแต่ละตัวด้วย เหมาะมากสำหรับการใช้งานในระดับองค์กร



    
คร่าวๆ เอาแค่นี้่ก่อนนะครับ ใครสนใจอยากใช้งานหรือต้องการคำปรึกษา ก็สามารถสอบถามเข้ามาได้ครับยินดี ^_^ 

สอบถาม โทร:  ศูนย์แปดหนึ่ง สี่เก้าสี่ สามสองหนึ่งหก
                         vittayasak แอดจีเมล์ดอทคอม