# Awesome Source
a.k.a
### Open Source
<small>‐ a presentation by Siddhant Rimal</small>
--- <!-- .element: data-background-image="/img/presentation-open-source/data-centre.jpg" data-transition="zoom" -->
## Open Source Software in Data Centres <!-- .element: style="color:#fff !important;" -->
<blockquote cite="https://www.computerworld.com/article/2538737/network-software/open-source-software-in-the-data-center.html"><small>__“In general, enterprises are using open source in the following three primary areas: Web presence and portals, the small to medium-size database tier and the application tier”__<sup style="font-size: 0.8em;">[[1]<!-- .element: style="color:#fff !important;" -->]</sup><br/>
‐ James Staten, Analyst, Forrester Research Inc.</small></blockquote><!-- .element: style="color:#fff !important;" -->
[1]: https://www.computerworld.com/article/2538737/network-software/open-source-software-in-the-data-center.html
___
### Why?
1. Speeds delivery of software and hardware solutions
1. Saves money
1. Provides flexibility
1. Helps companies stay on the leading edge of technology development<sup style="font-size: 0.5em;">[[2]]</sup>
[2]: https://www.linuxfoundation.org/blog/using-open-source-software-to-speed-development-and-gain-business-advantage/
___ <!-- .element: data-background="/img/presentation-open-source/linux-speed-of-development.gif" data-transition="none" -->
### <!-- .element: style="color:#fff;" --> <span style="background-color:rgba(255,255,255,.3); color:#000; padding-left:.1em; padding-right:.1em;" >but,</span> __How?__ <!-- .element: style="background-color:rgba(0,0,0,.3); margin-left:-.2em; padding-left:.1em; padding-right:.1em;" -->
Note: [1]Faster, easier aquisition process [2]Quicker Deployments [3]Rapid evolution and innovation [4]Higher quality [5]Ease of customization [6]Evolutionary delivery
--- <!-- .element: data-background-image="/img/presentation-open-source/cloud-computing.jpg" data-transition="fade" data-image-transition="fade" -->
## Open Source Software in Cloud Computing
--- <!-- .element: data-transition="slide" data-background="#4D7E65" data-background-transition="slide" -->
## Web Presence <!-- .element: style="color:#fff;" -->
___
### Apache <!-- .element: style="color:rgba(77,126,101,.8);" -->
* Most widely used Webserver software <!-- .element: class="fragment fade-up" data-fragment-index="1" -->
* Runs 67% of all webservers in the world <!-- .element: class="fragment fade-up" data-fragment-index="1" -->
* Fast, Reliable, Secure and highly customizable <!-- .element: class="fragment fade-up" data-fragment-index="1" -->
___
### Jetty <!-- .element: style="color:rgba(77,126,101,.8);" -->
* Eclipse Jetty is a Java HTTP server and Java Servlet container <!-- .element: class="fragment fade-up" data-fragment-index="1" -->
* Used particularly in machine-to-machine communications in large sotware frameworks <!-- .element: class="fragment fade-up" data-fragment-index="1" -->
___
### Zend Framework <!-- .element: style="color:rgba(77,126,101,.8);" -->
* Collection of professional PHP packages with more than 184 million installations <!-- .element: class="fragment fade-up" data-fragment-index="1" -->
* It can be used to develop web applications and services using PHP 5.6+, and provides 100% object-oriented code using a broad spectrum of language features <!-- .element: class="fragment fade-up" data-fragment-index="1" -->
* Focused on Simplicity, Reusability and Performance <!-- .element: class="fragment fade-up" data-fragment-index="1" -->
--- <!-- .element: data-transition="slide" data-background="#B5533C" data-background-transition="slide" -->
## Database Tier <!-- .element: style="color:#fff;" -->
___
## MySQL <!-- .element: style="color:rgba(181,83,60,.8);" -->
* MySQL is a database management system <!-- .element: class="fragment fade-up" data-fragment-index="1" -->
* Popularly paired with PHP <!-- .element: class="fragment fade-up" data-fragment-index="1" -->
___
## PostgreSQL <!-- .element: style="color:rgba(181,83,60,.8);" -->
* PostgreSQL is a powerful, open source object-relational database system <!-- .element: class="fragment fade-up" data-fragment-index="1" -->
___ <!-- .element: data-transition="fade" -->
### A quick diff <!-- .element: style="color:rgba(181,83,60,.8);" -->
|MySQL|PostgreSQL|
|---|---|
|The Governance model is not open source|PostgreSQL Global Development Group fully licensed open-source|
|FreeBSD OS support|HP-UX support|
___ <!-- .element: data-transition="slide" -->
### A quick diff <!-- .element: style="color:rgba(181,83,60,.8);" -->
|MySQL|PostgreSQL|
|---|---|
|Replication is master-master, but can also support master-slave|Replication properties are same as MySQL along with added modes of replications possible with 3rd party extensions|
___ <!-- .element: data-transition="slide" -->
### A quick diff <!-- .element: style="color:rgba(181,83,60,.8);" -->
|MySQL|PostgreSQL|
|---|---|
|MySQL Cluster to perform horizontal clustering|Doesn't implement true partitionings|
||More access methods such as the platform's native C library|
--- <!-- .element: data-transition="slide" data-background="#361134" data-background-transition="slide" -->
## Application Tier <!-- .element: style="color:#fff;" -->
___
## Zope <!-- .element: style="color:rgba(122,59,105,.8);" -->
* Z Object Publishing Environment <!-- .element: class="fragment fade-up" data-fragment-index="1" -->
* Open source web application server written in Python <!-- .element: class="fragment fade-up" data-fragment-index="1" -->
___
## Plone <!-- .element: style="color:rgba(122,59,105,.8);" -->
* Can be classified as Enterprise CMS <!-- .element: class="fragment fade-up" data-fragment-index="1" -->
* Plone is a free and open source content management system built on top of the Zope application server <!-- .element: class="fragment fade-up" data-fragment-index="1" -->
___ <!-- .element: data-transition="slide" -->
## AJAX <!-- .element: style="color:rgba(122,59,105,.8);" -->
* Asynchronous JavaScript and XML <!-- .element: class="fragment fade-up" data-fragment-index="1" -->
* Is a Rich Internet Application technology. <!-- .element: class="fragment fade-up" data-fragment-index="1" -->
* Ajax uses XHTML for content, CSS for presentation, along with Document Object Model and JavaScript for dynamic content display. <!-- .element: class="fragment fade-up" data-fragment-index="1" -->
___ <!-- .element: data-transition="concave" -->
## AJAX <!-- .element: style="color:rgba(122,59,105,.8);" -->
#### <small>an example: _on the html side_</small>
```
<!DOCTYPE html>
<html>
<body>
<div id="demo">
<h2>Let AJAX change this text</h2>
<button type="button" onclick="loadDoc()">Change Content</button>
</div>
</body>
</html>
```
___ <!-- .element: data-transition="concave" -->
## AJAX <!-- .element: style="color:rgba(122,59,105,.8);" -->
#### <small>an example: _AJAX snippet_</small>
```
function loadDoc() {
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
document.getElementById("demo").innerHTML = this.responseText;
}
};
xhttp.open("GET", "ajax_info.txt", true);
xhttp.send();
}
```
___ <!-- .element: data-transition="concave" -->
## AJAX <!-- .element: style="color:rgba(122,59,105,.8);" -->
<h4><small>a
<button style="font-size: 1em; line-height:1em; margin-top:.0em;" onclick="swal.queue([{
title: 'Your public IP',
confirmButtonText: 'Show my public IP',
text: 'Your public IP will be received via AJAX request',
showLoaderOnConfirm: true,
preConfirm: function () {
return new Promise(function (resolve) {
$.get('https://api.ipify.org?format=json')
.done(function (data) {
swal.insertQueueStep(data.ip)
resolve()
})
})
},
type:'info'
}])">DEMO</button><!-- Wondering about the inline JS? Don't worry, its a design decision to save overhead in this particular use case. If you'll be using this feature a lot, it makes sense to just inject this into the corresponding Revealjs partial -->
_courtesy of [Sweet Alert 2](limonte.github.io/sweetalert2/)_<sup style="font-size: .4em">[MIT](https://opensource.org/licenses/MIT "MIT License")</sup></small></h4>
___
## Apache Struts <!-- .element: style="color:rgba(122,59,105,.8);" -->
* Made for JVM <!-- .element: class="fragment fade-up" data-fragment-index="1" -->
* free, open-source, MVC framework for creating elegant, modern Java web applications <!-- .element: class="fragment fade-up" data-fragment-index="1" -->
* favors convention over configuration, is extensible using a plugin architecture, and ships with plugins to support REST, AJAX and JSON <!-- .element: class="fragment fade-up" data-fragment-index="1" -->
--- <!-- .element: data-transition="slide" data-background="#1446A0" data-background-transition="slide" -->
### System and Network Management Tier <!-- .element: style="color:#fff;" -->
___
## Nagios <!-- .element: style="color:rgba(20,70,160,.8);" -->
* comprehensive monitoring tool <!-- .element: class="fragment fade-up" data-fragment-index="1" -->
* centralized visibility and, escalation awareness capabilities <!-- .element: class="fragment fade-up" data-fragment-index="1" -->
* Time-tested, reliable, stable, extendable and, proven architecture <!-- .element: class="fragment fade-up" data-fragment-index="1" -->
___
## NetXMS <!-- .element: style="color:rgba(20,70,160,.8);" -->
* Unified platform for management and monitoring of the entire IT infrastructure <!-- .element: class="fragment fade-up" data-fragment-index="1" -->
* Designed for maximum performance and scalability <!-- .element: class="fragment fade-up" data-fragment-index="1" -->
* Distributed network monitoring and automated network discovery <!-- .element: class="fragment fade-up" data-fragment-index="1" -->
* Flexible and easy to use event processing <!-- .element: class="fragment fade-up" data-fragment-index="1" -->
___
## Pandora FMS <!-- .element: style="color:rgba(20,70,160,.8);" -->
* On premise monitoring system <!-- .element: class="fragment fade-up" data-fragment-index="1" -->
* Monitors: Network, Server, UX, APM, Inventory, SLA, IOT, Logs collection, Business activity, Remote control and, more ··· <!-- .element: class="fragment fade-up" data-fragment-index="1" -->
* Community development. But, has a payment model for enhanced features <!-- .element: class="fragment fade-up" data-fragment-index="1" -->
___
## Cacti <!-- .element: style="color:rgba(20,70,160,.8);" -->
* complete RRDtool-based graphing solution <!-- .element: class="fragment fade-up" data-fragment-index="1" -->
* web-based monitoring <!-- .element: class="fragment fade-up" data-fragment-index="1" -->
* fast poller, advanced graph templating, multiple data acquisition methods, and user management features out of the box <!-- .element: class="fragment fade-up" data-fragment-index="1" -->
___
## Hyperic <!-- .element: style="color:rgba(20,70,160,.8);" -->
* application monitoring and, performance and availabilty management of a broad range of OS, middleware and, applications running on physical, virtual and, cloud environments <!-- .element: class="fragment fade-up" data-fragment-index="1" -->
* developed by VMware <!-- .element: class="fragment fade-up" data-fragment-index="1" -->
---
## presentation.EOF(1);
<small>_In the spirit of Open Source, this presentation is brought to you with [Reveal.js](https://github.com/hakimel/reveal.js/)_<sup style="font-size: .4em">[MIT](https://opensource.org/licenses/MIT "MIT License")</sup></small><br/>
<small>♥ _continuously deployed from [Github](https://github.com/siddhantrimal/remember) with free stock photos from [Plexels.com](https://www.pexels.com)_<sup style="font-size: .4em">[CC0](https://creativecommons.org/share-your-work/public-domain/cc0/ "Creative Commons 0")</sup></small>