Course Outline
Day 1 – Go Fundamentals and Microservices Architecture
Overview of Go: syntax, tools, and modules for government applications
Microservices architecture: principles, benefits, and approaches for scalable systems
Building REST APIs with the Gin framework for secure data exchange
Introduction to GoFR as a modern alternative for rapid development
Introduction to concurrent programming: goroutines and channels for efficient processing
Guided project: building a simple REST microservice for practical application
Day 2 – Concurrency, Event-Driven Systems, and gRPC
Asynchronous approach: designing microservices that interact with external systems for real-time updates
Kafka: building publishers and consumers in Go for reliable message streaming
REST vs gRPC: comparison of protocols for optimal service communication
RPC lifecycle and gRPC API models (unary, streaming, bidirectional) for efficient data transfer
Error handling and timeout management in gRPC to ensure system resilience
Installing and configuring gRPC and Go Micro for robust service infrastructure
Hands-on exercises: implementing microservices using gRPC for hands-on learning
Day 3 – Security, Logging, and Deployment
Security: JWT authentication and OpenID Connect for secure access management
Logging and observability in Go microservices for enhanced monitoring and compliance
Authorization and access control with PermGuard approach to enforce security policies
Dockerizing and orchestrating with Kubernetes for efficient container management
Organizing code with Go Workspaces to improve development workflows
Lab: securing an existing microservice for enhanced protection
Summary and Next Steps for continued growth in government technology
Requirements
- Familiarity with software engineering principles
- Proficiency in the Golang programming language
- Fundamental coding competencies
Target Audience
- Software Developers
- Software Architects
Testimonials (4)
The instructor was knowledgeable about the course topic and also other related topics, and was able to answer our questions, or even make a note of questions he didn't immediately know the answer to and got back to use later.
Abe Sabbagh - Enbridge
Course - Advanced RabbitMQ - 2 Days
Possibility to perform independent exercises in the training environment.
Tomasz - PKO Zycie Towarzystwo Ubezpieczen S.A.
Course - Kafka for Administrators
the technical preparation of teachers
Giorgio - Asystel-BDF S.p.A.
Course - Creating a Service Mesh with Istio and Kubernetes
Very practical examples. The trainer has tried to keep a pace where everybody is able to go with even though the group was quite inhomogeneous regarding the knowhow. He has provided a lot of support to basically everybody who asked for it :)