Getting started
with Microservices

Learn to build modern architectures using microservices.

Microservice architectures are the way forward for the enterprise. They promise nearly unlimited scalability, and allow for the business agility needed to meet the demands of exploding information and rapid innovation in technology. But to succeed at building distributed reactive microservice systems, architects and developers need to learn a different way of thinking about services.

About Objects can help you put your organization's microservices projects in high gear with world-class training offerings led by our expert practitioners. We're deeply experienced in helping development teams transition to new paradigms. That's why for over a decade, we've been able to help developers from major organizations such as Marriott, Red Bull, the NFL, and Cerner get up to speed quickly on the latest technologies.

Microservices Courses

Individual Courses

Bundled Courses

5 Days

7 Days

Why Adopt
Microservices?

Increased Agility

The ability to accommodate change in order to meet business opportunity is now the most important trait of an enterprise’s architecture. Microservices that are well-aligned to the business can dramatically increase business and IT agility by allowing for rapid change. In particular, microservices allow for continuous delivery of new features, eliminating many of the problems posed by large, monolithic releases. Pursuit of this type of flexibility is the number one reason progressive enterprises are adopting microservices.

Reduced Costs

Significantly reducing IT operation costs requires a strategic shift to third-party clouds. Cloud services are now commodities — cheaper, faster, and better than other alternatives. Microservices in the cloud — where you only pay for what you actually need — reduce cost, when well-aligned to the business. That allows actual customer demand to dynamically drive cost up or down based on actual usage, so your costs are directly proportional to demand.

Improved Analytics

Giving up old ideas takes courage. With the advent of the cloud and cheap storage, we can now build systems that record all change instead of just the current state (along with perhaps some historical tables that we stored in relational databases of the past). With NoSQL databases specialized for specific access patterns, combined with an event-driven microservice architecture, progressive enterprises are positioning themselves for intelligence — the ability to mine data to leverage usage patterns.

Scala

for Microservices
Development

From the outset, the key goal of the creators (Martin Odersky, et al.) of Scala was to provide a modern language that would support true functional programming, and be capable of running everywhere inside a JVM. They also wanted Scala to support object-oriented concepts, and be able to reuse Java frameworks.

Scala’s support for functional programming, and its encouragement of the use of immutable copies, makes it better choice than Java for Microservices Development-based distributed systems. Its streamlined, modern syntax leads to clearer, more concise code, and its strong emphasis on safety significantly reduces the risk of runtime errors.

Our 2-day Scala Programming class is a great way to get up to speed quickly. If you're eager to begin getting familiar with Scala immediately, a good place to start is the Scala open source project website.

Scala is a modern, general-purpose programming language designed to balance powerful safety features with ease of use, and it is optimized for distributed computing.

Fast.
Safe.
Expressive.

Fast.
Safe.
Expressive.

Scala is a modern, general-purpose programming language designed to balance powerful safety features with ease of use, and it is optimized for distributed computing.

Scala was designed as a multi-paradigm language that allows developers to blend functional, procedural, and object-oriented programming techniques. Its design supports safe, functional programming.

Scala is designed to integrate seamlessly with Java libraries to leverage existing capabilities.

Scala runs on all platforms that support the Java JVM, as well as on JavaScript inside web browsers.

microservices

Microservices Design

Get off to a great start with a microservices design that's perfectly aligned to your business

It’s too easy for smart architects and developers to simply jump in and start coding with all the cool new tools. This is the number one mistake development organizations make when first embarking on the microservices path.

Don’t build the next ‘spaghetti’ architecture for your enterprise. Design microservices that will last, be contained, evolve, and will not sprawl.

Start with event storming. This simple technique begins with defining the key business events that naturally take place in the enterprise. Key business events are the ‘facts that happen’. They provide a rich history of the business as well as extension points that allow IT systems to evolve. This is where you can begin decoupling large, monolithic, legacy systems of the past.

Next, leverage concepts from Domain Driven Design to lay out the enterprise map of bounded contexts and microservices. Bounded contexts identify the natural boundaries in the business. Instead of arguing domain model semantics between bounded contexts, allow for their differences, and adapt them to the business.

Our 2-day Microservices Design class is a great way to get up to speed quickly. If you're eager to begin getting familiar with microservice design immediately, a good place to start is Eric Evan’s book Domain-Driven Design: Tackling Complexity in the Heart of Software.

Microservices Development

In the sea of platforms and tools for Microservices Development, only two are truly built from the ground up with microservices in mind — Akka and Vert.x. Other frameworks (e.g., Spring Boot) are bolted on to old and popular tools and frameworks that add support for microservices, but don’t enforce them.

Vert.x is very lightweight, extremely fast, and somewhat newer than Akka. It’s a good choice for building a single microservice system, but lacks some of the advanced features of Akka that can be particularly useful in the development of larger and more complex enterprise solutions.

Akka is a mature platform for Microservices Development. Because it is built on the Actor model from the ground up, it encourages the design of independent, loosely coupled actors that communicate asynchronously. Because of its embrace of the reactive programming paradigm, Akka helps teams avoid common mistakes that can result in poorly designed microservices.

Our 3-day Microservices Development class covers both Scala and Akka, and is a great way to get up to speed quickly. If you're eager to begin getting familiar with microservices using Akka immediately, a good place to start is Akka's open source site.


How we can help

If you’re an analyst or manager
interested in microservices

A great course to take is the 2-day Microservices Design. This class focuses on the process and techniques of defining microservices that can support an entire enterprise. No coding will be required.

If you’re a Scala developer or architect familiar with DDD and event-storming

We recommend the 3-day Microservices Development course, which will jump you right into building actor-based microservices using Scala and Akka.

If you’re a Scala developer
getting started with microservices

We recommend taking our 5-day Microservices Development Comprehensive. You’ll start with modeling to get a solid grounding, and then progress to actually building actor-based microservices using Scala and Akka.

If you’re an architect or developer
new to microservices

The best way to get started is by taking our 7-day Microservices Development Bootcamp, a comprehensive suite of courses (Scala Programming, Microservices Design, and Microservices Development) that will get you up and running quickly.

Our Instructors

Our instructors have deep experience building enterprise backend systems, and have for years been heavily involved with enterprise microservices. All are highly accomplished enterprise architects and developers with extensive, real-world experience, who love sharing great techniques they've gleaned from years in the trenches.

Learn More

Resources

About Objects Training on Github

Example Xcode projects and lab exercise solution code from About Objects training courses.

Scala Language

Home of the Scala open source project.

Lightbend

A reactive application development platform based on microservices with a message-driven runtime. Useful for building distributed applications and for modernizing existing infrastructure.

Vert.x

A toolkit for building reactive applications in Scala and other JVM-based languages.

Akka

A toolkit for building highly concurrent, distributed, message-driven applications in Scala and Java.

Play Framework

A framework featuring a lightweight, stateless architecture for developing web applications in Scala and Java.

Lift Framework

A framework for developing Java EE web applications in Scala.

Reactive Streams

An open source initiative to define Reactive Stream network protocols.

sbt

An open source Scala build tool.