Scalable web applications on Kubernetes

بواسطة: Cognitive Class

Overview

This mini course walks you through how to scaffold a web application, run it locally in a container, and then deploy it to a Kubernetes cluster created with Kubernetes Service. Additionally, you will learn how to bind a custom domain, monitor the health of the environment, and scale the application.Containers are a standard way to package apps and all their dependencies so that you can seamlessly move the apps between environments. Unlike virtual machines, containers do not bundle the operating system. Only the app code, run time, system tools, libraries, and settings are packaged inside containers. Containers are more lightweight, portable, and efficient than virtual machines.For developers looking to kickstart their projects, the IBM Cloud Developer Tools CLI enables rapid application development and deployment by generating template applications that you can run immediately or customize as the starter for your own solutions. In addition to generating starter application code, Docker container image and CloudFoundry assets, the code generators used by the dev CLI and web console generate files to aid deployment into Kubernetes environments. The templates generate Helm charts that describe the application’s initial Kubernetes deployment configuration, and are easily extended to create multi-image or complex deployments as needed.
Scalable web applications on Kubernetes
الذهاب الي الدورة

Scalable web applications on Kubernetes

بواسطة: Cognitive Class

  • Cognitive Class
  • مجانية
  • الإنجليزية
  • متاح شهادة
  • متاح في أي وقت
  • الجميع
  • N/A
8.1.2PHP Version274msRequest Duration2MBMemory UsageGET ar/الدورات/{slug}Route
    • Booting (173ms)
    • Application (101ms)
    • 1 x Booting (63.06%)
      172.94ms
      1 x Application (36.69%)
      100.62ms
      14 templates were rendered
      • public.courses.show (resources/views/public/courses/show.blade.php)3bladefile
        Params
        0
        course
        1
        links
        2
        config
      • public.courses.partials.breadcrumbs (resources/views/public/courses/partials/breadcrumbs.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.courses.partials.heading (resources/views/public/courses/partials/heading.blade.php)7bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        classes
      • public.courses.partials.details (resources/views/public/courses/partials/details.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.courses.partials.breadcrumbs (resources/views/public/courses/partials/breadcrumbs.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.courses.partials.heading (resources/views/public/courses/partials/heading.blade.php)7bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        classes
      • public.layouts.main (resources/views/public/layouts/main.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.layouts.partials.meta (resources/views/public/layouts/partials/meta.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.layouts.partials.navbar (resources/views/public/layouts/partials/navbar.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.auth.profile.partials.links (resources/views/public/auth/profile/partials/links.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.auth.profile.partials.link (resources/views/public/auth/profile/partials/link.blade.php)8bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        route
        7
        title
      • public.auth.profile.partials.link (resources/views/public/auth/profile/partials/link.blade.php)8bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        route
        7
        title
      • public.auth.profile.partials.link (resources/views/public/auth/profile/partials/link.blade.php)8bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        route
        7
        title
      • public.layouts.partials.flash-session (resources/views/public/layouts/partials/flash-session.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      uri
      GET ar/الدورات/{slug}
      middleware
      web, localize:ar
      controller
      App\Http\Controllers\CourseController@show
      as
      ar.courses.show
      namespace
      prefix
      /ar
      where
      file
      app/Http/Controllers/CourseController.php:17-35
      6 statements were executed6.29ms
      • select * from `courses` where `slug_ar` = 'scalable-web-applications-on-kubernetes' limit 1
        4.96ms/app/Http/Controllers/CourseController.php:20corspedia
        Metadata
        Bindings
        • 0. scalable-web-applications-on-kubernetes
        Backtrace
        • 17. /app/Http/Controllers/CourseController.php:20
        • 18. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 19. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 20. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • update `courses` set `visitors` = `visitors` + 1, `courses`.`updated_at` = '2025-04-24 14:08:55' where `id` = 1724
        560μs/app/Http/Controllers/CourseController.php:21corspedia
        Metadata
        Bindings
        • 0. 2025-04-24 14:08:55
        • 1. 1724
        Backtrace
        • 17. /app/Http/Controllers/CourseController.php:21
        • 18. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 19. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 20. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select `id`, `name_en`, `name_ar`, `topic_id`, `slug_en`, `slug_ar` from `subjects` where `subjects`.`id` in (64)
        210μs/app/Http/Controllers/CourseController.php:23corspedia
        Metadata
        Backtrace
        • 20. /app/Http/Controllers/CourseController.php:23
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 22. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 23. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 24. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select `id`, `name_en`, `name_ar`, `slug_en`, `slug_ar` from `topics` where `topics`.`id` in (1)
        140μs/app/Http/Controllers/CourseController.php:23corspedia
        Metadata
        Backtrace
        • 25. /app/Http/Controllers/CourseController.php:23
        • 26. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 27. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 28. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 29. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select * from `providers` where `providers`.`id` in (17) and `providers`.`deleted_at` is null
        180μs/app/Http/Controllers/CourseController.php:23corspedia
        Metadata
        Backtrace
        • 20. /app/Http/Controllers/CourseController.php:23
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 22. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 23. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 24. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select * from `html_files` where `html_files`.`id` = 1715 limit 1
        240μs/app/Models/Course.php:84corspedia
        Metadata
        Bindings
        • 0. 1715
        Backtrace
        • 21. /app/Models/Course.php:84
        • 28. view::public.courses.show:29
        • 30. /vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php:125
        • 31. /vendor/laravel/framework/src/Illuminate/View/Engines/PhpEngine.php:58
        • 32. /vendor/laravel/framework/src/Illuminate/View/Engines/CompilerEngine.php:72
      App\Models\HtmlFile
      1
      App\Models\Provider
      1
      App\Models\Topic
      1
      App\Models\Subject
      1
      App\Models\Course
      1
        _token
        IHueRhvkjYiUqrafivWjDeaadoHbAuuNUvmDVEK0
        locale
        ar
        _previous
        array:1 [ "url" => "https://www.corspedia.com/ar/%D8%A7%D9%84%D8%AF%D9%88%D8%B1%D8%A7%D8%AA/scalab...
        _flash
        array:2 [ "old" => [] "new" => [] ]
        PHPDEBUGBAR_STACK_DATA
        []
        path_info
        /ar/%D8%A7%D9%84%D8%AF%D9%88%D8%B1%D8%A7%D8%AA/scalable-web-applications-on-kubernetes
        status_code
        200
        
        status_text
        OK
        format
        html
        content_type
        text/html; charset=UTF-8
        request_query
        []
        
        request_request
        []
        
        request_headers
        0 of 0
        array:24 [ "cf-ipcountry" => array:1 [ 0 => "US" ] "cf-connecting-ip" => array:1 [ 0 => "3.138.37.173" ] "cdn-loop" => array:1 [ 0 => "cloudflare; loops=1" ] "x-forwarded-proto" => array:1 [ 0 => "https" ] "cf-visitor" => array:1 [ 0 => "{"scheme":"https"}" ] "sec-fetch-site" => array:1 [ 0 => "none" ] "accept" => array:1 [ 0 => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7" ] "user-agent" => array:1 [ 0 => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)" ] "upgrade-insecure-requests" => array:1 [ 0 => "1" ] "sec-ch-ua-platform" => array:1 [ 0 => ""Windows"" ] "sec-ch-ua-mobile" => array:1 [ 0 => "?0" ] "sec-ch-ua" => array:1 [ 0 => ""HeadlessChrome";v="129", "Not=A?Brand";v="8", "Chromium";v="129"" ] "cache-control" => array:1 [ 0 => "no-cache" ] "pragma" => array:1 [ 0 => "no-cache" ] "sec-fetch-dest" => array:1 [ 0 => "document" ] "cf-ray" => array:1 [ 0 => "93562ce788463ef3-ORD" ] "accept-encoding" => array:1 [ 0 => "gzip, br" ] "priority" => array:1 [ 0 => "u=0, i" ] "sec-fetch-user" => array:1 [ 0 => "?1" ] "sec-fetch-mode" => array:1 [ 0 => "navigate" ] "x-forwarded-for" => array:1 [ 0 => "3.138.37.173" ] "host" => array:1 [ 0 => "www.corspedia.com" ] "content-length" => array:1 [ 0 => "" ] "content-type" => array:1 [ 0 => "" ] ]
        request_server
        0 of 0
        array:50 [ "USER" => "www-data" "HOME" => "/var/www" "HTTP_CF_IPCOUNTRY" => "US" "HTTP_CF_CONNECTING_IP" => "3.138.37.173" "HTTP_CDN_LOOP" => "cloudflare; loops=1" "HTTP_X_FORWARDED_PROTO" => "https" "HTTP_CF_VISITOR" => "{"scheme":"https"}" "HTTP_SEC_FETCH_SITE" => "none" "HTTP_ACCEPT" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7" "HTTP_USER_AGENT" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)" "HTTP_UPGRADE_INSECURE_REQUESTS" => "1" "HTTP_SEC_CH_UA_PLATFORM" => ""Windows"" "HTTP_SEC_CH_UA_MOBILE" => "?0" "HTTP_SEC_CH_UA" => ""HeadlessChrome";v="129", "Not=A?Brand";v="8", "Chromium";v="129"" "HTTP_CACHE_CONTROL" => "no-cache" "HTTP_PRAGMA" => "no-cache" "HTTP_SEC_FETCH_DEST" => "document" "HTTP_CF_RAY" => "93562ce788463ef3-ORD" "HTTP_ACCEPT_ENCODING" => "gzip, br" "HTTP_PRIORITY" => "u=0, i" "HTTP_SEC_FETCH_USER" => "?1" "HTTP_SEC_FETCH_MODE" => "navigate" "HTTP_X_FORWARDED_FOR" => "3.138.37.173" "HTTP_HOST" => "www.corspedia.com" "REDIRECT_STATUS" => "200" "SERVER_NAME" => "corspedia.com" "SERVER_PORT" => "443" "SERVER_ADDR" => "141.95.147.152" "REMOTE_USER" => "" "REMOTE_PORT" => "52446" "REMOTE_ADDR" => "172.69.58.194" "SERVER_SOFTWARE" => "nginx/1.18.0" "GATEWAY_INTERFACE" => "CGI/1.1" "HTTPS" => "on" "REQUEST_SCHEME" => "https" "SERVER_PROTOCOL" => "HTTP/2.0" "DOCUMENT_ROOT" => "/var/www/corspedia/public" "DOCUMENT_URI" => "/index.php" "REQUEST_URI" => "/ar/%D8%A7%D9%84%D8%AF%D9%88%D8%B1%D8%A7%D8%AA/scalable-web-applications-on-kubernetes" "SCRIPT_NAME" => "/index.php" "CONTENT_LENGTH" => "" "CONTENT_TYPE" => "" "REQUEST_METHOD" => "GET" "QUERY_STRING" => "" "SCRIPT_FILENAME" => "/var/www/corspedia/public/index.php" "PATH_INFO" => "" "FCGI_ROLE" => "RESPONDER" "PHP_SELF" => "/index.php" "REQUEST_TIME_FLOAT" => 1745503735.2218 "REQUEST_TIME" => 1745503735 ]
        request_cookies
        []
        
        response_headers
        0 of 0
        array:5 [ "content-type" => array:1 [ 0 => "text/html; charset=UTF-8" ] "cache-control" => array:1 [ 0 => "no-cache, private" ] "date" => array:1 [ 0 => "Thu, 24 Apr 2025 14:08:55 GMT" ] "set-cookie" => array:2 [ 0 => "XSRF-TOKEN=eyJpdiI6ImtGUkdWVUhpTWZJR1FTa2F6cGJGK0E9PSIsInZhbHVlIjoiNGlIUlg3RFJINDJuNDRPRnFrSmx0NXFPVm1QMURReUtmWUd0NHhVNklnSmRQWGxISWxxemJhL2hNRmhCRXJpTmRlYU1FODYyczdmQXZvQWp3elNIYmFjbkxRdGlkeFI1aW9uVEI2QWJPM2ZNblFqenlKck1INGp3WCtvOWc4c0wiLCJtYWMiOiIxNzI3OWNmNTQ1NTFkMjcyZDY1Y2ViM2EwYmFlYjU5MTNlMjgxYzQ0MThhNTdlNjA2MzVlMjg1OWUzODI1MTE4IiwidGFnIjoiIn0%3D; expires=Thu, 24 Apr 2025 16:08:55 GMT; Max-Age=7200; path=/; samesite=laxXSRF-TOKEN=eyJpdiI6ImtGUkdWVUhpTWZJR1FTa2F6cGJGK0E9PSIsInZhbHVlIjoiNGlIUlg3RFJINDJuNDRPRnFrSmx0NXFPVm1QMURReUtmWUd0NHhVNklnSmRQWGxISWxxemJhL2hNRmhCRXJpTmRlYU1FO" 1 => "laravel_session=eyJpdiI6InZJeWhrRDlvK1hlVmdxWWtES2U3YlE9PSIsInZhbHVlIjoid0I4ZmtFaExaL05sT3paV3pkb0tIblozdzQ3MWVTaWl6MUUyaHp0SHF5cUFsdEk2Qnp6UzlYT3ROMGFCVHlwYlVBaVRnZVdSUFIwMG81WWxFT0Q5UTRpc0ZGTUgwZzlGdGo1TjRoRGNlY2tvR1FuOFpsaTlBNGxmZGhKeDFMeDAiLCJtYWMiOiJkY2RlODMyMTQ3MmZjMDc1ODJkZDIyZDYwMzM5YzcxYzQ2ZWNmOTExZGQ5YjNhOTk1MzI2NmUxOWIzNmNlZmY2IiwidGFnIjoiIn0%3D; expires=Thu, 24 Apr 2025 16:08:55 GMT; Max-Age=7200; path=/; httponly; samesite=laxlaravel_session=eyJpdiI6InZJeWhrRDlvK1hlVmdxWWtES2U3YlE9PSIsInZhbHVlIjoid0I4ZmtFaExaL05sT3paV3pkb0tIblozdzQ3MWVTaWl6MUUyaHp0SHF5cUFsdEk2Qnp6UzlYT3ROMGFCVHlwYlVB" ] "Set-Cookie" => array:2 [ 0 => "XSRF-TOKEN=eyJpdiI6ImtGUkdWVUhpTWZJR1FTa2F6cGJGK0E9PSIsInZhbHVlIjoiNGlIUlg3RFJINDJuNDRPRnFrSmx0NXFPVm1QMURReUtmWUd0NHhVNklnSmRQWGxISWxxemJhL2hNRmhCRXJpTmRlYU1FODYyczdmQXZvQWp3elNIYmFjbkxRdGlkeFI1aW9uVEI2QWJPM2ZNblFqenlKck1INGp3WCtvOWc4c0wiLCJtYWMiOiIxNzI3OWNmNTQ1NTFkMjcyZDY1Y2ViM2EwYmFlYjU5MTNlMjgxYzQ0MThhNTdlNjA2MzVlMjg1OWUzODI1MTE4IiwidGFnIjoiIn0%3D; expires=Thu, 24-Apr-2025 16:08:55 GMT; path=/XSRF-TOKEN=eyJpdiI6ImtGUkdWVUhpTWZJR1FTa2F6cGJGK0E9PSIsInZhbHVlIjoiNGlIUlg3RFJINDJuNDRPRnFrSmx0NXFPVm1QMURReUtmWUd0NHhVNklnSmRQWGxISWxxemJhL2hNRmhCRXJpTmRlYU1FO" 1 => "laravel_session=eyJpdiI6InZJeWhrRDlvK1hlVmdxWWtES2U3YlE9PSIsInZhbHVlIjoid0I4ZmtFaExaL05sT3paV3pkb0tIblozdzQ3MWVTaWl6MUUyaHp0SHF5cUFsdEk2Qnp6UzlYT3ROMGFCVHlwYlVBaVRnZVdSUFIwMG81WWxFT0Q5UTRpc0ZGTUgwZzlGdGo1TjRoRGNlY2tvR1FuOFpsaTlBNGxmZGhKeDFMeDAiLCJtYWMiOiJkY2RlODMyMTQ3MmZjMDc1ODJkZDIyZDYwMzM5YzcxYzQ2ZWNmOTExZGQ5YjNhOTk1MzI2NmUxOWIzNmNlZmY2IiwidGFnIjoiIn0%3D; expires=Thu, 24-Apr-2025 16:08:55 GMT; path=/; httponlylaravel_session=eyJpdiI6InZJeWhrRDlvK1hlVmdxWWtES2U3YlE9PSIsInZhbHVlIjoid0I4ZmtFaExaL05sT3paV3pkb0tIblozdzQ3MWVTaWl6MUUyaHp0SHF5cUFsdEk2Qnp6UzlYT3ROMGFCVHlwYlVB" ] ]
        session_attributes
        0 of 0
        array:5 [ "_token" => "IHueRhvkjYiUqrafivWjDeaadoHbAuuNUvmDVEK0" "locale" => "ar" "_previous" => array:1 [ "url" => "https://www.corspedia.com/ar/%D8%A7%D9%84%D8%AF%D9%88%D8%B1%D8%A7%D8%AA/scalable-web-applications-on-kubernetes" ] "_flash" => array:2 [ "old" => [] "new" => [] ] "PHPDEBUGBAR_STACK_DATA" => [] ]