Overview
The Site Reliability Engineering (SRE) Practitioner course provides participants with the necessary knowledge and skills to become proficient in the principles and practices of Site Reliability Engineering. SRE is an approach to managing and scaling large-scale systems, combining software engineering and operations to enhance system reliability, performance, and efficiency.
Objectives
At the end of Applying Professional Scrum Training for Site Reliability Engineering (SRE) Practitioner course, participants will be able to
Prerequisites
- Basic understanding of computer science and software engineering principles.
- Familiarity with operating systems and networking concepts.
- Knowledge of programming languages and scripting.
- Experience with system administration or operations is beneficial.
Course Outline
- A Simple Java Class
- Java’s “Hello World” Program
- The Java Shell (REPL)
- Language and Platform Features
- The Java Release Cycle
- Program Life Cycle
- The Java SE Development Kit (JDK)
- The Object Model and Object-Oriented Programming
- Classes, References, and Instantiation
- Adding Data to a Class Definition
- Adding Methods (Behavior)
- Accessing data, the “this” variable
- Encapsulation and Access Control, public and private Access
- Constructors and Initialization
- static Members of a Class
- Type Inference (Java 10+)
- Scopes, Blocks, References to Objects
- Type-safe Enums
- Branching: if, if-else, switch
- Iteration: while, do-while, for, break, continue
- String, StringBuffer, StringBuilder
- Arrays, Primitive Arrays, Arrays of Reference Types
- varargs
- LocalDate/LocalTime (Java 8+)
- What is Python?Interpreted languages
- Advantages and disadvantages
- Downloading and installing
- Which version of Python
- Where to find documentation
- Structure of a Python script
- Using the interpreter interactively
- Running standalone scripts under Unix and Windows
- Using variables
- String types: normal, raw and Unicode
- String operators and expressions
- Math operators and expressions
- Writing to the screen
- Command line parameters
- Reading from the keyboard
- About flow control
- Indenting is significant
- The if and elif statements
- while loops
- Using lists
- Using the for statement
- The range() function
- list operations
- list methods
- Strings are special kinds of lists
- tuples
- Text file I/O overview
- Opening a text file
- Reading text files
- Raw (binary) data
- Writing to a text file
- Dictionary overview
- Creating dictionaries
- Dictionary functions
- Fetching keys or values
- Testing for existence of elements
- Deleting elements
- Sets And Frozen Sets
- Syntax of function definition
- Formal parameters
- Global versus local variables
- Passing parameters and returning values
- The sorted() function
- Alternate keys
- Multiple keys
- Lambda functions
- Dealing with syntax errors
- Exceptions
- Handling exceptions with try/except
- Cleaning up with finally
- What is a module?
- The import statement
- Function aliases
- Packages
- RE Objects
- Pattern matching
- Parsing data
- Subexpressions
- Complex substitutions
- RE tips and tricks
- Working with the operating system
- Grabbing web pages
- Sending email
- math and random
- Accessing dates and times with datetime
- Working with compressed files
- About o-o programming
- Defining classes
- Constructors
- Instance methods
- Instance data
- Class methods and data
- Destructors
- Package Overview – Using Packages to Organize Code
- import statements
- Creating Packages, package Statement, Required Directory Structure
- Java 9 Module Overview
- Defining Modules, Requires, and Exports
- Module Path and Classpath – Differences and Coexistence
- Using Composition to Deal With Complexity
- Composition/HAS-A, Delegation
- Using Inheritance and Polymorphism to share commonality
- IS-A, extends, Inheriting Features, Overriding Methods, Using Polymorphism
- Class Object
- Abstract Classes
- Using Interfaces to Define Types
- Interfaces and Abstract Classes
- Default Methods and static Methods (Java 8)
- Exceptions and the Exception Hierarchy
- try and catch
- Handling Exceptions
- Program Flow with Exceptions
- The Collections Framework and its API
- Collections and Java Generics
- Collection, Set, List, Map, Iterator
- Autoboxing
- Collections of Object (non-generic)
- Using ArrayList, HashSet, and HashMap
- for-each Loop
- Processing Items With an Iterator
- More About Generics