Q
Get started Bring yourself up to speed with our introductory content.

How can I use microservices and containers to build an app?

We want to scale down one of our large applications. What role do containers play in a microservices-based app, and what other services do I need?

Containers are basically low-overhead virtual machines. But unlike traditional hypervisor-based VMs, containers...

all exist on top of a container orchestration platform, such as Docker or Kubernetes, and share a common OS kernel. This means containers can be created, scaled up, managed and destroyed very quickly; they're then grouped or connected through APIs.

Consequently, containers have emerged as an extraordinarily useful tool in microservices application development. Major public cloud providers, such as Amazon EC2 Container Service, Google's Container Engine and Azure, now support container services.

However, it's important to point out the distinction between microservices and containers. Containers are one of many tools developers can use to package and deploy components used for microservices applications. The idea is to choose services for an application based on the problems developers are trying to solve.

For example, containers may be entirely appropriate for microservices applications that demand high levels of performance scalability -- ability to spin up additional functional components to support periods of higher demand. But the technical reality that containers share a common server OS may make containers unsuitable for microservices applications, where security is a primary concern -- at least until containers evolve to provide better isolation between instances.

Additional services are usually required to make a complete AWS microservices application. Developers should implement more resources to fully support an application composed of microservices and containers -- such as storage through Amazon S3, event-driven computing through AWS Lambda functions and application traffic management with AWS Elastic Load Balancing. With an application based on microservices and containers, developers have the flexibility to select services that best fit the functional requirements of each component. The components are then stitched together using a common API, so each functional component works together. But each container or component is independent from the others.

Next Steps

Power apps with a microservices architecture

New t2.nano instances offer low-cost home for microservices

Should you use Lambda functions instead of EC2?

This was last published in December 2015

Dig Deeper on AWS architecture and design

PRO+

Content

Find more PRO+ content and other member only offers, here.

Have a question for an expert?

Please add a title for your question

Get answers from a TechTarget expert on whatever's puzzling you.

You will be able to add details on the next page.

Join the conversation

1 comment

Send me notifications when other members comment.

By submitting you agree to receive email from TechTarget and its partners. If you reside outside of the United States, you consent to having your personal data transferred to and processed in the United States. Privacy

Please create a username to comment.

What concerns do you have about using containers and microservices?
Cancel

-ADS BY GOOGLE

SearchCloudApplications

TheServerSide.com

SearchSoftwareQuality

SearchCloudComputing

Close