Technologies Stack กับ Software Architecture

สวัสดีครับ,

ช่วงหลายวันก่อน ผมวุ่นวายเกี่ยวกับการหาข้อมูล Istio

เพราะตอนนี้ code ฝั่ง front-end เริ่มยุ่งยาก

ในการที่ต้อง maintain หลายๆ end-point

ก็เลยมีเวลาได้นั่งคิด และหายใจลึกๆ

เกี่ยวกับ Software Architecture

.

จริงๆ เทคโนโลยีมักเป็นเหล่าเก่าในขวดใหม่เสมอๆ

และทุกครั้งที่มันเปลี่ยน Abstraction Level

ก็จะเป็นการไปเปลี่ยน Implementation ของเทคโนโลยี

ดังนั้นจะมี Tools ออกมาใหม่ๆ มากมายให้เราได้ติดตามกัน

.

และ Microservices ก็เป็นการเปลี่ยน Abstraction Level ของเทคโนโลยี

เปลี่ยนยังไงนะเหรอครับ เรามาลองดูรูปนี้กัน

แน่นอนครับ นี่มัน Classic Java EE Architecture

ตั้งแต่ผมเริ่มสอนเรื่อง Java EE มาเลย

.

แล้วมาดูรูปนี้กัน

เห็นอะไรเหมือนๆกันมั้ยครับ

.

Web Application สมัยก่อนที่เรา pack เป็น war file กัน

ก็ถูก deploy ใน web container

แต่ต่อมา เราก็เปลี่ยนเป็นใช้ docker หุ้มแทน

แล้วทุกๆ microservices ก็ถูก deploy โดยให้ docker หุ้ม

.

Jaas หรือ Java Authentication & Authorisation Service

ในสมัยนั้น ที่เป็นตัว control ACL ของทั้ง Platform

ก็มี concept ของอะไรคล้ายๆกันอยู่ใน Istio ซึ่งก็คือ Citadel

.

หรือแม้นกระทั่งพวก JNDI ของ Java EE ที่ไว้ทำ Bean Discovery

ก็มี concept ของ Istio ที่มันคล้ายๆกันอยู่ใน K8S สมัยนี้

.

ถ้าดูจริงๆ เราก็กำลังหนีไม่พ้นจากเรื่องเดิมๆในสมัยก่อน

แค่ Abstraction Level มันเปลี่ยนไป

.

Java EE มันถูกลดความสำคัญลง เพราะความยุ่งยากในการ Deploy

และการที่มัน encourage ให้คนทำ stateful application

แต่พอเรามาถึงยุค microservices ที่ encourage ให้คนทำ stateless application

ของที่เคยเป็นแนวคิดใน Java EE Architecture ก็ยังตกทอดกันมา

.

สุดท้ายมันก็เป็น “เหล้าเก่า ในขวดใหม่” นั่นแหละ

แต่ทุกๆครั้งที่เหล้าเก่านี้เปลี่ยนขวด Abstraction Level ใน Architecture ก็เปลียนไป

.

จะเห็นว่า Java EE นี่เน้น Abstraction Level เบ้ไปทาง App มากๆ

ซึ่งคนทำ Ops ต้องเชี่ยวชาญด้าน Application Server ที่ deploy App มากๆ

ทำให้ Ops ต้องมี Skill ทั้ง Unix และ Java EE Application Server เช่น Websphere, WebLogic

แต่พอมายุค Microservices นั้น Abstraction Level เบ้ไปทาง Infra มากกว่า

ซึ่งคนทำ Dev ก็ต้องเชี่ยวชาญด้าน Docker ด้วย

ส่วนคนทำ Ops ก็เชี่ยวชาญ Unix-based Skills ก็พอ

.

จะเห็นได้ว่าการเปลี่ยนของ Abstraction Layer ก็คือการเปลี่ยนของ Skill set นั่นแหละ

.

ตอนแรกว่าจะเขียนเยอะกว่านี้

แต่คงเขียนได้แค่นี้…

จริงๆจะเขียนเรื่อง Service Mesh ที่เอา Architecture ใหม่มาเทียบกะ SOA เดิมๆ

แต่คงไม่ทันละ ต้องเข้าทำงานละ เอาแค่นี้ก่อน

.

สวัสดีครับ

.