Network Automation Engineer ทำอะไรบ้าง, Skills ที่ควรมี และรายได้ดีไหม?

What Does Network Automation Engineers Do? How About Skills and Salary?

Nopnithi Khaokaew (Game)
6 min readApr 19, 2020

— — — — — — — — — — — — — — —
สารบัญเนื้อหาทั้งหมด (My Contents)
— — — — — — — — — — — — — — —

— — — — — — — — — — — — — — — — — — — — — — — -

ฝากคอร์ส Python for Network Automation ผมด้วยครับ

— — — — — — — — — — — — — — — — — — — — — — — -

ผมเองเป็นคนที่ติดตามเรื่องของ network automation มาโดยตลอดและเริ่มศึกษาฝึกฝนตัวเองมาด้านนี้นับตั้งแต่เริ่มมีเทรนด์ขึ้นมาเลย ก็ช่วงราว ๆ ปี 2014–2015 แล้ว วันนี้เลยจะมาขอแชร์ข้อมูลและความเห็นส่วนตัวเกี่ยวกับสายอาชีพ Network Automation Engineer เผื่อมีคนที่สนใจด้านนี้อยู่เหมือนกัน โดยผมจะทำเป็นลักษณะของ QA ถามสั้น ๆ แต่ตอบยาว ๆ ละกันนะ

— — — — — — — — — — — — — — — — — — — — — — — —

อัพเดทล่าสุด: 27 พฤษภาคม 2020 เวลา 10.16 น.

ควรอ่านเพิ่มเติม: NetDevOps คืออะไรแบบสั้น ๆ

— — — — — — — — — — — — — — — — — — — — — — — —

Q1: Network Automation Engineer ทำอะไรบ้าง?

ถ้าให้อธิบายง่าย ๆ ก็คือทำงานคล้ายกับ network engineer นั่นแหละ เช่น configure VLAN, OSPF, BGP อะไรก็ว่าไป เพียงแต่วิธีในการทำนั้นเป็นการใช้ automation tools หรือเขียน Python script ทำครั้งละหลาย ๆ ตัวแทนการใช้ CLI ทีละตัวแบบเดิม

ทีนี้บางคนก็คงคิด เห้ย…ผมเป็น network engineer แต่ก็ทำแบบนี้อยู่นี่หว่า ผมจะบอกอย่างนี้ครับ ความแตกต่างจริง ๆ มันคือความเข้มข้นของการทำ automation ซึ่งในความเห็นของผมมันจะไปแยกทางกันจริง ๆ ช่วงกลาง career path เป็นต้นไป

โดย network engineer จะเน้นเจาะลึกไปในเรื่องของ networking (แม้ยุคหลังจะเริ่มมีการเขียน code และใช้ API บ้าง) ในขณะที่ network automation engineer จะพัฒนาตัวเองไปทางด้าน programming หรือ software development แทน โดยอาจเริ่มมีการนำ DevOps หรือพวก CI/CD pipeline เข้ามาใช้ในงาน network ด้วยเรียกว่า NetDevOps

ถ้าถามว่าตอนนี้ในเมืองไทยมีคนที่ทำงานในลักษณะที่เรียกว่าเป็น network automation engineer มั้ย เท่าที่ผมรู้คือมี(ผมก็เป็นหนึ่งในนั้น)แต่น้อยมาก โดยมากมักเป็นองค์กรใหญ่ ๆ ที่มีสาขาเยอะ ๆ มี data center เป็นของตัวเองหลาย ๆ ที่ หรือไม่ก็พวก service provider ที่มี large-scale network แต่ส่วนตัวผมก็ยังมองว่ามันยังไม่ใช่ network automation แบบเต็มสูบขนาดนั้น

ปัจจุบันงาน network automation จ๋า ๆ เลยเริ่มจะมีเปิดรับให้เห็นบ้างแล้วในต่างประเทศ ซึ่งอยู่ในช่วงก่อหวอด โดยผมจะขอยก job description ของบริษัท 2 เจ้าในต่างประเทศมาให้ดู (เจ้าใหญ่เลย)

เริ่มจากเจ้าแรกก่อนเลย ที่ยกของเจ้านี้มาเพราะดูแล้วรู้สึกว่าครบและเห็นภาพมากที่สุดว่า network automation engineer คนนึงจะต้องทำอะไรบ้าง

หน้าที่รับผิดชอบ

  • Manage development of complex automation solutions to work with existing and new network technologies such as switches, routers, and firewalls.
  • Write and maintain software to solve complex network management tasks such as:
    - Provision and deploy network devices and auditing configuration.
    - Integrate network function (e.g. DNS and DHCP) provisioning into software engineering pipelines.
    - Deploying firewall rules while utilizing internal business processes for checks and balances.
  • Design, deploy, and maintain network systems.
  • Create, maintain, and update documentation of network systems.
  • Development, configuration, implementation, and testing of multiple network platforms to streamline network operations.
  • Develop a CI/CD automation framework to couple with other internal technology standards.
  • Work with multiple Engineering teams to incorporate infrastructure provisioning into deployment pipelines.
  • Manage relationships with network infrastructure vendors, identify and request features and enhancements that are best suited for the network environment.
  • Develop automated validation and testing procedures around network system.

ประสบการณ์หรือความรู้ที่ต้องการ

  • 3+ years’ experience in automating, network provisioning, and configuration tasks utilizing Python, and automation tools such as Terraform, Ansible, Bitbucket, and Bamboo.
  • Experience working with a mature CI/CD pipeline and formal software development.
  • Excellent understanding of Networking Fundamentals, Campus and Data Center networks.
  • Experience in working with technologies and protocols including BGP, OSPF, IP Multicast, STP, VPC, MLAG, VRFs etc. (EVPN or VXLAN experience optional/desirable)
  • Practical experience in network support, troubleshooting and implementation, including the use of dynamic routing protocols, QoS principles and high availability configuration.
  • Experience with in band telemetry / streaming telemetry is a big plus
    Strong desire to code, produce clean, readable code, good understanding of software development best practices, open source systems, and git repositories required
  • Cloud infrastructure experience: AWS, Azure, GCP
    Experience in Campus, Data Center, Wide Area Network (WAN), and network security.
  • Experience using common scripting languages such as Bash, Powershell, Perl
  • Demonstrated experience building automation systems for complex networks of devices from vendors such as Cisco, Palo Alto, and F5.
  • Experience with Software Defined Networks (SDN) solutions across Data Center, WAN (SD-WAN), campus (SD-Access), and network virtualization.
  • Experience in testing and validation of network devices and systems.
    Thorough understanding of networking concepts such as routing, switching, IPSEC/SSL VPN, and firewalling along with common protocols such as DNS, DHCP, SNMP, TCP/IP
  • Strong knowledge of web services technologies such as IIS, Apache, Tomcat.
  • Experience integrating cloud and on-prem network infrastructure.

จะเห็นเลยครับว่า skills requirement โหดมาก ถ้าภาษาอังกฤษผมใช้คำว่า network engineer with steroids เลย คืออารมณ์แบบ network engineer ติดปีกประมาณนั้น

ทีนี้เดี๋ยวลองดูของอีกเจ้าด้วยละกันครับ ที่หยิบอันนี้มาเพราะเห็นว่าเค้าเขียนออกมาได้กระชับดี และจะได้มีข้อมูลเพิ่มเติมจากด้านบนด้วย

ประสบการณ์หรือความรู้ที่ต้องการ

  • 5+ years working in Network Automation
  • Experience configuring routers and switches
  • Experience automating network deployments and configurations
  • Experience programming in Python
  • Experience with Ansible playbook design and execution
  • Familiarity with a Python Web Application Framework, for example Flask or Django.
  • Familiarity with database management and communications
  • Familiarity with web services technologies such as REST and gRPC
  • Development of a CI/CD Environment.
  • Knowledgeable in network security procedures and best practices.
  • Familiarity with leveraging vendor APIs to configure and gather data from network devices.
  • Working knowledge of common network monitoring and security utilities
  • Experience with Linux-based operating systems
  • Experience with container virtualization technologies.
  • Willingness to learn new technologies and maintain industry knowledge.
  • Excellent communication skills and an ability to collaborate with multiple teams.
  • Excellent customer presentation skills.
  • A solid understanding of network virtualization landscape along with their supporting technologies. E.g. VRFs and VXLAN
  • Experience with Web UI Development
  • Experience in multi-vendor network topologies
  • Experience with Linux based routing daemons such as BIRD and FRR
  • Experience in either the media or web scale sectors.
  • A propensity to experiment with emerging technologies.
  • Linux, Python, Ansible, TCP/IP, BGP, Git, Jenkins, and REST

— — — — — — — — — — — — — — — — — — — — — — — —

Q2: Network Automation Engineer ต้องมี Skills ใดบ้าง(ในความเห็นของผม)?

  • อย่างน้อยต้องมี networking skills ในแบบที่ network engineer ประสบการณ์ 3-5 ปีควรมี ถ้าเทียบเป็น cert. ก็คือคู่ควรกับการถือ CCNP
  • Python programming สำคัญมาก เบื้องต้นควรเขียนได้ในระดับที่ใช้แก้ปัญหา task ทั่วไปได้สบาย แต่ถ้าให้ดีควรไปถึง OOP (Object Oriented Programming) และ concurrency concept ด้วย
  • ใช้ automation tools หรือ configuration management tools ได้เป็นอย่างดี เช่น Ansible ส่วน Chef, Puppet หรือ Terraform รู้ไว้ไม่เสียหาย
  • เข้าใจ data format อย่าง XML, JSON และ YAML สามารถใช้ Python เพื่อ convert เป็น Python data structure กลับไปกลับมาได้
  • เข้าใจ YANG, NETCONF และ RESTCONF เป็นอย่างดี นี่คือสิ่งที่เราจะใช้ interact กับ network device แทน CLI ในยุคต่อไป
  • เข้าใจ REST principles และ HTTP verb เพื่อที่จะใช้งาน RESTful API ได้คล่อง รวมถึงการใช้งาน API tool อย่าง Postman ด้วยครับ
  • ควรรู้ database programming อย่าง SQL หรือ NoSQL ด้วยก็ดี เพราะงาน software บางงานไม่มี database ก็ไม่จบเหมือนกันครับ
  • เข้าใจและสามารถออกแบบ NetDevOps CI/CD pipeline ได้ และการใช้ tools ที่เกี่ยวข้องอย่าง Git, Github, Gitlab CI หรือ Jenkins อะไรทำนองนั้น
  • VM (Virtualization) นี่ควรรู้อยู่แล้ว ส่วน Docker (Containerization) นี่สำคัญมาก เพราะจะได้เจอมากขึ้นใน infrastructure ยุคต่อไป แถมเป็นรากฐานในการทำ CI/CD ด้วยสิ
  • SDN ก็ควรจะต้องรู้บ้าง ผมแนะนำ Cisco DNA Center / SD-Access, Cisco ACI, Cisco SD-WAN, VMWare NSX ซึ่งเป็น commercial SDN solution
  • Cloud เป็นอะไรที่หลีกเลี่ยงไม่ได้ แนะนำว่าให้เปิดด้วย Amazon Web Services (AWS) ครับ แล้วจะต่อด้วย Microsoft Azure หรือ Google Cloud Platform (GCP) ก็ว่าไป
  • Linux เป็นอะไรที่ควรรู้และใช้งานได้เป็นอย่างยิ่งเลย ไม่ต้องพูดกันแล้ว

— — — — — — — — — — — — — — — — — — — — — — — —

Q3: Network Automation Engineer รายได้ดีไหม?

ข้อนี้ตอบยากมาก เพราะอย่างที่บอกไปข้างต้นว่ามันแทบจะไม่มีตำแหน่งงานนี้ประกาศเปิดรับตรง ๆ ในเมืองไทยเลย(เท่าที่เห็นคือจับ network engineer ไม่ก็ developer มาเขียน script ให้เฉย ๆ ยังไม่เต็มสูบ) แม้ในต่างประเทศเองก็ยังน้อยอยู่

ผมขอตั้งข้อสังเกตไว้แบบนี้ละกัน

  1. ตำแหน่ง network automation engineer มีอะไรบางอย่างที่คล้ายกับ DevOps engineer เลย เพราะเป็นการรวมกันระหว่าง skill ของสองสายงาน ทีนี้คุณลองไปดูรายได้เฉลี่ยของ DevOps engineer สิครับ
  2. หน้าที่ของ network automation engineer สามารถสร้าง impact ได้อย่างมากในงาน network operations ยิ่งถ้าทำงานกับ large-scale network ที่ซับซ้อนและมี operations บ่อยอย่าง ISP หรือ data center จะยิ่งเห็นผลชัดมาก
  3. ในเมืองไทยคนที่มี skillset นี้ยังมีน้อย เพราะเป็นงานลักษณะใหม่และเป็นการผสมของสองสาย (ผมเคยคุยกับเพื่อนที่เป็น IT headhunter เจ้าใหญ่เค้าบอกว่าในไทยนับหัวได้เลย) และการจะผันตัวจาก network engineer เป็น network automation engineer อาจไม่ใช่เรื่องสนุกและสะดวกสบายสำหรับทุกคน

ด้วยความสดใหม่ของสายงานและ impact ที่ได้จาก automation แบบเต็มสูบเนี่ยมันลด operations cost ได้จริง ผมเชื่อว่าค่าจ้างไม่ขี้เหร่แน่ถ้าเทียบกับ network engineer แต่ก็ต้องรอจังหวะ trends มันเข้ามาเต็ม ๆ ก่อนนะ

— — — — — — — — — — — — — — — — — — — — — — — —

Q4: Network Automation Engineer มาแทนที่ Network Engineer หรือเปล่า?

ส่วนตัวผมมองว่า “ไม่ใช่” ครับ แต่จะมาทำงานร่วมกันมากกว่า ซึ่งผมเดาว่าในอนาคตมันมีคน 3 กลุ่มแบบนี้

  1. Traditional Network Engineer คนในกลุ่มนี้จะเป็น network engineer รุ่นเก่าที่ไม่พัฒนาตัวเองหรือยังไม่ได้พัฒนาตัวเอง คือจะมี skills แต่ในด้านของ networking และจะค่อย ๆ กลายสภาพเป็นกลุ่มที่ 2 หรือ 3 แทน หรือถ้าไม่ก็ตกกระป๋องไปเลยก็ทำ network ให้กับบริษัทเล็กมากระดับ SME ลงไป
  2. Modern Network Engineer คนกลุ่มนี้คือ network engineer กลุ่มบนที่พัฒนาตัวเองมาและกลุ่มเด็กจบใหม่ที่เริ่มงานมาก็เจอยุค network programmability เลย พวกนี้จะมี networking skills เหมือนข้างบน แต่จะเพิ่มด้าน network programmability เข้ามา เช่น การเขียน Python script, ใช้ Ansible หรือการใช้ API ซึ่งทั้งหมดก็เพื่อช่วยทำ network task ให้ดีขึ้น แต่จะไม่ได้ลงลึกมากในการทำ network automation ขนาดนั้น
  3. Network Automation Engineer คนกลุ่มนี้เข้าใจ network ดี แต่อาจจะไม่ต้องเน้นจนไปถึงระดับ expert แบบ network engineer เพราะจะเบนสายมาทาง software development มากกว่า และเน้นการออกแบบระบบ network automation โดยเฉพาะ บางทีอาจมีการเขียน software หรือ application สำหรับงานด้าน network ด้วย

ผมมองว่าตลาดยังคงต้องการ network engineer อยู่ (ถ้าจะน้อยลงก็เพราะการมาของ cloud มากกว่า) แต่ขณะเดียวกันก็มีความต้องการ netwotk automation engineer เพื่อทำ network automation เพิ่มขึ้นมาด้วย

Q5: เด็กจบใหม่อยากเป็น Network Automation Engineer ควรเริ่มต้นยังไงดี?

ข้อนี้ผมเห็นตรงกับความคิดเห็นจากหลายบทความที่ผมเคยอ่านมาในต่างประเทศ คือมันควรจะต้องทำงานเป็น network engineer ก่อนอย่างน้อยสักประมาณ 3-5 ปี แล้วค่อยผันตัวมาเป็น network automation engineer โดยเริ่มศึกษา skill ตามที่ผมได้แนะนำไปในข้อ Q2 (พูดหยาบ ๆ เลยว่า “เยอะชิบหาย!”)

Q6: ทำงานเป็น Network Engineer อยู่แล้ว จำเป็นต้องกระโดดมาเป็น Network Automation Engineer ไหม?

ผมตอบได้เลยว่า “ไม่จำเป็น” เพราะ network engineer ก็ยังมีตลาดอยู่ คุณเดินสายเดิมแต่อัพ skill ต่อไปถึงระดับ CCIE ได้ตามที่คุณต้องการ เพียงแต่คุณต้องพัฒนาตัวเองให้เป็น modern network engineer แบบที่ผมอธิบายไปในข้อ Q4 ก็พอครับ

— — — — — — — — — — — — — — —
สารบัญเนื้อหาทั้งหมด (My Contents)
— — — — — — — — — — — — — — —

--

--

Nopnithi Khaokaew (Game)

Cloud Solutions Architect & Hobbyist Developer | 6x AWS Certified, CKA, CKAD, 2x HashiCorp Certified (Terraform, Vault), etc.