architects near Venice in May, 2011 to describe what the participants saw as a common architectural style that many of them had been recently exploring.
will over time reduce quality of the code. • Any original modularity will be eroded. • The monolithic application prevents the developers from working independently. • The whole team must coordinate all development and redeployments efforts. Why can a monolith be bad?
each piece can be replaced independently from the others. • Fulfils business activity - not technological requirement • Allow for technology heterogeneity. • Decentralised data management with one database for each service instead of one database for a whole application. • Infrastructure automation with continuous delivery being mandatory. Key features of Micro-services
this going to be a substantial increase in traffic. • Securing communication between micro-services: more chatter, more opportunities for a gap in transport security ? • Security audits: more moving parts and less coherence does this mean more places for security vulnerabilities to hide • Are we able to deal with the complexity of multiple services Questions I had / have
easier than testing monolithic applications? • Difficulty in production monitoring: are existing monitoring tools up to the task? • Lowered uniformity: microservices allow team members to choose their language, tool chains, etc. While fashionably polyglot, does this increase maintenance overhead? • Must we use containers - e.g. docker to deploy Questions (cont)
- determine if a user can access a resource • In a micro service context this means - • Create a authentication service • Authorisation in each service Auth
deploy the new service. This service boilerplate must account for polyglot technologies including application servers, database, programming language, etc… Service scaffolding