Designing, developing and deploying a microservices architecture

Intensive one-day introduction to designing, developing and deploying microservices architecture

The development and maintenance of monoliths presents organizations with increasing challenges, resulting in high costs and a slow time-to-market. More and more organizations are therefore attempting to componentize their applications. The latest and greatest paradigm microservices finally seems to deliver on the promises of service oriented architecture: shortening time-to-market, scalability, autonomy, and exchangeability of technology and databases. The challenges of delivering microservices however are equally big. What makes a component a microservice? How to design, develop and deploy these small services? How does collaboration between analysts, developers, testers and operations change the organizations?

2735500813_a61777f105_z
Are microservices software developments Swiss army knife?

During this one day course, from his years of experience in agile, Scrum, requirements, architecture and code Sander Hoogendoorn shares the voyage that implementing a microservices landscape is. He will answer questions on modeling and designing microservices, the granularity of applications and services, the communication between services, design patterns, polyglot persistence, testing services and setting up deployment pipelines. Richly illustrated with real-life examples, this course gives a perfect introduction into this promising technology.

Benefits of attending

  • Get a clear understand of the strengths and weaknesses of using microservices
  • Learn to understand which problems microservices can solve and which not
  • Help you decide whether microservices will solve your current problems
  • Learn how your software architecture will evolve when you move towards microservices and how to keep your architecture flexible
  • Learn how to design and model applications, microservices and resources in this new architecture
  • Get understanding of the more explicit role of testing in a microservices architecture, and which technique apply well
  • Learn about continuous integration and continuous delivery, and how you design your deployment pipelines

Who should attend

  • Managers who have clear issues with current applications, such as poor maintainability, long time-to-market, moving away from legacy code, and spaghetti architecture, and are considering microservices
  • Managers who want to understand the challenges and opportunities microservices architectures
  • Architects who want to define software architecture for successful microservices implementations
  • IT professionals who want to understand who microservices will influence the existing infrastructure architecture
  • Business and functional analysts who want to obtain an overview of the different design techniques used in microservices, or who want to understand who microservices will change their jobs
  • Developers and testers who require an overview of all new technology, frameworks and tools that are used in microservices
  • IT Managers and IT Strategists selecting new technologies
  • IT Architects and Managers who need to develop an integration strategy for their company
  • Consultants who need to recommend different strategies for implementing integration scenario’s

Agenda

An introduction to components and services

  • Introduction
  • Monoliths versus microservices
  • Strengths and weaknesses of monolithic software
  • A brief history of components and services

Introducing microservices

  • Are we beyond the hype yet?
  • A definition of microservices
  • Characteristics of microservices
  • Containers and scalability
  • Polyglot persistence
  • Promises of microservices
  • Challenges in microservices
  • How  big or small are microservices?

Greenfield or brownfield?

  • Presenting two real world cases

  • Guiding principles from both cases
  • A business process first approach
  • Different levels of business processes
  • An architecture first approach
  • How to split up your existing code base?
  • Brownfield migration to microservices

Evolutionary software architecture

  • Where to start?
  • Introducing design patterns
  • Applications, workers and services
  • Service consuming applications
  • Service delivering components
  • Dealing with communication and REST
  • Authentication and tokens

Designing and building microservices

  • Why modular design is key
  • Guidelines for design microservices
  • The Single Responsibility Principle (SRP)
  • Introducing domain driven design
  • Explaining bounded contexts
  • Modeling micro-applications
  • Wireframes
  • Smart use cases
  • Mapping bounded contexts around resources
  • Working with HTTP verbs
  • Creating a RESTful API for you services
  • Explaining Postel’s law
  • Introducing the resource model

Testing microservices

  • An overview of test techniques for microservices
  • Why manual testing isn’t efficient
  • Unit testing
  • Behavior driven design with examples
  • Introducing service contracts
  • QA (with SonarQube)
  • Integration testing
  • Acceptance testing
  • When to test what in your deployment pipelines

Deployment of microservices

  • Continuous integration
  • Designing your deployment pipelines
  • Moving towards continuous delivery
  • Minimal viable products (MVP) 
  • Agile, Kanban and microservices
  • Microservices and DevOps
  • Do microservices change your organization?

Concluding

  • Some final recommendations
  • Do microservices solve all challenges your IT department has?
  • How to proceed?

3 thoughts on “Designing, developing and deploying a microservices architecture

  1. Hallo Sander,

    Ik ben een PHP developer met een aantal jaar werk ervaring en sinds kort ben ik meer en meer de software architect / consultant kant aan het op groeien. Hierbij adviseren ik klanten in voortrajecten en adviseer ik intern hoe we bepaalde processen zouden kunnen opzetten. Ik merk echter dat het erg lastig is om veel kennis te vergaren zonder trainingen en/of hulp / voorbeelden van anderen. Ik werk momenteel bij E-sites (een webbureau met 10 backend developers).
    Op je website zag ik een aantal interessante trainingen die ik graag zou willen bijwonen. De training “Designing, developing and deploying a microservices architecture” lijkt mij erg interessant als developer zijnde en “Pragmatic modeling with UML and smart use cases” lijkt me dan weer perfect aan te sluiten bij mijn relatief nieuwe rol als software architect. Wat zijn de mogelijkheden hierin? En zijn er verder nog speciale conferenties die interessant zijn om bij te wonen? DPC is bijvoorbeeld een conferentie gericht op PHP webdevelopment maar na een paar jaar blijft dat toch helaas het zelfde liedje over en over. Het lijkt me erg leuk om een training bij te wonen.

    Groeten,
    Sjoerd Maessen

Comments are closed.