you could think of the Microservices Architectural Style as a specialization of SOA. Don't forget that the generally accepted view is that all SOA really is, is four sentences:
These tenets of SOA were given to us by Don Box of Microsoft which is ironic since MS then went on to release WCF and then told us to Go Forth and Service Orientate. Look where that got us.
Then we have this, from Lewis/Fowler:
In short, the microservice architectural style is an approach to developing a single application as a suite of small services, each running in its own process and communicating with lightweight mechanisms, often an HTTP resource API. These services are built around business capabilities and independently deployable by fully automated deployment machinery. There is a bare mininum of centralized management of these services, which may be written
in different programming languages and use different data storage technologies.
From this definition it's clear that microservices fulfill at least the first two tenets (with real emphasis on the second), but it's questionable whether they fulfill the third (I don't really understand tenet 4 so I won't comment).
The reason the third tenet may not hold for microservices is that one of the characteristics of microservices is that they are generally exposed over a RESTful API, which, one could argue, does not expose contract and schema at all (over and above the regular http verbage), as we see from Fowler:
a suite of small services, each... communicating with lightweight mechanisms, often an HTTP resource API
Another way in which a microservices style deviates from SOA is with this prescription:
These services are... independently deployable by fully automated deployment machinery
Following the original tenets of SOA does not prevent me from manually copying my service binaries into my production environment, but with the microservices approach, the service deployment and management should be fully automated.
A service-oriented architecture (SOA) is an architectural pattern in computer software design in which application components provide services to other components via a communications protocol, typically over a network. The principles of service-orientation are independent of any vendor, product or technology.
In computing, microservices is a software architecture style in which complex applications are composed of small, independent processes communicating with each other using language-agnostic APIs. These services are small, highly decoupled and focus on doing a small task, facilitating a modular approach to system-building.
It's a kind of architecture
The services are easy to replace
Services are organized around capabilities, e.g. user interface front-end, recommendation,
logistics, billing, etc
Services can be implemented using different programming languages, databases, hardware
and software environment, depending on what fits best
Architectures are symmetrical rather than hierarchical (producer - consumer)
A microservices-based architecture
lends itself to a continuous delivery software development process[citation needed]
is distinct from a Service-oriented architecture (SOA) in that the latter aims at integrating
various (business) applications whereas several microservices belong to one application
only