Diese Präsentation wurde erfolgreich gemeldet.
Die SlideShare-Präsentation wird heruntergeladen. ×

Private PaaS with Docker, spring cloud and mesos

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Hier ansehen

1 von 225 Anzeige

Weitere Verwandte Inhalte

Diashows für Sie (20)

Ähnlich wie Private PaaS with Docker, spring cloud and mesos (20)

Anzeige

Weitere von uEngine Solutions (18)

Aktuellste (20)

Anzeige

Private PaaS with Docker, spring cloud and mesos

  1. 1. Micro-services Architecture PaaS Multi-tenancy DevOps 도커와 스프링클라우드 그리고 메소스를 통한 Private  PaaS  와 MSA  구축 장진영 uEngine.org (jyjang@uengine.org) 1
  2. 2. 강의에 앞서 • 설치 • Docker for  windows • HTTPie è curl • pip • Python • Apache  maven & Intelli-­‐J    è Spring   Cloud • Java • Npm è Front-­‐end  server • Node.js • 소스 • http://github.com/TheOpenCloudEngine/uEngine5-­‐base 2
  3. 3. 강의에 앞서 3 Back  Channel  – 질문 주세요
  4. 4. Agenda •성공적 서비스 구축의 필요한 기술 - 2시간 •퍼블릭 워크로드 분산 엔진 – 블루믹스 (클라우드 파운드리) 의 분석 - 2시간 • 앱 디플로이 • 자동 확장 설정 • 데브옵스 설정 통한 빌드 • 무정지 재배포 •프라이빗 PaaS 구축 하기 - 5시간 • 아키텍처 설명 • 구성요소별 설명 - 1시간 • 설치 방법 및 실습 – Docker, SWARM, Spring Cloud • 사용법 시나리오 •마이크로 서비스 아키텍처 기반 애플리케이션 샘플링 ㅡ BPM as a Service • 요구사항 설명 • 소프트웨어 구성 ㅡ 여러개의 서비스로 분리된 프로젝트 • api 이해 - hateoas 의 이해 • 프론트엔드 기술 • merge by front-end, Oauth 2.0 • 멀티테넌시 데이터의 연동 • 실습: 소스빌드, zuul server, eureka server 구성통한 로컬 개발 환경의 구성 • 실습: httpie 통한 api navigation, hybind 통한 navigation, vuejs 통한 화면 바인딩 •데브옵스 시나리오 - 2시간 • 애플리케이션 등록시 자동 개발기 배포 • 개발기에서 스테이징, 운영기의 무정지 재배포 • 새버전의 발생 ㅡ 테스트 자동화와 격리 배포 • 톨러런트 서비스 ㅡ 디도스 공격 자동 대처, 서킷 브레이크 4
  5. 5. Agenda •성공적 서비스 구축의 필요한 기술 - 2시간 •퍼블릭 워크로드 분산 엔진 – 블루믹스 (클라우드 파운드리) 의 분석 - 2시간 • 앱 디플로이 • 자동 확장 설정 • 데브옵스 설정 통한 빌드 • 무정지 재배포 •프라이빗 PaaS 구축 하기 - 5시간 • 아키텍처 설명 • 구성요소별 설명 - 1시간 • 설치 방법 및 실습 – Docker, SWARM, Spring Cloud • 사용법 시나리오 •마이크로 서비스 아키텍처 기반 애플리케이션 샘플링 ㅡ BPM as a Service • 요구사항 설명 • 소프트웨어 구성 ㅡ 여러개의 서비스로 분리된 프로젝트 • api 이해 - hateoas 의 이해 • 프론트엔드 기술 • merge by front-end, Oauth 2.0 • 멀티테넌시 데이터의 연동 • 실습: 소스빌드, zuul server, eureka server 구성통한 로컬 개발 환경의 구성 • 실습: httpie 통한 api navigation, hybind 통한 navigation, vuejs 통한 화면 바인딩 •데브옵스 시나리오 - 2시간 • 애플리케이션 등록시 자동 개발기 배포 • 개발기에서 스테이징, 운영기의 무정지 재배포 • 새버전의 발생 ㅡ 테스트 자동화와 격리 배포 • 톨러런트 서비스 ㅡ 디도스 공격 자동 대처, 서킷 브레이크 5
  6. 6. 성공적 서비스의 정의 • Economist Intelligence 에 의한 국제적 조사 • (293개 기업 CIO, 조사국가: 미국 39%, 영국 31%, 호주 30%)에 의하면, • 서비스의 제공 방식의 변화로 가장 많은 40% 로 대답한 것은 바로 ‘구독형 서 비스(Subscription Service)’의 도입 6
  7. 7. 성공적인 서비스들 7
  8. 8. PaaS  에게 기대하는 것들 8
  9. 9. 성공적 서비스로의 여정 운영자동화 • Business  Continuity • Zero-­‐downtime 수익화 • Subscription   Business 구현 • Mashups • Multi-­‐tenancy • Self-­‐Serviced 마이크로 서비스 • Separation  of  Concerns Successful Service 9
  10. 10. 성공적 서비스로의 여정 운영자동화 • Business  Continuity • Zero-­‐downtime 수익화 • Subscription   Business 구현 • Mashups • Multi-­‐tenancy • Self-­‐Serviced 마이크로 서비스 • Separation  of  Concerns 10
  11. 11. Creating  Innovative  Application :  Develop  or  Mashup? Machine  Learning Voice-­‐ware IoT Not  enough   TIME! 11
  12. 12. Develop  or  Mashup? IBM  Bluemix – Watson  Micro  Services 12
  13. 13. Develop  or  Mashup? IBM  Bluemix – Writing  Voice  Ware 13
  14. 14. 14
  15. 15. 사례: 한일네트웍스의 카카오톡 챗봇 기반 자동응답 시스템 •1. Watson Conversation 서비스로 대화 서비스 만들기 •2. 내가 만든 채팅 서비스를 어플리케이션으로 노출하기 •3. 대화 내용으로 회의실 예약하기 •4. Node.js 어플리케이션 카카오톡과 연동하기 •5. [응용] 회의실 예약 조회 및 취소 기능 추가하기 •6. [심화] 예약 시간이 되면 ChatBot이 알려주기 (텔레그램) 15
  16. 16. Share more, More cheap offering, More Competitive in the market ! Share less, More easy& Secure ! Creating  Innovative  Application   Multi-­‐tenancy  Support 16
  17. 17. SaaS  Maturity  Model 17
  18. 18. 가입자A의 앱설정 가입자B의 앱설정 * 멀티태넌시 지원 기능은 금번 사업 범위에 비포함 * 향후 현재 R&D문서관리 등은 멀티태넌트 전환이 필요함 2. 도입기관별 입력 항목 변경 3. 도입기관별 판정로직 설정 1. 도입기관 브랜드 설정 Multi-­‐tenancy  Support Metadata-­‐based 18
  19. 19. Multi-­‐tenancy  Support Self  Service 19
  20. 20. Multi-­‐tenancy  Support Self  Service 20
  21. 21. Tenant-­aware! Inject  tenant-­specific  logics,  workflows,  brand Tenant-­specific   Store Multi-­‐tenancy  Support SPOSAD  Architecture 21
  22. 22. Tenant-­‐specific  Customization  >  Custom  Database  Schema  >  Shared  Database   vs.  Shared  schema Rigid,  shared  table Extension   tables Datatype-­specific   pivot  tables Private  tables Universal  table   with  XML   document Universal  table Supporting  Multi-­‐tenancy 어떤 DB  구조로 설계해야 하나요? 22
  23. 23. Supporting  Multi-­‐tenancy Force.com:    Multi-­‐tenant  Kernel 23
  24. 24. Supporting  Multi-­‐tenancy NoSQL  databases 1. Inherent multi-­‐tenancy  -­‐ Schema  Free 2. High  Performance  -­‐ Horizontally  scalable  and  Memory  cache 3. Web  optimized  – Query  results  are  JSON  -­‐ data  can  be  parsed  by  web   browser  directly  and  performantly. Additionally  -­‐ 4. Easy  to  implement  Analytic  services  (MR)  and  Full  Text  Search 5. Event-­‐driven  Transaction-­‐don't  have  to  care  about  CQRS  something 6. Some  NoSQL  products  (Couchbase,  Cassandra)  provides  pessimistic   locking  and  ANSI  SQL  (Join  Query)  -­‐ easily  migrate  to  them. 24
  25. 25. Supporting  Multi-­‐tenancy Libraries  and  tools  for  Multi-­‐tenancy  support • Multi-­‐tenancy  Database  Frameworks • JPA  @Discriminator  annotation  (Hibernate,  EclipseLink) • Athena  Framework • Spring  Cloud • Corent-­‐technology’s  JDBC/ODBC  proxy • Metadata  framework  (SPOSAD) • IBM  J9  JVM  -­‐ @TenantScope annotation • Athena  Framework • Adaptive  Object  Model • Metaworks4.io 25
  26. 26. Adaptive  Object  Model 26 http://adaptiveobjectmodel.com • Class  Definition  model  in   instance  level • Definition  can  be  stored  in  a   XML  file  or  database. • Very  Flexible  to  Extend • Polymorphism   for  multi-­‐tenant Drawbacks:   • Hard  to  read  code • Error-­‐prone  
  27. 27. Reflection  +  AOM 27 • Since  Java  1.2 • Java  Class  definition   can  be   accessible  with  Reflection  APIs • For  the  concrete  part,  Get  the   Metadata  from  Class  Definition • For  the  flexible  part,  use  the   AOM
  28. 28. Annotation  +  Reflection  +  AOM 28 • Since  Java  1.5 • Rather  use  separated  XML  files,   use  @  for  specifying  additional   (user-­‐defined)   metadata  for   class  definition
  29. 29. Supporting   Multi-­‐tenancy NoSQL  databases 1. Inherent multi-­‐tenancy  -­‐ Schema  Free 2. High  Performance  -­‐ Horizontally  scalable  and  Memory  cache 3. Web  optimized  – Query  results  are  JSON  -­‐ data  can  be  parsed  by  web   browser  directly  and  performantly. Additionally  -­‐ 4. Easy  to  implement  Analytic  services  (MR)  and  Full  Text  Search 5. Event-­‐driven  Transaction -­‐ don't  have  to  care  about  CQRS  something 6. Some  NoSQL  products  (Couchbase,  Cassandra)  provides  pessimistic   locking  and  ANSI  SQL  (Join  Query)  -­‐ easily  migrate  to  them. 29
  30. 30. 사례: 소프트웨어인라이프 Docswave.com (전자결재시스템) • 구글앱엔진의 멀티테넌시 (SPOSAD)   아키텍처 기반 멀티테넌시 • 테넌트별 • 조직도 • 결재 프로세스 • 양식 • 테마 • 등을 회사별로 설정 관리 30
  31. 31. 성공적 서비스로의 여정 운영자동화 • Business  Continuity • Zero-­‐downtime 수익화 • Subscription   Business 구현 • Mashups • Multi-­‐tenancy • Self-­‐Serviced 마이크로 서비스 • Separation  of  Concerns 31
  32. 32. DevOps:  Issues Continuous  Delivery 32 Company Deploy  Frequency Deploy  Lead  Time Reliability Customer   Responsiveness Amazon 23,000  /  day Minutes High High Google 5,500  /  day Minutes High High Netflix 500  /  day Minutes High High Facebook 1  /  day Hours High High Twitter 3  /  week Hours High High Typical  enterprise Once  every  9  months Months  or  quarters Low  /  Medium Low  /  Medium 출처:  도서 The  Phoenix  Project Amazon,

×