SlideShare a Scribd company logo
1 of 25
Download to read offline
 
云推送技术实现与




                              Confidential  
敏捷开发  
Powering  Mobile  Apps  
  
@Tiger_张虎  
Agenda  
•     Push是什么  
•     极光推送原理  
•     C2000K问题  




                    Confidential  
•     敏捷开发实践  




                     2	
  
如何更新应用的数据?  
• 新数据更新到应用	
  

•  实现的技术  




                         Confidential  
 •  Push:  服务器实时推送  
 •  Polling:  定时查询  




                           3	
  
Polling的问题  
• 无论有没有数据,都需查询	
  
• 额外的电量和带宽	
  
          Push       Polling  




                                    Confidential  
延迟       低           高  
流量       低           高  
电量       低           高  
   
实现的复杂度   高           低  
  
                                      4	
  
手机耗电情况  
      天  
       8	
  
        7	
  
        6	
  
        5	
            理论待机




                                       Confidential  
        4	
            Polling	
  
        3	
            5个Polling	
  
       2	
  
                       Push	
  

        1	
  
        0	
  
                待机时间

 • 电池1400  mAh的手机,底电流8mA  
                                         5	
  
极光  Android  SDK  




                                           Confidential  
   



一个进程,一个长链接              App  Server  



                                             6	
  
极光  服务器集群架构  


         Session  Manager               Push  Center  




                                                             Confidential  
                MQ        Zookeeper         MQ  
  
      UDP  
                 SIS  


               TCP             接入  

                                                               7	
  
中间件  
•  Cache  
      •  Memcached/Couchbase  
      •  100%读命中  
•  Message  Queue  




                                  Confidential  
      •  RabbitMQ  




  
                                    8	
  
C2000K  




        如何维持大量长连接?  




                        Confidential  
  




                          9	
  
C2000K:  服务器设计  
•  Libev:  事件驱动、异步、非阻塞  
•  Memory  Pool:  省内存、加快分配和回
   收  
•  多核  




                                     Confidential  
 •  一个核一个进程  
 •  共享监听一个socket  
•  每个子进程有自己的event  loop,  mem  
   pool  

                                       10	
  
C2000K:  架构  




                                                   Confidential  
       Event     Event     Event     Event  
      Loop      Loop      Loop      Loop  

        Mem      Mem       Mem       Mem  
        Pool     Pool      Pool      Pool  




                                                     11	
  
C2000K:  Linux  Kernel参数  
  •  fs.file-max  =  10485760  
  •  net.ipv4.tcp_wmem  =  4096         4096
           16777216  
  •  net.ipv4.tcp_rmem  =  4096         4096




                                                  Confidential  
           16777216  
  •  net.ipv4.tcp_tw_reuse  =  1  




                                                   12	
  
C2000K:  长链接曲线  

      300万



         200万




                     Confidential  
  




                       13	
  
Confidential  
  • 目前为止业界最大单机维持连接数  
  




                           14	
  
敏捷开发实践  
•  持续集成(Continuous  Integration)  
      •  提交间隔时间越长,风险越大  
      •  尽早集成、经常集成  
      •  每次集成后做完整的回归测试  




                                       Confidential  
  

                                         15	
  
持续集成:工具  
•    代码管理:Git  
•    任务管理:  Pivotal  Tracker  
•    代码review:  Review  Board  




                                     Confidential  
•    自动编译:Buildbot  
•    自动测试:Unit  Test  
•    自动部署:Xen,  Yum  



                                       16	
  
持续集成:流程

Development     Git  Repo  




                                 Confiden9al	
  
                                  17	
  
持续集成:流程

Development     Git  Repo     Reviewer  




                                                  Confiden9al	
  
                                 Unit  Test  




                                                   18	
  
持续集成:流程

Development     Git  Repo        Reviewer  




                                                     Confiden9al	
  
                 Test  Report     Unit  Test  




                                                      19	
  
持续集成:流程

Development            Git  Repo       Reviewer  




                                                           Confiden9al	
  
 Test  Environment   Test  Report     Unit  Test  




                                                            20	
  
持续集成:流程

Development            Git  Repo       Reviewer  




                                                           Confiden9al	
  
 Test  Environment   Test  Report     Unit  Test  




                                                            21	
  
持续集成:代价与优点  
•  代价  
        •  前期系统搭建工作量大  
        •  需要编写优质的测试用例  
•  好处  




                                   Confidential  
        •  及早发现问题,大大降低debug成本  
        •  一直有一个可用的版本  
        •  开发人员能更专注于实现优质可用代码  
    
  
                                     22	
  
持续的持续集成  
• 持续集成本身也是一个持续的过程  
 •  Test  Case  的不断累积  
 •  自动化工具的优化  
 •  管理方法的优化  




                             Confidential  
  • 持续的自我优化,一个团队核心竞争力  
  


                               23	
  
Q&A  




                     Confidential  
            
      @极光推送  
      @Tiger_张虎  

  
                       24	
  
 




                 Confidential  
THANK  YOU  
      


                   25	
  

More Related Content

What's hot

What's hot (20)

Klocwork 2018.0 アップデート
Klocwork 2018.0 アップデートKlocwork 2018.0 アップデート
Klocwork 2018.0 アップデート
 
NGINX Back to Basics: Ingress Controller (Japanese Webinar)
NGINX Back to Basics: Ingress Controller (Japanese Webinar)NGINX Back to Basics: Ingress Controller (Japanese Webinar)
NGINX Back to Basics: Ingress Controller (Japanese Webinar)
 
Fundamentals of Microservices Japanese Webinar
Fundamentals of Microservices Japanese WebinarFundamentals of Microservices Japanese Webinar
Fundamentals of Microservices Japanese Webinar
 
Openshift NGINX Kubernetes (Japanese Webinar)
Openshift NGINX Kubernetes (Japanese Webinar)Openshift NGINX Kubernetes (Japanese Webinar)
Openshift NGINX Kubernetes (Japanese Webinar)
 
MEC (Mobile Edge Computing) + GPUコンピューティングについて
MEC (Mobile Edge Computing) + GPUコンピューティングについてMEC (Mobile Edge Computing) + GPUコンピューティングについて
MEC (Mobile Edge Computing) + GPUコンピューティングについて
 
静的解析Klocwork とJenkins CIの連携
静的解析Klocwork とJenkins CIの連携静的解析Klocwork とJenkins CIの連携
静的解析Klocwork とJenkins CIの連携
 
NGINX New Features (Japanese Webinar)
NGINX New Features (Japanese Webinar)NGINX New Features (Japanese Webinar)
NGINX New Features (Japanese Webinar)
 
NGINX + Ansible Automation Webinar (日本語版)
NGINX + Ansible Automation Webinar (日本語版)NGINX + Ansible Automation Webinar (日本語版)
NGINX + Ansible Automation Webinar (日本語版)
 
「これからはじめるNGINX技術解説~基本編」セミナー (NGINX Back to Basic in JP)
「これからはじめるNGINX技術解説~基本編」セミナー (NGINX Back to Basic in JP)「これからはじめるNGINX技術解説~基本編」セミナー (NGINX Back to Basic in JP)
「これからはじめるNGINX技術解説~基本編」セミナー (NGINX Back to Basic in JP)
 
API and Modern App Security for Microservices
API and Modern App Security for MicroservicesAPI and Modern App Security for Microservices
API and Modern App Security for Microservices
 
OSSコミッタの生活とその必要性
OSSコミッタの生活とその必要性OSSコミッタの生活とその必要性
OSSコミッタの生活とその必要性
 
Introducing NGINX App Protect (Japanese Webinar)
Introducing NGINX App Protect (Japanese Webinar)Introducing NGINX App Protect (Japanese Webinar)
Introducing NGINX App Protect (Japanese Webinar)
 
NSDI2015読み会SDNセッション担当分
NSDI2015読み会SDNセッション担当分NSDI2015読み会SDNセッション担当分
NSDI2015読み会SDNセッション担当分
 
2015-ShowNet-SDN/NFV
2015-ShowNet-SDN/NFV2015-ShowNet-SDN/NFV
2015-ShowNet-SDN/NFV
 
Contrail overview open stack days tokyo-feb2015
Contrail overview open stack days tokyo-feb2015Contrail overview open stack days tokyo-feb2015
Contrail overview open stack days tokyo-feb2015
 
CyberAgent: How We Deployed Production Kubernetes Clusters on OpenStack witho...
CyberAgent: How We Deployed Production Kubernetes Clusters on OpenStack witho...CyberAgent: How We Deployed Production Kubernetes Clusters on OpenStack witho...
CyberAgent: How We Deployed Production Kubernetes Clusters on OpenStack witho...
 
NGINX Instance Manager Tames the Sprawl (Japanese version)
NGINX Instance Manager Tames the Sprawl (Japanese version)NGINX Instance Manager Tames the Sprawl (Japanese version)
NGINX Instance Manager Tames the Sprawl (Japanese version)
 
Terraformを活用した自動化デモ_F5-NGINX_Community-20200805
Terraformを活用した自動化デモ_F5-NGINX_Community-20200805Terraformを活用した自動化デモ_F5-NGINX_Community-20200805
Terraformを活用した自動化デモ_F5-NGINX_Community-20200805
 
Rancher2.0で実現する Managed Kubernetes Service
Rancher2.0で実現する Managed Kubernetes ServiceRancher2.0で実現する Managed Kubernetes Service
Rancher2.0で実現する Managed Kubernetes Service
 
20220302_TechDojo_OpenShift_BootCamp_1章概要
20220302_TechDojo_OpenShift_BootCamp_1章概要20220302_TechDojo_OpenShift_BootCamp_1章概要
20220302_TechDojo_OpenShift_BootCamp_1章概要
 

Viewers also liked

选择第三方推送
选择第三方推送选择第三方推送
选择第三方推送
kaerseng
 
Android消息推送之androidpn demo版到正式上线
Android消息推送之androidpn demo版到正式上线Android消息推送之androidpn demo版到正式上线
Android消息推送之androidpn demo版到正式上线
kaerseng
 
Production schedule
Production scheduleProduction schedule
Production schedule
katieclover
 
Androidpn作为android推送方案存在的问题
Androidpn作为android推送方案存在的问题Androidpn作为android推送方案存在的问题
Androidpn作为android推送方案存在的问题
kaerseng
 
3 分钟搞定 android push
3 分钟搞定 android push3 分钟搞定 android push
3 分钟搞定 android push
kaerseng
 

Viewers also liked (18)

1 2 learning abaqus
1 2 learning abaqus1 2 learning abaqus
1 2 learning abaqus
 
选择第三方推送
选择第三方推送选择第三方推送
选择第三方推送
 
Costume
CostumeCostume
Costume
 
O pozadini zdravstvenog odgoja
O pozadini zdravstvenog odgojaO pozadini zdravstvenog odgoja
O pozadini zdravstvenog odgoja
 
Essential product design research
Essential product design researchEssential product design research
Essential product design research
 
Redis 存储分片之代理服务twemproxy 测试
Redis 存储分片之代理服务twemproxy 测试Redis 存储分片之代理服务twemproxy 测试
Redis 存储分片之代理服务twemproxy 测试
 
Essential Product Planning Techniques for Oxford University Press
Essential Product Planning Techniques for Oxford University PressEssential Product Planning Techniques for Oxford University Press
Essential Product Planning Techniques for Oxford University Press
 
外国人観光客をどう受け入れるか? ~これからの訪日インバウンドビジネスを考える~【20150520インバウンドセミナー】
外国人観光客をどう受け入れるか? ~これからの訪日インバウンドビジネスを考える~【20150520インバウンドセミナー】外国人観光客をどう受け入れるか? ~これからの訪日インバウンドビジネスを考える~【20150520インバウンドセミナー】
外国人観光客をどう受け入れるか? ~これからの訪日インバウンドビジネスを考える~【20150520インバウンドセミナー】
 
訪日外国人観光客の最新動向【20150520インバウンドセミナー】
訪日外国人観光客の最新動向【20150520インバウンドセミナー】訪日外国人観光客の最新動向【20150520インバウンドセミナー】
訪日外国人観光客の最新動向【20150520インバウンドセミナー】
 
Android消息推送之androidpn demo版到正式上线
Android消息推送之androidpn demo版到正式上线Android消息推送之androidpn demo版到正式上线
Android消息推送之androidpn demo版到正式上线
 
Locations
LocationsLocations
Locations
 
Production schedule
Production scheduleProduction schedule
Production schedule
 
推聊 3分钟可运行起来的开源 android手机聊天系统
推聊 3分钟可运行起来的开源 android手机聊天系统推聊 3分钟可运行起来的开源 android手机聊天系统
推聊 3分钟可运行起来的开源 android手机聊天系统
 
Androidpn作为android推送方案存在的问题
Androidpn作为android推送方案存在的问题Androidpn作为android推送方案存在的问题
Androidpn作为android推送方案存在的问题
 
通过Push来提高android应用的活跃度
通过Push来提高android应用的活跃度通过Push来提高android应用的活跃度
通过Push来提高android应用的活跃度
 
极光推送技术原理解析
极光推送技术原理解析极光推送技术原理解析
极光推送技术原理解析
 
3 分钟搞定 android push
3 分钟搞定 android push3 分钟搞定 android push
3 分钟搞定 android push
 
大容量云推送技术解析
大容量云推送技术解析大容量云推送技术解析
大容量云推送技术解析
 

Similar to 云推送技术实现与敏捷开发

継続的デリバリー読書会 第 5 章 デプロイメントパイプラインの解剖学
継続的デリバリー読書会 第 5 章 デプロイメントパイプラインの解剖学継続的デリバリー読書会 第 5 章 デプロイメントパイプラインの解剖学
継続的デリバリー読書会 第 5 章 デプロイメントパイプラインの解剖学
Takuma SHIRAISHI
 
Dockerの利用事例
Dockerの利用事例Dockerの利用事例
Dockerの利用事例
maebashi
 
継続的デリバリー読書会 第 7 章 コミットステージ
継続的デリバリー読書会 第 7 章 コミットステージ継続的デリバリー読書会 第 7 章 コミットステージ
継続的デリバリー読書会 第 7 章 コミットステージ
Yasutomo Arai
 

Similar to 云推送技术实现与敏捷开发 (20)

継続的デリバリー読書会 第 5 章 デプロイメントパイプラインの解剖学
継続的デリバリー読書会 第 5 章 デプロイメントパイプラインの解剖学継続的デリバリー読書会 第 5 章 デプロイメントパイプラインの解剖学
継続的デリバリー読書会 第 5 章 デプロイメントパイプラインの解剖学
 
OpenShift Ansbile 活用法 アプリケーションライフサイクルからみる導入効果
OpenShift Ansbile 活用法 アプリケーションライフサイクルからみる導入効果OpenShift Ansbile 活用法 アプリケーションライフサイクルからみる導入効果
OpenShift Ansbile 活用法 アプリケーションライフサイクルからみる導入効果
 
20191120 beyondstudy#21 kitaoka
20191120 beyondstudy#21 kitaoka20191120 beyondstudy#21 kitaoka
20191120 beyondstudy#21 kitaoka
 
Observability, Service Mesh and Microservices
Observability, Service Mesh and MicroservicesObservability, Service Mesh and Microservices
Observability, Service Mesh and Microservices
 
1891件以上のカーネルの不具合修正に貢献した再現用プログラムを自動生成するsyzkallerのテスト自動化技術(NTT Tech Conference ...
1891件以上のカーネルの不具合修正に貢献した再現用プログラムを自動生成するsyzkallerのテスト自動化技術(NTT Tech Conference ...1891件以上のカーネルの不具合修正に貢献した再現用プログラムを自動生成するsyzkallerのテスト自動化技術(NTT Tech Conference ...
1891件以上のカーネルの不具合修正に貢献した再現用プログラムを自動生成するsyzkallerのテスト自動化技術(NTT Tech Conference ...
 
Dockerの利用事例
Dockerの利用事例Dockerの利用事例
Dockerの利用事例
 
単なるキャッシュじゃないよ!?infinispanの紹介
単なるキャッシュじゃないよ!?infinispanの紹介単なるキャッシュじゃないよ!?infinispanの紹介
単なるキャッシュじゃないよ!?infinispanの紹介
 
OSSで作るOpenStack監視システム
OSSで作るOpenStack監視システムOSSで作るOpenStack監視システム
OSSで作るOpenStack監視システム
 
Wot2015 微博平台护城河-构建高效的防御体系-王关胜
Wot2015 微博平台护城河-构建高效的防御体系-王关胜Wot2015 微博平台护城河-构建高效的防御体系-王关胜
Wot2015 微博平台护城河-构建高效的防御体系-王关胜
 
第11回ACRiウェビナー_東工大/坂本先生ご講演資料
第11回ACRiウェビナー_東工大/坂本先生ご講演資料第11回ACRiウェビナー_東工大/坂本先生ご講演資料
第11回ACRiウェビナー_東工大/坂本先生ご講演資料
 
HeapStats: Introduction and Technical Preview
HeapStats: Introduction and Technical PreviewHeapStats: Introduction and Technical Preview
HeapStats: Introduction and Technical Preview
 
Rancher/k8sを利用した運用改善の取り組み(Rancher Day 2019)
Rancher/k8sを利用した運用改善の取り組み(Rancher Day 2019)Rancher/k8sを利用した運用改善の取り組み(Rancher Day 2019)
Rancher/k8sを利用した運用改善の取り組み(Rancher Day 2019)
 
Cloud Days Tokyo 2015 "オンプレミス環境のクラウド化と運用を楽にする OpenStack ソリューション ~ハイブリッド・クラウドを...
Cloud Days Tokyo 2015 "オンプレミス環境のクラウド化と運用を楽にする OpenStack ソリューション ~ハイブリッド・クラウドを...Cloud Days Tokyo 2015 "オンプレミス環境のクラウド化と運用を楽にする OpenStack ソリューション ~ハイブリッド・クラウドを...
Cloud Days Tokyo 2015 "オンプレミス環境のクラウド化と運用を楽にする OpenStack ソリューション ~ハイブリッド・クラウドを...
 
OpenStack Vancouver Summit Report presented at nttgroup meeting in Japanese
OpenStack Vancouver Summit Report presented at nttgroup meeting in JapaneseOpenStack Vancouver Summit Report presented at nttgroup meeting in Japanese
OpenStack Vancouver Summit Report presented at nttgroup meeting in Japanese
 
継続的デリバリー読書会 第 7 章 コミットステージ
継続的デリバリー読書会 第 7 章 コミットステージ継続的デリバリー読書会 第 7 章 コミットステージ
継続的デリバリー読書会 第 7 章 コミットステージ
 
System Center Operations Managerによる仮想環境の高度な管理
System Center Operations Managerによる仮想環境の高度な管理System Center Operations Managerによる仮想環境の高度な管理
System Center Operations Managerによる仮想環境の高度な管理
 
MillWheel Fault-Tolerant Stream Processing at Internet Scaleの意訳
MillWheel Fault-Tolerant Stream Processing at Internet Scaleの意訳MillWheel Fault-Tolerant Stream Processing at Internet Scaleの意訳
MillWheel Fault-Tolerant Stream Processing at Internet Scaleの意訳
 
Introduction to Magnum (JP)
Introduction to Magnum (JP)Introduction to Magnum (JP)
Introduction to Magnum (JP)
 
NGINX東京ハッピーアワー「DevOpsプラクティスによるクラウドでのKubernetesの利用」
NGINX東京ハッピーアワー「DevOpsプラクティスによるクラウドでのKubernetesの利用」NGINX東京ハッピーアワー「DevOpsプラクティスによるクラウドでのKubernetesの利用」
NGINX東京ハッピーアワー「DevOpsプラクティスによるクラウドでのKubernetesの利用」
 
第21回「Windows Server 2012 DeepDive!! Hyper-V と VDI を徹底解説」(2012/10/18 on しすなま!)...
第21回「Windows Server 2012 DeepDive!! Hyper-V と VDI を徹底解説」(2012/10/18 on しすなま!)...第21回「Windows Server 2012 DeepDive!! Hyper-V と VDI を徹底解説」(2012/10/18 on しすなま!)...
第21回「Windows Server 2012 DeepDive!! Hyper-V と VDI を徹底解説」(2012/10/18 on しすなま!)...
 

Recently uploaded

Recently uploaded (10)

論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 

云推送技术实现与敏捷开发