Microservice architecture is a brave new world! Companies are abandoning the age-old monolith architecture for a modular approach that supports rapid expansion and compression of services. As your company grows, the more you’ll find a transition to microservices is necessary! Make the journey work for your business by mastering an arsenal of tools to plan, communicate, and manage the transition to microservices in a cost effective way. In our labs, you will convert a clumsy monolithic application to agile microservices in a controlled environment. Learn firsthand how and why each step is taken in the orderly decision process of transitioning your environment to 100% microservices!
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.
This course is intended for students who might not have previous development experience.
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
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
- Feedback Loops
- 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
- 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)
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:
- Create, Shorten and Amplify Feedback Loops
- Continued Experimentation
- Working Code Works
- Costs of Microservice Migration
- State Management in Service Design