109th Monthly Technical Session

Billy Ho
henngeblog
Published in
5 min readJan 8, 2024

In the 109 th MTS (Monthly Technical Session), we talked about IoT in Winery Industry, AWS Copilot, iamlive for IAM policy and Onion Architecture.

Winemaking Journey: The Power of IoT in Winery Management

In this presentation, Akiko, a backend developer as well as a wine enthusiast, explores the intersection of tradition and technology in the winemaking industry. She shared the history of winemaking back from the earliest evidence in 1400 BC Armenia to the modern industry in which a lot of IoT technologies are in use.

She highlighted the role of the Internet of Things (IoT) in modern winemaking. IoT helps address challenges such as climate variability and disease prevention, transforming vineyards into intelligent systems. Winemakers use IoT to optimize irrigation, manage water resources efficiently, and measure soil quality. The data collected can be integrated with a data analytics system powered by AI for better winemaking decisions as well.

To illustrate the power of IoT, Akiko shared a personal project where she built a basic moisture sensor embedded in one of her plants, collecting data on moisture levels and transmitting it to the cloud.

Introduction to AWS Copilot CLI

In the next presentation, Krizza introduced Copilot, not the GitHub Copilot but AWS Copilot CLI. It is a command-line interface tool designed to simplify the deployment of containerized applications on AWS.

Krizza explained that AWS Copilot aims to help developers quickly provision resources with best practices. The tool is based on three main concepts: applications, services, and environments. It allows developers to set up multiple environments like test, staging, and production, and within those environments, various services can be managed.

She also showed an example of a manifest, a YAML or JSON file that specifies instructions for deploying a containerized app.

AWS Copilot is particularly useful for startups and tech founders who need to quickly get their MVPs out there but don’t have the budget for in-house DevOps. It’s also suitable for personal use if you want to deploy your projects on the cloud without learning DevOps.

Enjoy life creating IAM policy with iamlive!

Habibi from the DevOps team shared insights on how to use iamlive to help developers manage IAM (Identity and Access Management) permissions.

He began by highlighting a common issue faced during infrastructure deployment: AWS often rejects the deployment due to a lack of permission setup for the role. The traditional solution involves reading the error code, identifying the missing policy and adding them back. Then do Terraform apply again to update the role with the latest policies. This process can be time-consuming, especially when multiple permissions are missing but AWS always only tells you the first one they found.

Habibi then introduced iamlive, a local proxy that sits between the user and AWS. iamlive captures AWS calls, analyzes them and records the permissions used in those calls, and finally, outputs the minimum IAM policy required into a JSON policy file.

However, iamlive is not without its limitations. It only records about 90–95% of the complete IAM policy, meaning some trial and error is still required. Despite this, Habibi concluded that using iamlive can still drastically reduce the number of times he needs to run Terraform to deploy new infrastructure on AWS.

Gasshuku Feedback Survey

You might wonder what a Gasshuku is. A “Gasshuku” (合宿) is a Japanese term in general means training camp or retreat, where participants stay together for intensive training and skill development.

In HENNGE, it means we have fun together, somewhere far away from our daily office, to discuss our product, to have a hackathon together, as well as to explore the city together! We started having Gasshuku in 2022 and this is the second year we are holding this event.

This year we went to Aomori and most of us enjoyed it! This talk is mainly about the result of the post-event questionnaire and how people think about the Gasshuku.

This year 52 HENNGE people joined the Gasshuku from multiple divisions.

Peeling back the layers of onion architecture

Finally, Vivian brings us some insights into Onion Architecture, a common architecture in web applications. The advantages and its challenges.

Vivian then visualized the layers as concentric circles with all coupling directed towards the center. The core of this architecture is the domain model, which represents the states and contracts that concern the business. This pattern is particularly suited to domain-driven design.

She further explains the dependency inversion principle, a key concept in Onion Architecture, where high-level modules do not import anything from low-level modules, and both depend on abstractions. This principle reduces tight coupling and enhances maintainability.

Vivian also discusses dependency injection, a mechanism that allows the application core to use implementations living outside of it. She uses the example of a Pokemon trainer and a Pokeball with Python and Golang side by side to illustrate this concept.

Despite its advantages, Onion Architecture may be suitable for high-speed development due to the amount of code required. However, its benefits in terms of maintainability and testability. It is a valuable architecture to consider.

Conclusion

Thank you to all the speakers for the wonderful presentations! As usual, we have a beer bash after the MTS talks. Cheers! 🍺

--

--

Billy Ho
henngeblog

Software engineer from HENNGE. Participated with HENNGE Global Internship Program at 2019