Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
How to drive haul truck in Australia,
sitting in Kiev
True story of success of one near-IoT project
t WITH PASSION TO TECH...
t .NET LEVEL UP
KYIV 2018
About me
• Lead Software Engineer @ EPAM Systems, Ukraine.
• Key developer on project, which goa...
t .NET LEVEL UP
KYIV 2018
About project
• System for monitoring all types of equipment in open mines.
• Implemented on .NE...
t .NET LEVEL UP
KYIV 2018
How it all worked for a long long time…
Field
Gateway
Central
t .NET LEVEL UP
KYIV 2018
Problems and Limitations
• It’s almost impossible to simulate field environment during
developme...
t .NET LEVEL UP
KYIV 2018
What would be great to have
• Quick and Easy deployment simulation on regular dev machine
• Migr...
t .NET LEVEL UP
KYIV 2018
CloudField Gateway
Flume
4545
Kafka Apache NiFi
Big Data Storage
Zookeeper
2181
RabbitMQ
5672, 1...
t .NET LEVEL UP
KYIV 2018
Pros and cons
• Field gateway as hub for all messages
• Built-in “store and forward”
• Migrated ...
t .NET LEVEL UP
KYIV 2018
CloudField Gateway
Flume
4545
Kafka Apache NiFi
Big Data Storage
Chronograf
8888
Kapacitor
9092
...
t .NET LEVEL UP
KYIV 2018
Pros and cons
• Monitoring of all components in Field and Cloud
• Alerts for critical metrics in...
t .NET LEVEL UP
KYIV 2018
Part #3
CloudField Gateway Internet
Flume
4545
SSH Server
Auto SSH
In/Out: 22
Portainer
9000
Tra...
t .NET LEVEL UP
KYIV 2018
Part #3
Auto SSH Auto SSH
-L 0.0.0.0:4545:0.0.0.0:4545 -R 0.0.0.0:4545:flume:4545
SSH Server
Fie...
t .NET LEVEL UP
KYIV 2018
Pros and cons
• Great and simple secure connection between Field and Cloud
• Only one port used
...
t .NET LEVEL UP
KYIV 2018
Part #3
CloudField Gateway Internet
Flume
4545
SSH Server
Auto SSH
In/Out: 22
Portainer
9000
Tra...
t .NET LEVEL UP
KYIV 2018
Overall results
• Used stable 3rd party components wherever it’s possible to reduce custom code ...
t .NET LEVEL UP
KYIV 2018
How to contact with me
andrii.tararaka andrii.tararaka@gmail.com
Тема доклада
Тема доклада
Тема доклада
KYIV 2018
Thank you!
.NET CONFERENCE #1 IN UKRAINE
Upcoming SlideShare
Loading in …5
×

.NET Fest 2018. Андрей Тарарака. Как порулить грузовиком в Австралии, находясь в Киеве. Реальная история успеха одного около-IoT проекта

21 views

Published on

Я расскажу вам реальную историю о том, как один небольшой около-IoT проект с большими амбициями отошел от старого технологического стека к современному кросс-платформенному подмножеству .Net-стека. Как развертывание было перенесено из полностью ручного в полностью автоматизированное с помощью Docker, VSTS и Azure в многоплатформенном «кластере». И как все эти действия помогли разработчикам и клиенту в повседневной жизни.

Published in: Education
  • Be the first to comment

  • Be the first to like this

.NET Fest 2018. Андрей Тарарака. Как порулить грузовиком в Австралии, находясь в Киеве. Реальная история успеха одного около-IoT проекта

  1. 1. How to drive haul truck in Australia, sitting in Kiev True story of success of one near-IoT project t WITH PASSION TO TECHNOLOGY Andrii Tararaka .NET CONFERENCE #1 IN UKRAINE, KYIV 2018
  2. 2. t .NET LEVEL UP KYIV 2018 About me • Lead Software Engineer @ EPAM Systems, Ukraine. • Key developer on project, which goals is to implement near real-time monitoring system for equipment in open mines. • Author of in-house UI platform for creating LoB applications. • …
  3. 3. t .NET LEVEL UP KYIV 2018 About project • System for monitoring all types of equipment in open mines. • Implemented on .NET stack from IoT app up to UI client app • IoT app implemented for WindowsCE • Backend hosted in Azure • UI client app implemented on WPF
  4. 4. t .NET LEVEL UP KYIV 2018 How it all worked for a long long time… Field Gateway Central
  5. 5. t .NET LEVEL UP KYIV 2018 Problems and Limitations • It’s almost impossible to simulate field environment during development • Fully manual deployment • IT Security on field is very important and local IT department is blocking all unknown traffic • Each part was developed with legacy technology stack and almost everywhere the wheel was reinvented
  6. 6. t .NET LEVEL UP KYIV 2018 What would be great to have • Quick and Easy deployment simulation on regular dev machine • Migrate in-house components to cross-platform .NET Core as much as possible • Minimize number of in-house frameworks with help of stable 3rd party libraries • Support “Data Streaming” for any kind of data • Make production deployment fully automated
  7. 7. t .NET LEVEL UP KYIV 2018 CloudField Gateway Flume 4545 Kafka Apache NiFi Big Data Storage Zookeeper 2181 RabbitMQ 5672, 15672 Adapter Connector Flume 4545 IoT App [Legacy] IoT App
  8. 8. t .NET LEVEL UP KYIV 2018 Pros and cons • Field gateway as hub for all messages • Built-in “store and forward” • Migrated to stable 3rd party components • Scalable architecture • For us whole deployment is still “Black Box”, we need more info from all parts
  9. 9. t .NET LEVEL UP KYIV 2018 CloudField Gateway Flume 4545 Kafka Apache NiFi Big Data Storage Chronograf 8888 Kapacitor 9092 InfluxDB 8086 Grafana 3000 Telegraf In/Out: 8186 Zookeeper 2181 RabbitMQ 5672, 15672 Adapter Connector Flume 4545 Chronograf 8888 Kapacitor 9092 InfluxDB 8086 Grafana 3000 Telegraf In/Out: 8186 IoT App [Legacy] IoT App
  10. 10. t .NET LEVEL UP KYIV 2018 Pros and cons • Monitoring of all components in Field and Cloud • Alerts for critical metrics in Field and Cloud • Separate dashboards for Field and Cloud deployment in Grafana • Centralized collecting of logs and metrics • Lack of secure connection between Field and Cloud • Need to have easy access to all web-based components
  11. 11. t .NET LEVEL UP KYIV 2018 Part #3 CloudField Gateway Internet Flume 4545 SSH Server Auto SSH In/Out: 22 Portainer 9000 Traefik In/Out: 80, 443 Kafka Apache NiFi Big Data Storage Chronograf 8888 Kapacitor 9092 InfluxDB 8086 Grafana 3000 Telegraf In/Out: 8186 Zookeeper 2181 RabbitMQ 5672, 15672 Adapter Connector Auto SSH In/Out: 22 Flume 4545 Portainer 9000 Traefik In/Out: 80, 443 Chronograf 8888 Kapacitor 9092 InfluxDB 8086 Grafana 3000 Telegraf In/Out: 8186 IoT App [Legacy] IoT App
  12. 12. t .NET LEVEL UP KYIV 2018 Part #3 Auto SSH Auto SSH -L 0.0.0.0:4545:0.0.0.0:4545 -R 0.0.0.0:4545:flume:4545 SSH Server Field Network Internet Cloud
  13. 13. t .NET LEVEL UP KYIV 2018 Pros and cons • Great and simple secure connection between Field and Cloud • Only one port used • Easy to control network traffic (start/stop/resume) • We need automatic (and if it’s possible remote) deployment process
  14. 14. t .NET LEVEL UP KYIV 2018 Part #3 CloudField Gateway Internet Flume 4545 SSH Server Auto SSH In/Out: 22 Portainer 9000 Traefik In/Out: 80, 443 Kafka Apache NiFi Big Data Storage Chronograf 8888 Kapacitor 9092 InfluxDB 8086 Grafana 3000 Telegraf In/Out: 8186 Zookeeper 2181 RabbitMQ 5672, 15672 Adapter Connector VSTS Agent 443 Auto SSH In/Out: 22 Flume 4545 Portainer 9000 Traefik In/Out: 80, 443 Chronograf 8888 Kapacitor 9092 InfluxDB 8086 Grafana 3000 Telegraf In/Out: 8186 IoT App [Legacy] IoT App
  15. 15. t .NET LEVEL UP KYIV 2018 Overall results • Used stable 3rd party components wherever it’s possible to reduce custom code base • Started migration to .NET Core • Decoupled and scalable architecture • Added monitoring and log collection solutions • Added alerts and notifications for critical metrics • Added secure connection between Field and Cloud • Added automatic and remote deployment
  16. 16. t .NET LEVEL UP KYIV 2018 How to contact with me andrii.tararaka andrii.tararaka@gmail.com
  17. 17. Тема доклада Тема доклада Тема доклада KYIV 2018 Thank you! .NET CONFERENCE #1 IN UKRAINE

×