12factor

Earlier Non functional requirements were  hidden in the functional requirements
of an application  Over a period the concept of non functional requirements are getting more enhanced with concepts like

Security - No  OWASP 10 vulnerability should be present in the application.  These vulnerabilities
can be found by static/dynamic scaning and/or applications and network penetraion tests. The Zero trust model implemented by companies explore not only the external but internal vulnerabilities.

Apart from increasing the scalability of the applications of scaling up or scaling out, there is now a need of scaling down in cloud world.  This is called elasticity of the applications. This reduces cost and increases resource efficiencies by  elastic on demand infrastructure.

The new service concept now has  requirements of 12 factor app. Below is the list

1. Codebase
2. Dependencies
3. Configuration
4. Backing Services
5. Build, release, run
6. Processes
7. Port Binding
8. Concurrency
9. Disposability
10. Dev/prod parity
11. Logs
12. Admin Processes

The concept of service is now evolved from SOA to MicroServices. The components are not shared in microservice like they do  in SOA . The microservice operates independently and carries out unit of work. There is no ESB in microserice architeture to manage the chorography, message routing, , transformation, and applying business rules. But there are independent light weight services which communicate over HTTP.