We use cookies on this website to make it function correctly and to achieve the purposes illustrated in the cookie policy. By continuing to browse, you agree to the use of cookies. Cookie Policy

Microservices + Orchestration

Write better code to meet the scalability requirements of millions of users by deploying and scaling microservice-based applications.

Course Overview

With the advent of cloud computing resources, computer programmers were freed from the constraints imposed by inefficient corporate data centers. With the new resources came the freedom to establish new and innovative ways to create and deploy software. Thus, the microservices revolution began.

You will build microservice architectures from first principles to establish an in-depth understanding of the current best practices in the industry. Then, you will learn how to containerize, deploy, scale, and manage those microservices to guarantee resilience in a production environment.

video poster

How do these two subjects fit together?

Moving from monolithic applications to service-oriented architectures moved the complexity of applications from their implementation to the deployment, monitoring, and management of many individual applications. With the advent of infrastructure as code, developers can own the total application lifecycle. Understanding how to break down the features of an application into individually deployable services, and how to get those services into production in a repeatable and sustainable way, necessitates the comprehensive undertaking of both microservices and the orchestration it takes to make them work together in a production environment.

What more will I learn about microservices?

The term “microservice” has no universal definition. As such, it is important to understand the trade-offs that come with choosing aspects of each service’s internal and external architectures. This class provides you with a robust framework to help you design complex applications through a microservice architecture taking into consideration data responsibility, transactional scope, and strategies to properly test its correctness.

Isn’t orchestration just Docker and Kubernetes?

While Docker and Kubernetes have wide support, they are neither the beginning nor the end of proper application deployment, scaling, and management. You will face and gracefully overcome the challenges of networking and observability. You will get a chance to investigate alternative and complementary ideas and solutions that have strong community and industry support, for example, support for deploying and orchestrating non-containerized applications.

video poster
Background Image

What you'll learn

Produce microservice-based application architectures, critique modes of microservice communication, and use containerization & orchestration to deploy applications with no downtime.

Background Image

Course projects

Drink Me is a project to refactor a monolithic application into microservices and Out The Door is a project to deploy applications using big bang, blue-green, and canary styles.

Background Image

Prerequisites

You can write a three-tier database-backed Web application.

Upcoming Courses:

March 15th - April 21st

Microservices + Orchestration

| Live Online

$1,800

April 27th - June 3rd

Microservices + Orchestration

| Live Online

$1,800

June 8th - July 15th

Microservices + Orchestration

| Live Online

$1,800

Course Design

Syllabus

This two-fold path begins with exploring strong software design techniques and the fundamentals of orchestration. Using industry-standard design techniques, you’ll start growing your expertise at modeling software systems. You’ll also become familiar with how to isolate an application within a container.

  • Use Domain-Driven Design to structure your approach to software design

  • Learn about different communication paradigms that allow a distributed application’s components to communicate with one another

  • Install and use Docker to codify the foundations of your application infrastructure

With continued application of software design techniques, you’ll be able to determine microservice boundaries for a distributed application. Then, you’ll peer inside a microservice to comprehend the internal workings and communication portals. You’ll use this knowledge to coordinate multiple microservices to run together as an application.

  • Design and build internal and external APIs for microservices

  • Determine the proper communication paradigms and implementations to allow communication with microservices

  • Investigate service discovery using simple orchestration tools

While testing software comes in many forms, the advent of microservices has extended the need for new tools and methods to test the various components’ intercommunication as well as reliability. You’ll work through the challenges of testing microservices using state-of-the-art tools while revisiting design implications for these concerns.

  • Use contract testing to test producers and consumers of messages

  • Understand chaos testing for reliability across a deployed microservice topology

  • Use more complex orchestration tools to manage microservice provisioning and deployment

There are many ways to get your application into production. You’ll use another set of orchestration tools with a different design paradigm to get a microservice-based application into production to support specific deployment use cases.

  • Determine best-fit deployment models for specific functional and non-functional requirements

  • Use alternative orchestration tools to manage microservice provisioning and deployment

Hardening your application for a production environment requires the use of forethought and specific patterns around resource access. You’ll implement resiliency patterns in your application using widely-adopted libraries for a variety of languages.

  • Implement the circuit breaker pattern

  • Implement the bulkhead pattern

  • Implement the sidecar pattern

  • Use a service mesh to automate the security and intercommunication of your microservice-based application

Now, it’s time for the world to see what you can do! You’ll deploy an application using orchestration tools to the major cloud providers. Then, you’ll fine-tune the deployments with specific deployment strategies and discover how they’re supported by the platforms.

  • Perform deployments to the major cloud providers: Amazon AWS, Google Cloud, and Microsoft Azure

  • Implement blue-green, canary, big-bang, and rolling deployments using orchestration tools

Instructor Spotlight

Background Image

Curtis Schlak, VP, Professional Development

Curtis Schlak’s software development career spans more than two decades in software, energy, finance, legal, and education. He has worked as an individual contributor and has led teams of nearly 200 people. He has worked or consulted at Barclays Capital, Bank of America Merrill Lynch, British Petroleum, CITGO Petroleum, Ernst & Young, and Microsoft. He has led software teams at startups like KickFire and DataCert. His consulting firm leads the training and adoption of Feature-Driven Development in the US. He has created and delivered consumer and enterprise training for hundreds of people through The Iron Yard, Hack Reactor, App Academy, and Galvanize. He has a BS in Mathematics, BA in English, and MS in Computer Science. He is currently working on his PhD in Computer Science.

Background Image

Daniel Billotte, Principal Instructor

Daniel Billotte’s career as a software engineer began in the mid 90’s, as the Internet was coming of age. He’s worked at large companies like Netscape, AOL, and Canon, as well as smaller companies and entrepreneurial ventures of his own. He has also worked extensively in the printing industry at every level from cleaning floors to building a globally deployed print-shop workflow tool. He helped start the first coding bootcamp in Phoenix in 2014. Daniel enjoys frontend web, but his passion is for building scalable backend systems that use cool technologies like neural networks. When he isn’t working or playing with his family, he’s riding his mountain bike, learning DSP/audio programming and audio circuit engineering, or breathing new life into an old truck. Daniel has a BS in Computer Science from Arizona State University.

Our Professional Development Students Work at Great Companies

Many of these companies reimburse tuition for our courses.

Hack Reactor alumni work at google
Hack Reactor Professional Development Students work at Airmeet
Hack Reactor Professional Development Students work at Citadel
Hack Reactor Professional Development Students work at Elsevier
Hack Reactor Professional Development Students work at IAC
Hack Reactor Professional Development Students work at Nisum
Hack Reactor Professional Development Students work at Pivotal
Hack Reactor Professional Development Students work at Splunk
Hack Reactor Professional Development Students work at Visa
Hack Reactor Professional Development Students work at Vmware

FAQ

Our favorite applicant is someone who enjoys learning and participating in a dynamic learning community. We look for learners that are curious and motivated to further their craft. A learner who has grown tired of either unfocused or inefficient courses that have failed to take them to the next level.

Our application process is simple. Your application will help us learn more about you and should only take five minutes to complete. The application includes information about your educational background, programming experience, employment, and motivations for taking this course. We will review your application and either email any follow-up questions or accept you into the course. Once you’re accepted, you’ll sign an enrollment agreement and pay for the course.

Our typical course is six weeks long and consists of two evening classes per week. Our evening classes are 90 minutes long. Classes are recorded in case you are not able to attend them live. You can expect four to six hours per week outside of class for work on prepping for the next class and/or working on focused projects.

Some of our courses require prerequisite skills or knowledge. If applicable, we ask about this in the application process.

Yes, you can. The live classes, homework, and projects are optional. We encourage you to participate in all to get the most out of your investment in the course. To receive a certificate, you must score 70% or higher on the course project(s).

Yes. If your employer reimburses for education or professional development, we will make it easy for them to reimburse your participation in our courses. 

Universities typically only focus on computer science theory. We blend computer science theory with practical programming practices and thought leadership strategies to create more relevant courses. This format has more real-world applications that will help you advance your career.