Everything started with Virtualization products (such as VMware) then Data Centers came (Cisco Nexus & UCS) that leads to Cloud Computing (Microsoft Azure , Google Cloud & Amazon AWS) then the needs of containers pop up (Dockers) and that is why Microsoft added a complete chapter for how to use docker on windows 2016 server
Same time we used to have Network functions virtualization NFV (Virtual Router, Switch, Firewall,IPS..etc) which leads to even having Virtual switch independent products ( VMware VSS,VDS/ Cisco Nexus 1000v /AVS/OVS).
Then we got the new term “Network Virtualization" where a complete network is just virtualized, solutions such as VXLAN provide us this concept where you can had a complete virtual layer 2 network overlay Physical layer network.
Story continue, Devices now had API (such as Cisco NX-API / Cisco onePK / eAPI)
What is API?
API specifies how software components should interact.
Additionally, APIs are used when programming graphical user interface (GUI) components.
imagine you create an App with many functionalities and one of them based in Google Map then you will need API provided by Google Map to let your App talk it.
APIs use REST , JSON , NETCONF & YANG .
Modern API communicates and exchange data via web-based technologies such as REST API .
REST API connections use HTTP & HTTPS methods and data format
HTTP & HTTPS methods and data format send as JSON (based in Java Script) or XML or YAML.
Remember fundamentals of HTML & CSS required to understand fundamentals of XML
And all this will be completed when you understand how HTTP and HTTPS( HTTP+SSL/TLS) work
Since we talk about API , remember to study the most two important API used in IOS-XE :
REST API and RESTCONF API.
Also we see nowadays NETCONF protocol
NETCONF replace SNMP and will use YANG as data format to replace MIBs which normally used in SNMP with silly numbers representing objects such as number represent Router hostname ( these MIB numbers called OID Object Identifiers)
For more info about NETCONF & YANG:
tail-f.com is part of Cisco now. they create a series of free videos training to explain what is ConfD , NETCONF and YANG
Same time OpenFlow protocol shown years ago to provide separation of control plane and data plane , and we start using SDN controllers, and nowadays we use The Jewel in the Crown of SDN solutions which Cisco ACI
SDN lead us to have Infrastructure as Code [IaC] , where we can automate network Tasks using Configuration management tools such as Chef,Ansible,Puppet ,Jerkins
Introduction to SDN
What is Cisco ACI?
So it looks we will keep having new versions of our software and configurations then we should use Version control system such as Git.
Also mastering programing language such as Python is a must to complete many Automation tasks.
Now, we need to learn Linux since many tools run on it such as Ansible or even using python to create automation script or even use full Linux distro just act as network equipment such as Cumulus Networks. (www.cumulusnetworks.com).
Automation refers to completing a single task, such as deploying a virtual machine, shutting down an interface, or generating a report.
Orchestration refers to assembling/coordinating a process/workflow, which is effectively and ordered set of tasks glued together with conditions.
For example, deploy this virtual machine, and if it fails, shut down this interface and generate a report. Automation is to task as orchestration is to process/workflow.
What this entire means?
All this means developers (programmers) and operations (Network, Database & system admins) should be in the same department to fill the gap, and this leads to have DevOps concept.
Devops leads to understanding not only automation tools such as Chef,Ansible, Puppet but also we should have the programmer mindset and understand software development methodologies such as agile scrum with LEAN in mind and frameworks such as ITIL..etc.
So , DevOps emphasizes the collaboration and communication of both software developers and other information technology (IT) professionals
Nowadays developers and operations should act in same Business Unit without any barriers
[Dev] means developers, all people involved in developing the product.
[Ops] means system engineer, system admins, operation staff, DBAs , sec professional, net engineer.
[Dev] means makers.
[Ops] means people that deal with the creation after it birth.
Normally we used to have:
- one team write the code developers
- one team to test it developers
- one team to deploy it operators
- one team to operate it operators
Developers created SDN solution or just simple Networking application.
Operations represented by Network administrators will implement and use this application.
Feedbacks here in both direction and without delay since both working together in the same department or Business Unit
DevOps Core Values called CAMS
- Culture, it is sum total of behavior and mindset of Organization, supported and enhanced by values and beliefs of that org
- Automation such as after knowing our culture we use automation tools such as Puppet , Chef But remember People over Process over Tools
- Metrics used to measure usage, performance and capacity and so on.
- Sharing such as sharing ideas & codes with help of Kaizen approach and tools such as GIT
A simple list of DevOps Tools
- ELK – Elasticsearch, Logstash, Kibana
- Apache Maven
- JIRA Software
There is no single DevOps tool can give you all that you need, that is why we had the concept of Devops toolchain.
A DevOps toolchain is a set or combination of tools that aid in the delivery, development, and management of applications throughout the software development lifecycle, as coordinated by an organization that uses DevOps practices.
The story did finish yet, nowadays viptela.com become part of Cisco , one of the leaders in (SD-WAN) Software Defined WAN
What SD-WAN means?
It means WAN will Never be the same anymore, imagine single SDN controller manage all VRFs in SP edge routers.
SD-WAN is not only based in viptela but also based in many technologies we used to work with but individually such as DMVPN
Software-defined wide area networking (SD-WAN) is a specific application of software-defined networking (SDN) technology applied to WAN connections, which are used to connect enterprise networks – including branch offices and data centers – over large geographic distances.
Intelligent WAN (iWAN) is the name of Cisco’s SD-WAN product that was built from an existing Cisco product (also called iWAN). Cisco’s iWAN provides traffic control and security features for the WAN that has been integrated into Cisco branch-office routers. Cisco says its iWAN product provides customers with capabilities similar to MPLS VPN, such as quality of service, WAN optimization, and VPN tunneling.
Technologies used in Cisco iWAN:
- Secure DMVPN
- Direct Internet Access (DIA)
- Cisco Cloud Web Security (CWS).
- Application Policy Infrastructure Controller—Enterprise Module (APIC-EM)
Cisco IWAN uses Dynamic Multipoint VPN (DMVPN) to provide transport independence via overlay routing.
Overlay routing provides transport independence so that a customer can select any WAN technology: MPLS VPN (L2 or L3), metro Ethernet, direct Internet, broadband,cellular 3G/4G/LTE, or high-speed radios. Transport independence makes it easy to mix and match transport options or change SPs to meet business requirements.
Finally, all of this leads to one thing, NetDevOps" has been born.
With NetDevOps, DevOps has come to networking.
When you use DevOps principles in your network especially your data centers then we are talking NetDevOps.
NetDevOps is applying DevOps principles and techniques to utilizing a software programmable network to manage, deploy, and run applications.
Nothing better to learn more than going to Cisco DevNet site
TOP DevOops Configuration Management, Automation tools & Containerization which made Infrastructure as Code:
- Puppet Configuration Management & Automation tool
- Chef Configuration Management & Automation tool
- CFEngine Configuration Management & Automation tool
- Ansible Configuration Management & Automation tool
- PowerShell Desired State Configuration (DSC)
- Docker Containerization
- Kubernetes Containerization
Puppet is a language for describing the desired state of your infrastructure, and a set of tools to enforce that state.
The language itself is less about describing tasks or procedures and more about describing the desired state of your nodes.
If you are not familiar with Puppet, it is roughly equivalent to PowerShell Desired State Configuration (DSC), a PowerShell technology that’s built into modern versions of Windows.
Both Puppet and DSC are configuration management tools that allow system administrators and developers to define how servers should be configured using a declarative syntax.
(Although Microsoft has developed a DSC agent for Linux)
Also, we can use Ansible as the orchestration engine to deliver DSC configurations to servers
Ansible developed by Red Hat ,used to: Automate apps and IT infrastructure, Application Deployment, Configuration Management & Continuous Delivery.
Docker is a container technology for Linux & Windows that allows a developer to package up an application with all of the parts it needs. (more about it in my next article about how to use it under windows server 2016 and Linux)
Vagrant provides easy to configure, reproducible, and portable work environments built on top of industry-standard technology and controlled by a single consistent workflow to help maximize the productivity and flexibility of you and your team.
To achieve its magic, Vagrant stands on the shoulders of giants. Machines are provisioned on top of VirtualBox, VMware, AWS, or any other provider. Then, industry-standard provisioning tools such as shell scripts, Chef, or Puppet, can automatically install and configure software on the virtual machine.
Jenkins helps to automate the non-human part of the software development process, with continuous integration and facilitating technical aspects of continuous delivery. It is a server-based system that runs in servlet containers such as Apache Tomcat. It supports version control tools, including AccuRev, CVS, Subversion, Git, Mercurial, Perforce, ClearCase and RTC, and can execute Apache Ant, Apache Maven and sbt based projects as well as arbitrary shell scripts and Windows batch commands. The creator of Jenkins is Kohsuke Kawaguchi. Released under the MIT License, Jenkins is free software.
you will find few small differences between some tools such as:
1-Some tools come with client/server versions like Chef while With Ansible Nothing to install in clients, only SSH and also Python if need it in some cases
2-each tool configuration file use a different language such as Ansible uses YAML language, whereas Puppet has its own declarative language.
3-Terms used with each tool could mean the same thing but with a different name such as The configuration files, called "cookbooks" with Chef (packaged as JSON files)and "playbooks" with Ansible (packaged as YAML files)
4-Docker & Kubernetes Written in Go programming language, Puppet & Vagrant with Ruby, Chef with Ruby & Erlang , Ansible with Python , Jenkins with Java.
Resources for Cisco Professionals :
Cisco & Chef:
Cisco & Puppet
Cisco & Ansible
Cisco & Docker
Cisco & PowerShell Desired State Configuration (DSC)
Cisco & Jenkins
Cisco & Vagrant
Cisco & CFEngine
CCIE# 45694 CCSI# 34215 | CEH | MCSE | VCP | CCNP Security | CND | ITIL | CISSP |.... Cisco Champion 2016, 2017.
CCIE/CCSI: Yasser Ramzy Auda Dubai 07/24/2018