Containers provide a lightweight way to package applications and their dependencies to ensure software is portable and can run consistently across any infrastructure. Containers share the host operating system kernel and require less overhead than virtual machines. This allows more containers to run on the same server and drives higher efficiencies. Containers also offer benefits like portability, fault isolation, ease of management and security. The abstraction from the host OS makes containerized applications portable across any platform or cloud.
This document provides a comparison of features available across different IBM DataPower gateway products and editions. It includes a table listing services, protocols, data formats, transforms, and optional modules supported by each gateway. The document also provides notes on licensing and deployment details for the various gateway editions.
Scylla Summit 2022: Building Zeotap's Privacy Compliant Customer Data Platfor...ScyllaDB
Customer Data Platforms, commonly called CDPs, form an integral part of the marketing stack powering Zeotap's Adtech and Martech use-cases. The company offers a privacy-compliant CDP platform, and ScyllaDB is an integral part. Zeotap's CDP demands a mix of OLTP, OLAP, and real-time data ingestion, requiring a highly-performant store.
In this presentation, Shubham Patil, Lead Software Engineer, and Safal Pandita, Senior Software Engineer at Zeotap will share how ScyllaDB is powering their solution and why it's a great fit. They begin by describing their business use case and the challenges they were facing before moving to ScyllaDB. Then they cover their technical use-cases and requirements for real-time and batch data ingestions. They delve into our data access patterns and describe their data model supporting all use cases simultaneously for ingress/egress. They explain how they are using Scylla Migrator for our migration needs, then describe their multiregional, multi-tenant production setup for onboarding more than 130+ partners. Finally, they finish by sharing some of their learnings, performance benchmarks, and future plans.
To watch all of the recordings hosted during Scylla Summit 2022 visit our website here: https://www.scylladb.com/summit.
클라우드는 제품 및 비즈니스 모델 혁신에 어떤 도움을 줄 수 있는가? - 김상필 솔루션즈 아키텍트 매니저, AWS / 김재우 프로, 삼성중...Amazon Web Services Korea
클라우드는 제품 및 비즈니스 모델 혁신에 어떤 도움을 줄 수 있는가?
김상필 솔루션즈 아키텍트 매니저, AWS
김재우 프로, 삼성중공업
최계현 팀장, 현대건설기계
AWS 클라우드를 활용한 제조/하이테크 업계 전반의 스마트 프로덕트, 스마트 비즈니스 모델과 그 대표적인 혁신 사례를 소개 합니다. AWS와 AWS의 주요 고객들이 스마트 프로덕트를 기획하는 단계부터 생산에 이르기까지 다양한 과정을 거치면서 어떻게 AWS 클라우드를 활용하여 혁신을 이루어 내었는지 소개 합니다.
Containers provide a lightweight way to package applications and their dependencies to ensure software is portable and can run consistently across any infrastructure. Containers share the host operating system kernel and require less overhead than virtual machines. This allows more containers to run on the same server and drives higher efficiencies. Containers also offer benefits like portability, fault isolation, ease of management and security. The abstraction from the host OS makes containerized applications portable across any platform or cloud.
This document provides a comparison of features available across different IBM DataPower gateway products and editions. It includes a table listing services, protocols, data formats, transforms, and optional modules supported by each gateway. The document also provides notes on licensing and deployment details for the various gateway editions.
Scylla Summit 2022: Building Zeotap's Privacy Compliant Customer Data Platfor...ScyllaDB
Customer Data Platforms, commonly called CDPs, form an integral part of the marketing stack powering Zeotap's Adtech and Martech use-cases. The company offers a privacy-compliant CDP platform, and ScyllaDB is an integral part. Zeotap's CDP demands a mix of OLTP, OLAP, and real-time data ingestion, requiring a highly-performant store.
In this presentation, Shubham Patil, Lead Software Engineer, and Safal Pandita, Senior Software Engineer at Zeotap will share how ScyllaDB is powering their solution and why it's a great fit. They begin by describing their business use case and the challenges they were facing before moving to ScyllaDB. Then they cover their technical use-cases and requirements for real-time and batch data ingestions. They delve into our data access patterns and describe their data model supporting all use cases simultaneously for ingress/egress. They explain how they are using Scylla Migrator for our migration needs, then describe their multiregional, multi-tenant production setup for onboarding more than 130+ partners. Finally, they finish by sharing some of their learnings, performance benchmarks, and future plans.
To watch all of the recordings hosted during Scylla Summit 2022 visit our website here: https://www.scylladb.com/summit.
클라우드는 제품 및 비즈니스 모델 혁신에 어떤 도움을 줄 수 있는가? - 김상필 솔루션즈 아키텍트 매니저, AWS / 김재우 프로, 삼성중...Amazon Web Services Korea
클라우드는 제품 및 비즈니스 모델 혁신에 어떤 도움을 줄 수 있는가?
김상필 솔루션즈 아키텍트 매니저, AWS
김재우 프로, 삼성중공업
최계현 팀장, 현대건설기계
AWS 클라우드를 활용한 제조/하이테크 업계 전반의 스마트 프로덕트, 스마트 비즈니스 모델과 그 대표적인 혁신 사례를 소개 합니다. AWS와 AWS의 주요 고객들이 스마트 프로덕트를 기획하는 단계부터 생산에 이르기까지 다양한 과정을 거치면서 어떻게 AWS 클라우드를 활용하여 혁신을 이루어 내었는지 소개 합니다.
Git init creates a .git repository in a project directory to track changes over time, building a history. The .git directory contains files like HEAD, config, and objects that store metadata and data for the local repository. Git add stages files, git commit commits the staged files to the local repository, and git status shows file status. Remote repositories on services like GitHub can be created and the local repository connected to it with git remote add and git push to push local commits remotely. Branches allow parallel development and are created, switched between, merged, and deleted.
This document contains interview questions for a Linux administrator role. It includes questions about shell scripting, system administration tasks, networking, and more. Some example questions are how to take input in a shell script, write a script to convert file path slashes, and explain the differences between UDP and TCP. The document provides technical questions to assess a candidate's Linux knowledge and experience.
Git provides a distributed version control system that is faster and more lightweight than the centralized SVN. Git allows for easy branching and merging of code. Developers can work independently on their local repositories and sync changes to remote repositories. This allows teams to work together seamlessly on codebases.
This document provides an overview of virtualization security topics. It discusses various virtualization threats including guest VM attacks, hypervisor attacks, and management API attacks. Specific vulnerabilities are also mentioned, such as directory traversal issues and buffer overflows in hypervisor components like the virtual floppy disk controller. Attack methods like privilege escalation, denial of service, and taking control of the hypervisor are covered at a high level.
This document provides best practices for implementing HP Data Protector backup and recovery software. It discusses planning a backup strategy, installing and configuring HP Data Protector, optimizing performance, and maintaining the backup environment. Key areas covered include determining what data to backup, hardware sizing, configuring settings like block size and concurrency, and documenting the environment. The document aims to help users successfully set up and manage backups with HP Data Protector.
Este documento introduce Git. Explica brevemente la historia y definición de Git, así como algunas de sus características clave como su naturaleza distribuida y el uso de punteros. También cubre conceptos básicos como las tres zonas y estados de Git, y tipos comunes de operaciones como iniciar un repositorio, clonar, realizar commits y usar git diff.
This document provides an overview of version control and the key features of Git. It defines version control as the management of changes to files over time. Git is introduced as a free, open source, and distributed version control tool that allows teams to easily share code and track revisions. The document outlines basic Git commands and GUI tools for visualizing repositories, along with benefits such as maintaining deployable code, backing up work, and reverting changes.
Linux is an open-source operating system based on Unix, designed for multi-user environments. The document provides an overview of basic Linux commands like ls, mkdir, cd for navigating files and directories, as well as more advanced commands for manipulating files, checking system resources, and getting system information. It also lists and describes many common Linux commands and their functions.
[NDC18] 야생의 땅 듀랑고의 데이터 엔지니어링 이야기: 로그 시스템 구축 경험 공유Hyojun Jeon
NDC18에서 발표하였습니다. 현재 보고 계신 슬라이드는 1부 입니다.(총 2부)
- 1부 링크: https://goo.gl/3v4DAa
- 2부 링크: https://goo.gl/wpoZpY
(SlideShare에 슬라이드 300장 제한으로 2부로 나누어 올렸습니다. 불편하시더라도 양해 부탁드립니다.)
This document provides an overview of version control systems, including their benefits and basic functions. Version control systems allow recording changes to files over time, allowing users to recall specific file versions. They offer advantages like backup and restoration of files, synchronization across multiple computers, and facilitating collaboration on teams. The document defines common version control terms and best practices for users.
Introduction to Linux Kernel by Quontra SolutionsQUONTRASOLUTIONS
Course Duration: 30-35 hours Training + Assignments + Actual Project Based Case Studies
Training Materials: All attendees will receive,
Assignment after each module, Video recording of every session
Notes and study material for examples covered.
Access to the Training Blog & Repository of Materials
Pre-requisites:
Basic Computer Skills and knowledge of IT.
Training Highlights
* Focus on Hands on training.
* 30 hours of Assignments, Live Case Studies.
* Video Recordings of sessions provided.
* One Problem Statement discussed across the whole training program.
* Resume prep, Interview Questions provided.
WEBSITE: www.QuontraSolutions.com
Contact Info: Phone +1 404-900-9988(or) Email - info@quontrasolutions.com
성공적인 디지털 트랜스포메이션을 위해서는 클라우드 전환이 필수적인데요, 많은 기업에서 막상 클라우드를 도입할 때 여러가지 장벽에 맞닥뜨리게 됩니다.
클라우드 마이그레이션에 관한 여러분의 고민을 시원하게 해결해주기 위해 Global Public Cloud의 독보적인 선두 AWS(Amazone Web Services)와 클라우드 마이그레이션 전문기업 오픈소스컨설팅이 만났습니다!
많은 기업들이 마이그레이션 수행할 때 가장 많이 하는 질문 Top 10에 대한 기술 전문가의 노하우가 담긴 답변을 공유합니다.
DAT316_Report from the field on Aurora PostgreSQL PerformanceAmazon Web Services
Tatsuo Ishii from SRA OSS has done extensive testing to compare the Aurora PostgreSQL-compatible Edition with standard PostgreSQL. In this session, he will present his performance testing results, and his work on Pgpool-II with Aurora; Pgpool-II is an open source tool which provides load balancing, connection pooling, and connection management for PostgreSQL.
Git init creates a .git repository in a project directory to track changes over time, building a history. The .git directory contains files like HEAD, config, and objects that store metadata and data for the local repository. Git add stages files, git commit commits the staged files to the local repository, and git status shows file status. Remote repositories on services like GitHub can be created and the local repository connected to it with git remote add and git push to push local commits remotely. Branches allow parallel development and are created, switched between, merged, and deleted.
This document contains interview questions for a Linux administrator role. It includes questions about shell scripting, system administration tasks, networking, and more. Some example questions are how to take input in a shell script, write a script to convert file path slashes, and explain the differences between UDP and TCP. The document provides technical questions to assess a candidate's Linux knowledge and experience.
Git provides a distributed version control system that is faster and more lightweight than the centralized SVN. Git allows for easy branching and merging of code. Developers can work independently on their local repositories and sync changes to remote repositories. This allows teams to work together seamlessly on codebases.
This document provides an overview of virtualization security topics. It discusses various virtualization threats including guest VM attacks, hypervisor attacks, and management API attacks. Specific vulnerabilities are also mentioned, such as directory traversal issues and buffer overflows in hypervisor components like the virtual floppy disk controller. Attack methods like privilege escalation, denial of service, and taking control of the hypervisor are covered at a high level.
This document provides best practices for implementing HP Data Protector backup and recovery software. It discusses planning a backup strategy, installing and configuring HP Data Protector, optimizing performance, and maintaining the backup environment. Key areas covered include determining what data to backup, hardware sizing, configuring settings like block size and concurrency, and documenting the environment. The document aims to help users successfully set up and manage backups with HP Data Protector.
Este documento introduce Git. Explica brevemente la historia y definición de Git, así como algunas de sus características clave como su naturaleza distribuida y el uso de punteros. También cubre conceptos básicos como las tres zonas y estados de Git, y tipos comunes de operaciones como iniciar un repositorio, clonar, realizar commits y usar git diff.
This document provides an overview of version control and the key features of Git. It defines version control as the management of changes to files over time. Git is introduced as a free, open source, and distributed version control tool that allows teams to easily share code and track revisions. The document outlines basic Git commands and GUI tools for visualizing repositories, along with benefits such as maintaining deployable code, backing up work, and reverting changes.
Linux is an open-source operating system based on Unix, designed for multi-user environments. The document provides an overview of basic Linux commands like ls, mkdir, cd for navigating files and directories, as well as more advanced commands for manipulating files, checking system resources, and getting system information. It also lists and describes many common Linux commands and their functions.
[NDC18] 야생의 땅 듀랑고의 데이터 엔지니어링 이야기: 로그 시스템 구축 경험 공유Hyojun Jeon
NDC18에서 발표하였습니다. 현재 보고 계신 슬라이드는 1부 입니다.(총 2부)
- 1부 링크: https://goo.gl/3v4DAa
- 2부 링크: https://goo.gl/wpoZpY
(SlideShare에 슬라이드 300장 제한으로 2부로 나누어 올렸습니다. 불편하시더라도 양해 부탁드립니다.)
This document provides an overview of version control systems, including their benefits and basic functions. Version control systems allow recording changes to files over time, allowing users to recall specific file versions. They offer advantages like backup and restoration of files, synchronization across multiple computers, and facilitating collaboration on teams. The document defines common version control terms and best practices for users.
Introduction to Linux Kernel by Quontra SolutionsQUONTRASOLUTIONS
Course Duration: 30-35 hours Training + Assignments + Actual Project Based Case Studies
Training Materials: All attendees will receive,
Assignment after each module, Video recording of every session
Notes and study material for examples covered.
Access to the Training Blog & Repository of Materials
Pre-requisites:
Basic Computer Skills and knowledge of IT.
Training Highlights
* Focus on Hands on training.
* 30 hours of Assignments, Live Case Studies.
* Video Recordings of sessions provided.
* One Problem Statement discussed across the whole training program.
* Resume prep, Interview Questions provided.
WEBSITE: www.QuontraSolutions.com
Contact Info: Phone +1 404-900-9988(or) Email - info@quontrasolutions.com
성공적인 디지털 트랜스포메이션을 위해서는 클라우드 전환이 필수적인데요, 많은 기업에서 막상 클라우드를 도입할 때 여러가지 장벽에 맞닥뜨리게 됩니다.
클라우드 마이그레이션에 관한 여러분의 고민을 시원하게 해결해주기 위해 Global Public Cloud의 독보적인 선두 AWS(Amazone Web Services)와 클라우드 마이그레이션 전문기업 오픈소스컨설팅이 만났습니다!
많은 기업들이 마이그레이션 수행할 때 가장 많이 하는 질문 Top 10에 대한 기술 전문가의 노하우가 담긴 답변을 공유합니다.
DAT316_Report from the field on Aurora PostgreSQL PerformanceAmazon Web Services
Tatsuo Ishii from SRA OSS has done extensive testing to compare the Aurora PostgreSQL-compatible Edition with standard PostgreSQL. In this session, he will present his performance testing results, and his work on Pgpool-II with Aurora; Pgpool-II is an open source tool which provides load balancing, connection pooling, and connection management for PostgreSQL.
This document discusses software documentation, including the different types (process and product), standards, quality, and preparation. It emphasizes that documentation is important for communication between teams, providing information to managers and users, and acting as a repository for maintenance engineers. Both process documentation for tracking development and product documentation for describing the final system should be created.
Доклад Александра Макарова для Съесть собаку #10: PHP, 12/10/2017.
Тезисы:
- Что такое архитектура сайта и зачем она нужна
- Виноват ли фреймворк в плохой архитектуре
- Где выход из сложности и регрессий
- Что делать со сложным доменом
- Выводы.
2. Проектирование на основе обязанностей
• Responsibility-driven design – это общий
подход к проектированию программных
объектов.
– Программные объекты рассматриваются как
люди, имеющие свои обязанности и
сотрудничающие с другими людьми для их
выполнения
3. Проектирование на основе распределение
обязанностей (GRASP)
Обязанности, относящиеся к действиям объекта
• Выполнение действий самим объектом
• Инициирование действий других объектов
• Управление действиями других объектов
Обязанности, относящиеся к знаниям объекта
• Наличие информации о закрытых инкапсулированных
данных
• Наличие информации о связанных объектах
• Наличие информации о следствиях или вычисляемых
величинах
4. Шаблон проектирования
• Это именованная пара «проблема-
решение», содержащая рекомендации для
применения в различных конкретных
ситуациях, которую можно использовать в
различных контекстах
6. Creator
• Проблема: кто должен отвечать за создание нового
экземпляра некоторого класса?
• Решение: назначить классу B обязанность создавать
экземпляры класса A, если выполняется одно из условий:
– Класс В содержит или агрегирует объекты А
– Класс В записывает экземпляры объектов А
– Класс В активно использует объекты А
– Класс В обладает данными инициализации, которые будут
передаваться объектам А при их создании
9. Information Expert
• Проблема: каков наиболее общий принцип
распределения обязанностей между
объектами при объектно-ориентированном
проектировании?
• Решение: назначить обязанность
информационному эксперту – классу, у
которого имеется информация, требуемая
для выполнения обязанностей
11. Information Expert (особенности)
• Поддерживает инкапсуляцию
• Поддерживает принцип низкого
связывания (Low Coupling)
• Поддерживает принцип высокого
зацепления (High Cohesion)
12. Low Coupling
• Проблема: как обеспечить
зависимость, незначительное влияние
изменений и повысить возможность
повторного использования?
• Решение: распределить обязанности таким
образом, чтобы степень связанности
оставалась низкой
14. Low Coupling (особенности)
• Тесно связан с шаблонами Expert и High
Cohesion
• Изменение компонентов мало сказывается
на других объектах
• Принципы работы и функции компонентов
можно понять, не изучая другие объекты
• Удобство повторного использования
• Связан с Protected Variations
15. Controller
• Проблема: кто должен отвечать за получение и
координацию выполнения системных
операций, поступающих на уровне интерфейса
пользователя?
• Решение: делегирование обязанностей по обработке
системных сообщений классу, удовлетворяющему одному
из следующих условий
– Класс представляет всю систему в целом, корневой
объект, устройство или подсистему
– Класс представляет сценарий некоторого ВИ, в рамках
которого выполняется обработка всех системных событий
20. Controller (особенности)
• Улучшение условий повторного
использования компонентов и
подключения интерфейсов
• Контроль состояний вариантов
использования
• Похожие шаблоны:
– Command
– Facade
– Layers
– Pure Fabrication
21. High Cohesion
• Проблема: как обеспечить
сфокусированность обязанностей
объекта, их управляемость и ясность, а
заодно выполнение принципа Low
Coupling?
• Решение: распределение
обязанностей, поддерживающее высокую
степень зацепления
23. High Cohesion (особенности)
• Повышается ясность и простота проектных
решений
• Упрощается поддержка и доработка
• Зачастую обеспечивается слабое
связывание
• Улучшаются возможности повторного
использования
24. Polymorphism
• Проблема: как обрабатывать альтернативные
варианты поведения на основе типа? Как
создавать подключаемые программные
компоненты?
• Решение: если поведение объектов одного
типа (класса) может измениться, обязанности
распределяются для различных вариантов
поведения с использованием полиморфных
операций этого класса
31. Polymorphism (особенности)
• Позволяет легко расширять
систему, добавляя новые вариации
• Новые реализации можно вводить без
модификации клиентской части
приложения
• Связанные шаблоны:
– Protected Variations
– Adapter, Command, Composite, Proxy, State, Strat
egy …
32. Pure Fabrication
• Проблема: какой класс должен обеспечивать реализацию
шаблона High Cohesion и Low Coupling или других
принципов проектирования, если шаблон Expert
(например) не обеспечивает подходящего решения?
• Решение: присвоить группу обязанностей с высокой
степенью зацепления искусственному классу, не
представляющему конкретного понятия предметной
области, т.е. синтезировать искусственную сущность для
поддержки высокого зацепления, слабого связывания и
повторного использования
34. Pure Fabrication (особенности)
• Реализуется принцип высокого зацепления
• Повышается потенциал повторного
использования
• Связанные шаблоны:
– Low Coupling
– High Cohesion
– Adapter, Command, Strategy …
35. Indirection
• Проблема: как распределить
обязанности, чтобы обеспечить отсутствие
прямого связывания; снизить уровень
связывания объектов и сохранить высокий
потенциал повторного использования?
• Решение: присвоить обязанности
промежуточному объекту для обеспечения
связывания между другими компонентами
или службами, которые не связаны между
собой напрямую
37. Protected Variations
• Проблема: как спроектировать
объекты, подсистемы и систему, чтобы
изменение этих элементов не оказывало
нежелательное влияние на другие
элементы?
• Решение: идентифицировать точки
возможных вариаций или неустойчивости;
распределить обязанности таким
образом, чтобы обеспечить устойчивый
интерфейс
38. SOLID принципы проектирования
Принцип единственной ответственности (Single responsibility)
Принцип открытости/закрытости (Open-closed)
Принцип подстановки Барбары Лисков (Liskov substitution)
Принцип разделения интерфейса (Interface segregation)
Принцип инверсии зависимостей (Dependency Invertion)
39. Принцип единственной
ответственности
• «На каждый объект должна быть
возложена одна единственная
обязанность»
• Для этого проверяем, сколько у нас есть
причин для изменения класса — если
больше одной, то следует разбить данный
класс.
40. Принцип открытости/закрытости
• «Программные сущности должны быть
открыты для расширения, но закрыты
для модификации»
• Для этого представляем наш класс как
«чёрный ящик» и смотрим, можем ли в
таком случае изменить его поведение.
41. Принцип подстановки Барбары
Лисков
• «Объекты в программе могут быть
заменены их наследниками без изменения
свойств программы»
• Для этого проверяем, не усилили ли мы
предусловия и не ослабили ли постусловия.
Если это произошло — то принцип не
соблюдается
42. Принцип разделения интерфейса
• «Много специализированных интерфейсов
лучше, чем один универсальный»
• Проверяем, насколько много интерфейс
содержит методов и насколько разные
функции накладываются на эти методы, и
если необходимо — разбиваем
интерфейсы.
43. Принцип инверсии зависимостей
• «Зависимости должны строится
относительно абстракций, а не деталей»
• Проверяем, зависят ли классы от каких-то
других классов(непосредственно
инстанцируют объекты других классов и
т.д.) и если эта зависимость имеет
место, заменяем на зависимость от
абстракции.
44. Литература
• Крэг Ларман. Применение
UML 2.0 и шаблонов
проектирования. М.: ООО
«И.Д. Вильямс», 2007