Socks-shop Polyglot App in Kubernetes…

This Lab, logically follows previous steps required to provision and curate a Kubernetes cluster. Please review them before proceeding. If you are in doubt, feel free to contact me directly via https://www.linkedin.com/in/citurria/

In this Lab, we will show how to manage a more complex Microservices-based application based on an E-Commerce Socks-shop App (also see here). Similarly, as with the Simpler Cheeses App, we are going to use Weave Scope to gather real-time insight into this more complex application.

This is an e-commerce application that sells socks on web. However, we chose this application because it is not any different to any modern Application. That is, it is based on multiple microservices, where each one use different technologies as programming languages/frameworks, as well as persistent back stores or databases.

That is:


For more information, see: Weave-socks multiple technologies
(and github).

Straightaway you can think of the hurdle to have to maintain an application like this using the wrong tools. As a glimpse, it is using the following technologies:

  • Programming Languages:
    • Java
    • JavaScript
    • Go
    • C#
  • Frameworks:
    • Spring Boot
    • .NET
    • NodeJS
    • Go kit
  • Persistence:
    • MySQL
    • MongoDB
    • RabbitMQ

Among the most difficult aspects that need to be considered in maintaining a microservices-based application like this one, include:

  • How to monitor the performance of each of the associated microservices
  • How to consistently enforce security policies across all microservices
  • How to elastically scale out/in when needed
  • How to balance the load, especially after scaling out/in? Do we keep track of the running nodes at all times?
  • How to easily maintain networking connectivity across all microservices
  • How to self-healing? i.e. Maintain a “desired state”
  • Etc. – The list goes on and on…

Microservices certainly introduce great benefits, but also increases coordination efforts, which can become detrimental. Luckily by now you must be very comfortable knowing that containerisation and the whole concept of Container Runtime Interface (CRI) in Kubernetes, together with other technologies (e.g. service mesh) reduce the amount of effort required to maintain complex microservices applications.

First, let’s get a quick view of the different components of this application using Weave Scope.

  • Using your Windows Remote Desktop, open a browser window and go to the Weave Scope Dashboard bookmark (if not already opened).
  • Filter by Controllers at the top and sock-shop namespace

  • Using the techniques shown in the Cheeses App lab, confirm each Application’s underlying technology. This is by clicking at the different Applications, drilling down to their Pods and running Containers, opening the attached consoles, running shell commands on the actual containers, etc.

E.g.

  • Open a new browser tab and click on the WeaveSocks bookmark

  • Add a few items into the shopping cart and quickly go back to the Weave Scope dashboard. Notice how it will notice the interaction among the involved components. In this case, Front-end trying to talk to User, Catalogue and Carts.

  • Now, login (user/password) and complete the purchase order.

  • Quickly go back to Weave Scope Dashboard and notice how the rest of the microservice interacted with each other to complete the Order.

  • Feel free to try different experiments. Scale out pods, scale in, notice behaviour and comment in your group.

I hope you found this blog useful. If you have any question or comment, feel free to contact me directly at https://www.linkedin.com/in/citurria/

Thanks for your time.

Author: Carlos Rodriguez Iturria

I am extremely passionate about people, technology and the most effective ways to connect the two by sharing my knowledge and experience. Working collaboratively with customers and partners inspires and excites me, especially when the outcome is noticeable valuable to a business and results in true innovation. I enjoy learning and teaching, as I recognise that this is a critical aspect of remaining at the forefront of technology in the modern era. Over the past 10+ years, I have developed and defined solutions that are reliable, secure and scalable, working closely with a diverse range of stakeholders. I enjoy leading engagements and am very active in the technical communities – both internal and external. I have stood out as a noticeable mentor running technology events across major cities in Australia and New Zealand, including various technology areas such as, Enterprise Integrations, API Management, Cloud Integration, IaaS and PaaS adoption, DevOps, Continuous Integration, Continuous Automation among others. In recent years, I have shaped my role and directed my capabilities towards educating and architecting benefits for customers using Oracle and AWS Cloud technologies. I get especially excited when I am able to position both as a way to exceed my customers’ expectations. I hold a bachelor degree in Computer Science and certifications in Oracle and AWS Solutions Architecture.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s