4. Fog Computing
The collaboration of resources from
‘edge nodes’ for the purposes of
computation, storage, analysis and
management of devices and data
14. Architecture
RedisMessage Broker
Dashboard WX API
Solar Panel
API
Platform Services
Application
Services
Solar Panel
Aggregator
WX Collector
Solar Panel
Collector
Microservice
Boundary
Based in Austin, TX. API consulting, including architecture, design, deployment, and training. API 101 for Capital One, book, cloud native architecture
Colleague’s previous startup 10 years ago – managed solar panel farm, no viable comm solution, built mesh network, deployed Lua services for data collection/aggregation; Spoke about how we would architect it with today’s technologies… As we researched it, we found that a name had been assigned…
(Solar Power Technologies Inc now Drake)
This kind of architecture is what some are calling ‘Fog Computing’, which is defined as the collaboration of resources from ‘edge nodes’ for the purposes of computation, storage, analysis and management of devices and data
This isn’t a new idea. I was involved with a startup in 2001 with similar ideas. We wanted to combine the compute and storage resources of desktops on the edge of the Internet with peer-to-peer networks and SOAP web services to share and collaborate on data and business processes – rather than centrally-located web services within IT.
What’s different? The push toward modern, Hypermedia-based Web APIs, Microservice Architectures, and the introduction of Container-based software deployment and distribution. Microservices emerging as architectural pattern. Modularization, technology freedom, easier deployment. DEF: Loosely coupled service-oriented architecture with bounded contexts
Containers are popular for development and starting to emerge in production environments
Containers are popular for development and starting to emerge in production environments
More difficult deploys to bare metal, no declarative or immutable infrastructure
Specifically, containers, which provide us with the flexibility of virtualization we have from cloud infrastructure that allow us to spin up and down servers
Microservice spans processes/containers. Each process its own container to allow me upgrade the API without shutting off collectors. THINK ABOUT HOW YOU WANT TO CONTROL/MANAGE YOUR MICROSERVICE LIFECYCLE INCLUDING PROCESSES
Cat /proc/cpuinfo to show 4 core Pi
Show Docker Compose file and discuss each container, shared volumes and links
Launch each container
Open browser to dashboard and show data, discuss microservice pub/sub design
?Stop collectors, refresh browser?
Blue/green/Immutable infrastructure on Docker – JEROME’s TALK YESTERDAY ON IMMUTABLE INFRASTRUCTURE, SHARED NETWORK TO TROUBLESHOOT, and FASTER DEPLOYMENT BY BUILDING ONLY WHAT IS NECESSARY