Greetings to you dear reader!
I am Murathan, one of DevOps Talks organizers. Today, I will be your narrator for the story of how our 5th DevOps Talk on the 26th of October went with the warm joy of the lockdown.
And here is the time finally, the time for the 5th of our exciting DevOps Talk: Lockdown Edition!
Our talk is now starting with the introduction from our host, dear Marcis! Right after he explains how the structure of the event will be, it’s time that he is giving the floor to Muhammad for the first part of our talk.
Muhammad is starting with a short introduction; about what he will be telling us today: “Migrating applications to containers by using Docker compose and AWS CodeDeploy” with blue/green deployment strategy. After the AMI is built on AWS, the infrastructure can be built via Terraform or Cloudformation.
As it will be our strategy of deployment today, Muhammad is giving us the reasons why we should use blue/green deployment :
- Zero downtime when upgrading the app to a new version
- It enables the rollback feature to be able to go back to the previous version in a need of any case
- Many companies adopt this strategy because it is stable and the best way to shift the app to a new version
As he made his point clear about blue/green deployment, he is telling us right away, why we should use Docker-compose :
- We can build the app stack locally and service discovery between different EC2 instances can be made with AWS Private Hosted Zone if we move the app to AWS.
And then, how will our structure be? Muhammad is continuing to explain us step by step :
- For monitoring, we can use EC2 AWS Cloudwatch Agent, Grafana, and Zabbix.
- For alerting, we can use AWS SNS, Grafana, and Zabbix.
- For logging, we can use Docker Cloudwatch agent.
- Application scaling is possible with ASG configured with CloudWatch Policies. New EC2 instances can be added depending on some metrics – for example, CPU or memory- or also existing instances can be removed automatically.
- For external load balancing ALB can be used, as Nginx can be used for internal load balancing.
As soon as Muhammad is finishing his presentation, our QA session starts. Igors is coming up with a question, by asking the approach for testing.
Muhammad is answering the question with a solid explanation :
- By enabling particular health checks, it is possible to enable auto-switch between blue deployment and green deployment, do a rollback, with AWS CodeDeploy.
After the explanation from Muhammad, we are finishing the first part of our talk. Now Uldis has the mic, our facilitator, explaining to us how the discussion part will be. But first, he is asking our participants who want to join the discussion actively. Muhammad, Marcis, John, Gvido, Rajesh, and Igors are willing to join the discussion actively.
Awesome! As of now, we have our active participants, who are waiting excitedly to discuss some interesting topics, first Uldis is making the main rules after taking a sip from his delicious champagne. All active participants should follow during the discussion part :
- Camere should be on
- Participants should care about the NDA!
- Everyone shares something
- Do not interrupt, be respectful!
- Talk only about your own experience
- Be present, follow the talk
Right after setting up the rules, each participant is choosing a topic or an issue and has 1 minute to elaborate on the topic.
The first topic and explanation are coming from our host, Marcis. “DevOps weekend projects”. Especially nowadays, as we have a lockdown/curfew in the country, he has free time on the weekends to enjoy at home, and also a few laptops. So then, he wants to hear from others what projects would be interesting to work on at the weekend. Could be a small project for a weekend or a bigger one to work on for a few weekends, he adds.
Our second topic is coming from Rajesh, “What do you prefer for Kubernetes ? EKS AKS GKE or your own setup for production ?”. Would others build their K8s environment on the cloud, or would they go with hosting it on-premise? Rajesh is interested in hearing opinions/experiences from them, what their choice would be and why. He prefers on-premise systems as he prefers to have complete control over the cluster.
John is coming up with another interesting topic, “How Agile and DevOps work together ?”. John is working as an Agile Coach, and also, he is sometimes doing some technical DevOps work. He is interested in listening to experiences from others about working together with Agile Methodologies, scrum, and sprints.
Igors is saying that he has no issues. He is just new to AliCloud and he already encountered some firewall issues with AliCloud that normally he would not with the others.
Muhammad is telling us that he has been forced to learn AWS CDK. He prefers to learn and work with the most popular and open-source tools, generic ones rather than narrow ones. And from that point, he is bringing up his topic “Why use AWS CDK instead of Terraform ?”
We listened to all participants and their explanations of their topics/issues. It’s time to take a vote and see which one we will start discussing. After a quick vote, we have a draw now! Both Marcis and Rajesh had 5 votes, as Muhammad had 3, and John had 1.
As Marcis is the host and he already had fun, the decision is to go with Rajesh first.
What do you prefer for Kubernetes EKS AKS GKE or on your own setup for production?
Rajesh starts the discussion of his topic by pointing out that setting up your own cluster is a challenge because you have to set up everything yourself, but you have full control over everything. With the cloud, that flexibility is lost, but security concerns are managed by the vendor. He’d like to hear the experiences and opinions of other participants.
Marcis is going after Rajesh. He has experience with on-premise systems. He agrees that you have full power on on-premise clusters. His experience showed that it worked flawlessly till now and didn’t have any problems except Ingress Controller settings. For monitoring, Prometheus works well with Grafana, he adds.
Muhammad comes up with a good point. He is taking notice that it is not easy to manage a K8s cluster. There is an administrator needed to build on on-promise systems and people are expensive. From that point of view, going for cloud solutions lowers down the need for the administrative part.
Igors is coming with an approach of another point of view. Even if you choose the technology, people may not be skilled enough. So better to check first what you have and then think about a solution.
John is adding that technology is not everything. It also depends on the adoption capability of people.
One fair approach is coming from Uldis, “Google made it, Google should host it”
Rajesh is finishing the discussion of his topic, by adding “If you don’t have the skills for the administration part, then maybe go for the cloud”.
It was an interesting discussion, as we listened to different approaches from different points of view. Now we are moving on with the second topic, from Marcis. At the moment, we realize we have around 15 minutes left, so we are going back to using the timer. Everyone will have 1 minute.
DevOps weekend projects?
Marcis has free time and some hardware resources. So he is fishing for some ideas and his purpose is mostly to learn.
John is continuing the discussion, by showing us an old Motorola mobile phone in his hand, and a Nintendo Wii he recently got. Connecting old devices to each other and deploying something randomly, maybe some OS or games might be a project to work on, he is saying. And he is drawing the attention with a smile, “And it should be automated”.
Muhammad’s opinion is that it could be good to deploy some infrastructure locally on VM on these devices, and then go for the cloud because the cloud is expensive.
Rajesh’s first step will be to find something interesting and then try to deploy that. And he is pointing out that it is important to document everything. For hardware, he mentions Raspberry Pi can be a good idea; cheap server up and running. Afterwards, Rajesh is sharing his medium page, where he shares his documents/articles, as also his GitHub.
Gvido is thinking maybe working on some ML stuff would be nice and interesting things can be done with computer vision.
The presentation of Muhammad can be found here.