Monday, January 4, 2021

Reflecting on Year 2020

⚠️ Content warning: This blog contains mention of death 

 The year 2020 - A year filled with a lot of uncertainties, learned whole new definition of being adaptable to the changes, surprises which were both good and bad, a year of learning about all new fears. Year 2020 to me has meant all about empathy and humanity. It's been a mixed year which has entirely changed the way I look at life and the impact has been real.

This year had been a real toll in terms of mental health and adapting to the new way of living with a lot of unexpected situations to face. I almost decided not to write anything about reflecting on this year. But I decided to do it. This is my first blog post in the last 6 months. 

The year started with a lot of excitement and goals that I wanted to achieve. A lot of planning and passion went in for what I wanted to achieve and learn while I was on my Testing Tour. Setting out on Testing Tour was not just about learning topics and sharing but it was more of getting out of my comfort zone. I am so glad I took the courage to do it and it proved to be worth it. I met known and new people from across the world which was an amazing experience. 

I got introduced to the whole new topic of Observability or O11y where Abby Bangser and Shelby Spees has helped me in a way that got me hands-on with so much better understanding and clarity about this topic. Shared my learnings from Testing Tour and Observability at multiple conferences

 I lived in fear since I came to know about Covid-19, fear for my family who live with me and who lived back home in India. I have seen Covid effect really closely. Three of my loved ones caught it one after the other. First my Mom, then my Dad and then my brother. In this battle, I lost my Dad who was my inspiration and role model. This hit me so hard that I'm still trying to recover to come out of that loss and pain 😢 which is never going to heal. These were one of the toughest days I have ever faced.

I still wanted to look back and reflect on the good things that happened to me. 

  • Went on Testing Tour and had 15 different sessions on 15 different topics and blogged about each of those sessions. 
  • I learned about a lot more new topics and tried my hands-on with new tools. I learned about Observability, Performance testing using Jmeter, Microsoft Azure and lot more. 
  • I got an opportunity to be part of Observability for testers series organized by Anne-Marie Charrett along with Lisa Crispin and  Abby Bangser which was a great opportunity to learn and explore more about observability.

  • I gained 1076 followers crossing 1000k followers on  Twitter which for me is a huge number. 
  • I learned to listen to my mental health and say no to few of the opportunities. I had to prioritise myself over other things which I struggled initially but gradually learned that it's absolutely ok to stop and take a break to take care of yourself. 
  • When the entire world went remote, initially I was happy that I will get to work from home but gradually it became challenging to work from home with two kids around as they had their virtual school sessions. Throughout this process, I learnt not to feel guilty for not being able to give full attention to both my kids while they are on their virtual school sessions. Learnt to be patient and adapt to each day as it comes. 
  • Our testing community is not just to learn and share about all things testing but it proved to be supportive during my difficult times which I'm so thankful for. 

Reflecting on all these gave me so much happiness, confidence and pleasure 💫😇. It's always good to look back and see what you have been doing or learning on the way. Looking forward for year 2021 with an attitude of being grateful for what I have. Thanks for your time for stopping by and reading my post 🙂

 

Thursday, June 25, 2020

Observability for Testers : #Session 2

Exciting to be starting the second session of learning "Observability for Testers" 😎. We all were super excited as we had our instances on AWS ready from our previous session. Now that we have our instance it was ready for setting up the DIMA app on it which was one of the main goals for this session. 

The DIMA app is a web app which is built on a microservices architecture. This app allows to upload, display, manipulate and delete the images. This stack also includes the monitoring and observability tool like Kibana, Grafana, Prometheus and Honeycomb. Now that we know a little bit about the app let's start to understand what a microservices architecture is before we get deep dive into the DIMA app architecture. 

Microservices:

I had to give a short introduction about the microservices architecture to everyone. I picked up an easier analogy as an example to give an introduction to microservices architecture. This blogpost seemed to be very helpful that explains very well about introducing this term to someone completely new to this terminology. When I started to learn about microservices I read a lot of blogs by Martin Fowler. 

"Microservices architecture is an architectural style that structures an application as a collection of services. That are highly maintainable, testable, independently deployable and loosely coupled."
                                                                                                                                     
The above definition is from microservices.io. Let's consider an example of a university portal where they have different sections for undergraduate study, postgraduate study, International students, Jobs and courses which serves its own purposes. We can consider these different sections as a simple microservice that serves the business logic and functionality. When we think of building a new feature related to courses or jobs or even maybe for International students, it becomes easier to think of each service and build the functionality for the specific service. Of course, this definitely introduces complexity when we look for testing this as a single service and testing the integration of all these services. Because it doesn't matter whether its a monolith or a microservice or any other type of architecture, for the users it's a single application which they want to use it with ease. 
Few of the examples who use microservices are Netflix, Amazon and eBay. 


Image from https://martinfowler.com/articles/microservices.html
Image from https://martinfowler.com/articles/microservices.htmlAdd caption

Now that we went through a basic understanding of microservices, here's how the structure of DIMA app looks like. Here are the images of architecture and infrastructure took from Abby's GitHub repo.

 Architecture


We can see here there are different services including the GUI and the database : 

  • GUI
  • MongoDB
  • Image Orchestrator
  • Image Holder
  • Image Thumbnail
  • Image flip
  • Image Grayscale
  • Image Size
  • Image Rotator



With all these different services, we need to find out where the problem is so we can figure out what the problem is. So having monitoring and observability tools in place will help anyone to debug the issue. 

After having a little exposure to the architecture and stack we followed the instructions to set up the DIMA  app stack on our instances so we can then trigger requests by adding/deleting/manipulating images and then exploring the logs and traces. 

It was really very helpful to have an understanding of the architecture of the app as it will be helpful while we are looking at the traces or logs and we could see the requests from different services. 
Super looking for the next session as we will get to explore more about logging, tracing and metrics.

Monday, June 8, 2020

Observability for Testers : #Session 1

We all joined this session from different time zones and we were 10 people. The main objective of this session was to build an AWS instance that could be used to build the observability stack created by Abby & Co.  This had a DIMA app which has the capability for uploading, deleting or altering the images. This app is built on microservices architecture which also includes other tools which provided logging, tracing and monitoring. Those tools are Kibana, Grafana, Prometheus, Zipkin and Honeycomb. 

Steps we followed : 


  • The next step was to create IAM user. Identity and Access Management(IAM) enables you to manage access to AWS services and resources securely. Using IAM, we can create and manage AWS users and use permissions to allow and deny their access to AWS resources. An IAM user with admin permissions is not the same thing as the AWS account root user. We need to follow 4 steps to create this user. 
Step 1
Step 1

Step 2

Step 3

Step 3 is optional, we could add the tags and use that as an identifier. It helps keep track of how the resources are being used. It also helps to organize, track or even control the access fo the user. And step 4 is to review the information added and then create the user. 

  • Install docker-machine. Docker machines allow us to create Docker hosts on cloud providers like Azure or AWS. I'm using windows so I used the following command by going to Git Bash. If you using Mac then follow this link for the right command -  https://docs.docker.com/machine/install-machine/


Learning as a group was a very collaborative and fun way to learn, share and tackle the challenges along. After having this session I'm already looking forward to the next session to go through the next steps.