Skip to content

Commit

Permalink
Added DevOps methodology and process
Browse files Browse the repository at this point in the history
  • Loading branch information
raycad committed Nov 16, 2018
1 parent 4d9a5a1 commit 8d05bed
Show file tree
Hide file tree
Showing 7 changed files with 80 additions and 29 deletions.
109 changes: 80 additions & 29 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,61 @@
# DevOps Roadmap 2019
# 1. DevOps

For the **beginners** you can refer this article:
### 1.1. What is DevOps?

*https://codeburst.io/the-2018-web-developer-roadmap-826b1b806e8d*
**DevOps** is a software development methodology that combines software development (**Dev**) with information technology operations (**Ops**) participating together in the entire service lifecycle, from design through the development process to production support.

Below, I'd like to give the **advanced** roadmap based on the **trending**, **performance** and **my experience**:
![DevOps Concepts](./docs/images/devops_concepts.png)

![DevOps Roadmap](./docs/images/devops_roadmap.png)
### 1.2. The goals of DevOps

## 1. Become a Web Developer
* Fast Development Methodologies
* Fast Quality Assurance Methodologies
* Fast Deployment Methodologies
* Faster time to market
* Iteration & Continuous Feedback (strong and continuous communication between stakeholders – the end users and customers, product owners, development, quality assurance, and production engineers)

### 1.3. The benefits of DevOps

* **Environment Stabilization**

*Enforces consistency, increase up-time*
* **Shorter Development Cycle**

*Manage requirements and code-repository*
* **Increased Release Velocity**

*Continuous build, push-button deployments*
* **Reduced Defects**

*Regiment processes, automated testing*
* **Process Metrics**

*Track both time at each stage, and the errors and exceptions*

![DevOps Benefits](./docs/images/devops_benefits.png)

### 1.4. The steps of DevOps

* **Plan**: task management, schedules
* **Code**: code development and code review, source code management tools, code merging
* **Build**: continuous integration tools, version control tools, build status
* **Test**: continuous testing tools that provide feedback on business risks, determine performance
* **Package**: artifact repository, application pre-deployment staging
* **Release**: change management, release approvals, release automation
* **Operate**: infrastructure installation, infrastructure changes (scalability), infrastructure configuration and management, infrastructure as code tools, capacity planning, capacity & resource management, security check, service deployment, high availability (HA), data recovery, log/backup management, database management
* **Monitor**: service performance monitoring, log monitoring, end user experience, incident management

![DevOps Steps](./docs/images/devops_steps.png)

### 1.5. Agile DevOps Process

![DevOps Process](./docs/images/devops_agile.png)

# 2. DevOps Technologies

![DevOps Technologies](./docs/images/devops_technologies.png)

## Roadmap for a DevOps developer
* **Step 1**: Learn a language
* Begin with HTML & CSS
* Learn basics of the JavaScript
Expand Down Expand Up @@ -97,18 +144,18 @@ Below, I'd like to give the **advanced** roadmap based on the **trending**, **pe

* **Step 23**: Keep exploring

## 2. Think about Big Data problems and find out solutions to solve them
### 2.1. What is Big Data?
## 3. Big Data
### 3.1. What is Big Data?
A collection of **LARGE Datasets**, so it can **NOT be Processed** by traditional methods…

![Big Data Concept](./docs/images/bigdata_concept.png)

**[Source]**: https://topics.amcham.com.tw/wp-content/uploads/2016/03/BigData_2267x1146_white.png

### 2.2. Characteristics of Big Data
### 3.2. Characteristics of Big Data
![Big Data Characteristics](./docs/images/bigdata_characteristics.png)

### 2.3. Big Data Use Cases
### 3.3. Big Data Use Cases
* Recommendation System
* Clickstream Analysis
* Real-time Analytics
Expand All @@ -121,7 +168,7 @@ A collection of **LARGE Datasets**, so it can **NOT be Processed** by traditiona
* Image Classification
* Anomaly Detection

### 2.4. Big Data Solutions
### 3.4. Big Data Solutions
* <H3>Distributed File System</H3>

![Distributed File System](./docs/images/distributed_file_system.png)
Expand All @@ -134,10 +181,10 @@ A collection of **LARGE Datasets**, so it can **NOT be Processed** by traditiona

![Distributed Computation](./docs/images/distributed_computation.png)

### 2.5. How Does Big Data Analysis Work?
### 3.5. How Does Big Data Analysis Work?
![Distributed Computation](./docs/images/bigdata_flow.png)

### 2.6. Why Messing?
### 3.6. Why Messing?
* Data usually flows from one application to another. It is produced by one application and used by one or more other applications.
* Generally, the application **generating** or **sending** data is referred to as a **producer**, and the one **receiving** data is called a **consumer**.
* A simple way to send data from one application to another is to connect them to each other directly. However, tight coupling between producers and consumers requires them to be run at the same time or to implement a complex buffering mechanism. Therefore, **direct connections between producers and consumers does not scale**.
Expand All @@ -148,12 +195,12 @@ A collection of **LARGE Datasets**, so it can **NOT be Processed** by traditiona

A **flexible** and **scalable** solution is to use a **message broker** or **messaging system**. Instead of applications connecting directly to each other, they connect to a message broker or a messaging system. This architecture makes it easy to add producers or consumers to a data pipeline.

### 2.7. What is Batch/Stream Processing?
* Batch processing is processing  a large volume of data at once.
### 3.7. What is Batch/Stream Processing?
* Batch processing is processing a large volume of data at once.

**Example** *processing  all the transactions that have been performed by a major ecommerce firm in a week. This data can tune into millions of records for a day which can be stored as a file/records etc. This particular file will undergo processing at the end of the day for various analysis the company wants to do and naturally it will take large amount of time for this to be processed. That would be what Batch processing is. And what Hadoop does is it provides Map Reduce as a processing tool for these large files which can be years of data stored monthly of data etc.*
**Example** *processing all the transactions that have been performed by a major ecommerce firm in a week. This data can tune into millions of records for a day which can be stored as a file/records etc. This particular file will undergo processing at the end of the day for various analysis the company wants to do and naturally it will take large amount of time for this to be processed. That would be what Batch processing is. And what Hadoop does is it provides Map Reduce as a processing tool for these large files which can be years of data stored monthly of data etc.*

* Stream processing changes the approach for processing. What it does is it applies the business logic to every transaction that is being recorded for the above ecommerce portal. It applies business logic to every event that is being captured rather than store all the events and then process them, which turns out now that whatever analysis is being done reflects the real state of the data at this instance. So, it becomes real time. And therefore stream processing is also associated with Real time.
* Stream processing changes the approach for processing. What it does is it applies the business logic to every transaction that is being recorded for the above ecommerce portal. It applies business logic to every event that is being captured rather than store all the events and then process them, which turns out now that whatever analysis is being done reflects the real state of the data at this instance. So, it becomes real time. And therefore stream processing is also associated with Real time.

<H3>Batch Processing vs Streaming Processing</H3>

Expand All @@ -164,24 +211,24 @@ A **flexible** and **scalable** solution is to use a **message broker** or **mes
| **Performance** | Latencies in minutes to hours | Requires latency in the order of seconds or milliseconds |
| **Analyses** | Complex analytics | Simple response functions, aggregates, and rolling metrics |

## 3. Apply Machine Learning technologies to mine data
### 3.1. What is Machine Learning?
* Machine learning is creating and using models that are learned from data.
* Machine learning referred to as predictive modeling or data mining.
## 4. Machine Learning
### 4.1. What is Machine Learning?
* Machine learning is creating and using models that are learned from data.
* Machine learning referred to as predictive modeling or data mining.

**Examples**:
* Spam prediction
* Fraudulent credit card transaction prediction
* Fraudulent credit card transaction prediction
* A product or advertisement recommendation engine

<H3>Data Science Fields</H3>

![Data Science Fields](./docs/images/data_science_fields.png)

### 3.2. Traditional Programming vs Machine Learning
### 4.2. Traditional Programming vs Machine Learning
![Traditional Programming vs Machine Learning](./docs/images/traditional_programming_vs_machine_learning.png)

### 3.3. Machine Learning: Process
### 4.3. Machine Learning: Process
![Machine Learning: Process](./docs/images/machine_learning_process.png)

* <H3>Model Feedback Loop</H3>
Expand All @@ -192,11 +239,15 @@ A **flexible** and **scalable** solution is to use a **message broker** or **mes

![Model Feedback Loop](./docs/images/tensorflow_serving.png)

## 4. Books Recommendation
* Best Seller in Computer Neural Networks on Amazon 2018: *Hands-On Machine Learning with Scikit-Learn and TensorFlow* https://github.com/raycad/devops-roadmap/blob/master/books/ai/ml/hands_on_machine_learning_with_scikit_learn_and_tensorflow.pdf
# 5. Books Recommendation
* **Best Seller in Computer Neural Networks on Amazon 2018**: *Hands-On Machine Learning with Scikit-Learn and TensorFlow* https://github.com/raycad/devops-roadmap/blob/master/books/ai/ml/hands_on_machine_learning_with_scikit_learn_and_tensorflow.pdf

* **System Design Primer**: https://github.com/raycad/devops-roadmap/blob/master/books/software-architecture/system_design_primer.pdf

* **Programming Collective Intelligence**: https://github.com/raycad/devops-roadmap/blob/master/books/ai/ml/oreilly_programming_collective_intelligence_aug_2007.pdf

* System Design Primer: https://github.com/raycad/devops-roadmap/blob/master/books/software-architecture/system_design_primer.pdf
* **Azure Cloud Architecture**: https://github.com/raycad/devops-roadmap/blob/master/books/software-architecture/azure_cloud_architecture.pdf

* Programming Collective Intelligence: https://github.com/raycad/devops-roadmap/blob/master/books/ai/ml/oreilly_programming_collective_intelligence_aug_2007.pdf
# 6. References

* Azure Cloud Architecture: https://github.com/raycad/devops-roadmap/blob/master/books/software-architecture/azure_cloud_architecture.pdf
https://codeburst.io/the-2018-web-developer-roadmap-826b1b806e8d
Binary file added docs/images/devops_agile.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/devops_benefits.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/devops_concepts.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file removed docs/images/devops_roadmap.png
Binary file not shown.
Binary file added docs/images/devops_steps.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/devops_technologies.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit 8d05bed

Please sign in to comment.