Jestem w trakcie proponowania mojego środowiska IT dla środowiska pomostowego bazy danych. Chodzi o to, że osoba spoza IT, taka jak ja (analityk danych robót publicznych), miałaby miejsce na przetestowanie rozwiązań, a następnie albo sam je wdrożyłby w środowisku na żywo, albo poprosiła IT o ich wdrożenie w razie potrzeby. Istnieje kilka powodów / scenariuszy, w których środowisko to byłoby korzystne:
- Mam kilka podstawowych przywilejów bazy danych w naszym środowisku bazy danych (na żywo
create table
,create view
itp). Wprowadzam zmiany schematu mniej więcej raz w tygodniu, ale wydaje się, że mi się, że testowanie i wdrażanie tych zmian w środowisku na żywo szalone . Baza danych zawiera niezliczone zależności, więc jeśli coś pójdzie nie tak, może być katastrofalne. Wolałbym przetestować rzeczy wcześniej w osobnym środowisku. - Nie mam niektórych bardziej zaawansowanych uprawnień, takich jak
create trigger
lubcreate function
w bazie danych na żywo. To dobrze, ale mam kilka problemów, które można rozwiązać za pomocą wyzwalaczy i / lub funkcji. Planuję zaproponować, aby uzyskać te uprawnienia w środowisku testowym, abym mógł opracować i przetestować niektóre pomysły, a jeśli zadziałają, zaproponuję, aby IT wdrożyło je w środowisku na żywo. - Ogólnie rzecz biorąc, mój dział IT nie ma czasu ani zasobów, aby opracować dla mnie rozwiązania. To naprawdę takie proste. Więc jeśli mogę samodzielnie wykonać pracę nóg, moje problemy są znacznie bardziej prawdopodobne.
„Środowisko inscenizacyjne dla personelu niezwiązanego z IT” wydaje mi się dość rozsądnym podejściem, ale szczerze mówiąc, właśnie wymyśliłem ten pomysł. Nie mam pojęcia, jak to się zwykle robi w świecie IT / baz danych.
Czy istnieje jakakolwiek ustalona praktyka IT / bazy danych, która pasowałaby do tego scenariusza? (Czy jestem na dobrej drodze, gdy proponuję środowisko pomostowe bazy danych dla personelu niebędącego pracownikiem IT?)
źródło
Odpowiedzi:
Zgadzam się z odpowiedzią @Marcin Gminiski, że idealnie chcesz mieć środowisko naśladujące funkcjonalność dostępne w środowisku produkcyjnym. Chociaż wszystkie moje 2 centy w tej sprawie sprowadzają się do: „Na co cię stać?” Ograniczenia budżetowe często zabijają dobry proces, więc naprawdę to, na co możesz sobie pozwolić, determinuje złożoność / elegancję ostatecznego rozwiązania.
Ponieważ wspominasz, że w dziale IT brakuje czasu i personelu, aby przygotować dla ciebie środowisko, czy jesteś w stanie (a raczej swoim wydziałem / kierownikiem) wnieść jakieś środki na stół? Pozyskanie niewielkiej kwoty rocznego finansowania otworzyłoby możliwość spojrzenia na chmurę. Dostawcy usług w chmurze oferują wszystko, czego potrzebujesz, a niektóre rozwiązania zawierają nawet odpowiednie licencje, co często stanowi największy koszt w stosunku do Oracle. Jeśli nie wrzucasz wrażliwych danych do tego środowiska, chmura staje się jeszcze bardziej atrakcyjna.
Istnieje wiele dostępnych opcji chmurowych, ale skieruję cię do instancji Oracle RDS na AWS tylko dlatego, że oferują one licencję w zestawie opcję , a możesz ją wyłączyć, gdy nie używasz jej w celu dalszego zminimalizowania kosztów. Odpowiednik może istnieć u innych dostawców usług w chmurze, ale wielu znanych mi dostawców usług w chmurze wymaga dostarczenia własnej licencji (BYOL) dla rozwiązań opartych na Oracle zamiast oferowania licencji obejmującej.
Ostatnia uwaga: instancja AWS RDS jest TYLKO bazą danych, więc każda infrastruktura serwera aplikacji, której potrzebujesz, również musiałaby zostać uwzględniona. Chmura jest świetną opcją, jeśli potrzebujesz szybkiego środowiska do testowania funkcjonalności, a jednocześnie jest to opłacalne podejście; po prostu upewnij się, że masz wszystko na uwadze i wyłączasz rzeczy, aby nie płacić za bezczynne serwery.
źródło
Zwykle przyzwoite środowisko składa się przynajmniej z DEV -> TEST -> PRE-PROD -> PROD. Rozwój zwykle miałby dostęp do opracowania w DEV, testów akceptacyjnych w TESTIE i IT do wydania w PRE i PROD. Jeśli użyjesz kontroli źródła, unikniesz problemów związanych z edycją tego samego kodu przez różnych programistów w tym samym czasie.
Technicznie potrzebujesz tylko schematu, który jest taki sam jak w prod i nie potrzebujesz danych produkcyjnych poniżej wersji przedprodukcyjnej, ale jeśli nie masz nic przeciwko posiadaniu danych prod poza środowiskiem prod, możesz mieć automatyczne przywracanie do tworzenia / testowania. Zrobiłem podobną pracę z Visual Cron i działa to cuda.
Prawdopodobnie w celu zachowania zgodności personel IT będzie musiał wprowadzić zmiany w wersjach pre i prod, aby uczynić to łatwiejszym i bardziej odpornym, możesz pójść drogą automatycznych wdrożeń.
źródło
Oto moje doświadczenie:
Początkowo mieliśmy centralne środowisko programistyczne o nazwie
simserver
. Programiści testowali rzeczy jednocześnie i robił się bałagan .Teraz każdy programista ma lokalny
simserver
, do którego wdraża się w celu przetestowania. Gdy powiedzą, że jest gotowy, zostaje zepchnięty doquality assurance (QA) environment
. Mamyjira
przypadki testowe na wszystko, co należy sprawdzić, a także ponownie testujemy nowe dodatki (mamy oddanych pracowników ds. Kontroli jakości, którzy nie zajmują się programowaniem; tylko kontrola jakości).Następnie zostaje wprowadzony na żywo.
Tworzenie lokalnych
simserver
jest logiczne i łatwe. PoVM
przygotowaniu szablonów programiści po prostu wdrażają je na swoim komputerze osobistym (bez dostępu do reszty sieci - tylko na komputerze lokalnym).źródło