1560
Hey Reddit, I’m Chris Richardson, author of “POJOs in Action” and microservices guru, here for an AMA brought to you by Oracle for the Developer Legend Series. Ask me anything!
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.
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/
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
What are the most important tools, service instrumentations, and methodologies to adopt early on for monitoring and debugging a microservices architecture?
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.
perrohunter6 karma
Is it true that you want to take the Microservices boldy to where no man has gone before?
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.
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.
UncomfortableChuckle3 karma
How did you end up in IT? What made you choose it over another career?
ceracm4 karma
I am working on a new microservice architecture book: https://www.manning.com/books/microservice-patterns
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.
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.
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.
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?
View HistoryShare Link