DEV Community

whatsacomputertho
whatsacomputertho

Posted on • Updated on

What's a Microservice Architecture, Tho?

One key value throughout the history of software development has been the effort to decouple components of software programs. In essence, decoupled software is composed of many independent components which can be added, removed, and reused freely. But, what are software “components”? Well, as I’ve discussed in previous blogs, web components are a great example of decoupled components of software which can be added, removed, and reused universally across browsers and across frameworks. However, web components are really only applicable within front-end web development. Does there exist something of this nature, but geared toward back-end development?

Enter microservices. The term “microservice” is a huge buzz-word these days, but not often do people get to see what microservices actually are behind the scenes. At a high level, a microservice is a tiny application specifying a set of functions which access some remote data source or data sources, and return their data. This “set of functions” is known as its API, or Application Programming Interface. Typically, a microservice API will run on a remote web server without a front end, and its functions can be called after obtaining a developer API key.

Before microservices, the vast majority of the web utilized a monolithic architecture. For each new web application, a new front end, back end, and data source may have had to be created, configured, and carefully deployed within a fragile production environment. Nowadays, highly decoupled microservices and data sources exist all over the web, and oftentimes all that goes into spinning up a new web application is a static front-end which leverages existing APIs to deliver its dynamic content.

Check out this video I put together on deploying microservice-architected applications using Docker!

Top comments (0)