Hi, this is Chris Richardson, creator of the original Cloud Foundry and author of POJOs in Action and the upcoming Microservice Patterns book. I am sharing some of my industry knowledge about microservices in the Oracle Code New York keynote and would love to hear your stories about using the microservice architecture. Join me on the Reddit AMA after the live-streamed event and lets chat about microservices.

Also, don’t forget to take a look at upcoming Oracle Code events that may be coming to a city near you at http://developer.oracle.com/code

Proof: http://imgur.com/a/e7WDK

Edit: Thanks for all of your questions. I had a great time.

Comments: 159 • Responses: 19  • Date: 

rram60 karma

What trends do you see in products that switch from a monolithic architecture to a microservice architecture? If I'm starting something new with a small team, I'll lean towards a monolithic architecture so I can move faster, but what part should I break out early or from the outset to help me 2 or 3 years down the road?

ceracm112 karma

There is a good argument that you should just focus on the solving today's problems and building a good product, e.g. https://en.wikipedia.org/wiki/You_aren't_gonna_need_it . It is possible that the extra effort you would spend on being 'microservices ready' would slow you down too much and incur too much risk.

Having said that you could try to ensure that your system remains modular. For example, implement your business logic using loosely coupled DDD aggregates and use eventual consistency rather that ACID transactions.

Jbird1121132 karma

How do programmers come up with names for different programming languages (i.e. java, sql, c++)?

ceracm45 karma

The reasons are varied. Some like SQL are acronyms - structured query language. C++ because it is the successor to C. C because its the second language derived from BCPL - the first was B.

Bonobo4229 karma

What's your advice to parents who wants their children to learn code (but don't know themselves)?

ceracm24 karma

Perhaps the kids can learn at school or at a meetup such as this https://www.meetup.com/Devoxx4Kids-BayArea/

NextGen2318 karma

Top predictions in tech for the next 5-10 years?

ceracm43 karma

The transition from coarse-grained compute resources to fine grained resources will continue: pets (long lived, mostly physical) machines that are lovingly cared for) -> cattle (disposable, immutable VMs) -> rabbits (disposable containers) -> microbes (AWS lambda and other cloud functions). There will undoubtedly be a few surprises along the way.

Cosmokram17 karma

Hi Chris, thanks for doing an AMA, I have to admit that I don't have extensive knowledge of microservers, but do you believe that they are the future of enterprise software solutions?

ceracm28 karma

It depends. There are tradeoffs - http://microservices.io/patterns/monolithic.html and http://microservices.io/patterns/microservices.html

For some applications - especially the simpler ones developed by a small team - the monolithic application is fine. But for large complex applications developed by large teams it is likely that a microservice architecture can be helpful.

wangofchung16 karma

  1. What are the most important tools, service instrumentations, and methodologies to adopt early on for monitoring and debugging a microservices architecture?

  2. What are the biggest pain points in transitioning from a monolithic application to a set of microservices and what is your advice for getting through those pain points?

ceracm16 karma

There are several observability patterns for monitoring and debugging: http://microservices.io/patterns/index.html#observability

The first challenge when migrating to the microservice architecture is identifying a target set of services. That requires some up front analysis.

The other challenge is untangling dependencies into to turn a module of the monolithic into a standalone service. That just involves a bunch of code hacking.

the_ua9 karma

While the concept of individual developers adopting new methodologies for effective deployment strategies is simpler when contained to one person or a small team, it becomes increasingly more complicated to hope for a larger team or even company to build this into their approach. How best can a team leader help introduce a change like this into the usual procedure?

ceracm10 karma

Changing an organization can be challenging. It helps if anyone is feeling the pain, e.g. missed release deadlines, a real competitive threat. That will encourage everyone - starting at top - to attempt to find a solution. With any change, it is important to manage the transition: https://plainoldobjects.com/2017/02/07/the-human-side-of-adopting-the-microservice-architecture/

raisedonpromises7 karma

Love your Spock t-shirt! What's your favorite episode of Star Trek: The Original Series and why?

ceracm13 karma

Thanks. I quite like "Spock's brain". Its an interesting concept to use a human brain to run a city.

IDKSomeFuckingGuy6 karma

Why won't my code compile?

ceracm17 karma

It might be a subspace rift.

perrohunter6 karma

Is it true that you want to take the Microservices boldy to where no man has gone before?

ceracm20 karma

No person has gone before.... Yes!

Wolfsdale6 karma

What do you think about the rise of dynamic languages, like Javascript, Ruby, Python etc? Java isn't really "cool" anymore and Javascript is arguably receiving the hype Java received a decade ago, with now anything and everything being written in the language (including desktop applications). Could it be time to jump ship?

ceracm13 karma

Coolness or Hype is irrelevant when making technology choices. What matters is whether a technology solves your problem. Java is still an incredibly popular language and systems are still be written using it. Having said that NodeJS, for example, is useful.

JarethKingofGoblins5 karma

Do you think at some point everyone will know basic coding? Or will it stay a relatively niche industry that serves as an under layer to many others?

ceracm27 karma

Software development is a profession like any other. I am not convinced that everyone needs to know how to code.

Pizza_And_The_Slices5 karma

Well into my 20s, I've noticed a lot of my friends expressing the sentiment that they want to learn code. Would you encourage someone to learn coding as a hobby and if so why?

ceracm20 karma

Sure why not. But I'd also encourage people to cook, play tennis or go fly fishing. As a hobby, you should do what is fun and stimulating.

lilpimpin4 karma

How do you see A.I. changing the way we code?

ceracm14 karma

In theory yes.

In many ways, how an individual developer writes software has not changed since the beginning of time. I suspect that there has only been a linear increase in productivity - no Moore's law. Much of the gain in productivity is because machines are faster, there is open-source code to rebuild on, and we can google answers.

Perhaps an AI-based assistant would help.

effie1263 karma

Any plans for a new book?

ceracm4 karma

I am working on a new microservice architecture book: https://www.manning.com/books/microservice-patterns

UncomfortableChuckle3 karma

How did you end up in IT? What made you choose it over another career?

ceracm3 karma

I became obsessed with computers since my early teens. It hasn't stopped.

Turner1984april2 karma

Hi can you explain in detail what microservices are and how code complexity like mccabe is a topic for providing those services? Thanks.

ceracm4 karma

Take a look at http://microservices.io/ for an in-depth explanation of the microservice architecture.

GrammerJoo1 karma

What in your opinion is needed to do before jumping on the microservices bandwagon?

ceracm4 karma

Martin Fowler has written a good article about the required organizational maturity: https://martinfowler.com/bliki/MicroservicePrerequisites.html

You also need to ask whether you have the problem that microservices solve.

marinasayss1 karma

how do you guys plan on handling such tight knit teamwork in an industry where independence is still highly regarded?

ceracm13 karma

I think the reality of software development is that it is a social activity. In many cases the idea of a lone coder performing heroic feats is an illusion. It takes a team.