Good frontend development is hard. Scaling frontend development is even harder because you need to ensure that multiple teams can work on a big and complex project simultaneously and without any blockers. Today you often hear about micro frontends which are one of the more controversial Web topics. What are they? Are they worth all the fuzz? Should you implement them? As someone who worked at integrating this in Infobip’s Web Interface, I want to use our example to show you our way of thinking: how did we know that we have problems, how did we decide to approach the implementation of micro frontend architecture and why did we decide to go with it, and which problems we ran into. We will also look at alternate available possibilities useful for anyone.
Jakiś czas temu mikroserwisy zawładnęły umysłami i duszami backend developerów. Teraz nadszedł czas, by i ci na froncie odeszli od wiecznie żywych monolitów. Za sprawą Webpacka 5 i Module Federation pojawiła się nowa i ciekawa opcja realizacji idei mikrofrontendów. W trakcie prezentacji opowiem o tym, jak zacząć i zbudować solidny komponent z module federation, ile różnych frameworków użyć i czy w ogóle wykorzystanie mikrofrontendów jest dla wszystkich.
A micro frontend architecture is an approach to developing web applications as a composition of small frontend apps. Instead of writing a large monolith frontend application, the application can be broken down into domain-specific micro frontends, which are self-contained and can be developed and deployed independently. Each micro frontend can be owned by verticalised domain specific teams. Micro frontends do have advantages and disadvantages and they are not suitable in many cases. When micro frontends is a potential solution, make sure to use a domain driven top-down approach, with no big design upfronts. Keep it simple!
Frontend Developer Love Amsterdam - 30 January 2018
Micro Frontends Architecture is micro service approach for Frontend development. Micro Frontends thinks web-app as a composition of features which are owned by independent teams. Each team has a distinct area of business or mission it cares about and specialises in it. A team is cross functional and develops its features end-to-end, from database to user interface and take care of CI/CD. Micro service architechure is well know concept for backend point of view but In frontend we need to follow diffrent type of design pattern to achieve this.
Key Take away:
1. Learn about Micro Frontend
2. How to practically use them
3. Key challenges
Design Systems - Develop multiple features across multiple platforms
Isomorphic Systems - Javascript rendered on backend
Shared Codebases - Component library, multiple teams, multiple platforms
Seperation of Concerns - Services seperated out, easy to migrate
Unit Testing - Much much needed
State Management - Seperate out what application is doing from UI Logic. (Thanks to Facebook)
Immutability -Core Javascript Principle we use in day to day life.
Different ways to handle Asynchronous behavior - Async/await, observables, promises, etc.
Micro frontends" is a new trend in large single page applications (SPA). Single page applications have become increasingly large and resemble in behavior and life-cycle the server side monolith. Just as there is a movement to split server side monolithic applications into multiple robust micro-services, there is also a movement towards splitting up the client app into multiple parts that can be developed, and more importantly - deployed, independently thus increasing agility and lowering the risk of unexpected regressions in other parts of the application.
Jakiś czas temu mikroserwisy zawładnęły umysłami i duszami backend developerów. Teraz nadszedł czas, by i ci na froncie odeszli od wiecznie żywych monolitów. Za sprawą Webpacka 5 i Module Federation pojawiła się nowa i ciekawa opcja realizacji idei mikrofrontendów. W trakcie prezentacji opowiem o tym, jak zacząć i zbudować solidny komponent z module federation, ile różnych frameworków użyć i czy w ogóle wykorzystanie mikrofrontendów jest dla wszystkich.
A micro frontend architecture is an approach to developing web applications as a composition of small frontend apps. Instead of writing a large monolith frontend application, the application can be broken down into domain-specific micro frontends, which are self-contained and can be developed and deployed independently. Each micro frontend can be owned by verticalised domain specific teams. Micro frontends do have advantages and disadvantages and they are not suitable in many cases. When micro frontends is a potential solution, make sure to use a domain driven top-down approach, with no big design upfronts. Keep it simple!
Frontend Developer Love Amsterdam - 30 January 2018
Micro Frontends Architecture is micro service approach for Frontend development. Micro Frontends thinks web-app as a composition of features which are owned by independent teams. Each team has a distinct area of business or mission it cares about and specialises in it. A team is cross functional and develops its features end-to-end, from database to user interface and take care of CI/CD. Micro service architechure is well know concept for backend point of view but In frontend we need to follow diffrent type of design pattern to achieve this.
Key Take away:
1. Learn about Micro Frontend
2. How to practically use them
3. Key challenges
Design Systems - Develop multiple features across multiple platforms
Isomorphic Systems - Javascript rendered on backend
Shared Codebases - Component library, multiple teams, multiple platforms
Seperation of Concerns - Services seperated out, easy to migrate
Unit Testing - Much much needed
State Management - Seperate out what application is doing from UI Logic. (Thanks to Facebook)
Immutability -Core Javascript Principle we use in day to day life.
Different ways to handle Asynchronous behavior - Async/await, observables, promises, etc.
Micro frontends" is a new trend in large single page applications (SPA). Single page applications have become increasingly large and resemble in behavior and life-cycle the server side monolith. Just as there is a movement to split server side monolithic applications into multiple robust micro-services, there is also a movement towards splitting up the client app into multiple parts that can be developed, and more importantly - deployed, independently thus increasing agility and lowering the risk of unexpected regressions in other parts of the application.
Ivan Jovanovic - Micro Frontends - Codemotion Rome_2019Codemotion
The web is changing every day and it’s so hard to follow and implement all the new and fancy stuff that is being built. Cool new frameworks, libraries, methodologies and new approaches to solving problems. Usually is not that easy to deprecate some old technology and migrate to the new one. There are not many developers that still want to work with Angular 1 or Backbone and moving to something new is becoming necessary. If this sounds familiar to you, then this talk is for you! There is an innovative way to migrate from the old technology, to change the applications step by step
На JavaScript Odesa #TechTalks мы поговорили о микрофронтендах как о современном архитектурном стиле проектирования для фронтенд разработки, который облегчает поддержку и деплой обновлений для крупных проектов.
Также мы обсудили:
Что такое микрофронтенды?
Как использовать их с старым проектом?
Монорепа vs мультирепа и почему?
О спикере:
Максим Белкин, Senior Software Engineer с 10-летним опытом коммерческой разработки веб-приложений. У Максима большой опыт в создании одностраничных приложений с использованием современных фреймворков и инструментов, а также большой опыт в области серверной разработки и создания REST API. Он также обладает глубокими знаниями в области объектно-ориентированной разработки, алгоритмов, кодирования и шаблонов тестирования и имеет опыт в гибкой разработке программного обеспечения, включая роли SCRUM Master и Team Lead.
Microservices is a well-known term for recently year. But the truth is that it mostly focused on backends site while the frontend is still a monolithic application. This presentation intends to provide the necessary tooling to achieve independent apps loaded separately and run on different parts on a single web page in complete isolation which is officially called micro-frontends.
There is no doubt that one of the most emerging terms in today Tech Community is MicroFront end Architecture, in this Lecture, we will go through the Basics of Micro-FrontEnd Architecture Concept, and will discuss with Examples, How some techniques to implement it, Also will discuss if its suitable for you to migrate from old single Front-End App to Micro-FrontEnd Architecture.
A presentation to explain the microservices architecture, the pro and the cons, with a view on how to migrate from a monolith to a SOA architecture. Also, we'll show the benefits of the microservices architecture also for the frontend side with the microfrontend architecture.
Developing with micro frontends offers enterprises many benefits over monolithic frontend development, but MFEs also present challenges.
Micro frontend platforms provide DevOps benefits for large organizations seeking to innovate quickly while managing increasing complexity.
"Micro-frontends, web development", Oleksandr KhivrychFwdays
Architecting micro-frontends can be challenging. The right micro-frontends approach can provide many benefits for organizations. But, poorly architected can sometimes lead to many critical issues (performance, complexity, big cognitive load). In this talk, let's explore how we can keep it simple with Module Federation and enable independent release flow in modern web applications.
Microservice Approach for Web Development with Micro Frontendsandrejusb
Micro frontends extend concepts of microservices into front end development. The idea behind micro frontends is to represent Web app as composition of features, instead of one large monolyth application. Each feature is developed and tested end-to-end, from database to user interface. Oracle JET Web Components architecture suits perfectly for micro frontend development, Web Component encapsulates UI and back-end logic calls, allowing to build independent micro frontends.
How to build Micro Frontends with @angular/elementsMarcellKiss7
How to build Micro Frontends with @angular/elements, using Web Components (aka. Custom Elements)
Was presented on Angular Meetup Hungary [EN] and Angular Meetup Graz [DE] in 2022
Getting started with Next.js - IM Tech Meetup - Oct 2022.pptxIlesh Mistry
The October 2022 IM Tech Meetup was about Next.js.
This presentation was about Getting started with Next.js.
Web development framework created by Vercel
Open-source
Is a React framework that gives you building blocks to create websites and applications
As it’s highly connected to Vercel there is a smooth deployment platform with it
Acts as a wrapper around the benefits of React and bridges the gap for the browser. As typically React is client side, Next.js helps to pre-render content.
One of the most recognised and widely used development frameworks by the community
Big brands like TikTok, Nike, Notion, Nintendo etc… are using it
Seems like the ‘go to’ item in the tech stack, especially for front-end developers
Evolving pretty fast in the market and becoming a strong leader
Next/image - Image optimisation and others
It’s better for SEO as your HTML is pre-loaded compared to standard reach app
Ivan Jovanovic - Micro Frontends - Codemotion Rome_2019Codemotion
The web is changing every day and it’s so hard to follow and implement all the new and fancy stuff that is being built. Cool new frameworks, libraries, methodologies and new approaches to solving problems. Usually is not that easy to deprecate some old technology and migrate to the new one. There are not many developers that still want to work with Angular 1 or Backbone and moving to something new is becoming necessary. If this sounds familiar to you, then this talk is for you! There is an innovative way to migrate from the old technology, to change the applications step by step
На JavaScript Odesa #TechTalks мы поговорили о микрофронтендах как о современном архитектурном стиле проектирования для фронтенд разработки, который облегчает поддержку и деплой обновлений для крупных проектов.
Также мы обсудили:
Что такое микрофронтенды?
Как использовать их с старым проектом?
Монорепа vs мультирепа и почему?
О спикере:
Максим Белкин, Senior Software Engineer с 10-летним опытом коммерческой разработки веб-приложений. У Максима большой опыт в создании одностраничных приложений с использованием современных фреймворков и инструментов, а также большой опыт в области серверной разработки и создания REST API. Он также обладает глубокими знаниями в области объектно-ориентированной разработки, алгоритмов, кодирования и шаблонов тестирования и имеет опыт в гибкой разработке программного обеспечения, включая роли SCRUM Master и Team Lead.
Microservices is a well-known term for recently year. But the truth is that it mostly focused on backends site while the frontend is still a monolithic application. This presentation intends to provide the necessary tooling to achieve independent apps loaded separately and run on different parts on a single web page in complete isolation which is officially called micro-frontends.
There is no doubt that one of the most emerging terms in today Tech Community is MicroFront end Architecture, in this Lecture, we will go through the Basics of Micro-FrontEnd Architecture Concept, and will discuss with Examples, How some techniques to implement it, Also will discuss if its suitable for you to migrate from old single Front-End App to Micro-FrontEnd Architecture.
A presentation to explain the microservices architecture, the pro and the cons, with a view on how to migrate from a monolith to a SOA architecture. Also, we'll show the benefits of the microservices architecture also for the frontend side with the microfrontend architecture.
Developing with micro frontends offers enterprises many benefits over monolithic frontend development, but MFEs also present challenges.
Micro frontend platforms provide DevOps benefits for large organizations seeking to innovate quickly while managing increasing complexity.
"Micro-frontends, web development", Oleksandr KhivrychFwdays
Architecting micro-frontends can be challenging. The right micro-frontends approach can provide many benefits for organizations. But, poorly architected can sometimes lead to many critical issues (performance, complexity, big cognitive load). In this talk, let's explore how we can keep it simple with Module Federation and enable independent release flow in modern web applications.
Microservice Approach for Web Development with Micro Frontendsandrejusb
Micro frontends extend concepts of microservices into front end development. The idea behind micro frontends is to represent Web app as composition of features, instead of one large monolyth application. Each feature is developed and tested end-to-end, from database to user interface. Oracle JET Web Components architecture suits perfectly for micro frontend development, Web Component encapsulates UI and back-end logic calls, allowing to build independent micro frontends.
How to build Micro Frontends with @angular/elementsMarcellKiss7
How to build Micro Frontends with @angular/elements, using Web Components (aka. Custom Elements)
Was presented on Angular Meetup Hungary [EN] and Angular Meetup Graz [DE] in 2022
Getting started with Next.js - IM Tech Meetup - Oct 2022.pptxIlesh Mistry
The October 2022 IM Tech Meetup was about Next.js.
This presentation was about Getting started with Next.js.
Web development framework created by Vercel
Open-source
Is a React framework that gives you building blocks to create websites and applications
As it’s highly connected to Vercel there is a smooth deployment platform with it
Acts as a wrapper around the benefits of React and bridges the gap for the browser. As typically React is client side, Next.js helps to pre-render content.
One of the most recognised and widely used development frameworks by the community
Big brands like TikTok, Nike, Notion, Nintendo etc… are using it
Seems like the ‘go to’ item in the tech stack, especially for front-end developers
Evolving pretty fast in the market and becoming a strong leader
Next/image - Image optimisation and others
It’s better for SEO as your HTML is pre-loaded compared to standard reach app
Micro Frontends
“Extending the microservice idea to frontend development”.
What does it really mean? Is it just abusing a certain hype? Should I consider it? How should I approach it?
These are just some of the questions one might ask when presented with this notion. Long story short – Micro front-ends are a reality! However, it is not for everyone.
In this session, we’re going to demystify micro frontends. We’re going to establish what it is, when it should be considered and the decisions to be made
OdessaJs 2020 - How to build your first micro frontend in a matter of minutesVlad Fedosov
In this talk we'll break the myth that micro frontends is a complex technology and discuss how to convince your manager to start using them. After session you'll be able to spin up micro frontends on any project you're working on.
Building a full-stack app with Golang and Google Cloud Platform in one weekDr. Felix Raab
The talk will cover how to effectively build a production-ready, full-stack app with Golang and GCP under time constraints. I'll discuss how to approach making quick and sound technical decisions and how to apply modern software engineering practices for end-to-end apps. The presentation shows, in an opinionated and "meme-ful" way, various lessons learned, tools, and key takeaways for cloud environments.
'How to build your first micro frontend in a matter of minutes' by Vladlen Fe...OdessaJS Conf
In this talk we'll break the myth that micro frontends is a complex technology and discuss how to convince your manager to start using them.
After session you'll be able to spin up micro frontends on any project you're working on.
React Js vs Node Js_ Which Framework to Choose for Your Next Web Applicationadityakumar2080
React js is more of a JavaScript library than a framework that is developed and maintained by Facebook. Initially released in May 2013, it is a tool for building UI components. React js has an MVC or Model View Controller architecture. Node js is an open-source Google Chrome v8 JavaScript framework. The main idea of developing applications in Node js is to execute JavaScript on the server-side.
Both Ember.js & Backbone.js are capable JavaScript frameworks. Are you confused to make selection between both?Hire a web development companies in PHP to reduce the amount of time and coding needed to carry out the development process.
Alexandra, Matthias, and Prasanna have been working on a project with micro frontend architecture for the past year.
This project involves 4 teams distributed over two countries - Germany and India, each of the teams delivering one or several micro frontends that are consolidated into one product in the browser. This talk is based on our practical insights into micro frontends using React and Redux. We will discuss the differences between this technique and micro-services, our approaches to solving the common issues, the advantages it offers and the challenges it brings.
Frontend Development Bootcamp - React [Online & Offline] In BanglaStack Learner
Frontend Development Bootcamp - React
Stack School:
https://courses.stackschool.co/courses/frontend-development-bootcamp-react
"Frontend Development Bootcamp - React"[ Online + Offline], we will teach you frontend development and its process. And we will use React and its ecosystem for learning. But at the end of this camp, if you want to switch to any other library or framework, and you can do so without anyone's help.
ওয়েব ডিজাইনার না, জেনে শুনে বুঝে, দীর্ঘ সময় হাতে কলমে প্রাকটিস করে সত্যিকার অর্থেই ফ্রন্টেন্ড ডেভেলপার হতে চাইলে এই বুটক্যাম্পটি আপনার জন্য। ফ্রন্টেন্ড ডেভেলপমেন্ট মানে HTML CSS না, React Vue না, এটা একটা প্রোসেস এবং যা আমরা শিখবো React ব্যবহার করে।
Frontend Development Bootcamp - React [Online & Offline]
43+ Weeks, 86+ Classes - A Long Journey to Become A Professional Frontend Developer
আমাদের অনেকেরই ধারণা ফ্রন্টেন্ড ডেভেলপমেন্ট মানেই হচ্ছে React, Vue বা Angular. এগুলো একবার শিখতে পারলেই হয়ে গেলো। কিন্তু বাস্তবিক অর্থে এগুলো হচ্ছে কিছু টুলস যা আপনাকে ফ্রন্টেন্ড অ্যাপলিকেশন ডেভেলপ করতে সাহায্য করবে। এই সুদীর্ঘ বুটক্যাম্পে আমরা ফ্রন্টেন্ড ডেভেলপমেন্ট শিখবো। এবং শেখার কাজে ব্যবহার করবো React এবং এর ইকো সিস্টেম। তবে এই ক্যাম্প শেষে যদি আপনি অন্য যে কোনো লাইব্রেরী বা ফ্রেমওয়ার্ক এ সুইচ করতে চান, কারোর সাহায্য ছাড়াই আপনি সেটা করতে পারবেন। কারণ এই লম্বা বুটক্যাম্পে আপনাকে ফ্রন্টেন্ড ডেভেলপমেন্টের থিওরি এবং প্রসেসের সাথে এমন ভাবে পরিচয় করিয়ে দেওয়া হবে, যেন চাইলেই আপনি যেকোনো টুলস ব্যবহার করে ফ্রন্টেন্ড ডেভেলপমেন্ট করতে পারেন। মনে রাখবেন, এটা React এর কোনো কোর্স না, ফ্রন্টেন্ড ডেভেলপমেন্ট কোর্স যেখানে আমরা টুল হিসেবে React কে বেছে নিয়েছি।
AngularJS + NancyFx + MongoDB = The best trio for ultimate SPA by Bojan Velja...Bojan Veljanovski
The complete demo project from my CodeCamp's 2013 session "AngularJS + NancyFx + MongoDB = The best trio for ultimate SPA" can be found on github: http://bit.ly/JqrJWm
Die Qual der Wahl bei den Single Page Application FrameworksJonas Bandi
Dieser Vortrag gibt einen Überblick über die aktuellen Single Page Applikation Frameworks und versucht diese zu vergleichen. Der Fokus liegt dabei auf den aktuellen "Top 3" der SPA Frameworks: Angular, React und Vue.js. Der Vortrag schaut aber auch über den Tellerrand und beleuchtet aktuelle Trends und Entwicklungen. Dabei werden die neueren Ansätze von Balzor, Vaadin und Flutter den traditionellen SPA Frameworks gegenübergestellt.
Best practices for creating modular Web applicationspeychevi
In the talk we are discussing the best practices for creating modular Web applications. The talk focuses on practical advices and proven in the time methodologies for creating supportable and maintainable applications.
Similar to Shift Remote FRONTEND: Micro Frontend Architecture: A Look Into the Future - Ante Tomic (Infobip) (20)
Shift Remote: AI: Behind the scenes development in an AI company - Matija Ili...Shift Conference
Creating any type of company takes enormous amounts of effort, hard work, and persistence. Let alone an Artificial Intelligence company. As we can assure you, it will take a lot more than the above and adding just a team of brilliant AI scientists to build complex real-world AI solutions. In this talk, we will show you the crucial roles of development teams in a high-performing Artificial Intelligence company.
Shift Remote: AI: Smarter AI with analytical graph databases - Victor Lee (Ti...Shift Conference
Today's analytical graph databases are taking organizations to another level by connecting all their data, representing knowledge better, and obtaining answers to deeper questions in real time. These benefits extend to the world of machine learning and AI. This talk will illustrate several ways in which graph databases and graph analytics can deliver smarter AI:
1. Unsupervised learning with graph algorithms.
2. Feature extraction and enrichment with graph patterns.
3. In-database ML techniques for graphs
Shift Remote: DevOps: Devops with Azure Devops and Github - Juarez Junior (Mi...Shift Conference
This talk explores how to modernize your infrastructure with Microsoft Azure DevOps and GitHub, the cultural transformation required to get there end, the opportunities that arise from such a shift.
Shift Remote: DevOps: Autodesks research into digital twins for AEC - Kean W...Shift Conference
Autodesk Research has been exploring the intersection of BIM (Building Information Modeling) and Internet of Things (IoT) for the last decade. Project Dasher (http://dasher360.com) integrates sensor data with model data from Autodesk’s Forge platform to contextualize IoT data in 3D. This session will look at the history of Dasher, as well as how some of its capabilities are now being integrated into Forge, allowing web developers to build digital twins integrating real-world performance data with 3D geometry.
Shift Remote: DevOps: When metrics are not enough, and everyone is on-call - ...Shift Conference
Is "Observability" just another term to make DevOps cool again? Let's talk about why observability is not just a term, and not just monitoring. This session explores how modern applications are driving a different approach to operations and changing the way companies think about their on-call strategy. Sustainable DevOps means application management plans keep pace with application velocity.
Shift Remote: DevOps: Modern incident management with opsgenie - Kristijan L...Shift Conference
Opsgenie is a cloud-based service for dev & ops teams, providing reliable alerts, on-call schedule management and escalations. Opsgenie monitors and reports on the entire life cycle of a ticket, allowing operations personnel to analyze incidents and outages and identify areas for improvement. Are you ready to improve your incident and alert management systems?
Shift Remote: DevOps: Gitlab ci hands-on experience - Ivan Rimac (Barrage)Shift Conference
DevOps tooling and practices are changing every day. Nowadays you can standardize and automate your infrastructure, application delivery, and policies as code. You’ll be ready to adapt quickly—helping your team do their best work faster while staying competitive. Gitlab CI is a modern tool which can help you manage, package, configure and much more with your apps. You can get your infrastructure to play very nice with it. It is designed to improve software development productivity. Topics we will be covering in a talk are pipeline configuration, DAG, components, controls, job configuration.
Shift Remote: DevOps: DevOps Heroes - Adding Advanced Automation to your Tool...Shift Conference
DevOps is more than the process of automating your CI/CD pipelines to generate code and deployment artifacts for production. It's also about organizational change and integration of many subtle processes that help you to deliver applications seamlessly from development to production through your operations.Let's unlock the power of process integration with a getting started walk through of a free online hands-on workshop that adds advanced automation to your devops toolbox. We'll take you through the integration of an organizational process as part of your DevOps strategy. Step-by-step you'll learn how to build a data model, create an automated process, integrate user approval tasks, and more using modern open source process automation tooling. No experience in automation integration is required. Join us for a short session that helps you in adding a new tool to your devops toolbox.
Shift Remote: Game Dev - Localising Mobile Games - Marta Kunic (Nanobit)Shift Conference
Nanobit is famous for its interactive story games. In the beginning we created those games only in English and without support for any other language. There were many people who were not able to play them because they didn’t speak English and couldn’t understand anything. In this talk you will find out how we managed to translate our games and increase the number of our players more than twice.
Shift Remote: Game Dev - Challenges Introducing Open Source to the Games Indu...Shift Conference
As many of us already know - open source is highly prevalent in the wider technical landscape. However, in the games industry, it is far less so. At Google we’ve been working on a variety of open source projects for game developers, and have come across several challenges that are fairly unique to the games industry -- so let’s take a look at them, and some proposed solutions that we’ve come up with to help you in that area!
Shift Remote: Game Dev - Ghost in the Machine: Authorial Voice in System Desi...Shift Conference
It’s easy to see an agenda in a piece of narrative work, or to see a criticism of an issue in a digital painting,but can math be an expression of our view of the world? Can dynamics of the systems say how we feel about the world? I strongly believe they can, so let me show you how, and why.
Shift Remote: Game Dev - Building Better Worlds with Game Culturalization - K...Shift Conference
With over 30 years of experience in digital media as a geographer and culturalization strategist, and 27+ years in games, Kate Edwards has been involved in the creation of many games, including major titles such as Halo, Fable, Age of Empires, Mass Effect, Call of Duty, and many, many others. She has seen it all when it comes to geopolitical and cultural issues that are often overlooked in content creation and can negatively affect the ability of content to be accepted overseas, and she has seen designers miss opportunities to create more robust worlds that engage the players from diverse cultural backgrounds. Kate will discuss the field of content culturalization and how it can assist game creators with building better game worlds that account for a wider range of cultural and geopolitical considerations.
Shift Remote: Game Dev - Open Match: An Open Source Matchmaking Framework - J...Shift Conference
Developers want to focus on connecting players together for online multiplayer game sessions, not gaming infrastructure. Google has worked alongside developers and publishers to create Open Match to solve this issue. This open source matchmaking framework provides developers with tools to build a scalable matchmaker without the overbearing tasks of managing their infrastructure when hit with a sudden surge of players. In this talk, we will explore Open Match, its features, and the benefits of building Open Match in open source.
Shift Remote: Game Dev - Designing Inside the Box - Fernando Reyes Medina (34...Shift Conference
In game development, resources are limited. For any creative endeavor, this might seem very restrictive and counterintuitive. In this talk we’ll explore how constraints can be used to our advantage, leading to designing and creating better and more unique products.
Shift Remote: Mobile - Efficiently Building Native Frameworks for Multiple Pl...Shift Conference
In this talk you will learn about some of the approaches that you can take to effectively design and build native frameworks that behave consistently across platforms while leveraging each platform's native strengths and APIs. We'll go over the process all the way from designing a feature, to writing a feature specification, to a passing test suite for every platform.
Shift Remote: Mobile - Devops-ify your life with Github Actions - Nicola Cort...Shift Conference
What's the first thing you should do when starting a new project...? Setup a good CI system! With Github Actions you can do it in a couple of seconds. You can easily setup a workflow to build your project, test it on different machines, and deploy the results. In this talk we're going to see how you can setup a simple Github Action for your repository and start enjoying it right after.
Shift Remote: WEB - GraphQL and React – Quick Start - Dubravko Bogovic (Infobip)Shift Conference
Have you ever wondered if there's a way to create simple real time apps? Were you ever tired of creating numerous APIs for your CRUD operations or just some simple aggregated data? There is a simple, fast way to do just that, GraphQL. Well look into what GraphQL can do for us, how to create a simple opensource GraphQL server on top of Postgres and how to use the data in our front end apps.
# Internet Security: Safeguarding Your Digital World
In the contemporary digital age, the internet is a cornerstone of our daily lives. It connects us to vast amounts of information, provides platforms for communication, enables commerce, and offers endless entertainment. However, with these conveniences come significant security challenges. Internet security is essential to protect our digital identities, sensitive data, and overall online experience. This comprehensive guide explores the multifaceted world of internet security, providing insights into its importance, common threats, and effective strategies to safeguard your digital world.
## Understanding Internet Security
Internet security encompasses the measures and protocols used to protect information, devices, and networks from unauthorized access, attacks, and damage. It involves a wide range of practices designed to safeguard data confidentiality, integrity, and availability. Effective internet security is crucial for individuals, businesses, and governments alike, as cyber threats continue to evolve in complexity and scale.
### Key Components of Internet Security
1. **Confidentiality**: Ensuring that information is accessible only to those authorized to access it.
2. **Integrity**: Protecting information from being altered or tampered with by unauthorized parties.
3. **Availability**: Ensuring that authorized users have reliable access to information and resources when needed.
## Common Internet Security Threats
Cyber threats are numerous and constantly evolving. Understanding these threats is the first step in protecting against them. Some of the most common internet security threats include:
### Malware
Malware, or malicious software, is designed to harm, exploit, or otherwise compromise a device, network, or service. Common types of malware include:
- **Viruses**: Programs that attach themselves to legitimate software and replicate, spreading to other programs and files.
- **Worms**: Standalone malware that replicates itself to spread to other computers.
- **Trojan Horses**: Malicious software disguised as legitimate software.
- **Ransomware**: Malware that encrypts a user's files and demands a ransom for the decryption key.
- **Spyware**: Software that secretly monitors and collects user information.
### Phishing
Phishing is a social engineering attack that aims to steal sensitive information such as usernames, passwords, and credit card details. Attackers often masquerade as trusted entities in email or other communication channels, tricking victims into providing their information.
### Man-in-the-Middle (MitM) Attacks
MitM attacks occur when an attacker intercepts and potentially alters communication between two parties without their knowledge. This can lead to the unauthorized acquisition of sensitive information.
### Denial-of-Service (DoS) and Distributed Denial-of-Service (DDoS) Attacks
1.Wireless Communication System_Wireless communication is a broad term that i...JeyaPerumal1
Wireless communication involves the transmission of information over a distance without the help of wires, cables or any other forms of electrical conductors.
Wireless communication is a broad term that incorporates all procedures and forms of connecting and communicating between two or more devices using a wireless signal through wireless communication technologies and devices.
Features of Wireless Communication
The evolution of wireless technology has brought many advancements with its effective features.
The transmitted distance can be anywhere between a few meters (for example, a television's remote control) and thousands of kilometers (for example, radio communication).
Wireless communication can be used for cellular telephony, wireless access to the internet, wireless home networking, and so on.
Multi-cluster Kubernetes Networking- Patterns, Projects and GuidelinesSanjeev Rampal
Talk presented at Kubernetes Community Day, New York, May 2024.
Technical summary of Multi-Cluster Kubernetes Networking architectures with focus on 4 key topics.
1) Key patterns for Multi-cluster architectures
2) Architectural comparison of several OSS/ CNCF projects to address these patterns
3) Evolution trends for the APIs of these projects
4) Some design recommendations & guidelines for adopting/ deploying these solutions.
APNIC Foundation, presented by Ellisha Heppner at the PNG DNS Forum 2024APNIC
Ellisha Heppner, Grant Management Lead, presented an update on APNIC Foundation to the PNG DNS Forum held from 6 to 10 May, 2024 in Port Moresby, Papua New Guinea.
Bridging the Digital Gap Brad Spiegel Macon, GA Initiative.pptxBrad Spiegel Macon GA
Brad Spiegel Macon GA’s journey exemplifies the profound impact that one individual can have on their community. Through his unwavering dedication to digital inclusion, he’s not only bridging the gap in Macon but also setting an example for others to follow.
This 7-second Brain Wave Ritual Attracts Money To You.!nirahealhty
Discover the power of a simple 7-second brain wave ritual that can attract wealth and abundance into your life. By tapping into specific brain frequencies, this technique helps you manifest financial success effortlessly. Ready to transform your financial future? Try this powerful ritual and start attracting money today!
3. ARE YOU USING MICRO
FRONTENDS ALREADY?
Possibly ... yes, we are!
HOW IS THAT POSSIBLE?
Deploying only parts of the
application or page separately, ...
10. MICRO FRONTENDS
No unified approach!
Micro Frontend 1
Micro Frontend 2
Micro Frontend 3
SOURCE CONTROL BUILD & TEST DEPLOY Front-end
integration
Team Jaran
Team Pero
Team Rendo
11. CORE IDEAS
Technology Agnostic Isolate Team Code
Naming Convention
Resilience
Favor Native Browser
Features
e.g. infobip- prefix, namespaces, etc.
Separate application builds!!!
Application stability
12. Independency is the key!
N projects (15 < N < 45)
WEB INTERFACE:
Every project has navigation
MICRO FRONTENDS
15. Any Infobip
Web Interface
application
Type definitions for
navigation
Navigation code
bundle
Backend API
endpoint
Retrieve & Prepare
navigation infoNavigation data
ready
Resolves & renders
navigation in the browser
Navigation info
19. WHY THIS APPROACH?
Own implementation
Bundle optimizations
Single version of dependencies
https://reactjs.org/docs/error-decoder.html/?invariant=321
Invalid hook call. Hooks can only be called inside of the body of a
function component. This could happen for one of the following
reasons: 1. You might have mismatching versions of React and
the renderer (such as React DOM) 2. You might be breaking the
Rules of Hooks 3. You might have more than one copy of React
in the same app See https://fb.me/react-invalid-hook-call for tips
about how to debug and fix this problem.
28. OUR CHOICE ... WHY?
Already N projects
Gradual
implementation
Requirements Time to implement
Looking into the best
option
29. SHARED TOPICS?
Team Jaran
Team Pero
Team Rendo
Web Performance is key!
Establishing a common
Design System
Knowledge sharing
Team Duje
30. Feature development
No monoliths
Be able to keep changing
Independence
Useful for medium-large projectsRedundancy
Consistency
Heterogeneity
Requires more front-end code
and local development setup
Not good for smaller
development teams
Good sides
Bad sides
The Good, the Bad and the Ugly …
31. ARE MICRO FRONTENDS
WORTH ALL THE FUZZ?
In Infobip’s use case ... yes!
Analyze your projects and
decide what to do!
Remember: there is no perfect solution!
Hi everyone, thank you for joining. Today I will introduce you into the world of micro frontends and how we implemented them, so let’s start.
Hi. My name is Ante, 26 years old Software Engineer working in Infobip for 4 years. I am focused on technical side of Web and recently I am focusing on React, Webpack, Node.JS and optimization of application and project infrastructure and build processes. You will find me holding a talk on local meetups and I always hope to pass my knowledges and experiences through presentations, meetups and conferences to the other developers. (00:50) In my free time I love exploring and hobby photography, so you will often find me with my camera.
(00:50) Let’s start with an important question. Are we already using micro frontends? It is likely that we are! Usually when working on projects, we think about project optimization and optimizing developer experience by avoiding frequent re-deploys. We usually do that by separating parts of the application, so that we can deploy them independently. Well, by doing that we changed application archutecture and actually implemented some sort of microfrontends without being aware of it! Let’s check how this is possible.
The idea of creating independent modules from parts of the application is definitely not anything new as micro frontends are more an arhitectural approach than a specific technique, but the name is new and it came from micro services. Micro Frontends are obviously more friendly and bulky term under which this concept became more popular and present.
To understand this better, I will take an example of navigation in Infobip’s Web Interface. This is our main Web product that is a collection of N different projects. Those projects can be separate applications, even parts of the application. We will focus on the general picture, so let’s start by checking the implementation we will explain.
If we look at this screenshot, we can see a web application that contains navigation. But, as this is a big product with N projects, this is not the only application and we have navigation shown in N different projects. So, this is component that is common for absolutely every project.
(03:00) Let’s check the structure. We have projects split up into multiple separate areas, so that it is easier to support them by multiple teams. As these are Node.JS projects, the foundation are dependencies like react, lodash, moment, webpack, and more. Some projects also can have additional dependencies or some sort of store or state management if necessary. Or common parts necessary and usually present in all applications. And of couse, then we have components. Now, we saw the navigation in the previous slide which contained the screenshot and we know that it is global. What should we do with more present components like that? Extract them into a separate library!
What problem do we have? Our Web applications are monolithic meaning that they contain everything. Even though we separated some parts to libraries, it is not enough because we are building and including components and everything into application code bundles. And that is not good because code bundles are a static code what means that we have to do the re-deploy whenever we have changes. But how could we solve this? We can optimize our applications by scaling and decomposing parts into independent modules which can then be deployed separately from the application. Let’s dive in more to check what this means.
(04:51) We can define micro frontends and micro services as architectural approach that allows us to split up the application into independent multiple areas. With micro services we get agility and independence because teams can take ownership for their services, easier deployment because one micro service is not dependent on the others, technological freedom because we can choose what to use, and resilience because service independence increases an application’s resistance to failure. This is related to the micro services architecture, but the main difference is that micro frontends include user interface. By doing this we avoid monolithic UI where change in one part can have unexpected effects on the other side, so let’s dive into micro frontends and learn more.
(05:57) There is no unified approach for implementing micro frontends, but we have a general goal. By separating monolithic UI into the smaller independent modules we optimize them for feature development by having a separate front-end modules each maintained by the team that owns its stack. In our example, let’s say that we have Team Jaran, Team Pero and Team Rendo. As we see here, each micro frontend is independent: it has own build and deploy after which the new feature is shipped directly to the customer without depending on anyone else. To better explain and understand how we can approach implementing micro frontends, let’s start by exploring the core ideas.
To start with, we should be technology agnostic – each team should be able to choose and upgrade their stack without coordinating with other teams. Your application modules should be independent what means that code between applications shouldn’t be shared. Establish some sort of naming convention, especially for parts which can’t be isolated yet. Try to rely on using native browser events for communication instead of Custom APIs, but if you need API, keep it as simple as possible. And lastly, your modules should be resilient and work even if something else fails.
It is important to say that independency is the key. A lot depends on how applications are set up because there are multiple approaches for implementing this. To easier understand the implementation, let’s set up some conditions. All projects are in React. We have N projects and each one of them uses the same navigation code that we will decompose. Let’s assume we are using Amazon Web Services and CDN.
In Infobip Web Interface it makes sense for us to extract navigation and additionally error page because they are common and should work consistently everywhere. Additionally, we are also extracting the translation system which we are improving and unifying at one place, so with its global usage it makes sense to extract it. We are working on expanding this, so we are just getting started.
(09:00) Let’s check general picture. Our navigation module contains build and deploy stages by using Jenkins. We are keeping them separate because we want to choose by ourselves which micro frontend to deploy and when. When we run application build, we determine the navigation version. This is important because we need to have the version ready for deploy. Then with that version, we make type definitions and Webpack-generated code bundle for CDN. Then when we want to deploy, we start the Jenkins deploy job by choosing the desired version and environment. That job will save the version information to Redis.
In Web application we use Redis to retrieve and prepare any neccessary information about CDN links and version by using our application back-end. Then as soon as we have everything ready, we pass all of it to any Web Interface application. With that information it has everything necessary to dynamically fetch and render the navigation in current client’s browser without any issues. (10:21) Then as a final result, application is loaded with navigation visible and there is no change for user in comparison to earlier.
(10:27) In application we resolve navigation dynamically right before we need it. We do this asynchronously with what we ensure that the navigation is loaded before the application. Performance and UI are not affected as fetching the bundle doesn’t take more than 80 milliseconds. When we load the bundle, it automatically makes navigation available with window scope and Webpack for using. As we share some dependencies inside every application, our navigation code bundle uses them as Webpack extenals. This means that everything under window is resolved as EcmaScript import. We will explore why we did this, but let’s first talk about how we develop new features for modules like navigation.
For micro frontend modules we always have one local development and one production build. Production is easy because our module is loaded into applications and we can immediately see the result and if everything works. But, local development is challenging because we need to ensure that we can test everything like in production. (11:49) Everything should be inside your repository and you should avoid using something like monorepo as it is considered an anti-pattern and doesn’t allow you to take advantage of organization benefits of independent teams and applications.
Our modules in Infobip usually consist of 2 parts: exposed modules and demo page for local development. Demo page includes exposed modules and is done to mimic the functionalities and behaviour from production. Apart from demo page, we also need web application server like webpack-dev-server. And sometimes you will need to make API requests and then it is good to ensure that you are making the calls same locally and in production. You can use HTTP proxy server which can then take care of that. Also, additionally today’s Web development is quite powerful and you have a lot of possibilities. (12:41) It is important to remember that your module shouldn’t know or care about the development environment of other teams, so definitely try to avoid dependency like that.
Why did we do this approach? Like most developers, we decided to go with own implementation based on our needs. The second reason is optimization of navigation bundle. This helped us significantly reduce the bundle size by 60 percent. The third reason is ensuring the single version of dependencies, especially for React libraries. Let’s check the React error message quote below. Just read what is bolded in red colour. We learned this lesson the hard way when we had issue with one shared component using React Hooks and after a little bit of investigation, we realized that having multiple copies from React even from the same folder in node_modules still causes issues.
(13:44) There are two more main reasons. The first is less complexity. By breaking up the application into smaller parts, we can deploy those parts independently. And then that means that it is easier to maintain the projects because they are noticeably smaller and you are not depending on anything else to update your micro service module.
We can also use some existing solution instead. We have 3 categories: client-side frameworks which allow for client-side micro frontends while also offering server-side rendering; server-side frameworks which are usually libraries or frameworks for Node.JS Express, but can also come in a form of services rolled out into your infrastructure; and helper libraries that either provide some infrastructure for sharing dependencies, routing events, or just bringing together different micro frontends and their lifecycles. Helper libraries are our desired direction and the implemention worth mentioning here is Webpack’s Module Federation.
But first, let’s check all solutions. We see interesting trend here: client-side and server-side frameworks are less popular, while helper libraries like Single SPA and Postal are more popular. They are still far from popular libraries, but this shows that developers are getting interested for sharing dependencies and bringing different microfrontends together. This is expected as micro frontends are starting to gain more traction.
Let’s first talk about downsides of our approach. There is a lot of manual work as we have to cover everything by ourselves like loading foreign modules, script tags, on-demand loading, and more. The problem is also resolving shared dependencies because we need to be careful about for example resolving React versions problem we mentioned. And any own solution requires a lot of trial and error to be sure that everything is working properly and they can take time to properly implement and test. But, can we improve this?
(16:33) There is always room for improvements, but you have to be aware of something: no solution is perfect and you can find good and bad sides anywhere. The most important things are developer and customer experiences, so it is good to think about build and Web performance and especially automation, so that you have less manual work. You can even consider a different solution, so let’s check Module Federation.
If we take Module Federation and compare it with our solution, we can see that automation and less manual work are problems because we can’t achieve that at the moment. We can get good build performance by optimizing bundles, Web performance by optimizing what we load and how, and shared dependencies to some extent by using window global scope and externals, but let’s dive in into Module Federation because automation makes a difference here.
With Module Federation idea is same – we want application parts as a separate build. We will call those separate builds Containers. Containers can be referenced either directly by Application or by other containers and in such relationship the container is the remote and the consumer of the container is the host. The remote can then expose the modules to the host which can then use them. We call those modules remote modules. And this means that we have separate builds what brings us independence and much better build performance.
But what actually happens? Normally we have exports as EcmaScript Modules. Here we specify which modules to expose in remote, so that the hosts can consume them. That is done asynchronously what allows the build to put each exposed module in a separate file with all necessary dependencies. Thanks to async, we load only what is really necessary what ensures good Web performance because we make only necessary requests with the number of total downloads low. Another thing we saw with navigation is sharing dependencies. Here we have shared modules. Any container and application can put shared modules into the share scope together with version information. And they can consume shared modules available in the share scope together with the version requirement check. We will always get from share scope the highest available version of a shared module within the version requirement. And shared modules are also provided in async way meaning that providing them has no download cost and we download only what we really use.
(20:00) We chose the externals solution because we already have N projects and we wanted to start gradually. We wanted more instant results due to incoming navigation updates that gave us a good starting point we can build. Client-side and server-side frameworks would take us too long, so we knew that we would go for our own solution or a helper library. But this doesn’t mean that we are not looking into the other options. We are waiting for Webpack 5 to be out of beta and after that we are planning to test Module Federation and possibly integrate it, so the future is bright. (20:47) But remember, migrating to micro frontend architecture is complex and definitely not trivial, so this is the big reason why we are doing it slice-by-slice and improving it along the way.
(20:49) As Micro Frontends are all about working in teams on independent modules, there are always some shared topics which are essential for covering and addressing. This is important to ensure a good end-result and avoid redundant work. Let’s take our already mentioned tems Jaran, Pero and Rendo and assume we have more teams like Team Duje. Each team shouldn’t be the one to reinvent the wheel and it is always a good idea to share knowledge, ideas or implementations with the other teams through either presenting your solution or some Community of Practice. It is also good to have a technical Web team which can then improve some things teams usually don’t have time for. And when we are developing, we need to ensure a consistent look-and-feel for customer and we can do that by having a common Design System. And lastly, Web Performance is very important because you have faster response time and less code shipped to the browser which results in a better load time and it is better to unify improvements across all modules.
(22:08) Let’s summarize micro frontends. They are useful for optimizing feature development because they improve development speed. There are also no monoliths anymore. You are able to keep changing and improving your projects because you can do local decision-making and eliminate legacy code. And there is independence as we have self-contained modules, no shared code, and lighter projects we can run with less computing resources. But, because each micro frontend has own stack, you have to maintain everything separately what can lead to redundancy, but this may be avoidable with Module Federation. And if you need to get some info or data from the other teams, you may have to depend on them and keep everything consistent. And even though micro frontends are technology-agnostic, there is a problem of heterogeneity which is one of the more controversial things. Just because you can doesn’t mean that you should pick a different technology stack. We defined that we will always use technologies like Node.JS or React and avoided this problem. And we already said that setting up local development what can be a challenge. And lastly, while micro frontends are awesome for medium and large projects, they may be an overkill for smaller teams and smaller amount of developers that don’t have an issue with communication.
(24:01) So, your takeaway from today should be that micro frontends are worth all the fuzz! They helped us a lot with optimizing everything in Infobip, especially with N projects and we are planning to continue to use and improve it. For your projects, definitely take time to analyze them and then decide about what you will do. And remember – there is no perfect solution, you can find good and bad sides for absolutely everything. (24:35) Pick up the solution that best fits your needs and first try implementing it on one smaller parts and if all works well, then expand it to more global level.
Before wrapping up, I just want to share link where I have prepared the little reference list where you can check frameworks and some things I have mentioned. I used some of those links to prepare this presentation, so hopefully it will be useful for you.