Just Do It ! 행동하지 않으면 성공도 실패도 없다

[도서] Kubernetes In Action

쿠버네티스를 공부하면서 많이 보는 책 중에 하나가 “Kubernetes In Action” 일 것이다. 동작 방식을 도식화하여 어떻게 동작하는지 쉽게 설명하고 있어서, Kubernetes를 알고 싶은 사람에게 좋은 책이다. 한국어로 번역이 되어서 한번 출간이 되었는데, 기존 번역서에서 누락된 부분이나 번역이 미흡한 부분을 보완하여, 이번에 재번역되어서 출간되었다.

사용자/그룹 관리를 위한 Aerobase

Aerobase 모든 시스템 솔루션에는 IAM(Identity & Access Management)이 필요하다. 쉽게는 LDAP을 위한 OpenLDAP이나 OpenDS같은것을 생각할 수 있으나, Keycloak기반의 Aerobase가 최근에 인기가 있다. 단순 IAM 뿐만 아니라 SSO 솔루션(OAuth2, OIDC, SAML)으로도 사용이 가능하다. https://aerobase.io Free: unlimited application and back-end protection without any charges Multi-platform support: single UI and API to deliver OAuth2 Multi-SDK support: provides SDKs OpenID Connect public cloud 인 https://cloud.aerobase.io/portal 에 사용자 계정을 생성하여, 사용할 수도 있다. 설치 Download Aerobase Server

Kubernetes 에서 Kubesphere를 이용한 DevOps

Developer Portal with Kubesphere kubesphere (https://github.com/kubesphere/kubesphere) 의 오픈소스 프로젝트로 쿠버네티스 클러스터에서 사용할 수 있는 웹 UI를 제공합니다. 워크스페이스/프로젝트 단위로 워크로드를 관리하고, Jenkins를 통한 파이프라인도 제공한다. 내부적으로 프로메테우스와 ElasticSearch 를 통한 모니터링/로깅을 제공한다. OpenPitrix 를 사용한 App Store도 제공한다. 공식 사이트: https://kubesphere.io Environments PKS(Pivotal Container Service) 1.6.1 NSX-T 2.4.3 vSphere 6.7U3 PKS Installation with EPMC(Enterprise PKS Management Console) Deploye PKS Management Console Configuration Deploy Create K8s Cluster 클러스터 생성 pks create-cluster k8s --external-hostname demo-cluster.

코틀린_Kotlin_다시보기1

코틀린 kotlin 기초 기본타입 패키지 흐름제어 리턴과 점프 클래스와 오브젝트 클래스와 상속 프로퍼티와 필드 인터페이스 확장 데이터 클래스 지네릭 리제릭 함수 중첩 클래스 Enum 클래스 오브젝트 식과 선언 위임 위임 프로퍼티 함수와 람다 함수 함수선언 함수사용 중위표현 파라미터 기본인자 이름(Named)인자 Unit리턴함수 단일 식 함수 리턴 타입 지정 가변인자(Varargs) 함수범위 로컬 함수 멤버 함수 지네릭함수 인라인함수 확장함수 고차함수와 람다 꼬리 재귀함수 고차함수와 람다 고차함수 인라인함수 람다식과 임의함수 인라인 함수 noinline 비-로컬 리턴 Reified 타입 파라미터 기타 coroutines

공적개발원조_ODA

공적개발원조 (ODA - Development) https://blog.quandl.com/api-for-economic-data python + wbdata + matplotlib import wbdata import pandas import matplotlib.pyplot as plt #set up the countries I want countries = ["CL","UY","HU"] #set up the indicator I want (just build up the dict if you want more than one) indicators = {'NY.GNP.PCAP.CD':'GNI per Capita'} #grab indicators above for countires above and load into data frame df = wbdata.get_dataframe(indicators, country=countries, convert_date=False) #df is "pivoted", pandas' unstack fucntion helps reshape it into something plottable dfu = df.

Packer Oci Machine Image

OCI builder for Packer Packer는 hashcorp에서 만든 오픈소스로 Machine Image생성 툴이다. AMI, Azure, GCP뿐만 아니라, Oracle Cloud Infrastructure또한 지원을 한다. 물론 기본 이미지를 Provisioning하고 Ansible이나 기타 Tool을 통해서 Configuration이 가능하지만, Packer를 사용하면 미리 이미지를 만들어서 배포 후 바로 실행 할 수 있다. 사전에 알아야 할 사항 packer를 설치한다 Linux의 경우 손쉽게 Repository에서 다운로드해서 설치가능하다 yaourt -S packer-io or Download from packer site (https://www.packer.io/downloads.html) OCI builder for packer https://github.com/oracle/ Oracle OCI Availabilty_domain base_image_ocid compartment_ocid fingerprint shape subnet_ocid optional access_cfg_file : Defaults to “$HOME/.

Kubernetes

오라클 개발자 Meetup에서 발표한 Kubernetes 101발표자료입니다.

lazybones 에 새로운 Template추가하기

lazybones 의 템플릿 lazybones 의 기본 템플릿은 list 를 통해서 볼 수 있는데, 이외의 다른 템플릿을 추가하기 위해서는 config.groovy에 새로운 Repository 를 추가해 줘야 한다. lazybones list ${USER_HOME}/.lazybones/config.groovy bintaryRepositories = [ "kyleboon/lazybones", "griffon/griffon-lazybones-templates", "pledbrook/lazybones-templates" ] griffon javafx 를 사용하는 groovy Sample 프로젝트를 생성하기 위해서는 아래와 같이 하면 된다. lazybones create griffon-javafx-groovy griffon-javafx-groovy-sample lazybones 의 추가 템플릿들 Available templates in kyleboon/lazybones dropwizard groovy-app java-basic jbake Available templates in griffon/griffon-lazybones-templates griffon-javafx-groovy griffon-javafx-java griffon-javafx-kotlin griffon-lanterna-groovy griffon-lanterna-java griffon-pivot-groovy griffon-pivot-java griffon-plugin griffon-swing-groovy griffon-swing-java Available templates in pledbrook/lazybones-templates aem-multimodule-project afterburnerfx afterburnergfx angular-grails asciidoctor-gradle asciidoctor-revealjs dropwizard gaelyk gradle-plugin gradle-quickstart groovy-app groovy-lib java-basic lazybones-project nebula-plugin ratpack ratpack-lite spring-boot-actuator test-handlebars

Docker base image size늘리기

Docker Image 의 Base Sizse 늘리기 docker -D info Containers: 1 Running: 1 Paused: 0 Stopped: 0 Images: 1 Server Version: 1.12.3 Storage Driver: devicemapper Pool Name: docker-8:17-35389497-pool Pool Blocksize: 65.54 kB Base Device Size: 53.69 GB ... docker 의 기본 이미지 사이즈는 10GB 이다. 일반적으로 그냥 docker 를 설치하고 이미지를 실행해서 ‘df -h’를 통해서 사이즈를 확인하면, 9.99GB가 나온다. 하지만 때때로 10GB가 넘는 경우가 발생한다. 외부 Volume을 연결할 수도 있겠지만, 컨테이너 자체에서 스토리지를 관리하고 싶을때도 있다.

Nautilus에서 문서 선택해서 Edit시 한글입력문제

Linux 에서 한글입력 시 문제 ~/.xprofile 에 아래와 같이 추가한다. export XIM="uim" export GTK_IM_MODULE='uim' export QT_IM_MODULE='uim' exec uim-xim & export XMODIFIERS='@im=uim' exec uim-toolbar-gtk3-systray & WPS에서 한글입력 시 한글입력이 되지 않는 문제가 있는데, 이는 uim-xim 을 띄우고, qtconfig-qt4의 interface 에서 ime를 xim 으로 해야 wps에서 한글입력이 제대로 됨 Natuilus 에서 문서 선택하고, 마우스 오른쪽 클릭 후 Edit를 선택하면 WPS또는 MS Office에서 한글 입력이 되지 않는 문제가 있음 하지만, Thunar 나 Command line에서 WPS나 MS Office 를 띄우면 한글입력에 문제가 되지 않음.

oh my zsh 설치하기

zsh 를 설치하고, oh-my-zsh 를 설치하기 $ curl -L https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh | sh

nmcli 다시보기

네트워크 설정 네트워크 관리를 위한 CLI (command line tool)인 nmcli 에 대해서 다시 한번 보자. (맨날 까먹으니까….. ㅠㅠ) command line tool 인 nmcli 는 사용자가 직접 또는 NetworkManager를 위한 스크립트를 사용할 수 있다. 기본적인 명령어 모양은 아래와 같다 $ netcli [OPTIONS] OBJECT { COMMAND | help } OBJECT 는 general, networking, radio, connection, device, agent, monitor 이다. 그리고 가장 많이 사용하는 OPTIONS은 -t (–terse), -p (–pretty), -h (–help) 이다. $ nmcli help Usage: nmcli [OPTIONS] OBJECT { COMMAND | help } OPTIONS -t[erse] terse output -p[retty] pretty output -m[ode] tabular|multiline output mode -c[olors] auto|yes|no whether to use colors in output -f[ields] <field1,field2,.

리눅스 JVM 튜닝하기

JVM java 를 설치하고 나서, <JAVA_HOME>/jre/lib/security/java.security 파일을 수정해 준다. #networkaddress.cache.ttl=-1 networkaddress.cache.ttl=30 그리고 Linux 의 경우 /etc/nsswitch.conf 의 host 설정을 변경한다. ehco 'hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4' >> /etc/nsswitch.conf

java Collections의 역습


rxGroovy다시보기


Actor모델


SQL Server Docker image on Linux

SQL Server on Linux 정말로 놀라운 소식이 아닐수 없다. “Microsoft is back” 이란 말이 헛말이 아니라는 것이 요즘 MS에서 나오는 새로운 소식드에서 느낄 수 있다. Visual Studio on mac 에 이어서 몇달전에 발표한 SQL Server on Linux 가 실체를 드러냈다. 리눅스 서버에 새롭게 설치를 할 수도 있겠지만 놀랍게도 Docker image를 통해서 손쉽게 배포를 할 수 있도록 한 것이 또 다른 점이라 할 수 있다.. 이제는 거의 모든 회사에서 새로운 제품을 출시하고 나서 Docker image를 통해서 테스트/운영을 할 수 있도록 제공하는 것이 기본이 되어 버렸다.

Digital Experience Workshop at Seoul (Nov 14, 2016)

Digital Experience Top 3 features Secutiry Social Mobile Use Cases Coordinating with Business Partners Sales Collaboration Support of Mobile Field Workers Digital Workplace Collaboration Connections Real-time conversations and social collaboration Social Graph based discovery of content and conversations Content centric activity stream “buddy” Context Integrated within business workflows Embedded within applications Unified on-premises and cloud content management Multiple content centric mobile experience Control Choice of user & content Context is everything Business Apps integratation Sales Cloud, Eloqua, Service Cloud, SRM On-Premises : Siebel, EBS PAAS Integrations Proces CS, Sites CS Hybrid ECM RICH Platform Architected to be Platform

Lambda expressions and Stream API with Groovy or JAVA8

Lambda expressions and Stream API with Groovy and JAVA 8 Iteration groovy def numbers = [1, 2, 3, 4, 5, 6] numbers.each { e -> println e } numbers.each { println it } java List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6); numbers.forEach(e -> System.out.println(e)); numbers.forEach(System.out::println); collect groovy def numbers = [1, 2, 3, 4, 5, 6] numbers.collect { it * 2 }.each { e -> println e } println numbers.

Network Cloud Service

OSI - Network Layer Application Prsentation Session Transport Network Data Link Physical VLANs tag, trunk IP Routing Bandwidth

Reactive Programming with Groovy

Reactive Streams, Reactive Extensions (Rx) The Problem : Performacen : our pages should render within 1000 milliseconds The Rise of microservices : free up resources with Async Operations & Non-Blocking I/O What is reactive stream (Rx) ? collections + time Single abstration over data from many sources Observer Pattern Push (not pull) based Iterators Stream Based Funcational Programming Imperative vs Reactive Stream // Iterative List numbers = 1..100 int max = numbers.

Hugo Blog를 github.io page 로 서비스하기

Hugo Blog Server Hugo blog를 github.com 의 page 에서 서비스 하기 위해서는 우선 두개의 Repository 를 생성한다. 하나는 hugo md 파일을 관리하기 위한 repository 이고 하나는 html 로 redner 된 html을 서비스 하기 위한 page repository 이다. hugosite.git <사용자계정>.github.io.git git repository 설정하기 cd hugosite # 초기 설정하기 git init # hugo git remote add origin https://github.com/namoo4u/hugosite.git # 그리고 public 폴더를 hugosite의 subsite 로 등록한다. git submodule add -b master https://github.com/namoo4u/namoo4u.github.io.git public 새로운 hugo content 만들기 hugo new "post/새로운 post글.

Bare Meta Cloud Services are now available

Bare Metal Cloud Services 지원 서비스 Integrated network block storage object storage identity and access management VPN Connectivity Software-defined Virtual Cloud Network (VCN) secure, elastic, extension of on-premises network Market leading price-perfomance Best in class - predictable, consistent performance NVMe (Non-Volatile Memory Express) SSD for fastest IOPs and low latency Massive Enterprise Scale Access 100s of cores of decicated compute in a fast provisioned cloud model Elasticity, scale, flexibility & choice of development Secuity Hardening

배우기 정리

Programming Groovy Go lang Javascript Angular js 2 RxJS Scala Framework Reactive Programming AKKA RxJava Ratpack Springboot Tools Jenkins pipeline Mobile Native Script Cloud Open Stack Docker + Kubernete HW Aduino Raspberry Pi Lanuage English