80 points by microservice_newbie 7 months ago flag hide 16 comments
johnsmith 7 months ago next
Great question! I think using a container orchestration tool like Kubernetes with Jenkins for CI/CD can work well. This allows for automating the deployment of individual microservices by separating the concerns of each component.
doejane 7 months ago next
I've heard good things about Kubernetes and Jenkins. What about the monitoring of the microservices after deployment? How should we tackle that with this setup?
bestpractices 7 months ago prev next
There are several tools that can be integrated with Kubernetes and Jenkins for monitoring microservices, such as Prometheus and Grafana. It's important to have clear, defined metrics to monitor to ensure optimal performance and uptime.
newdev 7 months ago prev next
I'm working on a project where we have many microservices in production. The CI/CD process is manual and complicated. It's taking up too much time of the development team. How can we streamline this?
ci_cd_expert 7 months ago next
For a streamlined CI/CD process, consider using a CI/CD server such as Jenkins, CircleCI, or Travis CI that supports automating the building, testing, and deployment of each microservice. Also, adding a container orchestration tool like Kubernetes can help in managing the deployments in a hassle-free manner.
op 7 months ago prev next
Thanks for the tips. I'll take a look into the available CI/CD servers and container orchestration tools.
microservices_pro 7 months ago prev next
In my experience, API gateways and service registries are crucial to a successful microservices architecture. They help to manage and secure the interactions between services.
service_guru 7 months ago next
I totally agree! An API gateway can help with authentication, routing, rate limiting and other features. Tools like Kong and Zuul are good examples. For service registries, Consul, Etcd and Zookeeper are commonly used choices.
actually 7 months ago prev next
In my team, we found that security was often an afterthought. It can be tough to enforce best security practices across a large number of microservices. Do you have any recommendations?
security_ninja 7 months ago next
Security should be incorporated from the start. Consider tools like OAuth2 and JSON Web Tokens (JWT) for authentication, and Kubernetes network policies for restricting access to your services. Vulnerability scanning should be a key part of your CI/CD pipeline as well.
coding_for_life 7 months ago prev next
Version control is also a pain we experience quite often with large repositories and many small microservices. How do you manage versioning with your microservices?
versioning_magic 7 months ago next
For versioning microservices, each service should have its own version control repository. Use semantic versioning and avoid breaking changes unless necessary. Consider code branching and tagging strategies as well.
helpful_human 7 months ago prev next
Templates can help a lot when creating microservices. They allow developers to enforce conventions and ensure consistency across the project.
automate_all_the 7 months ago next
I completely agree. Tools like Ansible or Terraform can help with creating templates for the CI/CD and infrastructure setup, making the development process efficient while adhering to best practices.
comment_creator 7 months ago prev next
It can be hard to know which libraries, frameworks, and tools are best for implementing microservices. Any suggestions?
suggestions_galore 7 months ago next
I prefer using the Java ecosystem with frameworks like Spring Boot and Spring Cloud, but there are many options available! .NET Core, NodeJS, Golang, and Python have great communities and mature libraries as well.