This document summarizes a presentation about best practices for AWS ECS and serverless architectures. It discusses the challenges of traditional infrastructures and benefits of containerization. It provides an overview of AWS ECS for container management and auto-scaling capabilities. It also introduces AWS Lambda and API Gateway for building serverless applications, including their advantages of being cloud-native and cost-effective with minimal infrastructure to manage. Some limitations of serverless architectures are also outlined. The conclusion encourages embracing immutable infrastructure, event-driven computing, and focusing on business logic over infrastructure when possible.
Scaling your web app horizontally and vertically (ahmedabad amazon aws cloud...Jhalak Modi
Auto Scaling helps you maintain application availability and allows you to scale your Amazon EC2 capacity up or down automatically according to conditions you define. You can use Auto Scaling to help ensure that you are running your desired number of Amazon EC2 instances. Auto Scaling can also automatically increase the number of Amazon EC2 instances during demand spikes to maintain performance and decrease capacity during lulls to reduce costs. Auto Scaling is well suited both to applications that have stable demand patterns or that experience hourly, daily, or weekly variability in usage.
This document discusses Viadeo's plans to move its entire infrastructure to AWS. It provides background on Viadeo's current infrastructure and use of AWS services. Key reasons for fully migrating to AWS include improving agility, optimizing costs by avoiding hardware refreshes, implementing stronger disaster recovery, and efficiently handling unpredictable workloads. The migration will be gradual rather than a "big bang." Challenges include some initial performance/cost trade-offs and cleaning up technical debt. Automation, scalability, and safety will be top objectives.
Building A Dynamic Website - 31st Jan 2015Jhalak Modi
Amazon Web Services offers cloud website hosting solutions that provides businesses, non-profits, and governmental organizations with a flexible, highly scalable, and low-cost way to deliver their websites and web applications. Our agenda is "How to deploy a dynamic website using Amazon Web Services". We will discuss some special services on amazon that is AWS Elastic Cloud Compute (EC2), Relational Database Service (RDS), Elastic Load Balancing (ELB), Route 53 (R53).
Amazon Web Services (AWS) provides Elastic Load Balancing to automatically distribute incoming web traffic across multiple Amazon Elastic Compute Cloud (Amazon EC2) instances.
With Elastic Load Balancing, you can add and remove EC2 instances as your needs change without disrupting the overall flow of information. If one EC2 instance fails, Elastic Load Balancing automatically reroutes the traffic to the remaining running EC2 instances. If the failed EC2 instance is restored, Elastic Load Balancing restores the traffic to that instance.
Elastic Load Balancing offers clients a single point of contact, and it can also serve as the first line of defense against attacks on your network. You can offload the work of encryption and decryption to Elastic Load Balancing, so your servers can focus on their main task.
Building a data warehouse with Amazon Redshift … and a quick look at Amazon ...Julien SIMON
This document provides a summary of a presentation about building data warehouses with Amazon Redshift and using Amazon Machine Learning. The presentation discusses how Amazon Redshift can be used to build a petabyte-scale data warehouse with SQL and no system administration. Case studies are presented showing companies saving on total cost of ownership by migrating to Amazon Redshift. It also briefly introduces Amazon Machine Learning for building predictive models with managed services. Demo examples are shown of loading data into Redshift and using ML to train a regression model and create a real-time prediction API.
Running Docker clusters on AWS (June 2016)Julien SIMON
The document discusses running Docker clusters on AWS using Amazon ECS. It provides an overview of ECS and related services like ECR and EFS. It also presents case studies of companies like Coursera, Remind, Hailo and Segment that use ECS to run Docker containers. The document demonstrates ECS architectures using fixed ports and an ELB, service discovery with DNS, and Weave for service registration. It also shows demos of RancherOS on ECS and a microservices architecture using Registrator, Consul and Fabio for service discovery.
Highly Scalable Java Programming for Multi-Core SystemJames Gan
This document discusses best practices for highly scalable Java programming on multi-core systems. It begins by outlining software challenges like parallelism, memory management, and storage management. It then introduces profiling tools like the Java Lock Monitor (JLM) and Multi-core SDK (MSDK) to analyze parallel applications. The document provides techniques like reducing lock scope and granularity, using lock stripping and striping, splitting hot points, and alternatives to exclusive locks. It also recommends reducing memory allocation and using immutable/thread local data. The document concludes by discussing lock-free programming and its advantages for scalability over locking.
Session presented at the 6th IndicThreads.com Conference on Java held in Pune, India on 2-3 Dec. 2011.
http://Java.IndicThreads.com
Rapid Application Development (in 2003)Irene Tosch
This is a presentation created in 2003 on Rapid Application Development, a methodology evolved from Structured Systems Analysis and Design & Waterfall models which tend to focus on planning work tasks while RAD focuses on development and prototyping. Note: 12 years later, in 2015, the prevailing methodologies include Agile models which further optimize cutover from requirements-to-solutions in a feature-driven cross-functional team. Although Agile is a solid concept on its own, the actually implementation of a project lifecycle involves many of the same key concepts as RAD. This is further detailed in the 1993 book, “Inside RAD: How to Build a Fully Functional System in 90 Days or Less”, a journal of an actual 90 day project using RAD.
Java SE is ideal for building lightweight microservices and those services are increasingly being deployed to the cloud. Cloud platforms are attractive deployment targets due to their high availability, affordability, ease of management, and access to services like object storage, messaging, and databases. And when well architected, Cloud Java apps exhibit a number of qualities like portability, updatability, configurability, composability, and scalability.
This document discusses Java Platform as a Service (PaaS) and compares different PaaS providers. It begins with an overview of PaaS and how it helps developers focus on applications rather than deployment and IT issues. It then discusses Java PaaS in more detail, including how it provides middleware and services for application deployment, resource allocation, and more. Major Java PaaS providers like Amazon Elastic Beanstalk are mentioned. The document concludes by outlining areas to consider when comparing and selecting a Java PaaS provider, such as databases, development workflows, and integration with other tools.
Open source software has grown significantly and its impact is projected to reach $19 billion by 2012. Previously used mainly for desktop and infrastructure software, open source is now ubiquitous due to trends like cloud computing, software as a service, and its use by major companies like Facebook, Google, and Wikipedia. While open source was once focused on technology, the business model is shifting to service, support, training and customization.
This document discusses the different types of updates for Java, including Critical Patch Updates (CPU), Patch Set Updates (PSU), Limited Updates (LU), and Feature Releases (FR). It provides details on the CPU and PSU, noting that starting in October 2014, Oracle will release a CPU and corresponding PSU for Java SE 7 at the same time. Critical Patch Updates are released on Tuesdays closest to the 17th day of January, April, July, and October.
Pragmatic functional refactoring with java 8 (1)RichardWarburton
You may be hearing a lot of buzz around functional programming. For example, Java 8 recently introduced new features (lambda expressions and method references) and APIs (Streams, Optional and CompletableFutures) inspired from functional ideas such as first-class functions, composition and immutability.
However, what does this mean for my existing codebase?
In this talk we show how you can refactor your traditional object-oriented Java to using FP features and APIs from Java 8 in a beneficial manner.
We will discuss:
* How to adapt to requirement changes using first-class functions
* How you can enhance code reusability using currying
* How you can make your code more robust by favouring immutability over mutability
* How you can design better APIs and reduce unintended null pointer exceptions using an optional data type
Building a Scalable XML-based Dynamic Delivery Architecture: Standards and Be...Jerry SILVER
The document discusses challenges with traditional and dynamic content delivery and solutions using XML standards and a native XML database. It provides examples of using XQuery, XSLT, XForms, XProc and other XML standards to dynamically assemble and deliver personalized content at scale from an XML repository. It also presents two case studies of companies that implemented such standards-based dynamic XML content delivery solutions.
The document discusses scalable web architectures and common patterns for scaling web applications. It covers key topics like load balancing, caching, database replication and sharding, and asynchronous queuing to distribute workloads across multiple servers. The goal of these patterns is to scale traffic, data size, and maintainability through horizontal expansion rather than just vertical upgrades.
El 30 de abril de 1995 las empresas ya no necesitaban permiso para conectarse a Internet. ARPANET inició Internet en 1969, utilizando el protocolo TCP/IP. En 2009 había alrededor de 1,669 millones de usuarios de Internet.
This document discusses how to build scalable applications using Scala. It defines scalability as a system's ability to handle growing workloads through methods like supporting more users, adding new features easily, or maintaining performance across different locations. The document then covers how Scala supports scalability through features like concurrency/parallelism, immutability, and functional programming patterns. It provides examples of how Scala's collections library allows parallel operations and how futures can be composed to perform asynchronous and parallel work efficiently.
Everyone knows that Cassandra is a NoSQL solution for data storage. But often for processing of this data message queues are used with some existing messaging provider. Due to this, there is inconsistency of data sometimes and an additional infrastructure level to maintain. Since one of our services stores all the data in Cassandra, we have developed a solution for message queues that automatically gained a lot of useful features: scalability, high availability and flexibility. This solution I will present in the talk.
EBS is a virtual storage area network in AWS that provides block-level storage volumes for use with EC2 instances. Amazon QuickSight is a cloud-based business analytics service that helps users build visualizations and perform ad-hoc analysis to extract insights from their data. There is no single career path for DevOps engineers, who may come from development backgrounds focused on deployment and operations or sysadmin roles interested in scripting and coding to influence the development process. AWS IoT is a cloud platform that enables connected devices to interact securely with cloud applications.
This document provides an overview and agenda for Amazon Web Services (AWS). It discusses Infrastructure as a Service (IaaS) and Platform as a Service (PaaS) models and then summarizes several key AWS services - Elastic Compute Cloud (EC2) for virtual machines, Relational Database Service (RDS) for databases, Simple Storage Service (S3) for cloud storage, CloudFront for content delivery, CloudFormation for infrastructure automation, and Elastic Beanstalk for application deployment and management. The presentation aims to demonstrate tools for accessing and using AWS services.
Highly Scalable Java Programming for Multi-Core SystemJames Gan
This document discusses best practices for highly scalable Java programming on multi-core systems. It begins by outlining software challenges like parallelism, memory management, and storage management. It then introduces profiling tools like the Java Lock Monitor (JLM) and Multi-core SDK (MSDK) to analyze parallel applications. The document provides techniques like reducing lock scope and granularity, using lock stripping and striping, splitting hot points, and alternatives to exclusive locks. It also recommends reducing memory allocation and using immutable/thread local data. The document concludes by discussing lock-free programming and its advantages for scalability over locking.
Session presented at the 6th IndicThreads.com Conference on Java held in Pune, India on 2-3 Dec. 2011.
http://Java.IndicThreads.com
Rapid Application Development (in 2003)Irene Tosch
This is a presentation created in 2003 on Rapid Application Development, a methodology evolved from Structured Systems Analysis and Design & Waterfall models which tend to focus on planning work tasks while RAD focuses on development and prototyping. Note: 12 years later, in 2015, the prevailing methodologies include Agile models which further optimize cutover from requirements-to-solutions in a feature-driven cross-functional team. Although Agile is a solid concept on its own, the actually implementation of a project lifecycle involves many of the same key concepts as RAD. This is further detailed in the 1993 book, “Inside RAD: How to Build a Fully Functional System in 90 Days or Less”, a journal of an actual 90 day project using RAD.
Java SE is ideal for building lightweight microservices and those services are increasingly being deployed to the cloud. Cloud platforms are attractive deployment targets due to their high availability, affordability, ease of management, and access to services like object storage, messaging, and databases. And when well architected, Cloud Java apps exhibit a number of qualities like portability, updatability, configurability, composability, and scalability.
This document discusses Java Platform as a Service (PaaS) and compares different PaaS providers. It begins with an overview of PaaS and how it helps developers focus on applications rather than deployment and IT issues. It then discusses Java PaaS in more detail, including how it provides middleware and services for application deployment, resource allocation, and more. Major Java PaaS providers like Amazon Elastic Beanstalk are mentioned. The document concludes by outlining areas to consider when comparing and selecting a Java PaaS provider, such as databases, development workflows, and integration with other tools.
Open source software has grown significantly and its impact is projected to reach $19 billion by 2012. Previously used mainly for desktop and infrastructure software, open source is now ubiquitous due to trends like cloud computing, software as a service, and its use by major companies like Facebook, Google, and Wikipedia. While open source was once focused on technology, the business model is shifting to service, support, training and customization.
This document discusses the different types of updates for Java, including Critical Patch Updates (CPU), Patch Set Updates (PSU), Limited Updates (LU), and Feature Releases (FR). It provides details on the CPU and PSU, noting that starting in October 2014, Oracle will release a CPU and corresponding PSU for Java SE 7 at the same time. Critical Patch Updates are released on Tuesdays closest to the 17th day of January, April, July, and October.
Pragmatic functional refactoring with java 8 (1)RichardWarburton
You may be hearing a lot of buzz around functional programming. For example, Java 8 recently introduced new features (lambda expressions and method references) and APIs (Streams, Optional and CompletableFutures) inspired from functional ideas such as first-class functions, composition and immutability.
However, what does this mean for my existing codebase?
In this talk we show how you can refactor your traditional object-oriented Java to using FP features and APIs from Java 8 in a beneficial manner.
We will discuss:
* How to adapt to requirement changes using first-class functions
* How you can enhance code reusability using currying
* How you can make your code more robust by favouring immutability over mutability
* How you can design better APIs and reduce unintended null pointer exceptions using an optional data type
Building a Scalable XML-based Dynamic Delivery Architecture: Standards and Be...Jerry SILVER
The document discusses challenges with traditional and dynamic content delivery and solutions using XML standards and a native XML database. It provides examples of using XQuery, XSLT, XForms, XProc and other XML standards to dynamically assemble and deliver personalized content at scale from an XML repository. It also presents two case studies of companies that implemented such standards-based dynamic XML content delivery solutions.
The document discusses scalable web architectures and common patterns for scaling web applications. It covers key topics like load balancing, caching, database replication and sharding, and asynchronous queuing to distribute workloads across multiple servers. The goal of these patterns is to scale traffic, data size, and maintainability through horizontal expansion rather than just vertical upgrades.
El 30 de abril de 1995 las empresas ya no necesitaban permiso para conectarse a Internet. ARPANET inició Internet en 1969, utilizando el protocolo TCP/IP. En 2009 había alrededor de 1,669 millones de usuarios de Internet.
This document discusses how to build scalable applications using Scala. It defines scalability as a system's ability to handle growing workloads through methods like supporting more users, adding new features easily, or maintaining performance across different locations. The document then covers how Scala supports scalability through features like concurrency/parallelism, immutability, and functional programming patterns. It provides examples of how Scala's collections library allows parallel operations and how futures can be composed to perform asynchronous and parallel work efficiently.
Everyone knows that Cassandra is a NoSQL solution for data storage. But often for processing of this data message queues are used with some existing messaging provider. Due to this, there is inconsistency of data sometimes and an additional infrastructure level to maintain. Since one of our services stores all the data in Cassandra, we have developed a solution for message queues that automatically gained a lot of useful features: scalability, high availability and flexibility. This solution I will present in the talk.
EBS is a virtual storage area network in AWS that provides block-level storage volumes for use with EC2 instances. Amazon QuickSight is a cloud-based business analytics service that helps users build visualizations and perform ad-hoc analysis to extract insights from their data. There is no single career path for DevOps engineers, who may come from development backgrounds focused on deployment and operations or sysadmin roles interested in scripting and coding to influence the development process. AWS IoT is a cloud platform that enables connected devices to interact securely with cloud applications.
This document provides an overview and agenda for Amazon Web Services (AWS). It discusses Infrastructure as a Service (IaaS) and Platform as a Service (PaaS) models and then summarizes several key AWS services - Elastic Compute Cloud (EC2) for virtual machines, Relational Database Service (RDS) for databases, Simple Storage Service (S3) for cloud storage, CloudFront for content delivery, CloudFormation for infrastructure automation, and Elastic Beanstalk for application deployment and management. The presentation aims to demonstrate tools for accessing and using AWS services.
During the “Architecting for the Cloud” breakfast seminar where we discussed the requirements of modern cloud-based applications and how to overcome the confinement of traditional on-premises infrastructure.
We heard from data management practitioners and cloud strategists from Amazon Web Services and NuoDB about how organizations are meeting the challenges associated with building new or migrating existing applications to the cloud.
Finally, we discussed how the right cloud-based architecture can:
- Handle rapid user growth by adding new servers on demand
- Provide high performance even in the face of heavy application usage
- Offer around-the-clock resiliency and uptime
- Provide easy and fast access across multiple geographies
- Deliver cloud-enabled apps in public, private, or hybrid cloud environments
Innovation at Scale - Top 10 AWS questions when you startShiva Narayanaswamy
The document summarizes AWS's rapid pace of innovation and history of innovation. It notes that AWS has launched over 1,173 new features and services between 2006 and 2014, with the number of new features/services increasing each year. It also lists some of the major AWS services launched each year from 2009 to 2015. The document aims to showcase AWS's continued expansion of services across compute, storage, database, analytics, applications and other areas to support virtually any cloud workload.
Amazon Web Services (AWS) began offering IT infrastructure services to businesses in the form of web services -- now commonly known as cloud computing. One of the key benefits of cloud computing is the opportunity to replace up-front capital infrastructure expenses with low variable costs that scale with your business. With the Cloud, businesses no longer need to plan for and procure servers and other IT infrastructure weeks or months in advance. Instead, they can instantly spin up hundreds or thousands of servers in minutes and deliver results faster.
NWCloud Cloud Track - Best Practices for Architecting in the Cloudnwcloud
The document discusses best practices for cloud architecture based on lessons learned from Amazon Web Services customers. It provides guidance on designing systems for failure, loose coupling, elasticity, security, leveraging constraints, parallelism, and different storage options. The key lessons are applied to migrating a sample web application architecture to AWS.
Modernizing Applications with ContainersOscar Moncada
Modernizing your applications with containerization yields a range of benefits by enabling faster deployments, rapid scalability, consistency, and lower operational overhead. Additionally, improvements in security and CI/CD have driven many organizations to shift from virtual machines to containers.
Hear from Stratus10's AWS Solutions Architect and AWS-certified Black Belt in Containers on the key features of containers that make them advantageous for your institution and pitfalls to avoid when implementing containers.
Then explore a containerization use case from Stratus10's client Peachjar, an EdTech communication platform serving K-12, with an explanation of the services selected and why, a brief implementation diagram, and outcomes.
This presentation sheds light onto the key advantages of containers, specifically immutability and ease of management.
Watch the recorded session of this presentation on YouTube: https://www.youtube.com/watch?v=9XisaMVOdOM
Learn more about containerization and get a free consultation from Stratus10. Visit us at https://stratus10.com.
This document provides an overview of Amazon Web Services (AWS) and a demonstration of basic AWS functions and installing Odoo-9 on an AWS EC2 instance. The agenda includes an introduction to the AWS platform and core services, a tutorial of basic functions like launching EC2 instances and using S3 storage, and a demo of installing Odoo-9 on an Ubuntu EC2 instance. Suggestions for additional documentation and topics for future sessions are also provided.
This document discusses how new processes, tools, and infrastructure can empower development teams. It focuses on how agile development principles, open source tools for building and testing like Spring Boot, Angular, Git, Jenkins, and AWS hosting enable faster iteration, continuous integration and deployment, and dynamic scalability. A demo is shown of deploying a sample Spring/Angular application to an AWS Elastic Beanstalk environment to illustrate these concepts in action.
This document provides best practices for startups using AWS. It recommends taking an MVP approach, focusing on core features and offloading non-differentiating tasks to AWS services. It also emphasizes loose coupling between services using techniques like message queues, idempotent interfaces, and circuit breakers to enable scalability and resiliency. Finally, it discusses automating infrastructure provisioning and management using tools like AWS CloudFormation, OpsWorks and Elastic Beanstalk.
Rise and fall of Story Points. Capacity based planning from the trenches.Mikalai Alimenkou
Люди в мире Agile используют Story Points - для Agile коучей и тренеров это самый простой способ объяснить, как следует проводить оценку и планирование в «новом мире». Но тогда эта простая концепция нарушает реальные практические кейсы. В настоящее время команды состоят из очень специализированных людей, работающих над бэкендом, фронтэндом, тестировании, инфраструктуре и прочим. Для них почти невозможно иметь общий уровень сложности. Это только одна из проблем, которые мы собираемся осветить в этом докладе.
Чтобы оставаться конструктивным, а не просто старомодным парнем из XP, Николай поделится своим опытом с более точной и прагматичной техникой оценки/планирования - планированием на основе возможностей.
We have spent many years testing our applications and systems manually and with test automation tools. During this time many bug root causes have been classified and could be detected automatically with special static analysis tools. Most of them could be applied at the early stages of development even before code is integrated into the main development branch. In this talk, I will go through available solutions and demonstrate what kinds of issues may be detected automatically reducing the time and effort of traditional testing.
Modern CI/CD in the microservices world with KubernetesMikalai Alimenkou
In this talk, we will go through the design process of modern CI/CD for the microservices-based system with Kubernetes support. We will discuss how to verify consistency between microservices, apply different levels of quality gates and promote artifacts between environments. Thanks to Kubernetes we will review different approaches of environment resources optimization for development needs during CI/CD cycles.
Saga about distributed business transactions in microservices worldMikalai Alimenkou
Most of people nowadays think microservices architecture is a great way to build any system. They visit conference talks, read books and review tutorials, where ‘hello world’ applications are built just in several minutes using microservices approach. But the reality is not so wonderful and one of the biggest pain is hidden inside distributed business transactions. In monolith application this topic is almost completely covered with DB level transactions. In distributed world you have to face many issues trying to implement reliable and consistent business logic.
In this talk we will review different types of problems related to distributed business transactions, popular SAGA pattern, frameworks and techniques to simplify your life without compromising quality of the system.
Effectiveness tips from Kubernetes trenches by Captain ObviousMikalai Alimenkou
Nowadays almost everybody knows about Kubernetes, some teams are using it and some are only dreaming about it. Despite the popularity, Kubernetes is not simple and there are so many ways of abuse this peaceful technology. In this talk I would like to present quite obvious set of tips, based on failures and ineffectiveness at different companies I have worked with during last several years.
Ride the database in JUnit tests with Database RiderMikalai Alimenkou
For a long time DB related testing in Java world has been a real pain and most developers tried to reduce number of such tests as much as possible. With good in-memory database implementations like H2, schema migration solutions like Liquibase or Flyway, containerization with libraries like TestContainers, database management is now much simpler. But test data management is still a pain. Some developers use SQL dumps, others insert data via JPA/JDBC or rely on prepared data sets. Good old DBUnit may be a good option, but it is not so developer friendly and not adopted well for modern annotations driven development style. Database Rider closes the gap between modern Java development environment and DBUnit, bringing DBUnit closer to your JUnit tests, so database testing will feel like a breeze. In addition to flexible data sets management this library provides other useful features: programmatic data sets definition, leak hunting, data sets export, constraints management, etc. As contributor and loyal user for many years, I would like to share my experience with Database Rider and demonstrate how to make database testing a fun again!
Wastful waste or why everything is so slow in developmentMikalai Alimenkou
I think almost everybody experienced cases when things are moving very slowly in IT companies or teams. You have many people, talented engineers, Agile process and development speed is still below expectations. We try to focus on performance and efficiency last 10 years, improving our practices and tools. But we are still there in terms of speed when they are applied to real life cases. How is it possible? In this talk we will review the concept of waste circles and understand what are the main sources of time waste in development process. This concept would help you to check your processess, focus on right things and achieve much better results in your organization or team.
The document discusses implementing a hexagonal architecture and domain-driven design approach with Spring Boot. It promotes starting with use cases and domain context, using entities and value objects to model the domain, and aggregates for complex relationships. It also advocates an ports and adapters approach using Spring Boot modules like Spring MVC, Spring Data, and Spring Messaging to connect business logic to databases, queues, APIs and other external services through adapters. The summary emphasizes changing one's perspective to focus on the business logic and domain model first and using existing Spring Boot features to build the technical implementation around it.
Wastful waste or why everything is so slow in developmentMikalai Alimenkou
I think almost everybody experienced cases when things are moving very slowly in IT companies or teams. You have many people, talented engineers, Agile process and development speed is still below expectations. We try to focus on performance and efficiency last 10 years, improving our practices and tools. But we are still there in terms of speed when they are applied to real life cases. How is it possible? In this talk we will review the concept of waste circles and understand what are the main sources of time waste in development process. This concept would help you to check your processess, focus on right things and achieve much better results in your organization or team.
DevOps checklist or how to understand where is your team in DevOps landscape ...Mikalai Alimenkou
DevOps become a buzzword in a last few years. Several companies, development and product teams have achieved quite impressive results in this area making cultural changes, transforming their processes and practices, introducing new roles, tools and techniques.
Do you think is achievable for you team or it’s still a bunch of drama? There is no common approach for measuring achievements and understanding how much DevOps’ich the current team/company is. In this talk I will provide attendees with basic checklist to start with and some reliable tools/techniques to monitor progress of “DevOps transformation”.
DevOps checklist or how to understand where is your team in DevOps landscapeMikalai Alimenkou
DevOps is a hot topic during last several years. Some companies, teams and products have achieved quite impressive results in this area making cultural changes, transforming their processes and practices, introducing new roles, tools and techniques. At the same time there is no common approach for measuring achievements and understanding “how DevOps” the current team/company is. In this talk I will provide attendees with basic checklist to start with and some reliable tools/techniques to monitor progress of “DevOps transformation”.
Практические трудности в разработке Медкарты для целой страныMikalai Alimenkou
Почти год мы в Whirl Software разрабатываем систему Медкарта в масштабе целой страны. За это время мы столкнулись с множеством интересных сложностей и проблем, часть из которых успешно победили, а для некоторых хорошего решения до сих пор не найдено. В этом докладе мы поделимся накопленным практическим опытом и некоторыми техническими решениями, которые могут быть полезны в рамках разработки электронных медицинских систем.
Hexagonal architecture with Spring Boot [EPAM Java online conference]Mikalai Alimenkou
Nowadays traditional layered monolithic architecture in Java world is not so popular as 5-10 years ago. I remember how we wrote tons of code for each layer repeating almost the same parts for every application. Add unit and integration testing to understand how much time and efforts has been spent on repeatable work. All cool ideas around DDD (domain driven design) and Hexagonal Architecture was just a nice theory because reality hasn’t allow us to implement it easily. Even Dependency Injection with Spring framework was completely focused on traditional layered approach, not even talking about JavaEE platform.
Today we have Spring Boot ecosystem covering most of our needs for integration with almost all possible technologies and microservices architectural trend, enabling completely new approach to build Java applications around domain model. It is so natural to build Java domain-oriented services and connect them with external world using ports and adapters, that Hexagonal Architecture is almost enabled by default. You just need to switch your way of thinking…
This document provides guidance on effectively managing test data for software testing. It discusses 6 approaches to preparing test data: 1) using the user interface, 2) inserting data via API calls, 3) direct SQL insertion into the database, 4) using data sets with DBUnit, 5) versioned data dumps, and 6) reusing production data. The key recommendations are to choose the approach that best fits the system under test, speed up test data management with APIs, reuse live data when possible, and mix strategies as needed to build reliable test cases.
Agile antipatterns: review after 10 years of practiceMikalai Alimenkou
Вот уже более 10 лет Agile движение шагает по Украине и стучится практически в каждую компанию. Но приносят ли новые процессы, принципы и практики реальную практическую пользу? Получается ли изменить к лучшему команды, проекты, компании? Я в роли консультанта за эти 10 лет поработал с более чем 100 компаниями, поэтому повидал много хорошего и плохого. В данном докладе хочется пробежаться по основным проблемам, сложностям и анти-паттернам в переходе отечественных компаний на "Agile рельсы". Мы рассмотрим какие практики не очень хорошо приживаются, от чего страдает большинство команд, какие основные препятствия встречают на своем пути и как умудряются их обходить. Я надеюсь, доклад поможет зародиться множеству интересных дискуссий.
Nowadays traditional layered monolithic architecture in Java world is not so popular as 5-10 years ago. I remember how we wrote tons of code for each layer repeating almost the same parts for every application. Add unit and integration testing to understand how much time and efforts has been spent on repeatable work. All cool ideas around DDD (domain driven design) and Hexagonal Architecture was just a nice theory because reality hasn’t allow us to implement it easily. Even Dependency Injection with Spring framework was completely focused on traditional layered approach, not even talking about JavaEE platform.
Today we have Spring Boot ecosystem covering most of our needs for integration with almost all possible technologies and microservices architectural trend, enabling completely new approach to build Java applications around domain model. It is so natural to build Java domain-oriented services and connect them with external world using ports and adapters, that Hexagonal Architecture is almost enabled by default. You just need to switch your way of thinking…
Almost any application or software system manages data. It is hard to imagine test automation that is not affected by this fact. There are many differenct approaches how to prepare system under test, providing predefined test data: use application UI, invoke API methods, run business logic directly, access DB from test scenarios, etc. In this talk we will review most of existing approaches, starting from the easiest and the most popular ones and finishing with really tricky ways to manage your test data for large distributed systems. There is no ideal solution for every case or silver bullet, but I hope your toolset will become wider after visiting this talk.
Бытовая классификация тестировщиков с точки зрения разработчикаMikalai Alimenkou
Тестировщики часто говорят о противостоянии и конфликтах с разработчиками. Но ведь есть команды, где все живут в мире и согласии. Видимо что-то тут не так? Я хочу поговорить о том, как тестировщиков видят сами разработчики. В докладе будет проведена забавная классификация. Кроме известного всем тестировщика-обезьянки будут представлены тестировщик-муха, тестировщик-нацист, тестировщик-панда и многие другие герои. Высможете лишний раз задуматься над тем, как вас видят со стороны и, возможно, изменить ситуацию к лучшему.
Доклад будет также полезен менеджерам проектов и лидерам команд. Вы сможете быстрее распознавать те или иные шаблоны поведения тестировщикови принимать меры по повышению уровня командной работы. Приходите, будет интересно!
Code Review tool for personal effectiveness and waste analysisMikalai Alimenkou
Usually it is hard to analyze personal effectiveness and detect wastes in development process because developer’s work decomposition is not transparent and available for analysis. As a good sample of ineffective process imagine developer, who spends 1 day on task implementation and then reimplements it several times according to code review notes during next 2 days. Or another developer, who is waiting for code review during 2 days, switching context to other tasks, finally gets notes and switches back to initial task, trying to refresh all details in his head. And so on and so forth…
Code review tool usage helps to aggregate lots of useful information about any code change at any stage (static analysis, code review, rework, acceptance, integration into main branch). In this talk I’m going to demontrate how this information could be used for detailed analysis of development effectiveness and wastes detection. Based on mentioned analysis you could implement many improvements for your development process and then measure their success.
Funny stories and anti-patterns from DevOps landscapeMikalai Alimenkou
During last several years DevOps became strong buzzword used almost in every project, team and company. But almost everywhere it is used in very funny and strange context. For example, existing ops guys are renamed to DevOps just to sell them to the client for more money. Or DevOps is used as new job title for some magically powerful person who is able to operate cloud environment and modern infrastructure related tools, leading team of old school ops and participating in management meetings. In this talk I’m going to review all different anti-patterns and bad practices in DevOps landscape using stories from my personal experience as Delivery Manager and independent consultant.
Funny stories and anti-patterns from DevOps landscapeMikalai Alimenkou
Ad
Scalable Java Application Development on AWS
1. Scalable Java Application Development on AWSMikalai Alimenkouhttp://xpinjection.com21.05.2011
2. BackgroundJava Technical Lead/Scrum Master at Zoral Labs6+ years in software development4+ years of working by Agile methodologiesExpert in Agile engineering practicesFounder and coachat XP Injection (http://xpinjection.com)Organizer of Selenium Camp and JEEConf conferences
10. Easy and reliable server configuration with AMINo work for system administratorAny number of servers availableNo waits for hardwareMore experimenting and testingEasy security modelHappiness…
15. What I Have for Such Money?Testing ServerDB ServerProduction Server
16. Ways to Save MoneyGood and responsible team Reuse instances when possible rounding usage timeRelease instances when not more neededMonitor and control running instancesUse reserved instances for continuously running jobs
29. EBS != Hard DriveSlow for time critical tasksBottleneck for Lucene indexing and DBUse parallel EBS volumesSeparate data storage between EC2 instancesDon’t use RDSLimited to 1TBVirtual RAIDData distribution
36. ConclusionsAWS is great for startups or research projectsAWS increases development speed in timesIt is easy to create scalable and highly available Java application on AWSDevelopment, testing and production may be done on AWSAWS save development costsAWS support Agile developmernt approaches