Standardizing headings and fixing typos

pull/15/head
Kalyanasundaram Somasundaram 4 years ago
parent de6c025271
commit 5c85391504

@ -1,35 +1,32 @@
# School of SRE: Big Data
# Big Data
## Pre - Reads
## Prerequisites
- Basics of Linux File systems.
- Basic understanding of System Design.
## Target Audience
The concept of Big Data has been around for years; most organizations now understand that if they capture all the data that streams into their businesses, they can apply analytics and get significant value from it.
This training material covers the basics of Big Data(using Hadoop) for beginners, who would like to quickly get started and get their hands dirty in this domain.
## What to expect from this training
## What to expect from this course
This course covers the basics of Big Data and how it has evolved to become what it is today. We will take a look at a few realistic scenarios where Big Data would be a perfect fit. An interesting assignment on designing a Big Data system is followed by understanding the architecture of Hadoop and the tooling around it.
## What is not covered under this training
## What is not covered under this course
Writing programs to draw analytics from data.
## TOC:
## Course Content
### Table of Contents
1. Overview of Big Data
2. Usage of Big Data techniques
3. Evolution of Hadoop
4. Architecture of hadoop
1. [Overview of Big Data](https://linkedin.github.io/school-of-sre/big_data/overview/)
2. [Usage of Big Data techniques](https://linkedin.github.io/school-of-sre/big_data/overview/)
3. [Evolution of Hadoop](https://linkedin.github.io/school-of-sre/big_data/evolution/)
4. [Architecture of hadoop](https://linkedin.github.io/school-of-sre/big_data/architecture/)
1. HDFS
2. Yarn
5. MapReduce framework
6. Other tooling around hadoop
5. [MapReduce framework](https://linkedin.github.io/school-of-sre/big_data/architecture/#mapreduce-framework)
6. [Other tooling around hadoop](https://linkedin.github.io/school-of-sre/big_data/architecture/#other-tooling-around-hadoop)
1. Hive
2. Pig
3. Spark
4. Presto
7. Data Serialisation and storage
7. [Data Serialisation and storage](https://linkedin.github.io/school-of-sre/big_data/architecture/#data-serialisation-and-storage)

@ -1,6 +1,6 @@
# School Of SRE: Git
# Git
## Pre - Reads
## Prerequisites
1. Have Git installed [https://git-scm.com/downloads](https://git-scm.com/downloads)
2. Have taken any git high level tutorial or following LinkedIn learning courses
@ -8,22 +8,22 @@
- [https://www.linkedin.com/learning/git-branches-merges-and-remotes/](https://www.linkedin.com/learning/git-branches-merges-and-remotes/)
- [The Official Git Docs](https://git-scm.com/doc)
## What to expect from this training
## What to expect from this course
As an engineer in the field of computer science, having knowledge of version control tools becomes almost a requirement. While there are a lot of version control tools that exist today, Git perhaps is the most used one and this course we will be working with Git. While this course does not start with Git 101 and expects basic knowledge of git as a prerequisite, it will reintroduce the git concepts known by you with details covering what is happening under the hood as you execute various git commands. So that next time you run a git command, you will be able to press enter more confidently!
## What is not covered under this training
## What is not covered under this course
Advanced usage and specifics of internal implementation details of Git.
## Training Content
## Course Content
### Table of Contents
1. Git Basics
2. Working with Branches
3. Git with Github
4. Hooks
1. [Git Basics](https://linkedin.github.io/school-of-sre/git/git-basics/#git-basics)
2. [Working with Branches](https://linkedin.github.io/school-of-sre/git/branches/)
3. [Git with Github](https://linkedin.github.io/school-of-sre/git/github-hooks/#git-with-github)
4. [Hooks](https://linkedin.github.io/school-of-sre/git/github-hooks/#hooks)
## Git Basics

@ -1,19 +1,23 @@
# School of SRE
Early 2019, we started visiting campuses to recruit the brightest minds to ensure LinkedIn and all the services that it is composed of is always available for everyone. This function at Linkedin falls in the purview of the Site Reliability Engineering team and Site Reliability Engineers ( SRE ) who are Software Engineers who specialize in reliability. SREs apply the principles of computer science and engineering to the design and development of computer systems: generally, large distributed ones. As we continued on this journey we started getting a lot of questions from these campuses on what exactly site engineering roll entails? and, how could someone learn the skills and the disciplines involved to become a successful site engineer? Fast forward a few months, and a few of these campus students had joined LinkedIn either as Interns or as full time engineers to become a part of the Site Engineering team, we also had a few lateral hires who joined our organization who were not from a traditional SRE background. That's when a few of us got together and started to think about how we can on board new new graduate engineers to the site engineering team.
Early 2019, we started visiting campuses to recruit the brightest minds to ensure LinkedIn and all the services that it is composed of is always available for everyone. This function at Linkedin falls in the purview of the Site Reliability Engineering team and Site Reliability Engineers ( SRE ) who are Software Engineers who specialize in reliability. SREs apply the principles of computer science and engineering to the design and development of computer systems: generally, large distributed ones.
There is a vast amount of resources scattered throughout the web on what are the roles and responsibilities of an SREs, how to monitor site health, handling incidents, maintain SLO/SLI etc. But there are very few resources out there guiding someone on what all basic skill sets one has to acquire as a beginner. Because of the lack of these resources we felt that individuals are having a tough time getting into open positions in the industry. We created School Of SRE as a starting point for anyone wanting to build their career in the role of SRE. In this course we are focusing on building strong foundational skills. The course is structured in a way to provide more real life examples and how learning each of the topics can play a bigger role in your day to day SRE life. Currently we are covering the following topics under the School Of SRE:
As we continued on this journey we started getting a lot of questions from these campuses on what exactly site engineering roll entails? and, how could someone learn the skills and the disciplines involved to become a successful site engineer? Fast forward a few months, and a few of these campus students had joined LinkedIn either as Interns or as full time engineers to become a part of the Site Engineering team, we also had a few lateral hires who joined our organization who were not from a traditional SRE background. That's when a few of us got together and started to think about how we can on board new new graduate engineers to the site engineering team.
There is a vast amount of resources scattered throughout the web on what are the roles and responsibilities of an SREs, how to monitor site health, handling incidents, maintain SLO/SLI etc. But there are very few resources out there guiding someone on what all basic skill sets one has to acquire as a beginner. Because of the lack of these resources we felt that individuals are having a tough time getting into open positions in the industry. We created School Of SRE as a starting point for anyone wanting to build their career in the role of SRE.
In this course we are focusing on building strong foundational skills. The course is structured in a way to provide more real life examples and how learning each of the topics can play a bigger role in your day to day SRE life. Currently we are covering the following topics under the School Of SRE:
- Linux basics
- Git and python
- Linux networking
- Introduction to security concepts
- [Git](https://linkedin.github.io/school-of-sre/git/git-basics/)
- [Linux networking](https://linkedin.github.io/school-of-sre/linux_networking/intro/)
- [Python](https://linkedin.github.io/school-of-sre/python_web/intro/)
- Relational databases (MySQL)
- NoSQL concepts
- Introduction to BigData
- Network/Web Security
- System Design
- NoSQL concepts
- [Big Data](https://linkedin.github.io/school-of-sre/big_data/intro/)
- [Systems Design](https://linkedin.github.io/school-of-sre/systems_design/intro/)
- [Security](https://linkedin.github.io/school-of-sre/security/intro/)
We believe continuous learning will help in acquiring deeper knowledge and competencies in order to expand your skill sets, every module has added reference which could be a guide for further learning. Our hope is that by going through these modules we should be able build the essential skills required for a Site Reliability Engineer.
At linkedin we are using this curriculum for onboarding our non-traditional hires and new college grads to the SRE role. We had multiple rounds of successful onboarding experience with the new members and helped them to be productive in a very short period of time. This motivated us to opensource these contents for helping other organisations onboarding new engineers to the role and individuals to get into the role. We realise that the initial content we created is just a starting point and our hope is that the community can help in the journey refining and extending the contents.
At Linkedin we are using this curriculum for onboarding our non-traditional hires and new college grads to the SRE role. We had multiple rounds of successful onboarding experience with the new members and helped them to be productive in a very short period of time. This motivated us to opensource these contents for helping other organisations onboarding new engineers to the role and individuals to get into the role. We realise that the initial content we created is just a starting point and our hope is that the community can help in the journey refining and extending the contents.

@ -1,6 +1,6 @@
# Linux Networking Fundamentals
## Pre - Reads
## Prerequisites
This course requires high-level knowledge of commonly used jargon in TCP/IP stack like DNS, TCP, UDP and HTTP. Basic familiarity with Linux jargon is sufficient to start this course. This course also expects basic exposure to Linux command-line tools. The course will require you to install certain utilities and run them as a part of the course exercises.
@ -18,3 +18,9 @@ This course spends time on the fundamentals. We are not covering concepts like H
The course covers the question “What happens when you open linkedin.com in your browser?” The course follows the flow of TCP/IP stack.More specifically, the course covers topics of Application layer protocols DNS and HTTP, transport layer protocols UDP and TCP, networking layer protocol IP and Data Link Layer protocol
## Table of Contents
1. [DNS](https://linkedin.github.io/school-of-sre/linux_networking/dns/)
2. [UDP](https://linkedin.github.io/school-of-sre/linux_networking/udp/)
3. [HTTP](https://linkedin.github.io/school-of-sre/linux_networking/http/)
4. [TCP](https://linkedin.github.io/school-of-sre/linux_networking/tcp/)
5. [IP Routing](https://linkedin.github.io/school-of-sre/linux_networking/ipr/)

@ -1,11 +1,11 @@
# School of SRE: Python and The Web
# Python and The Web
## Pre - Reads
## Prerequisites
- Basic understanding of python language.
- Basic familiarity with flask framework.
## What to expect from this training
## What to expect from this course
This course is divided into two high level parts. In the first part, assuming familiarity with python languages basic operations and syntax usage, we will dive a little deeper into understanding python as a language. We will compare python with other programming languages that you might already know like Java and C. We will also explore concepts of Python objects and with help of that, explore python features like decorators.
@ -13,25 +13,25 @@ In the second part which will revolve around the web, and also assume familiarit
And to introduce SRE flavour to the course, we will design, develop and deploy (in theory) a URL shortening application. We will emphasize parts of the whole process that are more important as an SRE of the said app/service.
## What is not covered under this training
## What is not covered under this course
Extensive knowledge of python internals and advanced python.
## Training Content
## Course Content
### Lab Environment Setup
Have latest version of python installed
### TOC
### Table of Contents
1. The Python Language
1. [The Python Language](https://linkedin.github.io/school-of-sre/python_web/intro/#the-python-language)
1. Some Python Concepts
2. Python Gotchas
2. Python and Web
2. [Python and Web](https://linkedin.github.io/school-of-sre/python_web/python-web-flask/)
1. Sockets
2. Flask
3. The URL Shortening App
3. [The URL Shortening App](https://linkedin.github.io/school-of-sre/python_web/url-shorten-app/)
1. Design
2. Scaling The App
3. Monitoring The App

@ -1,4 +1,4 @@
# Python, Web amd Flask
# Python, Web and Flask
Back in the old days, websites were simple. They were simple static html contents. A webserver would be listening on a defined port and according to the HTTP request received, it would read files from disk and return them in response. But since then, complexity has evolved and websites are now dynamic. Depending on the request, multiple operations need to be performed like reading from database or calling other API and finally returning some response (HTML data, JSON content etc.)

@ -1,47 +1,33 @@
# Security
---
### Target Audience
The material is suitable for new SRE hires or graduate computer science majors straight out of college, anyone who has a basic technical background, or readers who have a basic understanding of IT security and want to expand their knowledge.
The approach being covered here deals with the fundamentals of computer security in the modern IT landscape moreover it sheds light on most of the dangerous "things" out there on public internet which are potentially a gateway to compromising systems. As an SRE, you are expected to design, build and develop products, this course will give you that security knob into your thinking and problem-solving approach which is expected to be turned on as a critical area that always takes precedence over anything else.
---
### Pre Requirements
## Prerequisites
1. Basics of Linux fundamentals & command line usage
2. Networking Module
---
### What to expect from this training
## What to expect from this course
The course covers fundamentals of information security along with touching on subjects of system security, network & web security. The aim of this course is to get familiar with the basics of information security in day to day operations & then as an SRE develop the mindset of ensuring that security takes a front-seat while developing solutions. The course also serves as an introduction to common risks and best practices along with practical ways to find out vulnerable systems and loopholes which might become compromised if not secured.
---
### What is not covered under this training
## What is not covered under this course
The courseware is not an ethical hacking workshop or a very deep dive into the fundamentals of the problems. The course does not deal with hacking or breaking into systems but rather an approach on how to ensure you dont get into those situations and also to make you aware of different ways a system can be compromised.
---
### Training Content
Part I: Fundamentals
Part II: Network Security
## Course Content
Part III: Threats, Attacks & Defense
### Table of Contents
PART IV: Writing Secure Code & More
1. [Fundamentals](https://linkedin.github.io/school-of-sre/security/fundamentals/)
2. [Network Security](https://linkedin.github.io/school-of-sre/security/network_security/)
3. [Threats, Attacks & Defence](https://linkedin.github.io/school-of-sre/security/threats_attacks_defences/)
4. [Writing Secure Code & More](https://linkedin.github.io/school-of-sre/security/writing_secure_code/)
---
### Post Training asks/ Further Reading
## Post Training asks/ Further Reading
- CTF Events like : <https://github.com/apsdehal/awesome-ctf>
- Penetration Testing : <https://github.com/enaqx/awesome-pentest>

@ -1,27 +1,30 @@
# Systems Design
## Pre - Requisites
## Prerequisites
Fundamentals of common software system components:
- Operating Systems
- Networking
- Databases RDBMS/NoSQL
## What to expect from this training
## What to expect from this course
Thinking about and designing for scalability, availability, and reliability of large scale software systems.
## What is not covered under this training
## What is not covered under this course
Individual software components scalability and reliability concerns like e.g. Databases, while the same scalability principles and thinking can be applied, these individual components have their own specific nuances when scaling them and thinking about their reliability.
More light will be shed on concepts rather than on setting up and configuring components like Loadbalancers to achieve scalability, availability and reliability of systems
## Training Content
- Introduction
- Scalability
- High Availability
- Fault Tolerance
## Course Content
### Table of Contents
- [Introduction](https://linkedin.github.io/school-of-sre/systems_design/intro/#backstory)
- [Scalability](https://linkedin.github.io/school-of-sre/systems_design/scalability/)
- [High Availability](https://linkedin.github.io/school-of-sre/systems_design/availability/)
- [Fault Tolerance](https://linkedin.github.io/school-of-sre/systems_design/fault-tolerance/)
## Introduction

@ -1,18 +1,20 @@
site_name: school_of_sre
site_name: SchoolOfSRE
docs_dir: courses
plugins: []
nav:
- Home: index.md
- Git:
- Git Basics: git/git-basics.md
- Working With Branches: git/branches.md
- Github and Hooks: git/github-hooks.md
- Linux Networking:
- Introduction: linux_networking/intro.md
- DNS: linux_networking/dns.md
- UDP: linux_networking/udp.md
- HTTP: linux_networking/http.md
- TCP: linux_networking/tcp.md
- Routing and Conclusion: linux_networking/ipr.md
- Fundamentals Series:
- Git:
- Git Basics: git/git-basics.md
- Working With Branches: git/branches.md
- Github and Hooks: git/github-hooks.md
- Linux Networking:
- Introduction: linux_networking/intro.md
- DNS: linux_networking/dns.md
- UDP: linux_networking/udp.md
- HTTP: linux_networking/http.md
- TCP: linux_networking/tcp.md
- Routing and Conclusion: linux_networking/ipr.md
- Python and Web:
- Introduction: python_web/intro.md
- Some Python Concepts: python_web/python-concepts.md
@ -25,16 +27,17 @@ nav:
- Availability: systems_design/availability.md
- Fault Tolerance: systems_design/fault-tolerance.md
- Conclusion: systems_design/conclusion.md
- Big Data:
- Introduction: big_data/intro.md
- Overview of Big Data: big_data/overview.md
- Usage of Big Data techniques: big_data/usage.md
- Evolution of Hadoop: big_data/evolution.md
- Architecture of Hadoop: big_data/architecture.md
- Tasks and conclusion: big_data/tasks.md
- Data:
- Big Data:
- Introduction: big_data/intro.md
- Overview of Big Data: big_data/overview.md
- Usage of Big Data techniques: big_data/usage.md
- Evolution of Hadoop: big_data/evolution.md
- Architecture of Hadoop: big_data/architecture.md
- Tasks and conclusion: big_data/tasks.md
- Security:
- Introduction: security/intro.md
- Fundamentals of Security: security/fundamentals.md
- Network Securuty: security/network_security.md
- Network Security: security/network_security.md
- Threat, Attacks & Defences: security/threats_attacks_defences.md
- Writing Secure code: security/writing_secure_code.md

Loading…
Cancel
Save