Movatterモバイル変換


[0]ホーム

URL:


İbrahim Gürses, profile picture
Uploaded byİbrahim Gürses
PDF, PPTX119 views

How to Design a Backend for IoT

This document provides an overview of how to design a backend for the Internet of Things (IoT). It discusses key concepts like DevOps, microservices, and cloud computing. The presenter has experience working with IoT infrastructure and recommends a serverless architecture using AWS services like Lambda, API Gateway, and S3. Design principles like the 12 factor app methodology and avoiding monolithic applications are emphasized. Distributed systems challenges around areas like configuration, logging, and security are also addressed.

Embed presentation

Download as PDF, PPTX
HOW TO DESIGN A BACKENDFOR THE IOTİBRAHİM GÜRSES
WHO AM I?▸ Graduated From Bilkent University in 2011▸ Vakıfbank, Gate Elektronik, T2 Yazılım, OpsGenie,Hazelcast, Arçelik.▸ Currently working on IoT infrastructure @Arçelik▸ Co-Founder of Ankara Cloud Meetup
ANKARA CLOUD MEETUP
SERVERLESS COMPUTING WITH AWSHTTPS://WWW.YOUTUBE.COM/WATCH?V=LEPQXTOWDJS
DEVOPS CULTURE AND PRACTICESHTTPS://WWW.YOUTUBE.COM/WATCH?V=D3E0XJCRWCE
AGENDA▸ IOT▸ DevOps▸ 12 Factor App▸ Cloud▸ Microservices▸ Q&A & Demo
IOT
FROM MOORE’S LAW TO METCALFE’S LAWMetcalfe's law states that the value of a telecommunications networkis proportional to the square of the number of connected users of thesystem
WHAT IS IOT?▸ The network of physical object that contain embeddedtechnology to communicate and interact with their internalstates or the external environment. (Gartner)▸ The term is coined by Kevin Ashton in 1999 inProcter&Gamble▸ Also called M2M, Industrial Internet, Web of Things,Internet of Everything, Industry 4.0
3 PILARS OF IOT
GARTNER’S HYPE CYCLE 2016
FATHER OF JAVA AND IOT
FATHER OF JAVA AND IOT
A TYPICAL IOT DATA PROCESSING ARCHITECTURESource : Internet of Things: Principles and Paradigms, Elsevier Science, 2016
PROCESSING DATA FROM THE EDGE▸ Collect▸ Instrument apps▸ Deliver events to analytics service▸ Receive and store many live data streams▸ Analyze▸ Real-time and historical analysis of event streams▸ Aggregations, pivots and patterns▸ Consume▸ Publish analytics in a consumable format▸ Inform and influence▸ Make better decisions
IOT TECH STACK
DEVOPS
DEVELOPMENT BEFORE DEVOPS▸ DevOps is a new term that primarilyfocuses on improved collaboration,communication, and integration betweensoftware developers and IT operations. It’san umbrella term that some describe as aphilosophy, cultural change, and paradigmshift. Figure shows developer throwingcode "over the wall" Historically manyorganisations have been verticallystructured with poor integration amongdevelopment, infrastructure, security andsupport teams. Frequently the groupsreport into different organisationalstructures with different corporate goalsand philosophies.
FILLING THE GAPS
WHAT DEVOPS BRINGS▸ Today, these old divisions are breaking down, with the IT anddeveloper roles merging and following a series of systematicprinciples:▸ Infrastructure as code▸ Continuous deployment▸ Automation▸ Monitoring▸ Security
INFRASTRUCTURE AS CODE▸ Repeatability (Humans make mistakes)▸ Agility (Roll forward or roll back easily)▸ Auditing and Security (Paper trail and permissions)
AUTOMATION AND CONFIGURATION MANAGEMENT▸ Provisioning (CloudFormation, OpsWorks, BeansTalk)▸ Declarative (Loosely coupled to implementation)▸ Configuration (Chef, Pupper, SaltStack, Ansible, DSC)
MONITORING AND SECURITY▸ Processing all systems logs in real time.▸ Logs should be considered as events▸ Security can inject analysis tools to dev pipeline.▸ Testing is not optional in devops.
DEVOPS▸ Do not write code and toss it to ops and testing team▸ Do not repeat task manually▸ Rise of devops tools(Chef, Puppet, Ansible)▸ Spend time developing business code instead ofinfrastructure code (NoOps)
MOVING LEGACY APPS ON CLOUD▸ Asset Hosting▸ How do you deal with uploaded content? (images/videos/music)?▸ Session Management▸ How do you deal with session data? Session replicationwill be a necessity, sticky session is bad for scalabilityand availability
MOVING LEGACY APPS ON CLOUD CONTD▸ SQL▸ What considerations are there SQL? (How to handlestored procedures)▸ NoSQL▸ How can you take advantage modern trends of NoSQL?
MOVING LEGACY APPS ON CLOUD CONTD▸ Caching▸ How do you incorporate modern caching techniques?▸ Async Processing▸ How do you handle long running processes?
12 FACTOR APP
12FACTOR.NET
WHAT IS 12 FACTOR APP?▸ It is a methodology for building SaaS application▸ Tries to define systematic problems in app development▸ Tries to define a set of conceptual solutions to thoseproblems
GENERAL PROPERTIES OF 12 FACTOR APP▸ Uses declarative format for setup automation.(Easyorientation for new joining devs)▸ Has a clean contract with underlying operations system(Increases portability)▸ Is suitable for deployment on modern cloud systems(CloudNative app, also no need for an army of ops guys todeploy and maintain the app)
12 FACTOR APP▸ Code is version Controlled▸ Always tracked in version control system▸ 1:1 relationship between code base and app▸ Many deploys of given app▸ Codebase same across deploys version may differ
WHAT WE DO?
12 FACTOR APP▸ Dependencies are declared and Isolated▸ Never assume system-wide packages▸ Dependency declaration manifest▸ Isolated so no dependency leak from system▸ Helps new developers
WHAT WE DO?We use maven. A newdeveloper can start workingby simply typing singlecommand `mvn clean install`and all library dependencieswill be installed.
12 FACTOR APP▸ Configuration is Stored in the Environment▸ Should store in env variables▸ Should not be constants in code▸ Ideally not in conf files▸ Avoid grouping as environments
WHAT WE DO?▸ All environment variable and configuration information isstored over AWS and all applications including mobileclient and wifi-card gets their configuration informationfrom a single place.
12 FACTOR APP▸ Backing Services as Attached Resource▸ Services consumed over the network▸ No distinction between local or third party services▸ Keep Dependencies de-coupled▸ Attach and detach at will
WHAT WE DO?▸ We use AWS services for both SQLand NoSQL data storage(RDS,DynamoDB)
12 FACTOR APP▸ Build and Run Stages are separated▸ Impossible to change code at runtime▸ Releases should have IDs▸ Build may be complex, started by Devs▸ Run is simple and completely unattended
WHAT WE DO?
12 FACTOR APP▸ Application Executed as Stateless Processes▸ Share Nothing (Universal Scalability Law)▸ Persisted data in stateful backing store▸ Memory and File System is for cache only▸ Avoid sticky Sessions
WHAT WE DO?▸ We implemented stateless serverless architecture withAWS API Gateway and Lambda.▸ Each request to cloud is executed within a Lambdafunction inside a isolated stateless container
12 FACTOR APP▸ Services Exported via Port Binding▸ Self Contained▸ Embedded servers▸ Listen on specific port▸ Very specific and idealistic
12 FACTOR APP▸ Application scaled out via process model▸ Processes are first class citizens▸ Work assigned to process type▸ Applications have process that span servers▸ Use OS process managers not deamons
12 FACTOR APP▸ Processes are disposable▸ Can be started or stopped at any time▸ Minimal start up time, graceful shutdown▸ Worker processes return to work queue▸ Robust against sudden death
12 FACTOR APP▸ Parity Between Application Environments▸ Avoid time/personnel/tool gaps▸ Design for continuous deployment▸ Very important for backing services▸ Containers and config mgmt. makes this easier.
12 FACTOR APP▸ Logs are stream of time-ordered events▸ App is never concerned with storing log files▸ Execution environment capture logs▸ May be routed to file, watched, sent to external service
WHAT WE DO?▸ We use AWS CloudWatch to monitor system logs.
12 FACTOR APP▸ Management Task Run as One-off Process▸ Run in identical environment▸ Separate out as scripts that are source controlled▸ Don’t run from local terminal▸ Don’t run directly against the database
ADDITIONAL DEVOPS DESIGN CONSIDERATIONS▸ Rely on sync messaging▸ Compose applications out of service▸ Assess portability requirements▸ Embrace the abstractions
DEVOPS ANTI-PATTERNS▸ Relying on the local file system▸ Building services that scale up▸ Trying to change code server side▸ Manually coordinating builds▸ Hard-coding configuration▸ Cramming everything into one app
DEVOPS CONCEPTS BEFORE FAILURE▸ Chaos Monkey▸ Blue/Green - Canary Deployment▸ Dependency Injection▸ Andon Cords▸ The Cloud▸ Embedded Teams
DEVOPS CONCEPTS AFTER FAILURE▸ Blameless Postmortems▸ Public Status Page▸ Developers on Call▸ Incident Command System
CAMS MODEL▸ Culture▸ Automation▸ Measurement▸ Sharing
KAIZEN’S GUIDES▸ Good processes bring good results▸ Go see for yourself (gemba)▸ Speak with data, manage by facts▸ Take action to contain and correct root causes▸ Work as a team▸ Kaizen is everybody’s business
SOFTWARE FACTORY
LEVELS OF MATURITY OF DEVOPS PROCESS
WHERE TO BEGIN?
CLOUD
CLOUD APPLICATION DELIVERY MODELS▸ IaaS (Infrastructure as a Service) - Host▸ PaaS (Platform as a Service) - Build▸ SaaS (Software as a Service) - Consume
PETS VS CATTLE
AWS IOT
AWS IOT COMPONENTS▸ Device Gateway▸ Enables devices to securely and efficiently communicate withAWS IoT.▸ Message Broker▸ Provides a secure mechanism for things and AWS IoTapplications to publish and receive messages from eachother. You can use either the MQTT protocol directly or MQTTover WebSocket to publish and subscribe. You can use theHTTP REST interface to publish.
AWS IOT COMPONENTS▸ Rule Engine▸ Provides message processing and integration with other AWS services.You can use a SQL-based language to select data from messagepayloads, process and send the data to other services, such as AmazonS3, Amazon DynamoDB, and AWS Lambda. You can also use themessage broker to republish messages to other subscribers▸ Security and Identity Service▸ Provides shared responsibility for security in the AWS cloud. Your thingsmust keep their credentials safe in order to securely send data to themessage broker. The message broker and rules engine use AWS securityfeatures to send data securely to devices or other AWS services.
AWS IOT COMPONENTS▸ Thing registry▸ Organizes the resources associated with each thing. You register yourthings and associate up to three custom attributes with each thing. Youcan also associate certificates and MQTT client IDs with each thing toimprove your ability to manage and troubleshoot your things.Securityand Identity Service.▸ Thing Shadow Service▸ Provides persistent representations of your things in the AWS cloud. Youcan publish updated state information to a thing shadow, and your thingcan synchronize its state when it connects. Your things can also publishtheir current state to a thing shadow for use by applications or devices.
SERVERLESS COMPUTING MODEL
AWS LAMBDA
AWS APIGATEWAY
MOBILE SAMPLE BACKEND SERVERLESS ARCITECTURE
WHAT WE DO?
AMAZON S3 HOSTED WEBSITE
WHAT WE DO?
MICROSERVICES
MICROSERVICE▸ Is there a formal definition for microservice architecture ?▸ No▸ What is the Difference between monolithic and microservice styles?▸ Easy to maintain▸ Deployment▸ Scaling
DON’T !!!
ADVANTAGES▸ Can use right tool for the job▸ Can replace entire components easier▸ Can scale specific components▸ Super cloud friendly▸ Will push you DevOps
CHALLENGES▸ Distributed/versioned configuration▸ Auto configurations and refresh on runtime▸ New services can auto register at startup▸ Service registration and discovery▸ Centralised log management▸ Collects and visualise log events from distributed processes▸ Circuit Breaker (Bulk Heading)▸ Prevent problems with chain of failures▸ Security
DISTRIBUTED SYSTEMS
SUN’S FALLACIES OF DISTRIBUTED COMPUTING▸ The network is reliable.▸ Latency is zero.▸ Bandwidth is infinite.▸ The network is secure.▸ Topology doesn't change.▸ There is one administrator.▸ Transport cost is zero.▸ The network is homogeneous.
ANY ORGANIZATION THAT DESIGNS ASYSTEM WILL PRODUCE A DESIGN WHOSESTRUCTURE IS A COPY OF THEORGANIZATION’S COMMUNICATIONSTRUCTURE.Melvin ConwayCONWAY’S LAW
DEMO
QUESTIONS?
WE ARE HIRING

Recommended

PDF
Optimizing the Ops in DevOps
PPTX
Cloud Native Summit 2019 Summary
PDF
Rugged DevOps: Bridging Security and DevOps
PDF
Cloud Native Security: New Approach for a New Reality
PDF
Cisco Cloud Networking Workshop
PPTX
Executive Briefing: The Why, What, and Where of Containers
 
PDF
Intro - Cloud Native
PDF
Arquitetando soluções de computação em nuvem com Java
PDF
[muCon2017]DevSecOps: How to Continuously Integrate Security into DevOps
PDF
Digitální transformace: zabezpečení agilních prostředí
PDF
Addressing the 8 Key Pain Points of Kubernetes Cluster Management
PPT
Enterprise-Ready Private and Hybrid Cloud Computing Today
PDF
Architecting Cloud Computing Solutions with Java [1.1]
PDF
Policy as code what helm developers need to know about security
PDF
Docker FedSummit 2017 - Journey to the Cloud with CaaS
PDF
ThoughtWorks Technology Radar Roadshow - Brisbane
PDF
DevSecOps at the GSA
PPTX
Cloud native programming model comparison
PDF
56k.cloud training
PDF
Netflix Open Source Meetup Season 4 Episode 3
PPTX
OSCON 2014 - Crash Course in Open Source Cloud Computing
PDF
DevSecOps Basics with Azure Pipelines
PPTX
DockerCon 2016 - Structured Container Delivery
PDF
A Hitchhiker's Guide to Enterprise Microservices with Go
PDF
Building security into the pipelines
PPTX
Technology insights: Decision Science Platform
PPTX
DevConZM - Modern Applications Development in the Cloud
PPTX
Driving Enterprise Architecture Redesign: Cloud-Native Platforms, APIs, and D...
PPTX
Driving Enterprise Architecture Redesign: Cloud-Native Platforms, APIs, and D...
 
PDF
15-factor-apps.pdf

More Related Content

PDF
Optimizing the Ops in DevOps
PPTX
Cloud Native Summit 2019 Summary
PDF
Rugged DevOps: Bridging Security and DevOps
PDF
Cloud Native Security: New Approach for a New Reality
PDF
Cisco Cloud Networking Workshop
PPTX
Executive Briefing: The Why, What, and Where of Containers
 
PDF
Intro - Cloud Native
PDF
Arquitetando soluções de computação em nuvem com Java
Optimizing the Ops in DevOps
Cloud Native Summit 2019 Summary
Rugged DevOps: Bridging Security and DevOps
Cloud Native Security: New Approach for a New Reality
Cisco Cloud Networking Workshop
Executive Briefing: The Why, What, and Where of Containers
 
Intro - Cloud Native
Arquitetando soluções de computação em nuvem com Java

What's hot

PDF
[muCon2017]DevSecOps: How to Continuously Integrate Security into DevOps
PDF
Digitální transformace: zabezpečení agilních prostředí
PDF
Addressing the 8 Key Pain Points of Kubernetes Cluster Management
PPT
Enterprise-Ready Private and Hybrid Cloud Computing Today
PDF
Architecting Cloud Computing Solutions with Java [1.1]
PDF
Policy as code what helm developers need to know about security
PDF
Docker FedSummit 2017 - Journey to the Cloud with CaaS
PDF
ThoughtWorks Technology Radar Roadshow - Brisbane
PDF
DevSecOps at the GSA
PPTX
Cloud native programming model comparison
PDF
56k.cloud training
PDF
Netflix Open Source Meetup Season 4 Episode 3
PPTX
OSCON 2014 - Crash Course in Open Source Cloud Computing
PDF
DevSecOps Basics with Azure Pipelines
PPTX
DockerCon 2016 - Structured Container Delivery
PDF
A Hitchhiker's Guide to Enterprise Microservices with Go
PDF
Building security into the pipelines
[muCon2017]DevSecOps: How to Continuously Integrate Security into DevOps
Digitální transformace: zabezpečení agilních prostředí
Addressing the 8 Key Pain Points of Kubernetes Cluster Management
Enterprise-Ready Private and Hybrid Cloud Computing Today
Architecting Cloud Computing Solutions with Java [1.1]
Policy as code what helm developers need to know about security
Docker FedSummit 2017 - Journey to the Cloud with CaaS
ThoughtWorks Technology Radar Roadshow - Brisbane
DevSecOps at the GSA
Cloud native programming model comparison
56k.cloud training
Netflix Open Source Meetup Season 4 Episode 3
OSCON 2014 - Crash Course in Open Source Cloud Computing
DevSecOps Basics with Azure Pipelines
DockerCon 2016 - Structured Container Delivery
A Hitchhiker's Guide to Enterprise Microservices with Go
Building security into the pipelines

Similar to How to Design a Backend for IoT

PPTX
Technology insights: Decision Science Platform
PPTX
DevConZM - Modern Applications Development in the Cloud
PPTX
Driving Enterprise Architecture Redesign: Cloud-Native Platforms, APIs, and D...
PPTX
Driving Enterprise Architecture Redesign: Cloud-Native Platforms, APIs, and D...
 
PDF
15-factor-apps.pdf
PDF
RedisConf18 - Common Redis Use Cases for Cloud Native Apps and Microservices
PPTX
Developing Modern Applications in the Cloud
PPTX
The Internet of Things: Patterns for building real world applications
PDF
Deploying to Production 50+ Times a Day - Calgary Agile Users Group 2015
PDF
"Portrait of the developer as The Artist" Lockheed Architect Workshop
PDF
Optimize your CI/CD with GitLab and AWS
PDF
AWS+Innovate+-+Modern+Apps+Edition+-+Opening+Keynote.pdf
PDF
Cloud-Native Fundamentals: An Introduction to 12-Factor Applications
PDF
Towards FutureOps: Stable, Repeatable environments from Dev to Prod
PDF
Cloud Native Application Development
PPTX
Building Microservices in the cloud - Software Architecture Summit 2016
PPTX
[CPT DevOps Meetup] Developing Modern Applications in the Cloud
PPTX
AWS Accra Meetup - Developing Modern Applications in the Cloud
PPTX
AWS Jozi Meetup Developing Modern Applications in the Cloud
PDF
Internet of Things: Patterns For Building Real World Applications
Technology insights: Decision Science Platform
DevConZM - Modern Applications Development in the Cloud
Driving Enterprise Architecture Redesign: Cloud-Native Platforms, APIs, and D...
Driving Enterprise Architecture Redesign: Cloud-Native Platforms, APIs, and D...
 
15-factor-apps.pdf
RedisConf18 - Common Redis Use Cases for Cloud Native Apps and Microservices
Developing Modern Applications in the Cloud
The Internet of Things: Patterns for building real world applications
Deploying to Production 50+ Times a Day - Calgary Agile Users Group 2015
"Portrait of the developer as The Artist" Lockheed Architect Workshop
Optimize your CI/CD with GitLab and AWS
AWS+Innovate+-+Modern+Apps+Edition+-+Opening+Keynote.pdf
Cloud-Native Fundamentals: An Introduction to 12-Factor Applications
Towards FutureOps: Stable, Repeatable environments from Dev to Prod
Cloud Native Application Development
Building Microservices in the cloud - Software Architecture Summit 2016
[CPT DevOps Meetup] Developing Modern Applications in the Cloud
AWS Accra Meetup - Developing Modern Applications in the Cloud
AWS Jozi Meetup Developing Modern Applications in the Cloud
Internet of Things: Patterns For Building Real World Applications

Recently uploaded

PDF
[BDD 2025 - Full-Stack Development] Agentic AI Architecture: Redefining Syste...
PPTX
"Feelings versus facts: why metrics are more important than intuition", Igor ...
 
PPTX
Connecting the unconnectable: Exploring LoRaWAN for IoT
PDF
Oracle MySQL HeatWave - Complete - Version 3
PDF
DUBAI IT MODERNIZATION WITH AZURE MANAGED SERVICES.pdf
PDF
Oracle MySQL HeatWave - One Page - Version 3
PDF
Cheryl Hung, Vibe Coding Auth Without Melting Down! isaqb Software Architectu...
PDF
Top Crypto Supers 15th Report November 2025
PDF
Open Source Post-Quantum Cryptography - Matt Caswell
PDF
Dev Dives: Build smarter agents with UiPath Agent Builder
PDF
Crane Accident Prevention Guide: Key OSHA Regulations for Safer Operations
PDF
The partnership effect: Libraries and publishers on collaborating and thrivin...
PDF
[BDD 2025 - Full-Stack Development] The Modern Stack: Building Web & AI Appli...
PDF
10 Best Automation QA Testing Software Tools in 2025.pdf
PDF
[BDD 2025 - Mobile Development] Crafting Immersive UI with E2E and AGSL Shade...
PDF
Rolling out Enterprise AI: Tools, Insights, and Team Empowerment
PDF
Cybersecurity Prevention and Detection: Unit 2
PDF
[BDD 2025 - Mobile Development] Exploring Apple’s On-Device FoundationModels
PDF
Beyond Basics: How to Build Scalable, Intelligent Imagery Pipelines
PPTX
Leon Brands - Intro to GPU Occlusion (Graphics Programming Conference 2024)
[BDD 2025 - Full-Stack Development] Agentic AI Architecture: Redefining Syste...
"Feelings versus facts: why metrics are more important than intuition", Igor ...
 
Connecting the unconnectable: Exploring LoRaWAN for IoT
Oracle MySQL HeatWave - Complete - Version 3
DUBAI IT MODERNIZATION WITH AZURE MANAGED SERVICES.pdf
Oracle MySQL HeatWave - One Page - Version 3
Cheryl Hung, Vibe Coding Auth Without Melting Down! isaqb Software Architectu...
Top Crypto Supers 15th Report November 2025
Open Source Post-Quantum Cryptography - Matt Caswell
Dev Dives: Build smarter agents with UiPath Agent Builder
Crane Accident Prevention Guide: Key OSHA Regulations for Safer Operations
The partnership effect: Libraries and publishers on collaborating and thrivin...
[BDD 2025 - Full-Stack Development] The Modern Stack: Building Web & AI Appli...
10 Best Automation QA Testing Software Tools in 2025.pdf
[BDD 2025 - Mobile Development] Crafting Immersive UI with E2E and AGSL Shade...
Rolling out Enterprise AI: Tools, Insights, and Team Empowerment
Cybersecurity Prevention and Detection: Unit 2
[BDD 2025 - Mobile Development] Exploring Apple’s On-Device FoundationModels
Beyond Basics: How to Build Scalable, Intelligent Imagery Pipelines
Leon Brands - Intro to GPU Occlusion (Graphics Programming Conference 2024)

How to Design a Backend for IoT

  • 1.
    HOW TO DESIGNA BACKENDFOR THE IOTİBRAHİM GÜRSES
  • 2.
    WHO AM I?▸Graduated From Bilkent University in 2011▸ Vakıfbank, Gate Elektronik, T2 Yazılım, OpsGenie,Hazelcast, Arçelik.▸ Currently working on IoT infrastructure @Arçelik▸ Co-Founder of Ankara Cloud Meetup
  • 3.
  • 4.
    SERVERLESS COMPUTING WITHAWSHTTPS://WWW.YOUTUBE.COM/WATCH?V=LEPQXTOWDJS
  • 5.
    DEVOPS CULTURE ANDPRACTICESHTTPS://WWW.YOUTUBE.COM/WATCH?V=D3E0XJCRWCE
  • 6.
    AGENDA▸ IOT▸ DevOps▸12 Factor App▸ Cloud▸ Microservices▸ Q&A & Demo
  • 7.
  • 8.
    FROM MOORE’S LAWTO METCALFE’S LAWMetcalfe's law states that the value of a telecommunications networkis proportional to the square of the number of connected users of thesystem
  • 9.
    WHAT IS IOT?▸The network of physical object that contain embeddedtechnology to communicate and interact with their internalstates or the external environment. (Gartner)▸ The term is coined by Kevin Ashton in 1999 inProcter&Gamble▸ Also called M2M, Industrial Internet, Web of Things,Internet of Everything, Industry 4.0
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
    A TYPICAL IOTDATA PROCESSING ARCHITECTURESource : Internet of Things: Principles and Paradigms, Elsevier Science, 2016
  • 15.
    PROCESSING DATA FROMTHE EDGE▸ Collect▸ Instrument apps▸ Deliver events to analytics service▸ Receive and store many live data streams▸ Analyze▸ Real-time and historical analysis of event streams▸ Aggregations, pivots and patterns▸ Consume▸ Publish analytics in a consumable format▸ Inform and influence▸ Make better decisions
  • 17.
  • 18.
  • 19.
    DEVELOPMENT BEFORE DEVOPS▸DevOps is a new term that primarilyfocuses on improved collaboration,communication, and integration betweensoftware developers and IT operations. It’san umbrella term that some describe as aphilosophy, cultural change, and paradigmshift. Figure shows developer throwingcode "over the wall" Historically manyorganisations have been verticallystructured with poor integration amongdevelopment, infrastructure, security andsupport teams. Frequently the groupsreport into different organisationalstructures with different corporate goalsand philosophies.
  • 20.
  • 21.
    WHAT DEVOPS BRINGS▸Today, these old divisions are breaking down, with the IT anddeveloper roles merging and following a series of systematicprinciples:▸ Infrastructure as code▸ Continuous deployment▸ Automation▸ Monitoring▸ Security
  • 22.
    INFRASTRUCTURE AS CODE▸Repeatability (Humans make mistakes)▸ Agility (Roll forward or roll back easily)▸ Auditing and Security (Paper trail and permissions)
  • 23.
    AUTOMATION AND CONFIGURATIONMANAGEMENT▸ Provisioning (CloudFormation, OpsWorks, BeansTalk)▸ Declarative (Loosely coupled to implementation)▸ Configuration (Chef, Pupper, SaltStack, Ansible, DSC)
  • 24.
    MONITORING AND SECURITY▸Processing all systems logs in real time.▸ Logs should be considered as events▸ Security can inject analysis tools to dev pipeline.▸ Testing is not optional in devops.
  • 25.
    DEVOPS▸ Do notwrite code and toss it to ops and testing team▸ Do not repeat task manually▸ Rise of devops tools(Chef, Puppet, Ansible)▸ Spend time developing business code instead ofinfrastructure code (NoOps)
  • 26.
    MOVING LEGACY APPSON CLOUD▸ Asset Hosting▸ How do you deal with uploaded content? (images/videos/music)?▸ Session Management▸ How do you deal with session data? Session replicationwill be a necessity, sticky session is bad for scalabilityand availability
  • 27.
    MOVING LEGACY APPSON CLOUD CONTD▸ SQL▸ What considerations are there SQL? (How to handlestored procedures)▸ NoSQL▸ How can you take advantage modern trends of NoSQL?
  • 28.
    MOVING LEGACY APPSON CLOUD CONTD▸ Caching▸ How do you incorporate modern caching techniques?▸ Async Processing▸ How do you handle long running processes?
  • 29.
  • 30.
  • 31.
    WHAT IS 12FACTOR APP?▸ It is a methodology for building SaaS application▸ Tries to define systematic problems in app development▸ Tries to define a set of conceptual solutions to thoseproblems
  • 32.
    GENERAL PROPERTIES OF12 FACTOR APP▸ Uses declarative format for setup automation.(Easyorientation for new joining devs)▸ Has a clean contract with underlying operations system(Increases portability)▸ Is suitable for deployment on modern cloud systems(CloudNative app, also no need for an army of ops guys todeploy and maintain the app)
  • 33.
    12 FACTOR APP▸Code is version Controlled▸ Always tracked in version control system▸ 1:1 relationship between code base and app▸ Many deploys of given app▸ Codebase same across deploys version may differ
  • 34.
  • 35.
    12 FACTOR APP▸Dependencies are declared and Isolated▸ Never assume system-wide packages▸ Dependency declaration manifest▸ Isolated so no dependency leak from system▸ Helps new developers
  • 36.
    WHAT WE DO?Weuse maven. A newdeveloper can start workingby simply typing singlecommand `mvn clean install`and all library dependencieswill be installed.
  • 37.
    12 FACTOR APP▸Configuration is Stored in the Environment▸ Should store in env variables▸ Should not be constants in code▸ Ideally not in conf files▸ Avoid grouping as environments
  • 38.
    WHAT WE DO?▸All environment variable and configuration information isstored over AWS and all applications including mobileclient and wifi-card gets their configuration informationfrom a single place.
  • 39.
    12 FACTOR APP▸Backing Services as Attached Resource▸ Services consumed over the network▸ No distinction between local or third party services▸ Keep Dependencies de-coupled▸ Attach and detach at will
  • 40.
    WHAT WE DO?▸We use AWS services for both SQLand NoSQL data storage(RDS,DynamoDB)
  • 41.
    12 FACTOR APP▸Build and Run Stages are separated▸ Impossible to change code at runtime▸ Releases should have IDs▸ Build may be complex, started by Devs▸ Run is simple and completely unattended
  • 42.
  • 43.
    12 FACTOR APP▸Application Executed as Stateless Processes▸ Share Nothing (Universal Scalability Law)▸ Persisted data in stateful backing store▸ Memory and File System is for cache only▸ Avoid sticky Sessions
  • 44.
    WHAT WE DO?▸We implemented stateless serverless architecture withAWS API Gateway and Lambda.▸ Each request to cloud is executed within a Lambdafunction inside a isolated stateless container
  • 45.
    12 FACTOR APP▸Services Exported via Port Binding▸ Self Contained▸ Embedded servers▸ Listen on specific port▸ Very specific and idealistic
  • 46.
    12 FACTOR APP▸Application scaled out via process model▸ Processes are first class citizens▸ Work assigned to process type▸ Applications have process that span servers▸ Use OS process managers not deamons
  • 47.
    12 FACTOR APP▸Processes are disposable▸ Can be started or stopped at any time▸ Minimal start up time, graceful shutdown▸ Worker processes return to work queue▸ Robust against sudden death
  • 48.
    12 FACTOR APP▸Parity Between Application Environments▸ Avoid time/personnel/tool gaps▸ Design for continuous deployment▸ Very important for backing services▸ Containers and config mgmt. makes this easier.
  • 49.
    12 FACTOR APP▸Logs are stream of time-ordered events▸ App is never concerned with storing log files▸ Execution environment capture logs▸ May be routed to file, watched, sent to external service
  • 50.
    WHAT WE DO?▸We use AWS CloudWatch to monitor system logs.
  • 51.
    12 FACTOR APP▸Management Task Run as One-off Process▸ Run in identical environment▸ Separate out as scripts that are source controlled▸ Don’t run from local terminal▸ Don’t run directly against the database
  • 52.
    ADDITIONAL DEVOPS DESIGNCONSIDERATIONS▸ Rely on sync messaging▸ Compose applications out of service▸ Assess portability requirements▸ Embrace the abstractions
  • 53.
    DEVOPS ANTI-PATTERNS▸ Relyingon the local file system▸ Building services that scale up▸ Trying to change code server side▸ Manually coordinating builds▸ Hard-coding configuration▸ Cramming everything into one app
  • 54.
    DEVOPS CONCEPTS BEFOREFAILURE▸ Chaos Monkey▸ Blue/Green - Canary Deployment▸ Dependency Injection▸ Andon Cords▸ The Cloud▸ Embedded Teams
  • 55.
    DEVOPS CONCEPTS AFTERFAILURE▸ Blameless Postmortems▸ Public Status Page▸ Developers on Call▸ Incident Command System
  • 56.
    CAMS MODEL▸ Culture▸Automation▸ Measurement▸ Sharing
  • 57.
    KAIZEN’S GUIDES▸ Goodprocesses bring good results▸ Go see for yourself (gemba)▸ Speak with data, manage by facts▸ Take action to contain and correct root causes▸ Work as a team▸ Kaizen is everybody’s business
  • 58.
  • 59.
    LEVELS OF MATURITYOF DEVOPS PROCESS
  • 60.
  • 61.
  • 63.
    CLOUD APPLICATION DELIVERYMODELS▸ IaaS (Infrastructure as a Service) - Host▸ PaaS (Platform as a Service) - Build▸ SaaS (Software as a Service) - Consume
  • 66.
  • 67.
  • 68.
    AWS IOT COMPONENTS▸Device Gateway▸ Enables devices to securely and efficiently communicate withAWS IoT.▸ Message Broker▸ Provides a secure mechanism for things and AWS IoTapplications to publish and receive messages from eachother. You can use either the MQTT protocol directly or MQTTover WebSocket to publish and subscribe. You can use theHTTP REST interface to publish.
  • 69.
    AWS IOT COMPONENTS▸Rule Engine▸ Provides message processing and integration with other AWS services.You can use a SQL-based language to select data from messagepayloads, process and send the data to other services, such as AmazonS3, Amazon DynamoDB, and AWS Lambda. You can also use themessage broker to republish messages to other subscribers▸ Security and Identity Service▸ Provides shared responsibility for security in the AWS cloud. Your thingsmust keep their credentials safe in order to securely send data to themessage broker. The message broker and rules engine use AWS securityfeatures to send data securely to devices or other AWS services.
  • 70.
    AWS IOT COMPONENTS▸Thing registry▸ Organizes the resources associated with each thing. You register yourthings and associate up to three custom attributes with each thing. Youcan also associate certificates and MQTT client IDs with each thing toimprove your ability to manage and troubleshoot your things.Securityand Identity Service.▸ Thing Shadow Service▸ Provides persistent representations of your things in the AWS cloud. Youcan publish updated state information to a thing shadow, and your thingcan synchronize its state when it connects. Your things can also publishtheir current state to a thing shadow for use by applications or devices.
  • 71.
  • 72.
  • 73.
  • 74.
    MOBILE SAMPLE BACKENDSERVERLESS ARCITECTURE
  • 75.
  • 76.
  • 77.
  • 78.
  • 79.
    MICROSERVICE▸ Is therea formal definition for microservice architecture ?▸ No▸ What is the Difference between monolithic and microservice styles?▸ Easy to maintain▸ Deployment▸ Scaling
  • 83.
  • 84.
    ADVANTAGES▸ Can useright tool for the job▸ Can replace entire components easier▸ Can scale specific components▸ Super cloud friendly▸ Will push you DevOps
  • 85.
    CHALLENGES▸ Distributed/versioned configuration▸Auto configurations and refresh on runtime▸ New services can auto register at startup▸ Service registration and discovery▸ Centralised log management▸ Collects and visualise log events from distributed processes▸ Circuit Breaker (Bulk Heading)▸ Prevent problems with chain of failures▸ Security
  • 86.
  • 87.
    SUN’S FALLACIES OFDISTRIBUTED COMPUTING▸ The network is reliable.▸ Latency is zero.▸ Bandwidth is infinite.▸ The network is secure.▸ Topology doesn't change.▸ There is one administrator.▸ Transport cost is zero.▸ The network is homogeneous.
  • 88.
    ANY ORGANIZATION THATDESIGNS ASYSTEM WILL PRODUCE A DESIGN WHOSESTRUCTURE IS A COPY OF THEORGANIZATION’S COMMUNICATIONSTRUCTURE.Melvin ConwayCONWAY’S LAW
  • 89.
  • 90.
  • 91.

[8]ページ先頭

©2009-2025 Movatter.jp