Awesome Software Engineer

Share this post

The Path to Microservices: CI/CD

blog.awesomesoftwareengineer.com

The Path to Microservices: CI/CD

A good CI/CD pipeline can increase engineers' productivity

Ray Chong
Oct 19, 2022
2
Share this post

The Path to Microservices: CI/CD

blog.awesomesoftwareengineer.com

In modern software development, CI/CD pipeline is really important. It can help the team focus on actual development work and reduce manual processes. With an automatic pipeline, the development workflow is more productive and less error-prone.

CI/CD stands for continuous integration and continuous deployment and/or continuous delivery. It is a process that automates the workflow in the development pipeline and standardizes the development pipeline for the development team. In a microservices architecture, we have different services that need to be built and it is hard to run the build manually. Without an automated pipeline, it is hard to manage the services’ deployment and testing. Also, the developers need to spend a lot of time running the build manually. From here, I think you will know the manual build process is inefficient for the development team especially since some teams build their apps quite frequently. So, we need a CI/CD pipeline to help us manage the development workflow.

Continuous Integration

In continuous integration, we want to make sure the code is reliable and executable. Therefore, in this stage, we run the test, build, and package to build the app and ship the image to a container registry. Also, it provides version control for our code and a unified workflow for code integration.

Continuous Delivery

In continuous delivery, we want to extend the functionality from continuous integration to create an automated release process. Any deliverable can be deployed to a non-production or production environment by clicking a button.

Continuous Deployment

In continuous deployment, we want to have a more automatic way to deploy the image to the actual backend infrastructure without clicking anything.

Benefits

  1. Faster and reliable development workflow

  2. Automated build and delivery

  3. Fast feedback loop

  4. Application version control

  5. Less context switching because developers can focus on actual development work

  6. Frequent iteration

Post-deployment

After deploying the app to the backend infrastructure, we need to have different monitoring tools such as APM and log monitoring to help us visualize the performance or observe application behaviors. I created a topic related to log monitoring and alerting before, please check it out if you want to know more.

Awesome Software Engineer
Log Monitoring and Alerting
Last time, we talked about Observability. In this post, we are going to talk about log monitoring and alerting. It is also an important component of a system. Without this, your software engineers do not know what is happening in the whole system. That said, when an error occurs, no one knows and the engineering team does not know whether the system per…
Read more
9 months ago · 2 likes · Ray Chong

Thanks for reading Awesome Software Engineer! Subscribe for free to receive new posts and support my work.

Share Awesome Software Engineer

Share this post

The Path to Microservices: CI/CD

blog.awesomesoftwareengineer.com
Previous
Next
Comments
TopNewCommunity

No posts

Ready for more?

© 2023 Ray Chong
Privacy ∙ Terms ∙ Collection notice
Start WritingGet the app
Substack is the home for great writing