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's 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 in 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. Over the last 18 months, it was pretty much "snip snip snip" into microservices with a bit of a tidy-up along the way. 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

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

Languages

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

Options

I prefer to go open-source, with a command line and good GUI available, and be well-documented.

So what is out there?