fix(guide): simplify directory structure

This commit is contained in:
Mrugesh Mohapatra
2018-10-16 21:26:13 +05:30
parent f989c28c52
commit da0df12ab7
35752 changed files with 0 additions and 317652 deletions

View File

@@ -0,0 +1,31 @@
---
title: Amazon DynamoDB
---
## Amazon DynamoDB
Amazon DynamoDB is a service from Amazon Web Services (AWS) that offers a fully-managed NoSQL database. Its main feature is the capacity to scale infinitely depending on the workload needed. It is fully-managed, the user does not need to worry about the underlying infrastructure such as how to scale up or down depending on the workload. It supports key-value and document-based storage.
The basic components of the DynamoDB service are:
* **Table**: DynamoDB stores data in tables, which are like in relational databases. The main difference is that it is schemaless, it does not have a fixed structure from the moment of its creation.
* **Item**: An item is the data stored in a table and a table can have an indefinite number of items. Comparing to a relational database, an item would be a row in the table.
* **Attribute**: An item has attributes, which are like a column in relational databases. Yet, since DynamoDB is schemaless, an item does not need to have the same attributes. Moreover, the attributes can be a single value or a JSON-like document with other fields that can also be queried.
Although DynamoDB does not need a fixed structure for its tables, it does need a primary key for each item in the table. The primary key, like in relational databases, must be unique. The primary key can be simple or composed. A simple primary key is composed only by a partition key. The composed primary key, in turn, is composed by a partition key and a sort key. In a simple primary key, the partition key must be unique, while in a composed key, the partition key can be equal, but the sort key must be different.
The concept of partition key and sort key is very important because it relates to the way DynamoDB stores data. DynamoDB stores data in partitions and the partition key is the key for the partition. DynamoDB uses the value in the partition key as input to a hash function to know where it stores the data. In the case of a composed key, all items with the same partition key are stored in the same partition, but they are sorted by the sort key.
Amazon DynamoDB also has high availability. It replicates the data to many servers in different availability zones in a region. Availability Zones are data centers physically separated by a safe distance. In case of a disaster in one server, other servers have the data replicated in a safe distance and untouched.
Due to its ease of set up and its infinite capacity to scale it is good for many uses cases. It is best suited for scenarios where the load required is not known or there are sudden peaks. Some of the use cases are as data storage for serverless applications, microservices, mobile back-end, gaming, IoT and more.
### Resources:
- [Key Value Databases](https://guide.freecodecamp.org/computer-science/databases/key-value-databases)
- [Relational Databases](https://guide.freecodecamp.org/computer-science/databases/relational-databases)
### More Information:
- "What is Amazon DynamoDB?" from [AWS DynamoDB Documentation](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Introduction.html?shortFooter=true)
- "DynamoDB Core Components" from [AWS DynamoDB Documentation](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.CoreComponents.html?shortFooter=true)

View File

@@ -0,0 +1,58 @@
---
title: Amazon Web Services
---
## Amazon Web Services
Amazon Web Services, or AWS for short, is a subsidiary of Amazon.com that provides on-demand cloud computing platforms to individuals, companies and governments on a
paid subscription basis with a free-tier option available for 12 months. It along with Microsoft's Azure and Google's Cloud Platform are considered the three major
public cloud vendors.
The technology allows subscribers to have at their disposal a full-fledged virtual cluster of computers, available all the time, through the internet. AWS's version of
virtual computers have most of the attributes of a real computer including hardware (CPU(s) & GPU(s) for processing, local/RAM memory, hard-disk/SSD storage); a choice
of operating systems; networking; and pre-loaded application software such as web servers, databases, CRM, etc. Each AWS system also virtualizes its console I/O (keyboard,
display, and mouse), allowing AWS subscribers to connect to their AWS system from anywhere in the world using a modern browser. The browser acts as a window into the
virtual computer, letting subscribers log-in, configure and use their virtual systems just as they would a real physical computer.
Subscribers can choose to deploy their AWS systems to provide internet-based services for their own and their customers' benefit. Since individuals or organizations
using AWS do not physically own the AWS infrastructure, they do not have to deal with some of the maintenance tasks associated with owning a physical datacenter such as
operating networking equipment.
AWS in particular has also been expanding on their cloud offerings. They are providing innovative services such as AWS Lambda, in which users only need to focus on
writing code and not on the servers that will be running their code (giving rise to the new *serverless* movement). As a result of these benefits, cloud computing
platforms such as AWS have been popular among startups who might initially have less capital to invest into their Information Technology or IT. Instead, they can focus
on building great products for their users and growing their business over time with AWSs on demand model.
Popular AWS services include:
* Virtual Machines via the EC2 (Elastic Compute Cloud) platform
* Databases including both SQL and NoSQL
* S3 (Simple Storage Service)
* SQS (Simple Queue Service)
* Games development via the Amazon Lumberyard game development engine and subsequent hosting platform.
* DynamoDB (Amazon Dynamo Data Base)
* CloudWatch (Metrics and Alarms)
* CodeDeploy (Deployments)
* Lambda (Serverless)
* Application Monitoring tools
* Mobile development tools and platforms
* Amazon Alexa development area
#### AWS Certifications
AWS offers many different certifications for it's practitioners. There are different tiers to AWS certs as well as role-based certifications.
The tiers are:
* Foundational
* Associate
* Professional
For every role there are those three tiers.
These roles include:
* Architect
* Developer
* Operations
AWS also offers a prerequisite AWS Cloud Practitioner Essentials certification* relevant to anyone no matter their role.
Outside of the standard roles there are specialty certifications for Advanced networking, Big Data, and Security.
#### More Information:
<!-- Please add any articles you think might be helpful to read before writing the article -->
* [AWS](https://aws.amazon.com/)
* [certifications](https://aws.amazon.com/certification/)

View File

@@ -0,0 +1,28 @@
---
title: Application Frameworks
---
## Application Frameworks
An Application Framework is ready-to-use software for running applications.
Application Frameworks handle common tasks that most applications do.
Application Frameworks save in development time and maintenance, because multiple application vendors pool resources for a common cause.
An Application Framework is more than a collection of its named components.
It includes unique software that integrates its components into a systems paradigm that simplifies common, difficult or repetitive tasks by using libraries of reusable code.
Each application framework solves problems with a unique set of components or in a unique way --addressing resource management for example.
### More Information:
[Application Frameworks (Wikipedia.org)](https://en.wikipedia.org/wiki/Application_framework)
[Web Application Frameworks (Wikipedia.org)](https://en.wikipedia.org/wiki/Web_framework)
[Code re-use (Wikipedia.org)](https://en.wikipedia.org/wiki/Code_reuse)
### Resources
[List of Rich Internet Frameworks (Wikipedia.org)](https://en.wikipedia.org/wiki/List_of_rich_Internet_application_frameworks)
[List of Web Service Frameworks (Wikipedia.org)](https://en.wikipedia.org/wiki/List_of_web_service_frameworks)
[Comparison of Web Frameworks (Wikipedia.org)](https://en.wikipedia.org/wiki/Comparison_of_web_frameworks)

View File

@@ -0,0 +1,29 @@
---
title: Azure
---
## Microsoft Azure
Microsoft Azure is Microsofts public cloud offering that enables individuals and organizations to create, deploy, and operate cloud-based applications and infrastructure services. The Microsoft Azure public cloud platform offers IaaS, PaaS, and SaaS services to organizations worldwide and supports many different programming languages, tools and frameworks, including both Microsoft-specific and third-party software and systems.
Microsoft Azure can also be used in conjunction with various Microsoft solutions, such as Microsoft System Center, and can be leveraged together to extend an organization's current datacenter into a hybrid cloud that expands capacity and provides capabilities beyond what could be delivered solely from an on-premises standpoint.
### Uses for Microsoft Azure
Microsoft Azure offers many services and resource offerings.
For example, you can use the Azure Virtual Machines compute services to build a network of virtual servers to host an application, database, or custom solution, which would be an IaaS based offering.
Other services can be categorized as PaaS because you can use them without maintaining the underlying operating systems.
For example, when you run a website in Azure Web Apps, or a SQL database in Azure SQL Databases it is not necessary to ensure that you are using the latest version of Internet Information Services (IIS) or SQL and have the latest patches and updates installed, as this is the responsibility of the Microsoft Azure platform.
Example for SaaS service on Microsoft Azure would be Operations Management Suite, which is set up and accessed via Operational Insights services. Here, you just set up your management tools and connect into the services you wish to manage all through Microsoft Azure, so no local infrastructure is required or needed to be managed.
### Environments
Azure provides a wealth of different environment types across the board including OS platforms such as Windows Server and Ubuntu Server, there are a number of variants that can be chosen such as Ubuntu 14.04 or Ubuntu 16.10, with the ability to use said environments either via the built-in Azure Web CLI or SSH access via your preferred client.
There are varying levels of machine 'sizes' to choose from, ranging from simple barebone low spec machines all the way up multi-GPU and multi-CPU based heavy hitting boxes.
#### More Information:
* <a href='https://en.wikipedia.org/wiki/Microsoft_Azure' target='_blank' rel='nofollow'>Wikipedia</a>
* <a href='https://azure.microsoft.com/en-us/' target='_blank' rel='nofollow'>Microsoft Azure</a>
* <a href='https://docs.microsoft.com/en-us/learn/' target='_blank' rel='nofollow'>Microsoft Learn</a>

View File

@@ -0,0 +1,26 @@
---
title: Cloud Storage
---
## STORAGE AS A SERVICE (STaaS)
When you use cloud storage, that is STaaS. In this case, a cloud system gives you the ability to store data online and acesss it as if it was local.
The Cloud system should have the capability of Storage Scaling.
We can integrate all storage. For example, if we have multiple pen-drives then we can integrate all pen-drive storages in a single one.
There are mainly two types of storage
1. Object
2. Block
### Object Storage
- We can not a make partition in cloud storage. We can only store files and folders there. This is called object storage. We cant install OS there as there are no partitions.
- **Example**
- Google drive (google compute engine, GCE), OneDrive, drop box, Microsoft azure.
- Amazon has its own cloud service AWS. S3(Simple Storage Service, SSS) is the product of amazon that provides StAAS. Its a public cloud. Anyone can use their services.
- OpenStack is the biggest private cloud. OpenStack has product swift (Object Storage).
### Block Storage
- If were able to make partitions in provided storage, then we can install OS. We have a hard-disk and we can make partitions in them, this type of storage is known as block storage.
- **Example**
- Block storage service of AWS EBS (Elastic Block Storage)
- Cloud provides facility of scaling storage thats the elastic property of cloud.
- Block storage of OpenStack Cinder

View File

@@ -0,0 +1,35 @@
---
title: Firebase
---
## Firebase
![Firebase Logo](https://firebase.google.com/_static/558bc0d91d/images/firebase/lockup.png)
### Overview
Firebase, in it's most basic form, was acquired by Google in October 2014. Since then, Google has acquired additional companies that complimented the original Firebase product. This selection of software tools now makes up the current selection of Firebase tools that are on offer today.
### Firebase Main Features
Firebase main features are grouped to 3 categories:
1. **Develop**
* Authentication
* Database
* Storage
* Hosting
* Function
* Test Lab
* Crash Reporting
* Performance
2. **Grow**
* Notifications
* Remote Config
* Dynamic Links
3. **Earn**
* AdMob
#### More Information:
- [Firebase](https://firebase.google.com/)
- [Wikipedia](https://en.wikipedia.org/wiki/Firebase)
- [Here](https://firebase.google.com/docs/samples/) you can find examples of how to use Firebase in your projects.

View File

@@ -0,0 +1,24 @@
---
title: Google Cloud Platform
---
## Google Cloud Platform
Google Cloud Platform, offered by Google, is a suite of cloud computing services that runs on the same infrastructure that Google uses internally for its end-user products, such as Google Search and YouTube.[1] Alongside a set of management tools,
it provides a series of modular cloud services including computing, data storage, data analytics and machine learning.
Some famous web services include
* Google Compute Engine IaaS providing virtual machines.
* Google App Engine PaaS for application hosting.
* Bigtable IaaS massively scalable NoSQL database.
* BigQuery SaaS large scale database analytics.
* Google Cloud Functions As of August 2017 is in beta testing. FaaS providing serverless functions to be triggered by cloud events.
* Google Cloud Datastore - DBaaS providing a document-oriented database.
* Cloud Pub/Sub - a service for publishing and subscribing to data streams and messages. Applications can communicate via Pub/Sub, without direct integration between the applications themselves.[5]
* Google Storage - IaaS providing RESTful online file and object storage.
#### More Information:
<!-- Please add any articles you think might be helpful to read before writing the article -->
<!-- Please add any articles you think might be helpful to read before writing the article -->
* <a href='https://cloud.google.com/docs/' target='_blank' rel='nofollow'>Google Cloud Platform Documentation</a>
* <a href='https://en.wikipedia.org/wiki/Google_Cloud_Platform' target='_blank' rel='nofollow'>Wikipedia</a>

View File

@@ -0,0 +1,9 @@
---
title: Heroku
---
## Heroku
Heroku is a cloud platform as a service (PaaS) supporting several programming languages that is used as a web application deployment model. Heroku, one of the first cloud platforms, has been in development since June 2007, when it supported only the Ruby programming language, but now supports Java, Node.js, Scala, Clojure, Python, PHP, and Go.[1][2] For this reason, Heroku is said to be a polyglot platform as it lets the developer build, run and scale applications in a similar manner across all the languages. Heroku was acquired by Salesforce.com in 2010 for $212 million
#### More Information:
<!-- Please add any articles you think might be helpful to read before writing the article -->
* <a href='https://en.wikipedia.org/wiki/Heroku' target='_blank' rel='nofollow'>Wikipedia</a>

View File

@@ -0,0 +1,17 @@
---
title: Cloud Development
---
## Cloud Development
Cloud development is the usage of software engineering practices on infrastructure components in a shared resource pool. This can be done in multiple manners, within your company or organizations own data center, or in a "public" shared datacenter owned and operated by a third party.
Popular choices for Public Cloud providers are Amazon Web Services, Microsoft Azure, and Google Compute Engine. These providers operate clusters of massive datacenters whereby thousands of different individuals, companies, and organizations consume these resources. Operating the Cloud involves enabling the partitioning of these shared resources for the usage of these different users. The consumption of the resources is tracked (also referred to as metered) and then billed back to the user depending on the different financial scheme for the various compute, network, and storage resources consumed.
Many modern websites and big data efforts are said to be developed in the Cloud, meaning they are operating in some of these massive shared datacenters.
#### More Information:
[Getting Started with AWS](https://aws.amazon.com/getting-started/)
[Google Cloud Documentation](https://cloud.google.com/docs/)
[Getting Started with Microsoft Azure](https://docs.microsoft.com/en-us/azure/guides/developer/azure-developer-guide)
[Firebase Documentation](https://firebase.google.com/docs/)

View File

@@ -0,0 +1,67 @@
---
title: Internet Applications
---
## Internet Applications
![Technology layers](https://upload.wikimedia.org/wikipedia/commons/9/9f/Linux_kernel_and_Computer_layers.png)
### Overview
Internet Applications are applications that are enabled by connecting a local device to a remote application server or cloud services.
Internet applications run on desktops and thin clients such as smart devices and other internet appliances.
Desktops commonly use web browsers to facilitate a connection.
Smart devices use either a web browser or a dedicated 'app' or Rich Internet Application.
Web applications are a kind of internet application.
### Full Stack
Internet applications consist of a full stack of layers.
The stack is sometimes divided into two parts or layers: The Front End and the Back End.
However the stack is divided, an application consists of software unique to itself, and a bunch of dependent software.
Dependent software consists of libraries and other software that provide services.
### Full Stack as system of subsystems
A useful way to view each component is as a part of a system of subsystems, where each subsystem is a system of subsystems.
As an analogy, the human body is a system of subsystems.
The body has an immune subsystem, a digestive subsystem, a nervous subsystem, a skeletal subsystem, a muscular subsystem and the like.
The digestive system includes the liver subsystem aka "liver" for example.
Each subsystem is a system in its own area of activity or function.
### Front End of Stack
The 'Front End' is the software unique to the application that performs work on a local device.
A local device has all the functional components of a computer. software applications installed in an operating system running on hardware (or virtual hardware running on hardware or other virtual hardware.)
### Back end of Stack
The 'Back End' is the software unique to the application that performs work on a remote server.
A remote server has all the functional components of a computer: software applications installed in an operating system running on hardware (or virtual hardware running on hardware or other virtual hardware.)
### Application Bias to Front or Back End
Applications seeking to work consistently across devices or requiring security in data storage and access will tend to have most business logic in the back end.
This is because software at the Front End is subject to many more modes of attack from malicious agents such as viruses, malware, and insider threats aka "inside hackers".
Also, web browsers standardize rendering of web content sent to the Front End.
Applications seeking speed and efficient use of project resources move as much software as possible into the Front End.
By moving resources to the Front End, a project can share its limited Back End resources with more end-users.
### Application Server
An application server or software framework provides the core required dependencies for an internet application.
### More Information:
[FreeCodeCamp Full Stack Development Certification](https://guide.freecodecamp.org/meta/free-code-camp-full-stack-development-certification)
[Rich Internet Application (Wikipedia.org)](https://en.wikipedia.org/wiki/Rich_Internet_application)
[Software Framework (Wikipeida.org)](https://en.wikipedia.org/wiki/Software_framework)
[Web Application Framework (Wikipedia.org)](https://en.wikipedia.org/wiki/Web_framework)
[Application Server (Wikipedia.org)](https://en.wikipedia.org/wiki/Application_server)

View File

@@ -0,0 +1,9 @@
---
title: Rackspace Cloud
---
## Rackspace Cloud
The Rackspace Cloud is a set of cloud computing products and services billed on a utility computing basis from the US-based company Rackspace. Offerings include web application hosting or platform as a service ("Cloud Sites"), Cloud Storage ("Cloud Files"), virtual private server ("Cloud Servers"), load balancers, databases, backup, and monitoring.
#### More Information:
<!-- Please add any articles you think might be helpful to read before writing the article -->
* <a href='https://en.wikipedia.org/wiki/Rackspace_Cloud' target='_blank' rel='nofollow'>Wikipedia</a>