Blog Layout

Week 8 Simplify Your Development Workflow with Docker Containers

Alexander Clemens • April 3, 2023

Share

This week we learned about more depth in Docker, microservices, Rabbit MQ, and the difference between Javascript. Let's get into the learnings for this week. 


Microservices

This week's goals allowed us to enhance our Conference Go application further. By adding microservices, we were able to make the application more modular and efficient, as each microservice can be developed independently with its own set of resources. Furthermore, by utilizing Docker containers, we could quickly deploy and manage our microservices, allowing us to scale our application quickly and efficiently. Additionally, by using polling, queues, and pub/sub, we could sync data between our microservices, ensuring that we have a consistent and reliable data set. Overall, this week's goals enabled us to take our Conference Go application to the next level.


Docker

I use Docker Compose to help me specify my Docker configurations as code. It's great for developers because it is a declarative system, which means it achieves the desired outcome and makes it easy for me to manage. I've used Docker Compose for local development, staging server, and Continuous integration testing environments. It has many valuable features like version control, self-documentation, and easy management. Although unsuitable for distributed systems or complex production environments, it is still instrumental for everyday tasks. 


One helpful tool for managing clusters of nodes is Docker Swarm. It is already installed and enabled by default with Docker and provides users with functionality such as load balancing. Another popular docker orchestration tool is Kubernetes, a Google-made tool now the industry standard. Swarm and Kubernetes allow users to schedule and deploy clusters across multiple nodes. 


Finally, Docker Compose, Docker Swarm, and Kubernetes are crucial tools for managing containers and optimizing applications. Each provides additional features and capabilities, but they all contribute to the modern Docker environment.


RabbitMQ

I'm a big fan of RabbitMQ, a popular open-source message broker software enabling applications to communicate. It's a central hub for sending and receiving messages and supports various messaging protocols, making it ideal for multiple use cases. Not only is RabbitMQ highly reliable in transmitting messages and easy to set up and configure, making it a perfect choice for distributed systems. It also supports clustering for scalability and availability, allowing me to use it in large-scale applications. 


RabbitMQ is well suited to cloud computing environments, as it supports cloud-native features such as auto-scaling and multi-region deployments. This makes it perfect for applications hosted in the cloud, as I can easily configure and manage it without having to manage hardware or other infrastructure. Plus, with a strong community of developers actively contributing to the project, I am confident that RabbitMQ is always up-to-date with the latest technologies and trends. RabbitMQ is an excellent solution for building distributed, reliable, scalable applications. This all being said, after one week of working with this technology in the Hack Reactor course and taking a Linkedin Learning Course on RabbitMQ, I have much more to learn and understand how it can be implemented efficiently. The following link details more in depth RabbitMQ as a company to get a macro view of how they assist companies from all over the world.


Using Python and Javascript

I have been working with two of the most popular programming languages in the world - JavaScript and Python. They both are high-level, interpreted, and dynamically typed, meaning that I find them both easy to learn and use as a beginner. One of the main advantages of both languages is their versatility - they can be used for web development, data analysis, and machine learning. A large community of developers is working to create new tools, libraries, and frameworks that make coding more efficient. 


Although there are similarities between the two languages, there are also some key differences. A significant difference between JavaScript and Python is that JavaScript is mainly used for client-side development and is often used with other technologies like HTML and CSS, while Python is primarily used for back-end development and data analysis. Additionally, JavaScript has a more complex syntax and a steeper learning curve than Python, known for its simplicity and readability. Below are photos of the detailed comparisons between the two languages from my learnings this week.

Comparison between JS and Python.
Comparison between JS and Python #2
Comparison between JS and Python #3

Challenge for the week

As a developer, Docker presents some challenges. Managing multiple containers and their dependencies can be complex and requires careful planning and orchestration for everything to work together smoothly. Docker's new abstraction layer also makes it more challenging to identify and fix issues. Finally, because Docker is a relatively new technology, finding developers with experience working with it can be tricky. It is an excellent opportunity for me to evolve as a developer who understands Docker and knows how to utilize the technology. 


Happenings in Colombia

I am concerned about development for this week in the Colombia that I live in, which is about the Nevado del Ruiz volcano, which lies just a short distance from Santa Rosa de Cabal. It has been moved to an orange level and will soon be transferred to a red one, indicating it could erupt. This is significant because this volcano is responsible for the November 13, 1985 eruption that caused the worst natural disaster in Colombian history, and it created a lahar that killed 25,000 people in the towns of Armero and Chinchiná.


In addition, I participated in Semana Santa this week, as many people in Latin America, particularly Colombia, observe the religious holiday. Semana Santa, or Holy Week, is the week leading up to Easter Sunday, commemorating Jesus Christ's resurrection. As part of the tradition, I participated in various prayers and ceremonies, fasted, and honored the Virgin Mary. Additionally, I attended special masses and processions. 

I had the opportunity to assist the men carrying the wooden statue of Jesus in our town, and this was an experience I never thought I would do in my life. You can see this in my video and a few other activities/outings from this week in Santa Rosa de Cabal. 


I am looking forward to Week 9 as this marks the halfway point and the week before a week off for spring break! 


Ready to work with Xander Clemens?

I'd be happy to discuss your project and how we can work together to create unique, fun and engaging content.

Go ahead and click here to be taken to my business service page and see what I can do for you. Book a call with me now. Looking forward to chatting soon!

Book A Call
Share by: