Description
In this course, you will learn :
- A thorough understanding of the Elixir programming language's distinguishing features.
- Knowledge of how to migrate from existing technology stacks to Elixir.
- Deep understanding of distributed web application deployment and maintenance.
- Your development team's ability to address upskilling and cross-skilling.
- A one-of-a-kind framework for team building, code management, and integrating other web technologies.
Syllabus :
1. Three Adoption Stories
- The Acquisition of icanmakeitbetter
- Bleacher Report Improves Performance and Reliability
- Plataformatec Supports Early Adopters
2. Concept: Team Building
- Introduction to Team Building
- Training Developers
- When Things Go Wrong
- Hiring Elixir Developers
- Conducting Interviews
3. Concept: Ensuring Code Consistency
- Introduction to Code Consistency
- Coding Standards and Code Formatters
- LintersTypespecsDialyxir
- DocumentationTests and Code Coverage
- Bureaucrat
- Putting It All Together: Code Reviews
4. Concept: Legacy Systems and Dependencies
- Introduction to Legacy Systems and Dependencies
- Replacing a Legacy Web App
- Terraform and API Evolution
- Moving Incremental Releases into Production
- Umbrella Projects
- Umbrella Project Example
- Managing Third-party Dependencies
5. Development: Making the Functional Transition
- Introduction to Making the Functional Transition
- Elixir vs. Mutable Objects
- Immutability and Memory
- Polymorphism
- Agents and Tasks
- The Generic Server
- GenServer as a Coordinator
- GenServers for Code Organization
- SupervisorsSummary of Making the Functional Transition
6 Development - Distributed Elixir
- Introduction to Distributed Elixir
- Remote Message Passing
- Persistence Strategies
- Finding Processes
- Cache and ETS
- Message Delivery Guarantees
- Homogeneous vs. Heterogeneous Systems
7. Development - Integrating with External Code
- Introduction to Integrating with External Code
- Strategy 1: Native Implemented Functions (NIFs)
- Strategy 2: Communicating via I/O with PortsAll-Caps I/O Program
- More about Ports
- Strategy 3: The Erlang Distribution Protocol
- Summary of Integrating with External Code
8. Production - Coordinating Deployments
- Introduction to Coordinating Deployments
- Deploying with Mix
- The run_erl and heartool
- Releases
- Using Distillery
- Application Configuration
- Upgrading Code
- Blue-Green Deployment and Destructive Operations in Database
- Distributed Erlang
- Erlang Clusters without EPMD
9. Production - Metrics and Performance Expectations
- Introduction to Metrics and Performance Expectations
- Instrumenting Your System
- Instrumenting Ecto
- Performance Assessment Workflow
- Load TestingProfiling
- Benchmarking
- Summary of Metrics and Performance Expectations
10. Production - Making Your App Production Ready
- Introduction to Making Your App Production Ready
- Logs and ErrorsCustom Formatters
- SASL ReportsTracing
- Using Other Advanced Tools
- Summary of Making Your Application Production Ready