Network

Ngày 3: Kiến thức về mạng (Network)

Bức tranh toàn cảnh: DevOps và Mạng máy tính

Tương tự như những ngày, tôi sẽ sử dụng các tài liệu hướng dẫn miễn phí và nguồn mở. Trong phần này, phần lớn nội dung được lấy từ trang Practical Networking và sê-ri Các nguyên tắc cơ bản của Mạng máy tính – Networking Fundamentals series. Dù đã được đề cập trong mục “Tài nguyên tham khảo” nhưng cũng cần thiết để nhấn mạnh tài liệu trên bởi vì từ quan điểm của cộng đồng, tôi đã tận dụng các khóa học này để giúp bản thân hiểu thêm về các lĩnh vực cụ thể. Kho lưu trữ này được dùng để chứa các ghi chú của tôi với hy vọng mọi người có thể thấy nó hữu ích cũng như các nguồn tài nguyên được liệt kê.

Chào mừng bạn đến với Ngày học thứ 3! Chúng ta sẽ tìm hiểu về mạng máy tính trong ngày hôm nay, DevOps và Mạng máy tính là những chủ đề chính của phần này nhưng chúng ta cũng sẽ cần phải tìm hiểu một số kiến thức nền tảng của mạng máy tính.

Xem thêm: Sử dụng Git hiệu quả

Như tôi đã nói trước đây, DevOps là sự thay đổi về văn hóa và quy trình trong quá trình phát triển phần mềm. Những thay đổi này có thể là về Virtual Machines, Containers, hoặc Kubernetes, hoặc cũng có thể là ở hệ thống mạng. Nếu chúng ta áp dụng các nguyên tắc của DevOps vào cơ sở hạ tầng vốn đã bao gồm hệ thống mạng, ở khía cạnh của một DevOps, bạn sẽ cần tìm hiểu về mạng máy tính bao gồm cấu trúc, lớp, và công cụ mạng.

Tôi cho rằng chúng ta nên cấu hình các thiết bị trong mạng đã bằng code (infrastructure as code) và mọi thứ nên được tự động hóa như những máy ảo của chúng ta. Tuy nhiên, để đạt được điều này, ít nhất chúng ta phải hiểu rõ về những thứ mà mình muốn nó làm việc tự động.

NetDevOps là gì | DevOps cho hệ thống mạng?

Bạn cũng có thể nghe thấy thuật ngữ Network DevOps hoặc NetDevOps. Có thể bạn đã là một kỹ sư mạng và có kiến thức vững chắc về các thành phần trong hệ thống mạng bên trong cơ sở hạ tầng của bạn. Bạn hiểu được các thành phần như DHCP, DNS, NAT, v.v. Bạn cũng sẽ hiểu rõ về phần cứng và công nghệ “điều khiển mạng qua phần mềm” (software-defined networking).

Nhưng nếu bạn không phải là một kỹ sư mạng thì có lẽ bạn cần phải có được một số kiến ​​thức nền tảng về mạng để có thể hiểu được mục tiêu cuối cùng của Network DevOps.

Chúng ta có thể hiểu rằng NetDevOps hoặc Network DevOps là việc áp dụng những Nguyên tắc và Thực hành DevOps vào hệ thống mạng, ví dụ như áp dụng các công cụ tự động hóa và kiểm soát phiên bản để tạo, kiểm tra, giám sát và triển khai mạng.

Xem thêm: Học một ngôn ngữ lập trình (Go)

Chúng ta đã đề cập trước đây rằng DevOps phá vỡ sự độc lập giữa các nhóm làm việc và nếu chúng ta quan niệm Network DevOps là việc phải tự động hóa hế thống mạng, nếu nhóm quản lý mạng không thay đổi sang mô hình và quy trình tương tự thì họ sẽ trở thành điểm tắt nghẽn hoặc thậm chí có thể là điểm gây thất bại cho dự án.

Sử dụng các nguyên tắc tự động hóa trong việc cung cấp, cấu hình, thử nghiệm, kiểm soát phiên bản, và triển khai là một khởi đầu tuyệt vời. Tự động hóa về tổng thể sẽ cho phép tăng tốc độ triển khai, sự ổn định của cơ sở hạ tầng mạng và liên tục cải tiến cũng như quy trình sẽ được chia sẻ trên nhiều môi trường sau khi chúng đã được kiểm tra. Ví dụ như một Network Policy đã được kiểm tra đầy đủ trên môi trường thử nghiệm có thể được nhanh chóng áp dụng ở một vị trí khác. Vì bản chất của việc này là chạy lại đoạn mã thay vì cấu hình thủ công như trước đây. Bạn có thể tìm hiểu thêm về lợi ích của khái niệm này ở đây. Network DevOps

Kiến thức cơ bản về mạng

Hãy tạm quên khía cạnh về DevOps ở đây và chúng ta cần tìm hiểu nhanh một số kiến thức nền tảng về mạng máy tính.

Thiết bị mạng

Nếu bạn thích học qua hình thức xem video, hãy xem các video sau đây:

Máy chủ (Host) là bất kỳ thiết bị nào gửi hoặc nhận dữ liệu.

Địa chỉ IP (IP Address) là định danh của từng máy chủ.

Mạng là hệ thống vận chuyển dữ liệu giữa các máy chủ. Nếu chúng ta không có mạng, chúng ta cần chuyển dữ liệu một cách thủ công!

Một nhóm máy chủ logic yêu cầu kết nối tương tự nhau.

(Bộ chuyển mạch) Switch nhằm hỗ trợ giao tiếp bên trong một mạng. Một Switch sẽ chuyển tiếp các gói dữ liệu giữa các máy chủ.

  • Mạng: Một nhóm các máy chủ được kết nối với nhau.
  • Các máy chủ trên một mạng chia sẻ cùng một không gian địa chỉ IP.

Bộ định tuyến (Router) nhằm giúp giao tiếp giữa các mạng. Như chúng ta đã nói trước đó, một switch hỗ trợ giao tiếp giữa các thiết bị trong cùng một mạng, trong khi đó một bộ định tuyến cho phép chúng ta kết nối các mạng lại với nhau.

Một bộ định tuyến có thể cung cấp các tính năng kiểm soát lưu lượng (bảo mật, lọc, chuyển hướng). Ngày nay càng nhiều thiết bị chuyển mạch (switch) cũng cung cấp các chức năng này.

Bộ định tuyến cần học thông tin về các mạng mà nó kết nối đến. Chúng được gọi đây là các tuyến đường, được lưu trong một bảng định tuyến.

Bộ định tuyến có địa chỉ IP trong mạng (gọi là gateway) mà chúng được gắn vào. Địa chỉ IP này cũng sẽ là địa chỉ đích đến của mỗi máy chủ khi muốn truy cập ra khỏi mạng cục bộ của nó.

Các bộ định tuyến sẽ tạo ra hệ thống phân cấp trong các mạng mà tôi đã đề cập trước đó

So sánh Bộ chuyển mạch với Bộ định tuyến

Định tuyến là quá trình xác định đường đi dữ liệu giữa các mạng.

  • Một Router là một thiết bị có mục đích chính là xác định đường đi.

Chuyển mạch là quá trình di chuyển dữ liệu trong một mạng.

  • Một switch là một thiết bị có mục đích chính là chuyển mạch.

Đây chỉ là phần tổng quan cơ bản của hai thiết bị quan trọng nhất vì chúng ta biết rằng có nhiều thiết bị mạng khác nhau như:

  • Access Points (Các điểm truy cập)
  • Firewalls (Tường lửa)
  • Load Balancers (Thiết bị cân bằng tải)
  • Layer 3 Switches (Bộ chuyển mạch lớp 3)
  • IDS / IPS
  • Proxies
  • Virtual Switches (Bộ chuyển mạch ảo)
  • Virtual Routers (Bộ định tuyến ảo)

Tất cả các thiết bị trên về cơ bản vẫn sẽ thực hiện quá trình Định tuyến và / hoặc Chuyển mạch.

Trong những mục tiếp theo, chúng ta sẽ tìm hiểu thêm về:

  • Mô hình OSI
  • Giao thức mạng
  • DNS (Hệ thống phân giải tên miền)
  • NAT
  • DHCP
  • Mạng con

Mô hình 7 lớp (tầng) OSI

Mục đích cơ bản của mạng máy tính là cho phép hai máy tính chia sẻ dữ liệu. Trước khi có mạng máy tính, nếu ta muốn chuyển dữ liệu từ một máy tính này đến một máy tính khác, ta cần phải gắn một thiết bị lưu trữ vào một máy tính, sao chép dữ liệu và đưa nó sang máy tính khác.

Mạng máy tính cho phép làm việc này một cách tự động bằng cách cho phép máy tính chia sẻ dữ liệu qua dây mạng (hoặc kết nối không dây). Để cho các máy tính có thể thực hiện việc đó, chúng cần phải tuân thủ một bộ quy tắc.

Nguyên tắc này cũng tương tự như trong giao tiếp bằng ngôn ngữ. Tiếng Anh có một bộ quy tắc mà hai người nói tiếng Anh phải tuân theo. Tiếng Tây Ban Nha hay tiếng Pháp cũng có bộ quy tắc riêng, và mạng máy tính cũng có bộ quy tắc riêng của nó.

Các quy tắc để giao tiếp trong mạng máy tính được chia thành bảy lớp khác nhau và được gọi là mô hình OSI.

Giới thiệu về mô hình OSI

Mô hình OSI (Mô hình kết nối hệ thống mở) là một khuôn khổ được sử dụng để mô tả các chức năng của một hệ thống mạng. Mô hình OSI mô tả các chức năng tính toán và tạo thành một tập hợp các quy tắc và yêu cầu chung để hỗ trợ khả năng giao tiếp giữa các thiết bị và phần mềm khác nhau. Trong mô hình tham chiếu OSI, giao tiếp giữa một hệ thống máy tính được chia thành bảy lớp trừu tượng khác nhau: Lớp vật lý (Physical), Lớp liên kết dữ liệu (Data Link), Lớp mạng (Network), Lớp giao vận (Transport), Lớp phiên (Session), Lớp trình diễn (Presentation), và Lớp ứng dụng (Application).

Lớp vật lý (Physical)

Đây là lớp thứ 1 trong mô hình OSI, quy định cách mà chúng ta có thể chuyển dữ liệu từ một máy tính này thông qua máy tính khác về mặt vật lý (ví dụ dây mạng hoặc sóng Wi-Fi). Chúng ta cũng có thể bắt gặp một số thiết bị phần cứng cũ hoạt động ở lớp này như hub hoặc repeater (bộ lặp).

Lớp liên kết dữ liệu (Data Link)

Lớp thứ 2 là lớp liên kết dữ liệu, nó cho phép đóng gói dữ liệu dưới dạng các frame để truyền từ thiết bị này sang thiết bị khác. Lớp này có thể cung cấp tính năng cho phép sửa lỗi xảy ra ở lớp vật lý. Địa chỉ MAC (Media Access Control) cũng được giới thiệu ở lớp này.

Lớp mạng (Network)

Bạn có thể đã nghe đến thuật ngữ thiết bị chuyển mạch (switch) lớp 3 hoặc thiết bị chuyển mạch (switch) lớp 2. Trong mô hình OSI, Lớp mạng có nhiệm vụ phân phối dữ liệu từ điểm đầu đến điểm cuối. Đây là nơi chúng ta thấy các địa chỉ IP của các thiết bị như chúng ta đã đề cập.

Bộ định tuyến (router) và máy tính (host) làm việc ở lớp mạng, hãy nhớ bộ định tuyến cung cấp chức năng định tuyến giữa nhiều mạng. Bất kỳ thứ gì có địa chỉ IP đều có thể được coi là thiết bị của lớp 3.

Tại sao chúng ta cần sử dụng địa chỉ ở cả lớp 2 và 3? (địa chỉ MAC và địa chỉ IP)

Nếu chúng ta nghĩ về việc truyền dữ liệu từ máy tính này sang một máy tính khác, mỗi máy tính có một địa chỉ IP riêng nhưng sẽ có một số thiết bị chuyển mạch (switch) và định tuyến (router) nằm giữa hai máy tính. Mỗi thiết bị đó đều có địa chỉ MAC lớp 2.

Địa chỉ MAC lớp 2 chỉ được dùng để liên lạc giữa hai thiết bị kết nối trực tiếp với nhau trong quá trình chuyền dữ liệu, nó chỉ tập trung vào truyền tải đến trạm kế tiếp, trong khi địa chỉ IP lớp 3 sẽ ở lại với gói dữ liệu đó cho đến khi nó đến máy tính cuối của nó. (Điểm đầu đến điểm cuối)

Địa chỉ IP – Lớp 3 = Vận chuyển từ điểm đầu đến điểm cuối

Địa chỉ MAC – Lớp 2 = Vận chuyển đến trạm kế tiếp

Có một giao thức mạng mà chúng ta sẽ tìm hiểu vào các ngày sau có tên là ARP (Address Resolution Protocol, Giao thức phân giải địa chỉ), nhằm giúp liên kết địa chỉ của lớp 2 và lớp 3 trong mạng.

Lớp giao vận (Transport)

Lớp thứ 4 (lớp giao vận) được tạo ra để phân biệt các luồng dữ liệu, cho phép vận chuyển dữ liệu từ dịch vụ (ứng dụng) đến dịch vụ giữa các máy tính. Theo cách tương tự mà lớp 3 và lớp 2 đều có các cơ chế địa chỉ, trong lớp 4 chúng ta có các cổng (port).

Lớp phiên, trình diễn, ứng dụng (Session, Presentation, Application)

Sự tách biệt giữa các lớp 5,6,7 có thể hơi mơ hồ.

Bạn nên xem Mô hình TCP IP để hiểu rõ hơn.

Bây giờ chúng ta hãy thử giải thích điều gì sẽ xảy ra khi các máy tính trong mạng giao tiếp với nhau bằng mô hình nhiều lớp này. Máy tính này có một ứng dụng sẽ tạo ra dữ liệu và gửi đến một máy tính khác.

Máy tính nguồn sẽ trải qua quá trình được gọi là quá trình đóng gói dữ liệu (lớp 7 –> 5). Dữ liệu sau đó sẽ được gửi đến lớp 4.

Lớp 4 sẽ thêm một header vào dữ liệu đó, điều này giúp cho việc truyền tải dữ liệu ở lớp 4 (từ ứng dụng đến ứng dụng). Một cổng sẽ được sử dụng để truyền dữ liệu dựa trên TCP hoặc UDP. Header sẽ bao gồm thông tin cổng nguồn và cổng đích.

Thông tin về dữ liệu (data) và cổng (port) có thể được gọi là một segment.

Segment này sẽ được chuyển xuống cho lớp 3 (lớp mạng). Lớp mạng sẽ thêm một header khác vào dữ liệu này. Header này sẽ chứa thông tin giúp lớp 3 vận chuyển dữ liệu từ điểm đầu đến điểm cuối. Trong tiêu đề này, bạn sẽ có địa chỉ IP nguồn và IP đích, header ở lới 3 cộng với dữ liệu lớp trên cũng có thể được gọi là một packet (gói tin).

Lớp 3 sau đó sẽ lấy gói tin đó và giao nó cho lớp 2, lớp 2 một lần nữa sẽ thêm một header khác vào dữ liệu đó để thực hiện chuyển tiếp dữ liệu đến trạm kế tiếp trong mạng. Header ở lớp 2 sẽ bao gồm địa chỉ MAC nguồn và đích. Header và dữ liệu lớp 2 được gọi là một frame.

Frame sau đó sẽ được chuyển đổi thành những tín hiệu 0 và 1 được gửi qua cáp vật lý hoặc sóng không dây thuộc lớp 1 .

Tôi đã đề cập ở trên về việc đặt tên cho dữ liệu + header ở mỗi lớp và bạn có thể tham khảo qua hình ảnh tóm lượt bên dưới.

Quá trình gửi và nhận dữ liệu của ứng dụng ở hai máy tính nguồn và đích.

Nội dung của phần này chủ yếu từ sê-ri Networking Fundamentals series. Nếu bạn thích học thông qua video, bạn có thể xem video sau:

Các giao thức mạng

Các giao thức mạng là một tập hợp các quy tắc giao tiếp tạo thành một tiêu chuẩn, tiêu chuẩn Internet.

  • ARP (Address Resolution Protocol) – Giao thức phân giải địa chỉ

Nếu bạn muốn tìm hiểu sâu hơn về ARP, bạn có thể đọc về tiêu chuẩn Internet tại đây. RFC 826

Một địa chỉ IP sẽ được gắn với một địa chỉ vật lý cố định, còn được gọi là địa chỉ MAC trên mạng lớp 2.

  • FTP (File Transfer Protocol) – Giao thức truyền tải file

Cho phép truyền tải các tập tin từ một máy nguồn đến máy đích. Về cơ bản, quá trình này được xác thực nhưng vân có thể cấu hình để cho phép quyền truy cập ẩn danh. Bạn sẽ thấy FTPS được sử dùng thường xuyên hơn vì nó cung cấp kết nối SSL/TLS tới các máy tính FTP từ máy khách để đảm bảo bảo mật tốt hơn. Giao thức này hoạt động ở lớp Ứng dụng của Mô hình OSI.

  • SMTP (Simple Mail Transfer Protocol) – Giao thức chuyển thư đơn giản

Được sử dụng để truyền email, máy tính sử dụng SMTP để gửi và nhận thư. Bạn vẫn sẽ thấy ngay cả SMTP vẫn đang được sử dụng với Microsoft 365.

  • HTTP (Hyper Text Transfer Protocol) – Giao thức truyền tải siêu văn bản

HTTP là giao thức nền tảng cho việc truy cập nội dung trên Internet. Nó cung cấp cho chúng ta khả năng để dễ dàng truy cập các trang web. HTTP vẫn được sử dụng nhiều nhưng HTTPS hiện được sử dụng nhiều hơn để tăng cường khả năng bảo mật.

  • SSL (Secure Sockets Layer) – Lớp cổng bảo mật | TLS (Transport Layer Security) – Bảo mật tầng vận chuyển

TLS đã tiếp quản từ SSL, TLS là Giao thức mật mã cung cấp thông tin liên lạc an toàn qua mạng. Nó được sử dụng trong các ứng dụng email, tin nhắn, v.v., nhưng phổ biến nhất là để bảo mật cho HTTPS.

  • HTTPS – HTTP được bảo mật bằng SSL/TLS

Phiên bản mở rộng của HTTP, được sử dụng để cung cấp liên lạc an toàn qua mạng, HTTPS được mã hóa bằng TLS như đã đề cập ở trên. Trọng tâm ở đây là mang lại tính xác thực, quyền riêng tư và tính toàn vẹn trong khi dữ liệu được trao đổi giữa các máy tính.

  • DNS (Domain Name System) – Hệ thống tên miền

DNS được sử dụng để ánh xạ các tên miền theo cách thân thiện với con người, chẳng hạn như tất cả chúng ta đều biết google.com nhưng nếu bạn mở trình duyệt và nhập 8.8.8.8 bạn sẽ truy cập được Google như chúng ta vẫn làm. Tuy nhiên, bạn không thể nhớ tất cả các địa chỉ IP cho tất cả các trang web của bạn.

Đây là nơi DNS xuất hiện, nó đảm bảo rằng các máy tính, dịch vụ và các tài nguyên khác có thể truy cập được.

Trên tất cả các máy tính yêu cầu kết nối internet thì phải có DNS để phân giải được các tên miền. DNS là một lĩnh vực bạn có thể dành nhiều ngày và nhiều năm để tìm hiểu. Tôi cũng sẽ nói từ kinh nghiệm rằng DNS là nguyên nhân phổ biến của tất cả các lỗi khi nói đến Mạng. Tuy nhiên, không chắc liệu một kỹ sư mạng có đồng ý với quan điểm này hay không.

  • DHCP (Dynamic Host Configuration Protocol) – Giao thức cấu hình máy tính tự động

Chúng ta đã thảo luận rất nhiều về các giao thức cần thiết để làm cho các máy tính của chúng ta hoạt động, có thể là truy cập internet hoặc truyền tải file giữa các máy tính với nhau.

Có 4 điều chúng ta cần trên mọi máy tính để nó có thể đạt được cả hai nhiệm vụ đó.

  • Địa chỉ IP
  • Subnet Mask
  • Gateway mặc định
  • DNS

Địa chỉ IP là địa chỉ duy nhất đại diện cho máy tính của chúng ta trên mạng mà nó tham gia, có thể coi đây là số nhà.

Chúng ta có thể coi subnet mask như là mã bưu điện hoặc mã zip.

Gateway mặc định là IP của bộ định tuyến đã cung cấp cho chúng ta kết nối đến Internet hoặc các mạng khác. Bạn có thể coi đây là con đường duy nhất cho phép chúng ta ra khỏi con phố của mình.

Sau đó, chúng ta có DNS để chuyển đổi các địa chỉ IP công khai phức tạp thành các tên miền phù hợp và dễ nhớ hơn. Chúng ta có thể coi đây là văn phòng phân loại khổng lồ để đảm bảo chúng ta nhận được đúng gói hàng của mình.

Như tôi đã nói, mỗi máy tính yêu cầu 4 cài đặt này, nếu bạn có 1000 hoặc 10.000 máy tính thì bạn sẽ mất rất nhiều thời gian để cấu hình tất cả. Chính vì vậy, DHCP xuất hiện và cho phép bạn xác định phạm vi cho mạng của mình và giao thức này sẽ cấp phát những thông tin trên cho tất cả các máy tính trong mạng của bạn.

Một ví dụ khác là bạn đi vào một quán cà phê, lấy một ly cà phê và ngồi xuống với máy tính xách tay hoặc điện thoại của bạn. Bạn kết nối máy tính của mình với Wi-Fi của quán cà phê và có quyền truy cập vào internet, tin nhắn và thư bắt đầu được gửi tới và bạn có thể duyệt web hay truy cập mạng xã hội. Khi bạn kết nối với Wi-Fi của quán cà phê, máy tính của bạn sẽ nhận một địa chỉ DHCP từ máy chủ DHCP chuyên dụng hoặc rất có thể là bộ định tuyến (router) của quán cũng xử lý DHCP.

Mạng con (Subnet)

Mạng con là một phân khu về mặt logic của một mạng IP.

Mạng con chia các mạng lớn thành các mạng nhỏ hơn, dễ quản lý hơn và hoạt động hiệu quả hơn.

Mỗi mạng con là một phân khu về mặt logic của một mạng lớn hơn. Các thiết bị trong cùng một mạng con có cùng Subnet Mask, cho phép chúng có thể giao tiếp với nhau.

Bộ định tuyến quản lý giao tiếp giữa các mạng con.

Kích thước của mạng con phụ thuộc vào yêu cầu kết nối và công nghệ mạng được sử dụng.

Một tổ chức quốc tế chịu trách nhiệm cho xác định số lượng và kích thước của các mạng con trong không gian địa chỉ IP giới hạn hiện có. Các mạng con cũng có thể được phân đoạn thành các mạng con nhỏ hơn cho những trường hợp như liên kết Điểm tới Điểm hoặc mạng con chỉ hỗ trợ một vài thiết bị.

Bên cạnh một số lợi ích khác, việc phân chia một mạng lớn thành các mạng con cho phép tái sử dụng địa chỉ IP và giảm tắc nghẽn mạng, tăng hiệu quả sử dụng mạng.

Mạng con cũng có thể cải thiện tính bảo mật. Nếu một phần của mạng bị xâm phạm, nó có thể được cô lập khiến những kẻ tấn công khó có thể truy cập được các hệ thống mạng lớn hơn.

Tự động hóa mạng

Khái niệm cơ bản về tự động hóa mạng

Mục đích của việc Tự động hóa mạng

  • Đạt được sự linh hoạt
  • Giảm chi phí
  • Loại bỏ lỗi
  • Tuân thủ các quy tắc, quy định (compliance)
  • Quản lý tập trung

Quá trình áp dụng tự động hóa là riêng biệt cho từng doanh nghiệp. Không có một giải pháp nào phù hợp với tất cả các yêu cầu khi triển khai tự động hóa, khả năng xác định và nắm bắt phương pháp phù hợp nhất với tổ chức của bạn là rất quan trọng trong việc tiến tới duy trì hoặc tạo ra một môi trường linh hoạt hơn, trọng tâm luôn phải là giá trị kinh doanh và mục tiêu cuối cùng – trải nghiệm người dùng. (Chúng ta đã nói những điều tương tự ngay từ đầu về văn hóa DevOps và sự thay đổi văn hóa cũng như quy trình tự động mà điều này mang lại)

Để phân tích vấn đề này, bạn cần xác định bằng cách nào những nhiệm vụ hoặc quy trình mà bạn đang cố gắng tự động hóa sẽ giúp cải thiện trải nghiệm của người dùng cuối hoặc giá trị kinh doanh trong khi vẫn tuân theo phương pháp tiếp cận có hệ thống từng bước.

“Nếu bạn không biết mình đang đi đâu, thì bất kỳ con đường nào cũng sẽ đưa bạn đến đích.”

Có một framework hoặc bản thiết kế mà bạn đang cố gắng để hoàn thành, biết rõ mục tiêu cuối cùng của mình là gì và sau đó làm việc từng bước để đạt được mục tiêu đó, đo lường mức độ thành công của việc tự động hóa ở các giai đoạn khác nhau dựa trên kết quả kinh doanh.

Xây dựng các khái niệm đã được mô hình hóa xung quanh các ứng dụng hiện có, không cần phải thiết kế các khái niệm xung quanh một mô hình giả tưởng vì chúng cần được áp dụng cho ứng dụng, dịch vụ và cơ sở hạ tầng của bạn. Vì vậy hãy bắt đầu xây dựng các khái niệm và mô hình hóa xung quanh cơ sở hạ tầng và ứng dụng hiện có của bạn.

Cách tiếp cận việc Tự động hóa Mạng

Chúng ta nên xác định các tác vụ và thực hiện khám phá các yêu cầu thay đổi trong thiết lập mạng để bạn có danh sách các vấn đề và sự cố phổ biến nhất mà cần một giải pháp tự động hóa.

  • Lập danh sách tất cả các yêu cầu thay đổi và quy trình công việc hiện đang được giải quyết theo cách thủ công.
  • Xác định các hoạt động phổ biến, tốn thời gian và dễ mắc lỗi nhất.
  • Ưu tiên các yêu cầu bằng dựa theo định hướng kinh doanh của doanh nghiệp.
  • Nếu đây là bộ khung để xây dựng quy trình tự động hóa, thì cái gì phải tự động hóa, cái gì không.

Sau đó, chúng ta nên phân chia các nhiệm vụ và phân tích cách các chức năng mạng khác nhau hoạt động và tương tác với nhau.

  • Nhóm Hạ tầng/Mạng nhận yêu cầu thay đổi ở nhiều lớp để triển khai ứng dụng.
  • Dựa trên các dịch vụ mạng, hãy chia chúng thành các khu vực khác nhau và hiểu cách chúng tương tác với nhau.
    • Tối ưu hóa ứng dụng
    • ADC (Bộ điều khiển phân phối ứng dụng)
    • Tường lửa (Firewall)
    • DDI (DNS, DHCP, IPAM, v.v.)
    • Định tuyến
    • Các vấn đề khác
  • Xác định các yếu tố phụ thuộc khác nhau để giải quyết các khác biệt về kinh doanh và văn hóa, đồng thời mang lại sự hợp tác giữa các nhóm.
  • Chính sách tái sử dụng, xác định và đơn giản hóa các tác vụ, quy trình và đầu vào/đầu ra của dịch vụ có thể tái sử dụng.
  • Định nghĩa các dịch vụ, quy trình và đầu vào/đầu ra khác nhau.
  • Đơn giản hóa quy trình triển khai sẽ giảm thời gian hoàn thành cho cả khối lượng công việc mới và hiện có.
  • Sau khi bạn có một quy trình tiêu chuẩn, quy trình đó có thể được sắp xếp theo trình tự và căn chỉnh theo các yêu cầu riêng lẻ để có cách tiếp cận và phân phối đa luồng.

Kết hợp các chính sách với các hoạt động kinh doanh cụ thể. Việc thực hiện chính sách này giúp gì cho doanh nghiệp? Tiết kiệm thời gian? Tiết kiệm tiền? Cung cấp một kết quả kinh doanh tốt hơn?

  • Đảm bảo rằng các tác vụ dịch vụ có thể tương tác với nhau.
  • Liên kết các nhiệm vụ dịch vụ gia tăng sao cho chúng phối hợp để tạo ra các dịch vụ kinh doanh.
  • Cho phép việc linh hoạt trong liên kết lại các nhiệm vụ dịch vụ theo yêu cầu.
  • Triển khai các dịch vụ tự làm việc và mở đường cho việc cải thiện hiệu quả hoạt động.
  • Cho phép nhiều bộ kỹ năng công nghệ tiếp tục đóng góp vào việc giám sát và tuân thủ.

Lặp đi lặp lại các chính sách và quy trình, bổ sung và cải thiện trong khi vẫn duy trì tính khả dụng của dịch vụ.

  • Bắt đầu bằng cách tự động hóa các nhiệm vụ hiện có.
  • Làm quen với quy trình tự động hóa để bạn có thể xác định các lĩnh vực khác có thể hưởng lợi từ tự động hóa.
  • Lặp đi lặp lại các sáng kiến tự động hóa của bạn, tăng dần sự linh hoạt trong khi vẫn duy trì tính khả dụng cần thiết.
  • Thực hiện một cách tiếp cận tăng dần sẽ mở đường cho thành công!

Điều phối các dịch vụ mạng!

  • Tự động hóa quy trình triển khai là cần thiết để phân phối ứng dụng nhanh chóng.
  • Việc tạo ra một môi trường dịch vụ linh hoạt đòi hỏi phải quản lý các yếu tố khác nhau thông qua nhiều kỹ năng kỹ thuật.
  • Chuẩn bị cho sự phối hợp từ đầu đến cuối cung cấp khả năng kiểm soát tự động hóa và thứ tự trong việc triển khai.

Công cụ tự động hóa mạng

Tin tốt ở đây là phần lớn các công cụ chúng ta sử dụng ở đây cho tự động hóa Mạng nói chung giống với những công cụ mà chúng ta sẽ sử dụng cho các lĩnh vực tự động hóa khác đối với những gì chúng ta đã đề cập cho đến nay hoặc những gì chúng ta sẽ đề cập trong các phần sau.

Hệ điều hành – Như tôi đã vượt qua thử thách này, tôi đang thực hiện hầu hết bài học của mình với HĐH Linux, lý do đó đã được đưa ra trong phần Linux nhưng hầu như tất cả các công cụ mà chúng ta sẽ sử dụng mặc dù hôm nay có thể là các nền tảng đa hệ điều hành, tuy nhiên tất cả đều bắt đầu dưới dạng các ứng dụng hoặc công cụ dựa trên Linux.

Môi trường phát triển tích hợp (IDE) – Một lần nữa, không có nhiều điều để nói ở đây ngoài việc tôi sẽ đề xuất Visual Studio Code làm IDE xuyên suốt của bạn, nó cung cấp các plugin mở rộng có sẵn cho rất nhiều ngôn ngữ khác nhau.

Quản lý cấu hình – chúng ta chưa đến phần Quản lý cấu hình, nhưng rõ ràng là Ansible được yêu thích trong lĩnh vực này để quản lý và tự động hóa cấu hình. Ansible được viết bằng Python nhưng bạn không cần phải biết Python để sử dụng nó.

  • Agentless
  • Chỉ yêu cầu SSH
  • Cộng đồng hỗ trợ lớn
  • Rất nhiều mô-đun mạng
  • Mô hình Push only
  • Cấu hình với YAML
  • Mã nguồn mở!

Link to Ansible Network Modules

Chúng ta cũng sẽ tìm hiểu Ansible Tower trong phần quản lý cấu hình, nó được xem như là giao diện người dùng (GUI) cho Ansible.

CI/CD – Một lần nữa, chúng ta sẽ đề cập nhiều hơn về các khái niệm và công cụ xung quanh vấn đề này nhưng điều quan trọng là ít nhất phải đề cập ở đây vì khái niệm này không chỉ xuất hiện trong phần mạng mà còn bao gồm trong tất cả quá trình cung cấp dịch vụ và nền tảng.

Đặc biệt, Jenkins dường như là một công cụ phổ biến cho Tự động hóa mạng.

  • Theo dõi kho lưu trữ git để biết các thay đổi và sau đó khởi tạo chúng.

Kiểm soát phiên bản – Một lần nữa chúng ta sẽ tìm hiểu sâu hơn về công nghệ này ở phần sau.

  • Git cho phép kiểm soát các phiên bản code của bạn trên máy tính cục bộ – Hỗ trợ đa nền tảng
  • GitHub, GitLab, BitBucket, v.v. là các trang web trực tuyến nơi bạn tạo ra các kho lưu trữ và tải code của mình lên.

Ngôn ngữ Lập trình | Scripting – Thứ mà chúng ta chưa đề cập ở đây là Python với tư cách là một ngôn ngữ, tôi quyết định đi sâu vào Go dựa trên hoàn cảnh của tôi. Tôi cho rằng có một cuộc so sánh giữa Golang và Python và Python có vẻ như là người chiến thắng cho ngôn ngữ lập trình để tự động hóa mạng.

  • Nornir là thứ cần đề cập ở đây, một framework tự động hóa được viết bằng Python. Nó tương tự như Ansible nhưng cụ thể là xung quanh việc tự động hóa mạng. Nornir documentation

Phân tích API – Postman là một công cụ tuyệt vời để phân tích API RESTful. Giúp xây dựng, kiểm tra và sửa đổi API.

  • POST >>> Để tạo các đối tượng tài nguyên.
  • GET >>> Để truy xuất tài nguyên.
  • PUT >>> Để tạo hoặc thay thế tài nguyên.
  • PATCH >>> Để tạo hoặc cập nhật đối tượng tài nguyên.
  • Delete >>> Để xóa tài nguyên

Postman tool Download

Các công cụ khác cần đề cập

Cisco NSO (Network Services Orchestrator)

NetYCE – Simplify Network Automation

Network Test Automation

Trong những mục tiếp theo, tôi sẽ cung cấp nhiều hơn các bài thực hành với một số nội dung chúng ta đã đề cập và thực hiện một số công việc xung quanh Python và Tự động hóa mạng.

1 2Next page

Leave a Reply

Your email address will not be published. Required fields are marked *

Back to top button