Share this
How Virtualization and Containerization are Revolutionizing Naval Operations
by Christopher Trick on May 24, 2023 3:11:46 PM
As systems across all domains of the battlespace become increasingly software-based, virtualization and containerization will play a critical role in their implementation.
In this blog, you will learn more about the differences between virtualization and containerization, how they play a critical role in enhancing modern naval applications, and how Trenton's solutions can help.
What is virtualization, and how does it work?
Virtualization is a technology that allows multiple virtual computers, called virtual machines, to run on a single physical machine. Each virtual machine runs its own operating system and applications, and is isolated from other virtual machines running on the same physical machine.
Virtualization works by creating a layer of abstraction between the operating system and the underlying hardware. The virtualization software, also known as a hypervisor, creates virtual machines that simulate the functionality of physical computers, including their own CPU, memory, and storage resources. The hypervisor manages the allocation of these resources to each virtual machine and ensures that the machines operate independently from each other.
By creating virtual machines that can run multiple operating systems and applications on a single physical machine, virtualization can help reduce hardware costs, improve resource utilization, and enable more efficient software development and deployment processes.
What is containerization, and how does it work?
Containerization is a form of operating system virtualization that allows software applications to run in isolated, portable environments called containers.
Containers package an application with all its dependencies, including libraries, configurations, and files, into a single portable unit that can be easily deployed and run consistently across different environments. Each container houses individual functions of an application called microservices.
Containerization works by utilizing the host operating system's kernel to provide resource isolation and management for the containerized application. The container engine, such as Docker or Kubernetes, provides a layer of abstraction that allows multiple containers to run on the same host without interfering with each other, and each container shares the host operating system's kernel.
Containerization can provide benefits such as increased portability, scalability, consistency, and isolation of applications and their dependencies, which can lead to more efficient and reliable software development and deployment processes.
How do virtualization and containerization work together?
At a high level, virtualization and containerization can work together by using virtualization to provision and manage the underlying infrastructure, and containerization to package and deploy the applications.
An organization can use virtualization to provision a virtual machine that runs multiple containers, each containing a different microservice. This approach can help ensure the reliability and consistency of the underlying infrastructure, while also providing the flexibility and portability of containerization.
Another way virtualization and containerization can work together is by using containers to package and deploy different parts of an application, while using virtualization to isolate and manage the environments where the containers are running. This approach can help improve the scalability and efficiency of the application while also ensuring that it runs in a secure and isolated environment.
By combining virtualization and containerization, developers can create highly scalable and efficient software development environments that are easy to manage and secure.
Learn more about the differences between virtualization and containerization here.
At a high level, virtualization and containerization can work together by using virtualization to provision and manage the underlying infrastructure, and containerization to package and deploy the applications.
Why are virtualization and containerization becoming increasingly popular for naval applications?
Virtualization and containerization are becoming increasingly important for naval applications for several reasons:
- Scalability: Virtualization and containerization allow for the dynamic allocation of resources, making it easier to scale systems up or down as needed. This is particularly important for naval applications, where the amount of resources needed can change quickly in response to changing operational conditions. Additionally, upgrades and/or maintenance can be completed in seconds without affecting the rest of the system still in operation.
- Agility: Virtualization and containerization allow for the deployment of new systems and applications quickly and easily. This can help naval applications to keep pace with the rapidly evolving threat landscape.
- Resilience: Virtualization and containerization allow for the creation of multiple redundant systems, which can help to increase overall system resilience. In the event of a failure, the system can quickly switch to a backup, reducing downtime and ensuring mission-critical systems remain operational.
- Interoperability: Virtualization and containerization allow for the integration of different systems and applications, improving overall system interoperability. This can help to ensure that different components of a system can work together seamlessly, even if they were developed by different organizations.
- Security: Virtualization and containerization can improve the overall security of naval applications. By running applications in isolated virtual environments, it becomes more difficult for attackers to compromise the system as a whole. Additionally, virtualization and containerization allow for the deployment of security-focused microservices, which can help to protect against cyber threats.
- Meeting SWaP-C requirements: Virtualization and containerization greatly reduce the amount of hardware needed, and thus, the number of resources. This, in turn, reduces the amount of space needed, hardware cost, and power requirements.
- Disaster Recovery: Virtualization and containerization make it easier to perform disaster recovery by allowing for quick creation of new virtual machines and containers to replace failed physical machines. This can help ensure the continuity of operations in case of a disaster.
The role of DevSecOps
DevSecOps is an approach to software development that emphasizes the integration of security considerations into all stages of the software development lifecycle (SDLC). This includes the design, development, testing, deployment, operations, maintenance, and upgrades of software applications.
The goal of DevSecOps is to build security into the software development process from the beginning, rather than treating it as an afterthought. This helps organizations to identify and remediate potential security vulnerabilities early in the development process, when they are easier and less expensive to address.
DevSecOps can enhance virtualization and containerization for naval applications by integrating security into the development and deployment processes. By doing so, the following can be achieved:
- Faster deployment and testing of applications: DevSecOps enables faster delivery of applications and updates, reducing the time to market and increasing the frequency of releases.
- Improved security: By incorporating security into the development process, DevSecOps can help identify and fix vulnerabilities early in the software development lifecycle, reducing the risk of security breaches and attacks.
- Increased collaboration: DevSecOps brings together developers, security teams, and operations teams to work together in a more streamlined and efficient manner, improving communication and collaboration.
- Automated security: Automated security testing and analysis can be integrated into the development process, enabling security teams to focus on higher-level security concerns and reducing the risk of human error.
In addition, both virtualization and containerization can support DevSecOps by allowing development, testing, and production environments to be easily provisioned, automated, and isolated.
This can help reduce the risk of security vulnerabilities, increase the speed and accuracy of software development and deployment, and improve collaboration between development, security, and operations teams.
DevSecOps is an approach to software development that emphasizes the integration of security considerations into all stages of the software development lifecycle (SDLC). This includes the design, development, testing, deployment, operations, maintenance, and upgrades of software applications.
By incorporating DevSecOps into the development and deployment of virtualization and containerization, the Navy can enhance the security and efficiency of their mission-critical applications.
Let's take look at some of these applications in detail.
Navy Use Cases
Integrated combat system
What is an integrated combat system?
An integrated combat system is a collection of hardware, software, and communication systems that work together to provide real-time information, command and control, and decision-making capabilities to Navy personnel.
The system provides a comprehensive view of the operational environment and enables the Navy to respond quickly and effectively to threats and changing conditions.
The components of the system can include radar systems, weapons systems, communication systems, and data processing systems, among others.
The goal of an integrated combat system is to enhance situational awareness and increase the effectiveness of Navy operations by providing real-time information, enabling rapid decision-making, and facilitating coordinated responses.
An integrated combat system for the Navy enables ships to act as a "system of systems" by allowing for seamless communication and coordination between multiple ships in a fleet, as well as with the central command center, which can be on land or at sea.
In this scenario, ships and the command center would each have their own integrated combat system. With this information, the ships can work together to carry out their missions and respond to threats in a coordinated and efficient manner.
Usually, there will be ships in a fleet that are controlled by a centralized command center, but it is also possible that there is only one ship in operation controlled by a local command center, or there is no command center at all.
(As a side note, "system of systems" can also refer to the integrated combat system itself due to its extensive capabilities.)
Why are integrated combat systems moving to software?
Integrated combat systems are moving to software for several reasons, including:
- Flexibility: Software-based systems offer greater flexibility compared to hardware-based systems. They can be updated and modified much more easily, enabling faster incorporation of new capabilities and technologies.
- Cost: Software-based systems are often more cost-effective than hardware-based systems. This is because software can be developed and produced more quickly and at a lower cost than hardware, and it can also be distributed and deployed more easily.
- Interoperability: Software-based systems can be designed to be interoperable with other systems, enabling better coordination and communication between different platforms and systems.
- Scalability: Software-based systems can be scaled up or down more easily than hardware-based systems, making them better suited for rapidly changing and unpredictable combat scenarios.
- Enhanced capabilities: Software-based systems can be designed to provide enhanced capabilities, such as improved sensor processing and data fusion, advanced decision support, and enhanced situational awareness.
The ultimate goal is to have a standard, containerized software suite that can be deployed on commercial-off-the-shelf (COTS) hardware across multiple ships in a fleet and connect multiple ships to ensure maximum situational awareness and coordinated, rapid-decision making in real-time.
One example of a hardware-based integrated combat system capability that has moved to software is radar processing. In the past, radar processing was performed using specialized hardware, such as analog-to-digital converters, signal processing boards, and other components. This hardware was specialized, expensive, and required extensive expertise to maintain and upgrade.
Today, radar processing is increasingly performed using software-based systems. The radar data is digitized and processed using software algorithms running on COTS hardware platforms, such as servers and workstations. This software-based approach offers several benefits, including improved accuracy, enhanced capabilities, and reduced cost.
For example, the software can be designed to provide advanced signal processing techniques, such as digital beamforming, to improve the accuracy of the radar data. The software can also be designed to provide enhanced target tracking and identification capabilities, and to support more advanced data fusion techniques.
Additionally, the use of COTS hardware platforms can significantly reduce the cost of the radar processing system, compared to using specialized hardware components.
How can virtualization and containerization help?
Virtualization and containerization can enhance an integrated combat system for the Navy in a number of ways. For example:
- Suppose the Navy needs to deploy a new software application that provides real-time analysis of satellite data to support maritime surveillance and reconnaissance. This application requires different software components, such as a database, a web server, and a machine learning algorithm, to work together in a seamless way.
- Using virtualization, the Navy can deploy this application on a virtual machine that is isolated from other applications and has its own set of resources, such as CPU, memory, and storage. This allows the Navy to run multiple applications on a single physical server, while ensuring that they do not interfere with each other and have sufficient resources to perform their tasks.
- To further improve the scalability and efficiency of the application, the Navy can use containerization to package the different software components of the application into separate containers. Each container can run a specific component, such as the database, the web server, or the machine learning algorithm, and communicate with other containers using a lightweight and secure network protocol. These containers run on the virtual machine.
- This approach allows the Navy to deploy, update, and manage the different components of the application independently, without affecting the overall system performance or availability. It also allows the Navy to scale the application up or down, depending on the workload and resource requirements, by adding or removing containers dynamically.
Overall, by using virtualization and containerization, the Navy can enhance its integrated combat system by providing a flexible, scalable, and secure infrastructure for running different software applications and services, which can improve its operational capabilities and effectiveness.
JADC2
What is JADC2?
JADC2 (Joint All-Domain Command and Control) is a system designed to give military commanders a comprehensive view of all domains, including air, land, sea, space, and cyber, within a tactical wide area network.
Domains communicate with one another as well as with a commander or commanders. This information is used to help commanders make informed decisions and formulate an effective response.
By integrating information from multiple domains and sources, JADC2 aims to provide military commanders with a more complete and accurate picture of the battlefield, enabling faster and more effective decision-making in real-time.
How can virtualization and containerization help?
Virtualization and containerization can work together to enhance a JADC2 initiative for the Navy in a number of ways. For example:
- Virtualization can allow for multiple virtual command centers (VCCs) to be set up, each running on its own virtual machine (VM). These VCCs can be located on a central command ship or at shore-based locations.
- Each VCC can be optimized to run AI/ML/DL algorithms, providing the fleet with real-time insights and predictions on threats and potential responses.
- The VCCs can communicate with each other, as well as with other domains, such as the air and land domains, to gather a comprehensive view of all threats and potential responses.
- Containerization can be used to deploy an integrated combat system software suite as a set of containerized applications. These containers can be run on the VMs inside the VCCs, as well as on other servers throughout the fleet, providing a flexible and scalable deployment architecture.
- The containers can be run across multiple servers on the same ship, providing enhanced speed and efficiency as well as increased resiliency in the event of server failure.
By combining virtualization and containerization, a JADC2 initiative for the Navy can provide a highly flexible, scalable, and secure platform for integrating and analyzing data from multiple domains, and for directing the fleet on how to proceed in real-time.
5G and SATCOM
What is 5G?
5G is the fifth generation of mobile networks, designed to provide high-speed, low-latency, and more reliable wireless connectivity for consumers and businesses. It is designed to support a wide range of applications, including the Internet of Things (IoT), virtual and augmented reality, and autonomous vehicles, among others.
What is SATCOM?
SATCOM, or Satellite Communications, refers to the use of satellites to establish communication links between different points on Earth. It enables global connectivity for various applications, including telecommunications, broadcasting, military operations, and remote sensing.
How can virtualization and containerization help?
Think of multiple ships in a fleet that are connected. These ships need to communicate with one another in a matter of seconds, as even the slightest delay can lead to life-threatening consequences.
Data processing and analysis is done on COTS hardware at the edge on the ships, as opposed to in a distant data center. This hardware can even host both access networks and the core network.
5G provides the bidirectional, low-latency connectivity needed to facilitate rapid data transfer between ships within relatively short distances. For communication over longer distances or within contested environments, SATCOM is preferred.
Additionally, various networking functions can be either virtualized or containerized, limiting the amount of hardware and ensuring that each task or application has dedicated resources, reducing congestion and latency.
A virtualized network function (VNF) is a network function that operates as its own virtual machine inside of a piece of hardware, inside a virtual machine as an application, or by itself on a piece of hardware.
A containerized network function (CNF) is a network function that operates within containers either inside virtual machines or by itself on a piece of hardware.
Virtualized Network Functions (VNFs) and Containerized Network Functions (CNFs) can enhance speed and security in networking by providing an isolated and modular environment for running network services and functions, which, in turn, limits interference.
This also enables faster deployment, scaling, and updating of network services as well as better resource management.
Here is an example of how virtualization and containerization can enhance an integrated 5G + SATCOM network infrastructure for the Navy:
- Virtualization and containerization technologies can be utilized to efficiently manage and deploy software applications and services across a distributed network architecture, while 5G and SATCOM would provide the connectivity and bandwidth required for seamless and reliable communication.
- 5G, with its high data rates, low latency, and massive device connectivity, can enable real-time data exchange between shipboard systems, sensors, and personnel. This can facilitate enhanced situational awareness, mission coordination, and decision-making capabilities.
- SATCOM, on the other hand, would provide the Navy with global coverage, allowing for seamless communication and data transfer between ships, command centers, and other assets, regardless of their location. It would enable remote management, updates, and maintenance of virtualized applications and containers, ensuring consistent software versions and configurations across the fleet. SATCOM's resilience and redundancy features would also ensure reliable communications in challenging environments or during adversarial situations.
Allowing multiple virtualized network functions and containerized network functions to run efficiently on an integrated 5G + SATCOM network infrastructure improves speed and agility while maintaining security and reliability.
5G is the fifth generation of mobile networks, designed to provide high-speed, low latency, and more reliable wireless connectivity for a growing range of commercial, military, and critical infrastructure applications.
Where does Trenton come into play?
At Trenton, our COTS, SWaP-C-optimized high-performance computers are designed with our customers in a consultative relationship to provide a solution that best fits their application needs, including virtualization and containerization.
Powered by Intel® SmartEdge Software, NVIDIA® Multi-Instance A100 GPUs, and Raytheon® cybersecurity technologies, we deliver end-to-end solutions for an enhanced out-of-box experience, maximum scalability, and hardware-based protection of critical workloads at the tactical edge.
With modularity at both the hardware and software level, our systems can also support PCIe 5.0, CXL, and 4th Gen Intel® Xeon Scalable Processors to provide the speeds and feeds needed for integrated combat systems, JADC2 initiatives, and enhanced 5G connectivity. (Read more here.)
We have the potential to integrate features and/or functions needed for the broader system, application, or weapons program into our hardware, and we can help customers meet their government small business content requirements.
With a tight grip on our supply chain and multi-layer cybersecurity, we ensure that we incorporate components free of vulnerabilities from hostile nations, and we protect our systems from the most sophisticated of cyberattacks.
Interested in learning more about how we support Naval applications? Click here to get a closer look.
Team Trenton is at your service. 😎
Share this
- High-performance computers (42)
- Military computers (38)
- Rugged computers (32)
- Cybersecurity (25)
- Industrial computers (25)
- Military servers (24)
- MIL-SPEC (20)
- Rugged servers (19)
- Press Release (17)
- Industrial servers (16)
- MIL-STD-810 (16)
- 5G Technology (14)
- Intel (13)
- Rack mount servers (12)
- processing (12)
- Computer hardware (11)
- Edge computing (11)
- Rugged workstations (11)
- Made in USA (10)
- Partnerships (9)
- Rugged computing (9)
- Sales, Marketing, and Business Development (9)
- Trenton Systems (9)
- networking (9)
- Peripheral Component Interconnect Express (PCIe) (7)
- Encryption (6)
- Federal Information Processing Standards (FIPS) (6)
- GPUs (6)
- IPU (6)
- Joint All-Domain Command and Control (JADC2) (6)
- Server motherboards (6)
- artificial intelligence (6)
- Computer stress tests (5)
- Cross domain solutions (5)
- Mission-critical servers (5)
- Rugged mini PCs (5)
- AI (4)
- BIOS (4)
- CPU (4)
- Defense (4)
- Military primes (4)
- Mission-critical systems (4)
- Platform Firmware Resilience (PFR) (4)
- Rugged blade servers (4)
- containerization (4)
- data protection (4)
- virtualization (4)
- Counterfeit electronic parts (3)
- DO-160 (3)
- Edge servers (3)
- Firmware (3)
- HPC (3)
- Just a Bunch of Disks (JBOD) (3)
- Leadership (3)
- Navy (3)
- O-RAN (3)
- RAID (3)
- RAM (3)
- Revision control (3)
- Ruggedization (3)
- SATCOM (3)
- Storage servers (3)
- Supply chain (3)
- Tactical Advanced Computer (TAC) (3)
- Wide-temp computers (3)
- computers made in the USA (3)
- data transfer (3)
- deep learning (3)
- embedded computers (3)
- embedded systems (3)
- firmware security (3)
- machine learning (3)
- Automatic test equipment (ATE) (2)
- C6ISR (2)
- COTS (2)
- COVID-19 (2)
- Compliance (2)
- Compute Express Link (CXL) (2)
- Computer networking (2)
- Controlled Unclassified Information (CUI) (2)
- DDR (2)
- DDR4 (2)
- DPU (2)
- Dual CPU motherboards (2)
- EW (2)
- I/O (2)
- Military standards (2)
- NVIDIA (2)
- NVMe SSDs (2)
- PCIe (2)
- PCIe 4.0 (2)
- PCIe 5.0 (2)
- RAN (2)
- SIGINT (2)
- SWaP-C (2)
- Software Guard Extensions (SGX) (2)
- Submarines (2)
- Supply chain security (2)
- TAA compliance (2)
- airborne (2)
- as9100d (2)
- chassis (2)
- data diode (2)
- end-to-end solution (2)
- hardware security (2)
- hardware virtualization (2)
- integrated combat system (2)
- manufacturing reps (2)
- memory (2)
- mission computers (2)
- private 5G (2)
- protection (2)
- secure by design (2)
- small form factor (2)
- software security (2)
- vRAN (2)
- zero trust (2)
- zero trust architecture (2)
- 3U BAM Server (1)
- 4G (1)
- 4U (1)
- 5G Frequencies (1)
- 5G Frequency Bands (1)
- AI/ML/DL (1)
- Access CDS (1)
- Aegis Combat System (1)
- Armed Forces (1)
- Asymmetric encryption (1)
- C-RAN (1)
- COMINT (1)
- CPUs (1)
- Cloud-based CDS (1)
- Coast Guard (1)
- Compliance testing (1)
- Computer life cycle (1)
- Containers (1)
- D-RAN (1)
- DART (1)
- DDR5 (1)
- DMEA (1)
- Data Center Modular Hardware System (DC-MHS) (1)
- Data Plane Development Kit (DPDK) (1)
- Defense Advanced Research Projects (DARP) (1)
- ELINT (1)
- EMI (1)
- EO/IR (1)
- Electromagnetic Interference (1)
- Electronic Warfare (EW) (1)
- FIPS 140-2 (1)
- FIPS 140-3 (1)
- Field Programmable Gate Array (FPGA) (1)
- Ground Control Stations (GCS) (1)
- Hardware-based CDS (1)
- Hybrid CDS (1)
- IES.5G (1)
- ION Mini PC (1)
- IP Ratings (1)
- IPMI (1)
- Industrial Internet of Things (IIoT) (1)
- Industry news (1)
- Integrated Base Defense (IBD) (1)
- LAN ports (1)
- LTE (1)
- Life cycle management (1)
- Lockheed Martin (1)
- MIL-S-901 (1)
- MIL-STD-167-1 (1)
- MIL-STD-461 (1)
- MIL-STD-464 (1)
- MOSA (1)
- Multi-Access Edge Computing (1)
- NASA (1)
- NIC (1)
- NIC Card (1)
- NVMe (1)
- O-RAN compliant (1)
- Oil and Gas (1)
- Open Compute Project (OCP) (1)
- OpenRAN (1)
- P4 (1)
- PCIe card (1)
- PCIe lane (1)
- PCIe slot (1)
- Precision timestamping (1)
- Product life cycle (1)
- ROM (1)
- Raytheon (1)
- Remotely piloted aircraft (RPA) (1)
- Rugged computing glossary (1)
- SEDs (1)
- SIM Card (1)
- Secure boot (1)
- Sensor Open Systems Architecture (SOSA) (1)
- Small form-factor pluggable (SFP) (1)
- Smart Edge (1)
- Smart NIC (1)
- SmartNIC (1)
- Software-based CDS (1)
- Symmetric encryption (1)
- System hardening (1)
- System hardening best practices (1)
- TME (1)
- Tech Partners (1)
- Total Memory Encryption (TME) (1)
- Transfer CDS (1)
- USB ports (1)
- VMEbus International Trade Association (VITA) (1)
- Vertical Lift Consortium (VLC) (1)
- Virtual machines (1)
- What are embedded systems? (1)
- Wired access backhaul (1)
- Wireless access backhaul (1)
- accredidation (1)
- aerospace (1)
- air gaps (1)
- airborne computers (1)
- asteroid (1)
- authentication (1)
- autonomous (1)
- certification (1)
- cognitive software-defined radios (CDRS) (1)
- command and control (C2) (1)
- communications (1)
- cores (1)
- custom (1)
- customer service (1)
- customer support (1)
- data linking (1)
- data recording (1)
- ethernet (1)
- full disk encryption (1)
- hardware monitoring (1)
- heat sink (1)
- hypervisor (1)
- in-house technical support (1)
- input (1)
- integrated edge solution (1)
- international business (1)
- licensed spectrum (1)
- liquid cooling (1)
- mCOTS (1)
- microelectronics (1)
- missile defense (1)
- mixed criticality (1)
- moving (1)
- multi-factor authentication (1)
- network slicing (1)
- neural networks (1)
- new headquarters (1)
- next generation interceptor (1)
- non-volatile memory (1)
- operating system (1)
- output (1)
- outsourced technical support (1)
- post-boot (1)
- pre-boot (1)
- private networks (1)
- public networks (1)
- radio access network (RAN) (1)
- reconnaissance (1)
- secure flash (1)
- security (1)
- self-encrypting drives (SEDs) (1)
- sff (1)
- software (1)
- software-defined radios (SDRs) (1)
- speeds and feeds (1)
- standalone (1)
- storage (1)
- systems (1)
- tactical wide area networks (1)
- technical support (1)
- technology (1)
- third-party motherboards (1)
- troposcatter communication (1)
- unlicensed spectrum (1)
- volatile memory (1)
- vpx (1)
- zero trust network (1)
- November 2024 (1)
- October 2024 (1)
- August 2024 (1)
- July 2024 (1)
- May 2024 (1)
- April 2024 (3)
- February 2024 (1)
- November 2023 (1)
- October 2023 (1)
- July 2023 (1)
- June 2023 (3)
- May 2023 (7)
- April 2023 (5)
- March 2023 (7)
- December 2022 (2)
- November 2022 (6)
- October 2022 (7)
- September 2022 (8)
- August 2022 (3)
- July 2022 (4)
- June 2022 (13)
- May 2022 (10)
- April 2022 (4)
- March 2022 (11)
- February 2022 (4)
- January 2022 (4)
- December 2021 (1)
- November 2021 (4)
- September 2021 (2)
- August 2021 (1)
- July 2021 (2)
- June 2021 (3)
- May 2021 (4)
- April 2021 (3)
- March 2021 (3)
- February 2021 (8)
- January 2021 (4)
- December 2020 (5)
- November 2020 (5)
- October 2020 (4)
- September 2020 (4)
- August 2020 (6)
- July 2020 (9)
- June 2020 (11)
- May 2020 (13)
- April 2020 (8)
- February 2020 (1)
- January 2020 (1)
- October 2019 (1)
- August 2019 (2)
- July 2019 (2)
- March 2019 (1)
- January 2019 (2)
- December 2018 (1)
- November 2018 (2)
- October 2018 (5)
- September 2018 (3)
- July 2018 (1)
- April 2018 (2)
- March 2018 (1)
- February 2018 (9)
- January 2018 (27)
- December 2017 (1)
- November 2017 (2)
- October 2017 (3)
No Comments Yet
Let us know what you think