Juan Pablo Giraldo Giraldo
Software Team Lead [Cloud] @ Bizagi
MATI Student @ Universidad de Los Andes
@qjuanp (on twitter)
http://qjuanp.net (more about me)
http://lifeandcode.io (some blog posts)
...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 minimum of centralized management of these services, which may be written in different programming languages and use different data storage technologies. - James Lewis and Martin Fowler, 2014
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi nec metus justo. Aliquam erat volutpat.
A software component is a unit of composition with contractually specified interfaces and explicit context dependencies only. A software component can be deployed independently and is subject to composition by third parties
... component is a unit of software that is independently replaceable and upgradeable.
Directamente asociadas a una aplicación y que son llamadas y ejecutadas dentro del mismo proceso de la aplicación
Componente fuera del proceso que se comunica a través de peticiones sobre servicios web o llamados de procedimientos remotos
Any organization that designs a system (defined broadly) will produce a design whose structure is a copy of the organization's communication structure. - Melvyn Conway, 1967
you build, you run it
El software nunca va a estar completo, siempre va hacer falta algo.