Network Programmability and Automation. Skills for the Next-Generation Network Engineer

- Autorzy:
- Jason Edelman, Scott S. Lowe, Matt Oswalt


- Ocena:
- Bądź pierwszym, który oceni tę książkę
- Stron:
- 584
- Dostępne formaty:
-
ePubMobi
Opis ebooka: Network Programmability and Automation. Skills for the Next-Generation Network Engineer
Like sysadmins before them, network engineers are finding that they cannot do their work manually anymore. As the field faces new protocols, technologies, delivery models, and a pressing need for businesses to be more agile and flexible, network automation is becoming essential. This practical guide shows network engineers how to use a range of technologies and tools—including Linux, Python, JSON, and XML—to automate their systems through code.
Network programming and automation will help you simplify tasks involved in configuring, managing, and operating network equipment, topologies, services, and connectivity. Through the course of the book, you’ll learn the basic skills and tools you need to make this critical transition.
This book covers:
- Python programming basics: data types, conditionals, loops, functions, classes, and modules
- Linux fundamentals to provide the foundation you need on your network automation journey
- Data formats and models: JSON, XML, YAML, and YANG for networking
- Jinja templating and its applicability for creating network device configurations
- The role of application programming interfaces (APIs) in network automation
- Source control with Git to manage code changes during the automation process
- How Ansible, Salt, and StackStorm open source automation tools can be used to automate network devices
- Key tools and technologies required for a Continuous Integration (CI) pipeline in network operations
Wybrane bestsellery
-
W tej książce znajdziesz solidne podstawy pozwalające zapewnić sieci programowalność i zautomatyzowanie jej pracy. Dowiesz się, jakie narzędzia i umiejętności będą potrzebne do dokonania tego kluczowego przekształcenia w sieć nowej generacji. W bardzo przystępny i praktyczny sposób wyjaśniono, ja...
Programowalność i automatyzacja sieci. Poradnik inżyniera sieci następnej generacji Programowalność i automatyzacja sieci. Poradnik inżyniera sieci następnej generacji
(53.40 zł najniższa cena z 30 dni)57.85 zł
89.00 zł(-35%) -
Explore everything you need to know to set up secure remote access, harden your firewall deployment, and protect against phishing
-
Set up next-generation firewalls from Palo Alto Networks and get to grips with configuring and troubleshooting using the PAN-OS platform
-
Take your network automation skills to the next level with practical recipes on managing network devices from a variety of vendors like Cisco, Juniper, and Arista
-
Understand how to use service mesh architecture to efficiently manage and safeguard microservices-based applications with the help of examples
-
Understand all aspects of building a successful online store which is search-engine-optimized, using theme management and one-page checkout features
-
Proven methodologies and concurrency techniques that will help you write faster and better code with Go programming
-
Become well-versed with basic networking concepts such as routing, switching, and subnetting, and prepare for the Microsoft 98-366 exam
-
Apply deep learning techniques and neural network methodologies to build, train, and optimize generative network models
Hands-On Generative Adversarial Networks with PyTorch 1.x Hands-On Generative Adversarial Networks with PyTorch 1.x
-
A comprehensive guide to developing neural network-based solutions using TensorFlow 2.0
O autorach ebooka
Jason Edelman jest inżynierem sieciowym. Specjalizuje się w zagadnieniach oprogramowania, praktykach jego wytwarzania i konwergencji z inżynierią sieciową. Prowadzi małą firmę consultingową Network to Code.
Scott S. Love jest inżynierem architektury w firmie VMware. Jego ulubioną dziedziną jest przetwarzanie w chmurze i wirtualizacja sieci. Napisał kilka książek na temat vSphere i OpenStack
Matt Oswalt jest sieciowym deweloperem oprogramowania. Zajmuje się technicznymi i nietechnicznymi wyzwaniami współdziałania oprogramowania z infrastrukturą sieci.
Kup polskie wydanie:
Programowalność i automatyzacja sieci. Poradnik inżyniera sieci następnej generacji
- Autor:
- Jason Edelman, Scott S. Lowe, Matt Oswalt
48,95 zł
89,00 zł
(44.50 zł najniższa cena z 30 dni)
Ebooka przeczytasz na:
-
czytnikach Inkbook, Kindle, Pocketbook i innych
-
systemach Windows, MacOS i innych
-
systemach Windows, Android, iOS, HarmonyOS
-
na dowolnych urządzeniach i aplikacjach obsługujących formaty: PDF, EPub, Mobi
Masz pytania? Zajrzyj do zakładki Pomoc »
Audiobooka posłuchasz:
-
w aplikacji Ebookpoint na Android, iOS, HarmonyOs
-
na systemach Windows, MacOS i innych
-
na dowolnych urządzeniach i aplikacjach obsługujących format MP3 (pliki spakowane w ZIP)
Masz pytania? Zajrzyj do zakładki Pomoc »
Kurs Video zobaczysz:
-
w aplikacji Ebookpoint na Android, iOS, HarmonyOs
-
na systemach Windows, MacOS i innych
-
na dowolnych urządzeniach i aplikacjach obsługujących format MP4 (pliki spakowane w ZIP)
Szczegóły ebooka
- ISBN Ebooka:
- 978-14-919-3131-8, 9781491931318
- Data wydania ebooka:
-
2018-02-02
Data wydania ebooka często jest dniem wprowadzenia tytułu do sprzedaży i może nie być równoznaczna z datą wydania książki papierowej. Dodatkowe informacje możesz znaleźć w darmowym fragmencie. Jeśli masz wątpliwości skontaktuj się z nami sklep@ebookpoint.pl.
- Język publikacji:
- angielski
- Rozmiar pliku ePub:
- 6.4MB
- Rozmiar pliku Mobi:
- 15.8MB
Spis treści ebooka
- Preface
- What This Book Covers
- How This Book Is Organized
- Who Should Read This Book
- Network Engineers
- Prerequisites
- Network Engineers
- Systems Administrators
- Prerequisites
- Software Developers
- Prerequisites
- Tools Used in this Book
- Online Resources
- Conventions Used in This Book
- OReilly Safari
- How to Contact Us
- Acknowledgments
- 1. Network Industry Trends
- The Rise of Software Defined Networking
- OpenFlow
- Why OpenFlow?
- OpenFlow
- What Is Software Defined Networking?
- OpenFlow
- Network Functions Virtualization
- Virtual switching
- Network virtualization
- Device APIs
- Network automation
- Bare-metal switching
- Data center network fabrics
- SD-WAN
- Controller networking
- The Rise of Software Defined Networking
- Summary
- 2. Network Automation
- Why Network Automation?
- Simplified Architectures
- Deterministic Outcomes
- Business Agility
- Why Network Automation?
- Types of Network Automation
- Device Provisioning
- Data Collection
- Migrations
- Configuration Management
- Compliance
- Reporting
- Troubleshooting
- Evolving the Management Plane from SNMP to Device APIs
- Application Programming Interfaces (APIs)
- SNMP
- SSH/Telnet and the CLI
- NETCONF
- RESTful APIs
- Application Programming Interfaces (APIs)
- Impact of Open Networking
- Network Automation in the SDN Era
- Summary
- 3. Linux
- Examining Linux in a Network Automation Context
- A Brief History of Linux
- Linux Distributions
- Red Hat Enterprise Linux, Fedora, and CentOS
- Debian, Ubuntu, and Other Derivatives
- Other Linux Distributions
- Interacting with Linux
- Navigating the Filesystem
- Manipulating Files and Directories
- Creating files and directories
- Deleting files and directories
- Moving, copying, and renaming files and directories
- Changing permissions
- Running Programs
- Working with Daemons
- Working with background services in Debian GNU/Linux 8.1
- Working with background services in Ubuntu Linux 14.04 LTS
- Working with background services in CentOS 7.1
- Other daemon-related commands
- Networking in Linux
- Working with Interfaces
- Interface configuration via the command line
- Listing interfaces
- Enabling/disabling an interface
- Setting the MTU of an interface
- Assigning an IP address to an interface
- Interface configuration via the command line
- Interface configuration via configuration files
- Using VLAN interfaces
- Creating, configuring, and deleting VLAN interfaces
- Use cases for VLAN interfaces
- Working with Interfaces
- Routing as an End Host
- Routing as a Router
- Bridging (Switching)
- Practical use case for bridging
- Creating and configuring linux bridges
- Summary
- 4. Learning Python in a Network Context
- Should Network Engineers Learn to Code?
- Using the Python Interactive Interpreter
- Understanding Python Data Types
- Learning to Use Strings
- Using built-in methods of strings
- Using the upper() and lower() methods
- Using the startswith() and endswith() methods
- Using the strip() method
- Using the isdigit() method
- Using the count() method
- Using the format() method
- Using the join() and split() methods
- Using built-in methods of strings
- Learning to Use Strings
- Learning to Use Numbers
- Performing mathematical operations
- Learning to Use Booleans
- Learning to Use Python Lists
- Using built-in methods of Python lists
- Using the append() method
- Using the insert() method
- Using the count() method
- Using the pop() and index() methods
- Using the sort() method
- Using built-in methods of Python lists
- Learning to Use Python Dictionaries
- Using built-in methods of Python dictionaries
- Using the get() method
- Using the keys() and values() methods
- Using the pop() method
- Using the update() method
- Using the items() method
- Using built-in methods of Python dictionaries
- Learning About Python Sets and Tuples
- Adding Conditional Logic to Your Code
- Understanding Containment
- Using Loops in Python
- Understanding the while Loop
- Understanding the for Loop
- Using the enumerate() function
- Using Python Functions
- Working with Files
- Reading from a File
- Writing to a File
- Creating Python Programs
- Creating a Basic Python Script
- Understanding the Shebang
- Migrating Code from the Python Interpreter to a Python Script
- Working with Python Modules
- Passing Arguments into a Python Script
- Using pip and Installing Python Packages
- Learning Additional Tips, Tricks, and General Information When Using Python
- Summary
- 5. Data Formats and Data Models
- Introduction to Data Formats
- Types of Data
- Introduction to Data Formats
- YAML
- Reviewing YAML Basics
- Working with YAML in Python
- Data Models in YAML
- XML
- Reviewing XML Basics
- Using XML Schema Definition (XSD) for Data Models
- Transforming XML with XSLT
- Searching XML Using XQuery
- JSON
- Reviewing JSON Basics
- Working with JSON in Python
- Using JSON Schema for Data Models
- Data Models Using YANG
- YANG Overview
- Taking a Deeper Dive into YANG
- Summary
- 6. Network Configuration Templates
- The Rise of Modern Template Languages
- Using Templates for Web Development
- Expanding On the Use of Templates
- The Rise of Modern Template Languages
- The Value of Templates in Network Automation
- Jinja for Network Configuration Templates
- Why Jinja?
- Dynamically Inserting Data into a Basic Jinja Template
- Rendering a Jinja Template File in Python
- Conditionals and Loops
- Using conditional logic to create a switchport configuration
- Using a loop to create many switchport configurations
- Using a loop and conditionals to create switchport configurations
- Looping over variables in a for loop to generate configurations
- Generating interface configurations from a list of dictionaries
- Jinja Filters
- Using the upper Jinja filter
- Chaining Jinja filters
- Creating custom Jinja filters
- Using existing Python code as a Jinja filter
- Template Inheritance in Jinja
- Variable Creation in Jinja
- Summary
- 7. Working with Network APIs
- Understanding Network APIs
- Getting Familiar with HTTP-Based APIs
- Understanding RESTful APIs
- Understanding HTTP request types
- Understanding HTTP response codes
- Understanding RESTful APIs
- Understanding non-RESTful HTTP-based APIs
- Getting Familiar with HTTP-Based APIs
- Understanding Network APIs
- Diving into NETCONF
- Learning the NETCONF protocol stack
- Transport
- Messages
- Operations
- Content
- Learning the NETCONF protocol stack
- Exploring Network APIs
- Exploring HTTP-Based APIs
- cURL
- Exploring HTTP-based APIs with Postman
- Exploring HTTP-Based APIs
- Exploring NETCONF
- Automating Using Network APIs
- Using the Python requests Library
- Getting familiar with Cisco NX-API
- Using the NX-API Developer Sandbox
- Consuming NX-API in a Python script
- Using NX-API from the Python interactive interpreter
- Understanding the JSON response of an HTTP-based API
- Exploring more NX-API examples with Python scripts
- Passing a show command into the script
- Passing in configuration commands to the script
- Getting familiar with Cisco NX-API
- Getting familiar with Arista eAPI
- Using the eAPI Command Explorer
- Consuming eAPI in a Python script
- Optimizing the eAPI script
- Using eAPI to autoconfigure interface descriptions based on LLDP data
- Using the Python requests Library
- Getting familiar with RESTCONF on IOS-XE
- Executing an API call using RESTCONF
- Navigating a RESTCONF API response
- Using HTTP verbs PUT and PATCH with RESTCONF on IOS-XE
- Using Python to consume the IOS-XE RESTCONF API
- Understanding declarative configuration management
- Using the Python ncclient Library
- Understanding the Manager object
- Exploring the get method
- Understanding the Manager object
- Retrieving Cisco IOS-XE device configurations with ncclient
- Viewing an ncclient NETCONF reply
- Exploring more attributes of the ncclient reply
- Adding to the query filter to minimize the response data
- Retrieving Juniper vMX Junos device configurations with ncclient
- Making Cisco IOS-XE configuration changes with ncclient
- Performing a NETCONF delete operation with ncclient
- Performing a NETCONF replace operation with ncclient
- Making Juniper vMX Junos configuration changes with ncclient
- Making Cisco IOS-XR configuration changes with ncclient
- Understanding vendor-specific NETCONF operations
- Using netmiko
- Verify the device prompt
- Enter configuration mode
- Send commands
- Summary
- 8. Source Control with Git
- Use Cases for Source Control
- Benefits of Source Control
- Change Tracking
- Accountability
- Process and Workflow
- Benefits of Source Control for Networking
- Enter Git
- Brief History of Git
- Git Terminology
- Overview of Gits Architecture
- Working with Git
- Installing Git
- Creating a Repository
- Adding Files to a Repository
- Committing Changes to a Repository
- Providing user information to Git
- Committing changes
- Recommendations for committing changes
- Amending commits
- Changing and Committing Tracked Files
- Unstaging Files
- Excluding Files from a Repository
- Excluding files per-repository
- Excluding files globally
- Viewing More Information About a Repository
- Viewing basic log information
- Viewing brief log information
- Drilling into information on specific commits
- Distilling Differences Between Versions of Files
- Examining differences between commits
- Viewing other types of differences
- Branching in Git
- Creating a Branch
- Checking Out a Branch
- Merging and Deleting Branches
- Reviewing fast-forward merges
- Deleting a branch
- Reviewing merges with a merge commit
- Collaborating with Git
- Collaborating Between Multiple Systems Running Git
- Linking repositories with remotes
- Fetching and merging information from remote repositories
- Pulling information from remote repositories
- Cloning repositories
- Extending our working model across multiple systems
- Using a shared repository
- Pushing changes to a shared repository
- Collaborating Between Multiple Systems Running Git
- Collaborating Using Git-Based Online Services
- Forking repositories
- Keeping forked repositories in sync
- Pull requests
- Summary
- 9. Automation Tools
- Reviewing Automation Tools
- Using Ansible
- Understanding How Ansible Works
- Automating Linux servers
- Automating network devices
- Understanding How Ansible Works
- Constructing an Inventory File
- Working with inventory groups
- Using nested groups in an inventory file
- Using variables in Ansible
- Managing group variables
- Managing host variables
- Understanding variable priority
- Getting familiar with the all group
- Executing an Ansible Playbook
- Understanding tasks in an Ansible playbook
- Getting familiar with Ansible modules
- Executing a playbook
- Using Variable Files
- Group-based variable files
- Using host-based variable files
- Writing Ansible Playbooks for Network Automation
- Breaking down common core network modules
- Creating and using configuration templates
- Creating variable files
- Creating Jinja templates
- Generating network configuration files
- Ensuring a configuration exists
- Understanding idempotency
- Using the config module
- Understanding check mode, verbosity, and limit
- Gathering and viewing network data
- Using the core facts modules
- Using the debug module
- Issuing show commands and writing data to a file
- Using the register task attribute
- Performing compliance checks
- Generating reports
- Using Third-Party Ansible Modules
- Getting familiar with NTC modules
- Getting familiar with NAPALM modules
- Being aware of non-core vendor modules
- Installing third-party modules
- Ansible Summary
- Automating with Salt
- Understanding the Salt Architecture
- Using Salt in an agentless architecture with salt-ssh
- Using Salt in an agentless architecture with proxy minions
- Automating network devices with Salt
- Understanding the Salt Architecture
- Getting Familiar with Salt
- Understanding the SLS file format
- Understanding pillars
- Understanding the top file
- Understanding grains
- Using execution modules
- Collecting device data using network modules
- Understanding targeting and compound matching
- Verifying minions are up with the test module
- Viewing module and function docstrings
- Understanding different output options for modules
- Sending data to external services
- Understanding states, state SLS files, and state modules
- Understanding the state SLS
- State modules for network automation
- Updating the master configuration file
- Updating the minion and proxy minion configuration file
- Managing Network Configurations with Salt
- Accessing data within templates
- Creating Jinja network configuration templates
- Deploying network configurations with netconfig
- Using state dependencies
- Generating network configuration files
- Generating and deploying network configurations from files
- Parameterizing configuration filenames
- Scheduling state execution
- Generating reports
- Executing Salt Functions Remotely
- Using the Salt API
- Shaking it up with salt and pepper
- Diving into Salts Event-Driven Infrastructure
- Watching external processes with beacons
- Forwarding events with engines
- Listening to the salt bus with reactors
- Adding business logic using Thorium
- Diving into Salt a Bit Further
- Understanding small database queries (SDB)
- Understanding the Salt cache
- Understanding Salt logging
- Extending Salt
- Salt Summary
- Event-Driven Network Automation with StackStorm
- StackStorm Concepts
- StackStorm Architecture
- Actions and Workflows
- Sensors and Triggers
- Rules
- StackStorm Summary
- Summary
- 10. Continuous Integration
- Important Prerequisites
- Simple Is Better
- People, Process, and Technology
- Learn to Code
- Important Prerequisites
- Introduction to Continuous Integration
- Basics of Continuous Integration
- Continuous Delivery
- Test-Driven Development
- Why Continuous Integration for Networking?
- A Continuous Integration Pipeline for Networking
- Peer Review
- Build Automation
- Test/Dev/Staging Environment
- Deployment Tools
- Testing Tools and Test-Driven Network Automation
- Summary
- 11. Building a Culture for Network Automation
- Organizational Strategy and Flexibility
- Transforming an Old-World Organization
- The Importance of Executive Buy-in
- Build Versus Buy
- Organizational Strategy and Flexibility
- Embracing Failure
- Skills and Education
- Learn What You Dont Know
- Focus on Fundamentals
- Certifications?
- Wont Automation Take My Job?!
- Summary
- A. Advanced Networking in Linux
- Using macvlan Interfaces
- Use Cases for macvlan Interfaces
- Creating, Configuring, and Deleting macvlan Interfaces
- Using macvlan Interfaces
- Networking Virtual Machines
- Using a Bridge
- Using macvtap Interfaces
- Working with Network Namespaces
- Use Cases for Network Namespaces
- Creating and Removing Network Namespaces
- Placing Interfaces in a Network Namespace
- Executing Commands in a Network Namespace
- Connecting Network Namespaces with veth Pairs
- Networking Linux Containers
- Configuring LXC Networking
- Configuring Docker Networking
- Using Open vSwitch
- Installing OVS
- Configuring OVS
- Connecting Workloads to OVS
- Connecting network namespaces with OVS
- Using containers with OVS
- Using VMs with OVS
- Using OVS internal ports
- B. Using NAPALM
- Understanding Configuration Management in NAPALM
- Performing a Configuration Replace
- Performing a Configuration Merge
- Understanding Configuration Management in NAPALM
- Retrieving Data with NAPALM
- NAPALM Integrations
- Using NAPALM in Ansible
- Using NAPALM in Salt
- Using NAPALM in StackStorm
- Index
O'Reilly Media - inne książki
-
Combing the web is simple, but how do you search for data at work? It's difficult and time-consuming, and can sometimes seem impossible. This book introduces a practical solution: the data catalog. Data analysts, data scientists, and data engineers will learn how to create true data discovery in ...(228.65 zł najniższa cena z 30 dni)
228.65 zł
269.00 zł(-15%) -
This updated edition of the Nutshell guide not only helps experienced Java programmers get the most out of versions through Java 17, it also serves as a learning path for new developers. Chock-full of examples that demonstrate how to take complete advantage of modern Java APIs and development bes...(228.65 zł najniższa cena z 30 dni)
228.65 zł
269.00 zł(-15%) -
Get started with Ray, the open source distributed computing framework that simplifies the process of scaling compute-intensive Python workloads. With this practical book, Python programmers, data engineers, and data scientists will learn how to leverage Ray locally and spin up compute clusters. Y...(228.65 zł najniższa cena z 30 dni)
228.65 zł
269.00 zł(-15%) -
Remove your doubts about AI and explore how this technology can be future-proofed using blockchain's smart contracts and tamper-evident ledgers. With this practical book, system architects, software engineers, and systems solution specialists will learn how enterprise blockchain provides permanen...(271.15 zł najniższa cena z 30 dni)
271.15 zł
319.00 zł(-15%) -
FinOps brings financial accountability to the variable spend model of cloud. Used by the majority of global enterprises, this management practice has grown from a fringe activity to the de facto discipline managing cloud spend. In this book, authors J.R. Storment and Mike Fuller outline the proce...(271.15 zł najniższa cena z 30 dni)
271.15 zł
319.00 zł(-15%) -
Edge AI is transforming the way computers interact with the real world, allowing IoT devices to make decisions using the 99% of sensor data that was previously discarded due to cost, bandwidth, or power limitations. With techniques like embedded machine learning, developers can capture human intu...(271.15 zł najniższa cena z 30 dni)
271.15 zł
319.00 zł(-15%) -
Why is it difficult for so many companies to get digital identity right? If you're still wrestling with even simple identity problems like modern website authentication, this practical book has the answers you need. Author Phil Windley provides conceptual frameworks to help you make sense of all ...(194.65 zł najniższa cena z 30 dni)
194.65 zł
229.00 zł(-15%) -
Python was recently ranked as today's most popular programming language on the TIOBE index, thanks to its broad applicability to design and prototyping to testing, deployment, and maintenance. With this updated fourth edition, you'll learn how to get the most out of Python, whether you're a profe...(305.15 zł najniższa cena z 30 dni)
305.15 zł
359.00 zł(-15%) -
With the accelerating speed of business and the increasing dependence on technology, companies today are significantly changing the way they build in-house business solutions. Many now use low-code and no code technologies to help them deal with specific issues, but that's just the beginning. Wit...
Building Solutions with the Microsoft Power Platform Building Solutions with the Microsoft Power Platform
(262.65 zł najniższa cena z 30 dni)271.15 zł
319.00 zł(-15%) -
Companies are scrambling to integrate AI into their systems and operations. But to build truly successful solutions, you need a firm grasp of the underlying mathematics. This accessible guide walks you through the math necessary to thrive in the AI field such as focusing on real-world application...(271.15 zł najniższa cena z 30 dni)
271.15 zł
319.00 zł(-15%)
Dzieki opcji "Druk na żądanie" do sprzedaży wracają tytuły Grupy Helion, które cieszyły sie dużym zainteresowaniem, a których nakład został wyprzedany.
Dla naszych Czytelników wydrukowaliśmy dodatkową pulę egzemplarzy w technice druku cyfrowego.
Co powinieneś wiedzieć o usłudze "Druk na żądanie":
- usługa obejmuje tylko widoczną poniżej listę tytułów, którą na bieżąco aktualizujemy;
- cena książki może być wyższa od początkowej ceny detalicznej, co jest spowodowane kosztami druku cyfrowego (wyższymi niż koszty tradycyjnego druku offsetowego). Obowiązująca cena jest zawsze podawana na stronie WWW książki;
- zawartość książki wraz z dodatkami (płyta CD, DVD) odpowiada jej pierwotnemu wydaniu i jest w pełni komplementarna;
- usługa nie obejmuje książek w kolorze.
W przypadku usługi "Druk na żądanie" termin dostarczenia przesyłki może obejmować także czas potrzebny na dodruk (do 10 dni roboczych)
Masz pytanie o konkretny tytuł? Napisz do nas: sklep[at]helion.pl.
Książka, którą chcesz zamówić pochodzi z końcówki nakładu. Oznacza to, że mogą się pojawić drobne defekty (otarcia, rysy, zagięcia).
Co powinieneś wiedzieć o usłudze "Końcówka nakładu":
- usługa obejmuje tylko książki oznaczone tagiem "Końcówka nakładu";
- wady o których mowa powyżej nie podlegają reklamacji;
Masz pytanie o konkretny tytuł? Napisz do nas: sklep[at]helion.pl.


Oceny i opinie klientów: Network Programmability and Automation. Skills for the Next-Generation Network Engineer Jason Edelman, Scott S. Lowe, Matt Oswalt (0)
Weryfikacja opinii następuję na podstawie historii zamówień na koncie Użytkownika umieszczającego opinię. Użytkownik mógł otrzymać punkty za opublikowanie opinii uprawniające do uzyskania rabatu w ramach Programu Punktowego.