Enhancing productivity by using Terraform

In today’s fast-paced development environments, efficiency and speed are essential to delivering quality applications. A critical part of this process is the deployment pipeline—especially when packaging code and pushing it to production. Manual workflows can slow down progress and lead to inconsistencies. But what if we could automate this entire process? That’s exactly what we did by integrating Terraform into our workflow, which significantly improved our productivity. Clearly, we needed a solution that would streamline this process, reduce errors, and make deployment faster. That’s where Terraform came in.

Automating with Terraform: The Game-Changer

Terraform is an infrastructure-as-code tool that allows us to define and manage infrastructure through code. By automating the workflow using Terraform, we were able to create a smooth, reliable, and repeatable deployment process. Here’s how it helped us:

1. Automated Code Packaging

With Terraform, we set up an automated process that packages our application code whenever there’s a new change. Instead of developers manually running scripts to package their code, Terraform automatically takes care of it. This ensures that the code is always packaged correctly, reducing human error and saving developers valuable time.

2. Seamless Code Deployment

Once the code is packaged, Terraform sends it directly to the application. This is a huge improvement from previous workflows where developers had to take several manual steps to push the code to different environments. Now, Terraform takes care of everything, enabling us to deploy code with a single command.

3. Time Savings and Increased Productivity

By automating the packaging and deployment workflow, developers can focus on what they do best: writing code. With a single command, they can push updates and changes to the application, significantly speeding up the release cycle. This leads to faster development times, quicker iterations, and ultimately, increased productivity across the entire team.

“The fabric doesn’t call me anything. He grimly does his work, then he sits motionless until it’s time to work again. We could all take a page from his book”

(c) The Fabricator and the Silicon Valley series.

(c) Faruk The Fabricator inspired by the Silicon Valley series.

If you think a student’s story begins when they enroll at Hogwarts, you could not be more wrong.
The Fabricator is evil and does not care about privacy. The Fabricator is guileful and does not care about truth. He will do everything in his power to gather or fabricate every detail of their lives  and use it to achieve his goals.

At the moment,
The Fabricator uses Fabric to access previous data of the students wishing to enroll at Hogwarts.
We call the Kaggle API within notebook code to retrieve data from Kaggle and write it as a CSV file.

Python code in another notebook is then used to transform this data and divide it into clusters.


Finally, a “Copy Data” activity moves the data to its final destination. But is this truly the end?

Follow the Fabricator for more—if you can, that is.

In the coming days, the Fabricator plans to:

  • Show clustered data in Power BI reports.
  • Use insights to plan interventions or recommendations for students.
  • Perform behavioral predictions: Use the clusters as labels for supervised learning models to predict future performance.
  • Trigger emails or alerts for specific clusters needing attention.

Data is born into Fabric, molded by it. Data does not see the light until it is ready to face users. And when it is finally presented, it is blinding.

(c) The Fabricator and The Batman.

PS: with this article we claim the following badges:

Thieving Bastards – we use online data source from kaggle

Dataminer – we are doing data transformation for better reporting and we are using extrernal data.

Go With The Flow – we create the pipeline that can be used to retrive any data from kaggle. We plan to use data activators to send alerts based on the processed data.

Power User Love – in fabric we created pipeline as a low code solution. inside pipeline we are using python code for advanced operations.

Automating potential uncomfortable situations and (green) shells

Automation galore! A lot of processes are jumpstarted when a banana is detected and the poor first banana responders need all the help they can get. Notifying next of kin can be a tough task, and for Road Authority personell with limited people skills automation is key.

We have set up a workflow that works like this. When a banana is detected we receive a http request. When then register the incident in Dataverse while also looking up next-of-kin data, and send that to outlook to automatic notifications.

Our solutions have a lot of bits and pieces, having control on how these are deployed are essential. All our Azure resources are handled nicely using ARM template deployment.

Piping our way through the Azure Cloud

To make our amazing service Tubi work, a lot of cloud is needed. We aim to make the plumber’s job easier by recommending the best layout for where the pipes should go, and for that, we need AI. We have trained a model in Custom Vision to recognize all components in a bathroom that need water. So, when the plumber uploads a floor plan to our Static Web App, the image is sent to our Azure Function App backend in C# Asp.net through our own API. But both the image and the equipment list must be stored somewhere. Therefore, we have also connected to Azure Blob Storage. Then last but not at all least. The people working in the back office have instant interactive reports available to help them with filing and billing through Power BI and alerting the using an automated flow (Badges: Feature Bombing)

Sometimes it works, and that’s plenty

Databases are good, but sometimes it’s easier to just dump everything in one place until you need it again. Yes, it might not be very scalable or very normalized. SQL became too heavy, and we already needed a Blob storage to store the images, so we also dump the order data in the same blob storage as JSON files. It’s old fashioned way of serverstorage, and a bit dirty, but it works! (Badges: Nasty hacker, Retro badge)

Power the backoffice

As the final list of components are decided, they still have to be approved from the accounting team in the office. To make sure they have all the information they require, we have developed a Power BI dashboard to crawl through our registered data and make sure the orders are handled properly (Badges: Crawler, Dash it Out, Dataminer). And to make sure the orders are handled easy and fast, the dashboard is embedded into teams and an alert is automated by using a logic app to make sure the workers can receive and cooperate in realtime (Badges: Embedding Numbnuts, Go with the flow, Pug N’ Play, Power user love, Right Now, Stairway to heaven).

Go with the flow Badge – Automating booking and tracking of orders

Booking of orders

Behold the power of PowerPages! Picture this: a distressed customer, facing a flood of plumbing woes, summons help with a mere click of their mouse or tap of their finger. With the agility of a ninja and the simplicity of a child’s game, they dispatch a plumber to their aid! It’s like summoning a superhero, but instead of capes, they wield wrenches and plungers! With PowerPages, plumbing problems are no match for our valiant customers

Donkey Kong, the mighty supervisor, perched atop his virtual throne in the Field Service app’s Schedule Board. With a stroke of his mighty ape paw, he oversees his troop of employees as they navigate the jungle of bookings. It’s a wild ride, but with Donkey Kong at the helm, chaos turns into coordinated mayhem

Our trusty plumbers, armed with wrenches and know-how, embarking on their daily quests to conquer leaks and vanquish clogs! But fear not, for with the power of the Bing connector, they’re armed with more than just tools—they’ve got the magic of automatic latitude and longitude retrieval! As they navigate the labyrinth of streets, our fearless plumbers rely on the Canvas app like seasoned adventurers, ensuring they always reach the pot of gold at the end of the address rainbow!

A Day of Triumph: Unlocking Multiple Badges in a Single Sprint !?

Streamlining Efficiency: The “Go with the Flow” Badge Achievement

In the pursuit of optimizing business productivity within our solution, the implementation of an ALM pipeline has been a game-changer. This automated transfer of solutions between environments not only saves significant time and effort but also ensures that both unmanaged and managed versioning packages of the solution are seamlessly transitioned. Furthermore, the integration of a Power Automate flow for the approval of deployments has elevated our operational efficiency, marking a significant milestone in our journey to “Go with the Flow.” This achievement underscores our commitment to leveraging workflow automation for enhanced productivity.

Uniting Power and Simplicity: The “Power User Love” Badge

Our solution showcases an exemplary blend of low-code platforms with pro-code customization, embodying the #ProCodeNoCodeUnite philosophy. By implementing a Power Pages site for user interface and login, coupled with a PCF component coded in React and TypeScript for a gamified course, we demonstrate the power of integrating professional coding standards with low-code solutions. This approach not only streamlines development but also opens up a realm of possibilities for creating robust, user-friendly applications.

Gamification at Its Best: Achieving the “Mario Badge”

Elevating user interaction through gamification, the implemented PCF component with interactive controllers to navigate through course levels. Each course represents a level, challenging users to advance and showcase their proficiency. This gamification aspect not only makes learning more engaging but also encourages users to level up their skills in a fun and interactive environment.

Visual Insights: The “Dash It Out” Badge

Our solution now features a Power BI report embedded within the Power Pages site, along with additional reports for user access to high scores and admins for an overview of active players and their progress. These reports, showcasing at least four graphs, gauges, or KPIs, highlight the business value of our dashboard. The integration of these visual insights ensures that both users and administrators have a comprehensive understanding of performance metrics at their fingertips.

Adaptive Excellence: Securing the “Chameleon” Badge

The responsiveness of the Power Page, adapting automatically to all devices and screen sizes, exemplifies our solution’s versatility. This inherent adaptability ensures that our application delivers a consistent and user-friendly experience across various platforms, earning us the “Chameleon” badge. It’s a testament to our dedication to creating solutions that are not only powerful but also universally accessible.

“Go With The Flow” Badge: Automating Race Results for Enhanced Efficiency

Streamlining Race Results with Cloud Automation

The “Go With The Flow” badge represents our commitment to innovating race management through automated workflows. By implementing a cloud-based solution, we’ve significantly enhanced the efficiency and personalization of post-race communications.

Efficient Trigger Mechanism
The process begins immediately after a race concludes. This prompt activation is key to ensuring timely dissemination of race outcomes.

Automated Action: Personalized Results
Our system automatically compiles, verifies, and emails a comprehensive summary of the race results to each participant. This quick, accurate information delivery exemplifies the power of automated workflows in a high-paced environment.

Enhanced Feedback for Continuous Improvement
Crucially, we offer more than just results; drivers placed below third receive additional, personalized tips for improvement. This feature not only celebrates successes but also encourages skill development and growth among all participants.

Conclusion
Earning the “Go With The Flow” badge symbolizes our strides in integrating cloud automation to streamline processes and enrich participant experience. It’s a testament to leveraging technology for better, faster, and more personalized race management.

Go With the Flow

Our Canvas App is adding a function where you can “Call a friend”. The purpose of this function is to allow for voting. All of the buttons on the participant tables are rigged with voting functionality. (More of this will be visible the last day). For now we only use our personal button.

Single click on 2 stores vote for YES.

Double click on 2 stores vote for NO

This data is stored in Dataverse in a table we called votes:

When the Power App calls the voting service, it will respond with the total tally of Yes or No to kill the BAD GUY

Find the right Mario for you

We claim badges:

  • Plug N’ Play – for Dynamics 365 plugin that updates Mario for each support request based on the context using OpenAI
  • The Existential Risk – for AI decision making and work assignment without human involvment
  • Go With The Flow – for automating of the technician assignment
  • Crawler – for an innovative approach of searching for the right Mario technician

Sometimes Princesses are confused and don’t know where to start from when they have technical issues. So we are here to help them with AI! Princesses just need to add the description of the problem and the Dynamics Plugin will suggest Marios that are currently available and best match the case.

So the Princess creates a new support request, and that’s were plugin is triggered. The plugin sends the problem to OpenAI’s smart ChatGPT. The prompt:
Given the following case description, rate its severity on a scale of 1 to 4, where 1 is minor and 4 is critical:

I seem to be having a bit of a predicament with our kingdom’s email system, and I’m in dire need of assistance. This morning, when I attempted to send out invitations for the upcoming royal ball, I noticed that none of my emails were being delivered. They seem to be stuck in the outbox, and no matter how many times I try to resend them, they simply won’t go through.

The result of the OpenAI request is the severity level, in our case it is 3. So the plugin is looking for Marios who can cope with this severity and assigns the case to this Mario. Also, plugin updates the details of the case:

It is an extraordinary way to search for an engineer, but also a risky for administrators of the support team, as AI is taking away their job! On the other hand – it follows the flow and automate the routine process, which is a major benefit for the business itself….