Ken Sipe

Cloud Architect & Tech Leader

Ken is a distributed application engineer. Ken has worked with Fortune 500 companies to small startups in the roles of developer, designer, application architect and enterprise architect. Ken's current focus is on containers, container orchestration, high scale micro-service design and continuous delivery systems.

Ken is an international speaker on the subject of software engineering speaking at conferences such as JavaOne, JavaZone, Great Indian Developer Summit (GIDS), and The Strange Loop. He is a regular speaker with NFJS where he is best known for his architecture and security hacking talks. In 2009, Ken was honored by being awarded the JavaOne Rockstar Award at JavaOne in SF, California and the JavaZone Rockstar Award at JavaZone in Oslo, Norway as the top ranked speaker.

Presentations

Awareness is the knowledge or perception of a situation or fact, which based on myriad of factors is an elusive attribute. Likely the most significant unasked for skill… perhaps because it's challenging to “measure” or verify. It is challenging to be aware of aware, or is evidence of it's adherence. This session will cover different levels of architectural awareness. How to surface awareness and how you might respond to different technical situations once you are aware.

Within this session we look holistically an engineering, architecture and the software development process. Discussing:

* Awareness of when process needs to change (original purpose of Agile)
* Awareness of architectural complexity
* Awareness of a shift in architectural needs 
* Awareness of application portfolio and application categorization 
* Awareness of metrics surfacing system challenges
* Awareness of system scale (and what scale means for your application)
* Awareness when architectural rules are changing
* Awareness of motivation for feature requests
* Awareness of solving the right problem

The focus of the session will be mindful (defined as focusing on one's awareness), commentating in sharing strategies for heightening awareness as an architect and engineer.

In the realm of architecture, principles form the bedrock upon which innovative and enduring designs are crafted. This presentation delves into the core architectural principles that guide the creation of structures both functional and aesthetic. Exploring concepts such as balance, proportion, harmony, and sustainability, attendees will gain profound insights into the art and science of architectural design. Through real-world examples and practical applications, this session illuminates the transformative power of adhering to these principles, shaping not only buildings but entire environments. Join us as we unravel the secrets behind architectural mastery and the principles that define architectural brilliance.

Good architectural principles are fundamental guidelines or rules that inform the design and development of software systems, ensuring they are scalable, maintainable, and adaptable. Here are some key architectural principles that are generally considered valuable in software development:

  • Modularity
  • Simplicity
  • Scalability
  • Flexibility
  • Reusability
  • Maintainability
  • Performance
  • Security
  • Testability
  • Consistency
  • Interoperability
  • Evolutionary Design

Adhering to these architectural principles can lead to the development of robust, maintainable, and adaptable software systems that meet the needs of users and stakeholders effectively.

Spock is a groovy based testing framework that leverages all the “best practices” of the last several years taking advantage of many of the development experience of the industry. So combine Junit, BDD, RSpec, Groovy and Vulcans… and you get Spock!

There are 3 tools I use on every Java project I control… this is one of them and with good reason.

This session assumes some understanding of testing and junit and builds on it. We will introduce and dig deep into Spock as a test specification and mocking tool. Topics include:

Unit testing
Data driven tests
Mocking and Stubbing
Partial Mocks
Spock Extensions

Embarking on the journey to become an architect requires more than technical expertise; it demands a diverse skill set that combines creativity, leadership, communication, and adaptability. You may be awesome as a developer or engineer, but the skills needed to be an architect are often different and require more than technical awareness to succeed.

This presentation delves into the crucial skills aspiring architects need to cultivate. From mastering design principles and embracing cutting-edge technologies to honing collaboration and project management abilities, attendees will gain valuable insights into the multifaceted world of architectural skills. Join us as we explore practical strategies, real-world examples, and actionable tips that pave the way for aspiring architects to thrive in a dynamic and competitive industry.

Looking to go beyond the basics of Go. In my Golang for Java developers we teach the basics of Go while building out different labs to demonstrate an understanding of the concepts.

This session is the next stage of more deeply understanding some of the more advanced or new features in Golang which include:

  • Concurrency
  • Channels
  • Error Handling
  • Generics
  • WASI
  • New 1.20 and 1.21 language features

Are you a Java Developer looking to work on a Golang project? Are you looking to get involve on cloud native projects such as Kubernetes? This session is for you! This session assumes are are a Java developer and details the nuances of Go with comparisons against Java-isms.

This session will take a deep dive into Go as a language and provide details necessary to understand and write idiomatic go applications. In addition to differences in how to use the language and packaging structures, we will look at options for standard idiomatic Java. This will include:

  • Collection comparisons and what to use in Go
  • Stream processing for filters and maps
  • Packaging and encapsulation
  • Error Handling (Go 1.13 style)
  • Go formatting, style and linting

In the process, we will look at several Go projects in the Open Source space as style examples.

Living in a Container - Video Preview

Containers and Micro-service are like peanut butter and jelly, they just go together. However do you know how resources are managed in a container and how that affects your application. This session will dive into how Java is affected living under control groups.

This session will review containers, the underlying technology to containers along with different container runtimes such as Docker. We will look at the anatomy of a container including control groups (cgroups) and namespaces. This session will conclude with the challenges of running the JRE in a container and the impact that has on the efficiency of the process at scale.

In the ever-changing landscape of technology, Solution Architects stand as the linchpin between complex business challenges and innovative technological solutions. This presentation dives deep into the world of Solution Architects, exploring their pivotal role in crafting tailored, efficient, and scalable solutions. From deciphering intricate business requirements to orchestrating seamless integrations, Solution Architects navigate a maze of technologies to deliver outcomes that align perfectly with organizational goals. Join us as we unravel the key responsibilities, skills, and methodologies that empower Solution Architects to transform abstract ideas into tangible, impactful solutions, shaping the future of businesses in a digital age.

In this session we will walk thru the following:

  • Understanding the role of the Solution Architect (SA)
  • Key Responsibilities
  • Skills and Competencies of an SA
  • Common and Future Innovations to consider

Whether you are an existing Solution Architect looking to hone or validate your skills or you are looking to get into the role of Solution Architect, this session is for you!

If there is one thing guaranteed to be part of the micro-services story, networking and service stand out. Network management in a highly orchestrated world of networks, subnets and overlays increases the challenge. Add the topic of security and traffic management and the picture can be overwhelming.

This session will cover solutions to day 2 operations of networking a micro-service based cluster leveraging Istio, Jaeger and Kiali. Labs of specific solutions and on the fly network management will part of the presentation covering the following:

  • Mature installation of Istio prepared for Istio upgrades
  • Istio injection techniques and management
  • mTLS management service to service
  • Network fault injection
  • Network fault detection along with circuit-breakers
  • Network tracing and header propagation needs
  • Production traffic switch to new service (A/B Testing)
  • Ingress Traffic management

You will need for the labs:

  • kubernetes 1.18+ cluster
  • git / github access
  • docker
  • kubectl client tools

In the age of digital transformation, Cloud Architects emerge as architects of the virtual realm, bridging innovation with infrastructure. This presentation offers a comprehensive exploration of the Cloud Architect's pivotal role.

Delving into cloud computing models, architecture design, and best practices, attendees will gain insights into harnessing the power of cloud technologies. From optimizing scalability and ensuring security to enhancing efficiency and reducing costs, this session unravels the strategic decisions and technical expertise that define a Cloud Architect's journey. Join us as we decode the nuances of cloud architecture, illustrating its transformative impact on businesses in the modern era.

Next Generation Web Applications Workshop - Video Preview

The next generation of web applications using a cluster of resources instead of running on a single instances of a node in a cluster. To build this capability from scratch would be a costly proposition. Fortunately there is Apache Mesos. It abstracts the cloud and the data center and allows you to focus on your application needs. This is a workshop which will get into writing your first application which leverages a cluster of nodes.

To participate in this session you will need a computer with Java on it and for the best experience you will need a google account for Google Cloud Platform. An alternative is to use Vagrant with Virtualbox.

This will be a code focused workshop with focus on:

  • Apache Mesos
  • Protocol Buffers
  • Java
Pro Docker Workshop - Video Preview

The popularity of Docker as a micro-services tool has many organizations looking to put docker into production. With years of experience working with leading edge organizations, this workshop will not only teach Docker, but will provide real-world advice on how to work with Docker for production.

This session is a workshop and as such you will need to come with a laptop with Docker 1.10+ installed. The training and labs will include:

  • Docker basics
  • Container lifecycles
  • Build files
  • Working with the Registry
  • Working with the docker machine
  • Docker compose
    This will include the dos and don'ts for a production environment.

The session will end with standing up a Mesos / Marathon environment for scaling out a docker instance. Time allowing the bonus lab is standing up Kubernetes to run Docker instances.

Spock is a groovy based testing framework that leverages all the “best practices” of the last several years taking advantage of many of the development experience of the industry. Combine Junit, BDD, RSpec, Groovy and Vulcans… and you get Spock! Feedback from previous attendees experienced with Spock indicated they learned more than they imagined they would as this deep dive session will explore many less documented cases of Spock and is intended for all experience levels.

This workshop assumes some understanding of testing and junit and builds on it. We will introduce and dig deep into Spock as a test specification and mocking tool. This is a hands-on 50% labs workshop. Concepts are presented, followed by labs to help re-enforce understanding.

The organization has grown and one line of business has become 2 and then 10. Each line of business is driving technology choices based on their own needs. Who and how do you manage alignment of technology across the entire Enterprise… Enter Enterprise Architecture! We need to stand up a new part of the organization.

This session will define the role of architects and architectures. We will walk through a framework of starting an Enterprise Architecture practice. Discussions will include:

  • Differences of EA teams from one organization to another
  • Different architectural roles
  • Challenges that face EA
  • How to start or refine an EA practice

Just as sharpening the saw is the best way to cut down a tree… sharpening your development environment allows for a more focused more productive experience.
This session is a collection of scripts, aliases, shells, editors and tools which will super charge your development experience.

This session will cover:

  • zshell, oh my zsh and powerlevel10k
  • system aliases, scripts and functions
  • switching java, ruby and python environments
  • git, hub and git aliases
  • working pull-requests and stand-up meetings from the CLI
  • iterm2 scripting and wizardry
  • ngrok and working with secure call-backs

Bring your machine and lets have you productive within 2 hours!

The World is Blue/Green - Video Preview

One of the hardest activities and strategies of DevOps team or should we say production is how to transition from one version of an application to another version of an application with cascading consequences of service dependencies. There are a number of strategies for managing this concern. In this talk, we will outline a few of them along with required conditions of the underlying infrastructure to achieve it.

This session will demonstrate on a DC/OS platform how to create a continuous delivery solution which pushes builds into production leverage blue / green deployments. Following this we will switch on the fly from blue to green and vice versa. We will stretch this concept to it's extreme and demonstrate A/B testing in a production environment.

In today's rapidly evolving technological world, architects play pivotal roles in shaping the success of organizations. This presentation explores the diverse spectrum of architects, ranging from Enterprise Architects and Solution Architects to UX Architects and Security Architects. Delving into their unique responsibilities and expertise, this session sheds light on how these professionals align business objectives with technology, design innovative solutions, and ensure seamless integration. By understanding the multifaceted roles of architects, attendees will gain valuable insights into how these experts drive efficiency, foster innovation, and architect the future of modern enterprises.

This session will outline the importance of Architectural Roles by diving into different roles and responsibilities including the value that each role brings to larger enterprises. The roles that will be covered include:

  • Enterprise Architects
  • Solution Architects
  • Application Architects
  • Data Architects
  • Infrastructure Architects
  • Security Architects
  • UX Architects
  • Cloud Architects
  • Other Domain Architects

In addition, We will take time to discuss common challenges faced by Architects.

Books

  • With over 3 million users/developers, Spring Framework is the leading “out of the box” Java framework. Spring addresses and offers simple solutions for most aspects of your Java/Java EE application development, and guides you to use industry best practices to design and implement your applications.

    The release of Spring Framework 3 has ushered in many improvements and new features. Spring Recipes: A Problem-Solution Approach, Second Edition continues upon the bestselling success of the previous edition but focuses on the latest Spring 3 features for building enterprise Java applications. This book provides elementary to advanced code recipes to account for the following, found in the new Spring 3:

    • Spring fundamentals: Spring IoC container, Spring AOP/ AspectJ, and more
    • Spring enterprise: Spring Java EE integration, Spring Integration, Spring Batch, jBPM with Spring, Spring Remoting, messaging, transactions, scaling using Terracotta and GridGrain, and more.
    • Spring web: Spring MVC, Spring Web Flow 2, Spring Roo, other dynamic scripting, integration with popular Grails Framework (and Groovy), REST/web services, and more.

    This book guides you step by step through topics using complete and real-world code examples. Instead of abstract descriptions on complex concepts, you will find live examples in this book. When you start a new project, you can consider copying the code and configuration files from this book, and then modifying them for your needs. This can save you a great deal of work over creating a project from scratch!

    What you’ll learn

    • How to use the IoC container and the Spring application context to best effect.
    • Spring’s AOP support, both classic and new Spring AOP, integrating Spring with AspectJ, and load-time weaving.
    • Simplifying data access with Spring (JDBC, Hibernate, and JPA) and managing transactions both programmatically and declaratively.
    • Spring’s support for remoting technologies (RMI, Hessian, Burlap, and HTTP Invoker), EJB, JMS, JMX, email, batch, scheduling, and scripting languages.
    • Integrating legacy systems with Spring, building highly concurrent, grid-ready applications using Gridgain and Terracotta Web Apps, and even creating cloud systems.
    • Building modular services using OSGi with Spring DM and Spring Dynamic Modules and SpringSource dm Server.
    • Delivering web applications with Spring Web Flow, Spring MVC, Spring Portals, Struts, JSF, DWR, the Grails framework, and more.
    • Developing web services using Spring WS and REST; contract-last with XFire, and contract–first through Spring Web Services.
    • Spring’s unit and integration testing support (on JUnit 3.8, JUnit 4, and TestNG).
    • How to secure applications using Spring Security.

    Who this book is for

    This book is for Java developers who would like to rapidly gain hands-on experience with Java/Java EE development using the Spring framework. If you are already a developer using Spring in your projects, you can also use this book as a reference—you’ll find the code examples very useful.

    Table of Contents

    1. Introduction to Spring
    2. Advanced Spring IoC Container
    3. Spring AOP and AspectJ Support
    4. Scripting in Spring
    5. Spring Security
    6. Integrating Spring with Other Web Frameworks
    7. Spring Web Flow
    8. Spring @MVC
    9. Spring RESTSpring and Flex
    10. Grails
    11. Spring Roo
    12. Spring Testing
    13. Spring Portlet MVC Framework
    14. Data Access
    15. Transaction Management in Spring
    16. EJB, Spring Remoting, and Web Services
    17. Spring in the Enterprise
    18. Messaging
    19. Spring Integration
    20. Spring Batch
    21. Spring on the Grid
    22. jBPM and Spring
    23. OSGi and Spring