Description
Who should attend
This class is targeted for anybody interested in the processes of Microservices; Developers, Operations Staff, Cloud Architects, DevOps and IT Professionals. The lab portion of this class has two paths; one for technical people and one for management.
Prerequisites
This course is intended for students who might not have previous development experience.
Course Objectives
You will learn essential microservices concepts including:
- Refactor, untangle, and split monolithic services to support a transition to microservices.
- Pay down technical debt by understanding the benefits of supporting your business strategy with microservices.
- Develop proficiency with the most popular tools used by the experts who routinely deploy microservices.
- Clearly understand why the microservices revolution is driving DEVOPs towards simpler and more effective automation.
- Gain experience by deploying an actual microservices solution with API gateway, using Docker, Docker compose, Jenkins, and Kubernetes.
- Actually carry out the transition of monolith to microservices in a step by step hands on exercise.
- Learn how to incorporate an API gateway into your microservices ingress.
- Experiment with stateful solutions for microservices.
- Deploy Jenkins in a CI/CD pipeline.
- Learn how to use (and not use) ansible to deploy microservices solutions.
Follow On Courses
Kubernetes Bootcamp (KUBERNETES BC)
Outline: Developing Microservices (DMS)
Introduction to Microservices and the Development Environment-
This section introduces you to the foundations of microservices: What a microservice is, Why organizations have chosen to adopt the microservices model, and How microservices compare to other service architectures. You will perform step-by-step labs, learning ways to efficiently manipulate your microservices development environment. Core Concepts:
- Defining Microservices
- Iteration
- Feedback Loops
- Scaling
- Microservices vs Other Architectures
- Revision Control
Organizational Adoption of Microservices–
You will learn design essentials for adopting microservices, viewed from different roles within an organization: Managers, Operations, and Developers. You will start with a monolithic application, which you will begin transforming into a microservice-based application. The hands-on labs of this section introduce you to the monolithic application you will be converting, and establish a consistent method to test the application’s performance. Core Concepts:
- Conway’s Law
- Service Oriented Architecture
- Infrastructure as a Service
- Idempotency in Infrastructure
- Components of a 12 Factor App
- Defining DevOps
Service Discovery and Connectivity-
You will practice with the various additional infrastructure and code that is needed for transforming an application into a replicable service. You will follow a proven process of building and connecting applications to a service registry through the hands-on labs. Core Concepts:
- Service Discovery
- Service Registries
- DNS based Service Discovery
- Configuration Variables
- Legacy Service Connectivity
- Modern Service Connectivity
- Security Considerations
Databases and Service Runtime –
You will be introduced to options available to store the state of services, as well as various ways that services can be hosted with several runtime environments. You will create a microservice and integrate it with the existing monolithic based application. Core Concepts:
- SQL vs NoSQL
- Volume Storage
- Object Storage
- Hypervisors
- Containers
- Cloud Services
- On-Premises Services
Service Definition –
You will study configuration, monitoring, and testing options that apply to microservice development. In the labs, you will continue to build microservices and attach them to the monolith. Core Concepts:
- Software Releases
- Configuration Systems
- Associated Services (Prometheus, Graphana, Jaeger, Vault)
- Securing Secrets
- Automated Testing
- Continuous Integration (Jenkins, Travis, Gitlab)
Deploying and Upgrading Your Microservices –
You will directly apply the latest microservices tools to containerize and test microservices in a container based deployment. You will then deploy your microservice into a Kubernetes environment, completing the conversion from monolith to microservice. Core Concepts:
- Application Specific Servers
- Virtual Machines (VMWare, OpenStack, EC2, Azure, Google Cloud)
- Docker
- Docker-Compose
- Containerd
- Podman
- Kubernetes
Practical Adoption of Microservices –
The final section of the course will summarize the concepts previously covered, as well as discuss the practical implications of designing for, or migrating to, a microservices based architecture. Core Concepts:
- Workflow
- Create, Shorten and Amplify Feedback Loops
- Continued Experimentation
- Working Code Works
- Costs of Microservice Migration
- State Management in Service Design
- Encapsulation
- Segregation
- Adoption