I will start a series of posts on the new CCNA DevNet certification. I will keep my SOP of going through the curriculum and google the concepts for you. I will try to include Youtube videos of some of the topics that have more hands-on exercises. The certification name is Cisco Certified DevNet Associate. The first topic if about software development and design. It includes some essential topics that I synthesize in the rest of this post.
1.0 Software Development and Design – Compare data formats (XML, JSON, YAML)
The formats XML, JSON, and YAML are data-serialization formats, from Wikipedia: In computer science, in the context of data storage, serialization (or serialisation) is the process of translating data structures or object state into a format that can be stored (for example, in a file or memory buffer) or transmitted (for example, across a network connection link) and reconstructed later (possibly in a different computer environment). When the resulting series of bits is reread according to the serialization format, it can be used to create a semantically identical clone of the original object.
Mostly you will probably accomplish your task with any of the three. If you are a javascript developer, you will probably feel more comfortable with JSON (JavaScript Object Notation), or if you code in Python, you might stick to YAML (YAML Ain’t Markup Language). The XML (eXtensible Markup Language) format comes from the World Wide Web Consortium (W3C).
One difference between them is the format used by each. The XML uses tags like HTML, JSON uses objects in attribute-value pairs, and YAML uses indentation like Python.
Here is a JSON snippet that I use as part of the Cisco HyperFlex Installation.
{ "esx": { "XX1": { "ipaddress": "10.10.10.101", "hostname": "ESXi01" }, "XX2": { "ipaddress": "10.10.10.102", "hostname": "ESXi02" }, "XX3": { "ipaddress": "10.10.10.103", "hostname": "ESXi03" } } }
The previous example means that I have something called “esx”, which is the Hypervisor, and that I have three of them (XX1-XX3). Each has an IP address and a hostname. In XML it should like this:
<?xml version="1.0" encoding="UTF-8"?>
<esx>
<XX1>
<hostname>ESXi01</hostname>
<ipaddress>10.10.10.101</ipaddress>
</XX1>
<XX2>
<hostname>ESXi02</hostname>
<ipaddress>10.10.10.102</ipaddress>
</XX2>
<XX3>
<hostname>ESXi03</hostname>
<ipaddress>10.10.10.103</ipaddress>
</XX3>
</esx>
And in YAML, it should be something like this:
--- esx: XX1: ipaddress: 10.10.10.101 hostname: ESXi01 XX2: ipaddress: 10.10.10.102 hostname: ESXi02 XX3: ipaddress: 10.10.10.103 hostname: ESXi03
I used two free online tools to convert one format to the other.
It is recommended to use the builtin libraries and not make your own to avoid mistakes. For example, javascript uses the JSON.parse() method, and python uses the JSON library. Example of use of the JSON library:
import json json_string = '{"name": "Jason", "last_name":"Parser"}' parsed_json = json.loads(json_string) print(parsed_json['name']) "Jason"
That is all for this post, I will publish periodically to add more sections to the software development and design topic:
- Describe parsing of common data format (XML, JSON, YAML) to Python data structures
- Describe the concepts of test-driven development
- Compare software development methods (agile, lean, waterfall)
- Explain the benefits of organizing code into methods/ functions, classes, and modules
- Identify the advantages of common design patterns (MVC and Observer)
- Explain the advantages of version control
- Utilize common version control operations with Git
One thought on “CCNA DevNet Study Guide – Part 1”