Roger Sessions

Website


Author


  • From the website ..."Roger Sessions is the world's leading expert in IT Complexity Analytics. He has been interviewed by ComputerWorld, CIO, Information Age, and Information Week, among others, and is often quoted by Gartner and other industry pundits.For more than a decade, his books and white papers have defined the field of IT Complexity Analytics. He has been honored as a Fellow of the International Association of Software Architects for his many contributions to the field. His SIP methodology is the gold standard for Complexity Management, and is the only approach to simplification that has ever been granted a U.S. patent."

Publications


Partition to Reduce Complexity



Training


Mike's Notes

  • A linear increase in functionality and dependency leads to a logarithmic increase in complexity
  • The rise in complexity and risk of failure in big IT projects is a power law.
  • Partition and simplify to reduce complexity
  • Partitioned chunks of functionality then suitable for Agile teams
  • The maths is sound
  • Puts maths behind what Martin Fowler writes
  • Not in contradiction with Zachman ontology
  • Complements Google reWork study results
  • Training is expensive

Repository

  • I did an extensive search on the web of everything available by Roger Sessions.
  • Stored at Work > Research Projects > Computer Architecture > Roger Sessions

Cliff Richardson - A Pattern Language for Microservices

Website


Author

"Chris Richardson is a developer and architect with over 20 years of experience. He is a Java Champion and the author of POJOs in Action, which describes how to build enterprise Java applications with POJOs and frameworks such as Spring and Hibernate. Chris is the founder of the original CloudFoundry.com. He now spends his time providing microservices consulting and training and working on his third startup, Eventuate, Inc. Chris has a computer science degree from the University of Cambridge in England and lives in Oakland, CA."

Summary

From the home page ..."Microservices - also known as the microservice architecture - is an architectural style that structures an application as a collection of services that are
  • Highly maintainable and testable
  • Loosely coupled
  • Independently deployable
  • Organized around business capabilities.
The microservice architecture enables the continuous delivery/deployment of large, complex applications. It also enables an organization to evolve its technology stack."

Contents

Application architecture patterns
Decomposition
Deployment patterns
Cross cutting concerns
Communication style
External API
Transactional messaging
Service discovery
Reliability
Data management
Security
Testing
Observability
UI patterns

Presentations


Mike's Notes

  • Has a useful outline of options to choose from when considering using Microservices
  • Good diagrams
  • Has written a book
  • Offers training
  • Has skin in the game

Next on List is DevOps

So having completed a crash course study into DevOps over the last few months, the next task is actually setting up DevOps as part of the stack, before I go any further.

So far I haven't even needed to use formal version control with the refactoring. It was pretty much "snip snip snip" into microservices and a bit of a tidy up along the way over the last 18 months. All looks good and it works in a rough sort of way.

But it is a very different story now getting it ready to deploy to the cloud so people can use it.

Criteria

So what am I looking for in setting up DevOps?
  • Version control
  • It has to scale, be robust and reliable
  • Automated builds
  • Automated testing
  • Automated deploy to multiple cloud environments
  • Automated everything
  • Continuous development
  • Great for teams and remote developers
  • Frequent small commits to the main branch and test
  • Can also generate documentation
  • Great reporting
  • Great integration with other tools via open API
  • Can include Database versioning
  • Continuous Integration (CI)

Languages

It has to work with Java, Python, Julia, SQL, CFML, AJAX, XML/XSD, JSON/YAML, Javascript, HTML5, CSS and more.

Options

My gut preference is to go open-source, with both command line and good GUI available, and be well documented.

So what is out there?